1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-07-10 09:44:07 +02:00

Compare commits

..

37 Commits

Author SHA1 Message Date
Jelle Licht f594456209 gnu: node-lts: Update to 24.14.1.
* gnu/packages/node.scm (node-lts): Update to 24.14.1.

Change-Id: I60457e8e8e05e0102feb450655113ba410bd7667
2026-05-03 20:58:59 +02:00
Jelle Licht f8a0185f03 gnu: node-nan: Update to 2.26.2.
* gnu/packages/node-xyz.scm (node-nan): Update to 2.26.2.

Change-Id: I84c8aa254540646c559b4b65646083e1ea961d75
2026-05-03 20:58:58 +02:00
Jelle Licht f224f47572 gnu: node-openzwave-shared: Fix compilation for new versions of node.
* gnu/packages/zwave.scm (node-openzwave-shared):[arguments]<#:phases>:Adjust
patch-compiler phase use std=c++20 to allow compilation with node versions 24
and up.

Change-Id: I04b4657c025d233f4abbbc4d3829ca44351fdae3
2026-05-03 20:58:58 +02:00
Jelle Licht f5d7f2f881 Revert "build-system: node: Rewrite modify-json."
This reverts commit dff01d4eb12016435b8fb8878294b79b25b3bf4a. The #:file
keyword argument was still part of the rest arguments, which lead to custom
file arguments being called as functions due to the `apply compose'.

Change-Id: I91d6b576adb7ebb5af6a584e999248b5cc410f6a
2026-05-03 20:58:58 +02:00
Jelle Licht f65fd4efc7 gnu: node-lts: Update to 24.14.0.
* gnu/packages/node.scm (node-lts): Update to 24.14.0.

Change-Id: I51f3c4c77530a81ddac6dc0ebbef0c0f2897c875
2026-05-03 20:58:58 +02:00
Jelle Licht 92f84e2135 gnu: node-lts: Update to 24.11.0.
* gnu/packages/node.scm (node-lts): Update to 24.11.0.
[arguments]<#:phases>: Adjust 'ignore-number-of-hardlinks phase to patch both
ESM and CJS modules. Remove deprecated 'install-node-gyp-wrapper phase.
Introduce new replacement for 'fix-node-gyp-references phase.

Change-Id: I1a372ceb10e31ecfedeff7653030708efa97dab9
2026-05-03 20:58:58 +02:00
Jelle Licht d9a5bbfa79 gnu: node-bootstrap: Rename phase that fixes node-gyp references
* gnu/packages/node.scm (node-bootstrap)[arguments]<#:phases>: Rename
install-npmrc phase to fix-node-gyp-reference.
(libnode)[arguments]<#:phases>: Delete 'fix-node-gyp-reference phase instead
of 'install-npmrc phase.

Change-Id: I062753b79e42e5a8a311b019855168bb96a566b2
2026-05-03 20:58:58 +02:00
Jelle Licht f5c66d183d build-system: tree-sitter: Fix lockfiles extensibility.
* guix/build-system/tree-sitter.scm (tree-sitter-build-build): Add and pass
along lockfiles argument.
(tree-sitter-cross-build): Likewise.

Change-Id: I6f68c0741f21ff26367dd37ff3c53e612fdc9bc2
2026-05-03 20:58:58 +02:00
Jelle Licht d4c7c8f3a7 build-system: node: Export %default-lockfiles for build systems.
* guix/build-system/node.scm (%default-lockfiles): New variable.

Change-Id: I8d9f01bf07670615a7c6012fca3e08308eab3c1c
2026-05-03 20:58:58 +02:00
Jelle Licht a4b766a561 gnu: r-v8: Fix build with node-lts@24.
The version bump of node-lts from 22 to 24 also bumped the version in the so-file.

* gnu/packages/cran.scm (r-v8)[#:phases]<find-v8>: Look for libnode-so.137 as
provided by node-lts@24.

Change-Id: I41bf86cd387c49b214d84a43135fca969a515202
2026-05-03 20:58:58 +02:00
Jelle Licht 99ce5b322e build-system: node: Use file:// prefix for local dependencies.
Using the file:// prefix for local packages was always allowed, and since npm
version 11 required in order to properly resolve local dependencies when
installing from tarballs.

* guix/build/node-build-system.scm (index-modules): Add "file://" prefix to
hash table values for local modules.

Change-Id: I9d95a5d6788cc918b94677b4524391617e3a73b4
2026-05-03 20:58:58 +02:00
Nicolas Graves de25db13bf build-system: node: Refresh phase 'configure.
* guix/build/node-build-system.scm (configure): Remove unused outputs
argument, add --no-outputs flag.

Change-Id: Icf0d5d23cf70abc9168038e79c995391fae48e6a
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:58 +02:00
Nicolas Graves 390d345e47 build-system: node: Refresh phase 'avoid-node-gyp-rebuild.
* guix/build/node-build-system.scm (avoid-node-gyp-rebuild): Refresh
phase by using let* instead of multiple defines.

Change-Id: I30c53f5d7d5bc69444ddcef45cdf8eefcab7db84
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:58 +02:00
Nicolas Graves 206b5efc28 build-system: node: Remove trailing #t.
* guix/build/node-build-system.scm (set-home, delete-lockfiles, build,
repack, install): Remove trailing #t.

Change-Id: Idf5ba50242a7b9fb5d30c8fca6e6662471cf87e4
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:57 +02:00
Nicolas Graves 2c682b098a build-system: node: Rewrite phase 'patch-dependencies.
* guix/build/node-build-system.scm (alist-update): Remove procedure.
(patch-dependencies): Rewrite using modify-json and higher-order
function resolve.

Change-Id: I6a3e30526d5523b559d48317f0e052f2b1dcf04c
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:57 +02:00
Nicolas Graves 5bdb684f15 build-system: node: Improve lockfiles extensibility.
* guix/build-system/node.scm (%default-lockfiles): New variable.
(node-build): Add lockfiles argument.

* guix/build/node-build-system.scm (delete-lockfiles): Re-factor with
lockfiles argument.

Change-Id: I09927977ec7c6430191f592f7f36d4030721c520
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:57 +02:00
Nicolas Graves 335a1cd01a build-system: node: Improve (default-guile-json) import style.
Also place it just after (default-node).

* guix/build-system/node.scm (default-guile-json): Place it
after (default-node) and use helper macro @*.

Change-Id: Idc21c9627f414a011915033da0cab845529ddbff
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:57 +02:00
Nicolas Graves fc858b0c18 build-system: node: Rewrite modify-json.
This function seems way too complex for what it's trying to do.

* guix/build/node-build-system.scm (modify-json): Rewrite procedure
using apply and compose.

Change-Id: I6419bd32eea76031393573a1d6450571d092ec4d
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:57 +02:00
Nicolas Graves 9fbe3c4494 build-system: node: Refresh delete-dependencies procedure.
* guix/build/node-build-system.scm (delete-dependencies): Use map and
match-lambda to improve readability of the phase.

Change-Id: I6d9275c7eea1514f103988215916d478a68ea466
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:57 +02:00
Nicolas Graves a37d3eeb5f build-system: node: Remove alist-pop, simplify alist-update.
Those functions are most likely not worth the complexity they carry.
They might be a little more efficient (stop at the first encounter
instead of mapping until the end), but is it worth the additional
complexity? I'm unsure.

* guix/build/node-build-system.scm (alist-pop): Remove variable.
(alist-update): Use a more standard map.

Change-Id: I47b91461849d6e6d627e98f67bc6a08f12fa7370
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:57 +02:00
Nicolas Graves 26bf16aab2 build-system: node: Remove assoc-ref* helper.
This procedure has little added value and is basically equivalent to a
simple composition of assoc-ref and or.

* guix/build/node-build-system.scm (assoc-ref*): Remove procedure.
(patch-dependencies, build, avoid-node-gyp-rebuild): Replace use of
assoc-ref*.

Change-Id: I947a66fe91eaa2b4adc8dc405232a32257f9d061
Signed-off-by: Jelle Licht <jlicht@fsfe.org>
2026-05-03 20:58:57 +02:00
Jelle Licht 4f63b4ca95 gnu: node-lts: Update to 24.9.0.
* gnu/packages/node.scm (node-lts): Update to 24.9.0.

Change-Id: I0ed967dc028e88f927cf24e08bc51d6fc6933998
2026-05-03 20:58:57 +02:00
Jelle Licht 272236f8e7 gnu: node-lts: Update to 24.8.0.
* gnu/packages/node.scm (node-lts): Update to 24.8.0.

Change-Id: I1950d278b9105e72adad2401e4d1ef78c78da16f
2026-05-03 20:58:57 +02:00
Jelle Licht 364a27d498 gnu: node-lts: Update to 24.7.0.
* gnu/packages/node.scm (node-lts): Update to 24.7.0.

Change-Id: I1384b65244c16c67d2aad13931ac0af6e9ce2acf
2026-05-03 20:58:57 +02:00
Jelle Licht 4824c0bc06 gnu: node-lts: Update to 24.6.0.
* gnu/packages/node.scm (node-lts): Update to 24.6.0.

Change-Id: I2aca0c22cf13306d76ba274a78a4560b43be0de4
2026-05-03 20:58:57 +02:00
Jelle Licht cc6e802092 gnu: node-lts: Update to 24.5.0.
* gnu/packages/node.scm (node-lts): Update to 24.5.0.

Change-Id: I09ab8f4c9fc16c534519ff6b48c02adf2796f5a3
2026-05-03 20:58:57 +02:00
Jelle Licht af52370a8b gnu: node-lts: Update to 24.4.1.
* gnu/packages/node.scm (node-lts): Update to 24.4.1.

Change-Id: I13e3a6ce872ba3cd24050b4df72c7c626746b4fe
2026-05-03 20:58:57 +02:00
Jelle Licht 0d6302f6fd gnu: node-lts: Update to 24.4.0.
* gnu/packages/node.scm (node-lts): Update to 24.4.0.

Change-Id: Id2a929edfb2deb8149cbb97e93d2427fb946121a
2026-05-03 20:58:57 +02:00
Jelle Licht ffec500b92 gnu: node-lts: Update to 24.3.0.
* gnu/packages/node.scm (node-lts): Update to 24.3.0.

Change-Id: Iff0e02f30300fe55e71e4e4e0c15578f3095ba9e
2026-05-03 20:58:57 +02:00
Jelle Licht 26fd04e5db gnu: node-lts: Update to 24.2.0.
* gnu/packages/node.scm (node-lts): Update to 24.2.0.
[source]: Update snippet to delete bundled llhttp and zstd sources.
[arguments]<#:configure-flags>: Add "--shared-http-parser" and
"--shared-http-parser-libname=llhttp". Add "--shared-zstd".
<#:phases>: Delete 'replace-llhttp-sources phase.
[inputs]: Add (zstd-1.5.7 "lib").

Change-Id: I44c7accf85a2d88b34438fa506ff725739e995ce
2026-05-03 20:58:54 +02:00
Jelle Licht 94a01eb2b5 gnu: libuv-for-node-lts: Update to 1.51.0.
* gnu/packages/libevent.scm (libuv-for-node-lts): Update to 1.51.0.

Change-Id: I6a49d7337ff62f54004dde24803c43490e2daac4
2026-05-03 20:57:36 +02:00
Jelle Licht e2175057ac gnu: llhttp-bootstrap: Update to 9.3.0.
* gnu/packages/node.scm (llhttp-bootstrap): Update to 9.3.0.

Change-Id: Id18f84a582f12ef3ebb31f214bbb4da7e39018de
2026-05-03 20:57:36 +02:00
Jelle Licht 29529ae0e3 gnu: node-llparse-bootstrap: Update to 7.3.0.
* gnu/packages/node.scm (node-llparse-bootstrap): Update to 7.3.0.

Change-Id: I1a84ea216933bf4ce12c12782d57fef5b4891f4c
2026-05-03 20:57:36 +02:00
Jelle Licht e16ed2a669 gnu: node-llparse-frontend-bootstrap: Update to 3.0.0.
* gnu/packages/node.scm (node-llparse-frontend-bootstrap): Update to 3.0.0.

Change-Id: I11957e5238999f85db00b39548a590ccd6feed47
2026-05-03 20:57:35 +02:00
Jelle Licht 3324436ccb gnu: node-llparse-builder-bootstrap: Update to 1.5.2.
* gnu/packages/node.scm (node-llparse-builder-bootstrap): Update to 1.5.2.

Change-Id: I886eceb7f284fe1ba4c3ccb2c3bfea5e0fd9c9dd
2026-05-03 20:57:35 +02:00
Jelle Licht b48482522b gnu: node-lts: Update to 24.0.1.
* gnu/packages/node.scm (node-lts): Update to 24.0.1.
[arguments]<#:phases>: Add timing-sensitive test to 'delete-problematic-tests
phase.
[native-inputs]: Add gcc-14.

Change-Id: I28fc890e40070dc50bd40b89c1bd98ffabc7be5d
2026-05-03 20:57:35 +02:00
Jelle Licht 149ee4a51c gnu: libuv-for-node-lts: Update to 1.50.0.
* gnu/packages/libevent.scm (libuv-for-node-lts): Update to 1.50.0.

Change-Id: Ic51d832d30872d31b070ecfe1a51daff26dedeea
2026-05-03 20:57:23 +02:00
75 changed files with 4416 additions and 5591 deletions
+1 -15
View File
@@ -4922,17 +4922,6 @@ 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}
@@ -20716,9 +20705,6 @@ 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}.
@@ -49224,7 +49210,7 @@ Return the default GRUB theme used by the operating system if no
record.
It comes with a fancy background image displaying the Guix
logo.
logos.
@end deffn
For example, to override the default resolution, you may use something
+11 -11
View File
@@ -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),$(srcdir)/%D%/$(2).$(lang).texi)
lang_to_texinfo = $(foreach lang,$(1),%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_builddir)/pre-inst-env $(GUILE) --no-auto-compile \
$(top_srcdir)/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="$(srcdir)/%D%/guix.texi" \
--variable master="%D%/guix.texi" \
--variable po="$<" \
--variable pot=$(dummy_pot) \
$(srcdir)/po/doc/po4a.cfg
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="$(srcdir)/%D%/guix-cookbook.texi" \
--variable po="$<" \
-$(AM_V_PO4A)$(PO4A) --no-update \
--variable localized="$@.tmp" \
--variable master="%D%/guix-cookbook.texi" \
--variable po="$<" \
--variable pot=$(dummy_pot) \
$(srcdir)/po/doc/po4a.cfg
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="$(srcdir)/%D%/contributing.texi" \
--variable master="%D%/contributing.texi" \
--variable po="$<" \
--variable pot=$(dummy_pot) \
$(srcdir)/po/doc/po4a.cfg
po/doc/po4a.cfg
-$(AM_V_POXREF)LC_ALL=en_US.UTF-8 $(xref_command)
-mv "$@.tmp" "$@"
+5 -9
View File
@@ -1588,11 +1588,8 @@ 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/gtk4-demo-reproducible.patch \
%D%/packages/patches/gtk4-needs-udmabuf.patch \
%D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
@@ -1916,7 +1913,6 @@ 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 \
@@ -1929,8 +1925,6 @@ 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 \
@@ -2293,6 +2287,8 @@ 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 \
@@ -2623,9 +2619,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-gcc-14.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/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wmctrl-64-fix.patch \
%D%/packages/patches/wmfire-dont-inline-draw-fire.patch \
+4 -10
View File
@@ -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 #t))
(default #f))
(labels hetzner-configuration-labels ; list of strings
(default '()))
(location hetzner-configuration-location ; #f | string
@@ -395,7 +395,9 @@ Available locations:~%~%~a~%~%For more details, see: ~a")
(type ,root-fs-type))
%base-file-systems))))
(services
(cons* (service dhcpcd-service-type)
;; guix 1.4.0 does not have dhcpcd-service-type,
;; so we use dhcp-client-service-type here.
(cons* (service dhcp-client-service-type)
(service openssh-service-type
(openssh-configuration
(openssh openssh-sans-x)
@@ -590,14 +592,6 @@ 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
+1 -1
View File
@@ -12132,7 +12132,7 @@ It can be used to calculate the trajectory of satellites.")
gtksourceview-4
healpix-cxx
json-glib
lcms
lcms-next
;; XXX: It downloads script and data during start up, check if they
;; may be presented as packages with wrapped environment variables
+26 -119
View File
@@ -11,7 +11,7 @@
;;; Copyright © 20162023 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-2026 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2018, 2020, 2022-2025 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, 2026 Junker <dk@junkeria.club>
;;; Copyright © 2025 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,7 +127,6 @@
#: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)
@@ -195,45 +194,6 @@
#: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")
@@ -403,7 +363,7 @@ displays a histogram of the roundtrip time jitter.")
(define-public webrtc-audio-processing
(package
(name "webrtc-audio-processing")
(version "2.1")
(version "1.3")
(source
(origin
(method url-fetch)
@@ -411,14 +371,30 @@ displays a histogram of the roundtrip time jitter.")
(string-append "http://freedesktop.org/software/pulseaudio/"
name "/" name "-" version ".tar.gz"))
(sha256
(base32 "0lrjzhshwj1rkh4fxh7sq2dkkfimlyjs2ha7s3ribsh2dnc6ps1m"))
(patches (search-patches "webrtc-audio-processing-abseil-cpp.patch"
"webrtc-audio-processing-gcc-14.patch"))))
(base32 "0xfvq5lxg612vfzk3zk6896zcb4cgrrb7fq76w9h40magz0jymcm"))))
(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")
@@ -4489,33 +4465,6 @@ 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")
@@ -4920,42 +4869,6 @@ 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")
@@ -7352,7 +7265,6 @@ as is the case with audio plugins.")
(find-files "bin")))))))))
(inputs
(list alsa-lib
bash-minimal
ffmpeg
fluidsynth
file
@@ -7410,8 +7322,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 "294a80145e39c0755ab9073d90fd8b9524fbfc84")
(revision "1"))
(let ((commit "aa400535b31c67f4b6c1b28e6e20e4d4f82111a3")
(revision "0"))
(package
(inherit carla)
(name "carla")
@@ -7425,12 +7337,7 @@ default and preferred audio driver but also supports native drivers like ALSA.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "053yfwf9l9vqvq95c354by6nm8ym0wgkv3fr1434x5w9n1344z0z"))))
(inputs
(modify-inputs (package-inputs carla)
(replace "python-pyqt" python-pyqt-6)
(replace "qtbase" qtbase)
(replace "qtwayland" qtwayland))))))
(base32 "0cnj2sgr60f5h6wdfmihc214wf3n74686sipl3iyzmylqrcyhbjn")))))))
;; This source is a fork of vst3sdk with the documentation and VSTGUI
;; submodules removed and a dummy `meson.build` file that just lists all
+72
View File
@@ -7651,6 +7651,78 @@ 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")
+1 -4
View File
@@ -427,10 +427,7 @@ files and generates build instructions for the Ninja build system.")
version ".tar.gz"))
(sha256
(base32
"13a9pj7d2mxgv5gbd78di4pb4w722vjis0vmk38m1vdm95v2f9yd"))
(patches
(search-patches "meson-gir-fallback-path.patch"
"meson-keep-rpath-vicinity.patch"))))
"13a9pj7d2mxgv5gbd78di4pb4w722vjis0vmk38m1vdm95v2f9yd"))))
(build-system gnu-build-system)
(arguments
(list
+19
View File
@@ -1327,6 +1327,25 @@ 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")
+6 -6
View File
@@ -43,7 +43,6 @@
#: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)
@@ -1001,17 +1000,18 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
(define-public libudfread
(package
(name "libudfread")
(version "1.2.0")
(version "1.1.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://download.videolan.org/pub/videolan/libudfread/"
name "-" version ".tar.xz"))
name "-" version ".tar.bz2"))
(sha256
(base32
"03q5b1wm90vygx4rf4mzzrf0yhvhbvp72nyhv63pgz7v9jypqixv"))))
(build-system meson-build-system)
(native-inputs (list pkg-config))
"05c943ymw94nzjxf7v102916frqk7icgw4gb244wx23jn8cnz56m"))))
(build-system gnu-build-system)
(native-inputs
(list automake autoconf libtool 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
-107
View File
@@ -134,7 +134,6 @@
#: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)
@@ -1673,38 +1672,6 @@ 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")
@@ -3701,39 +3668,6 @@ 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")
@@ -4560,47 +4494,6 @@ 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")
+1 -1
View File
@@ -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.127\n")))
"/lib/libnode.so.137\n")))
(setenv "INCLUDE_DIR"
(string-append
(assoc-ref inputs "libnode")
+2 -3
View File
@@ -266,14 +266,14 @@ tmpfs/ramfs filesystems.")
(define-public parted
(package
(name "parted")
(version "3.7")
(version "3.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/parted/parted-"
version ".tar.xz"))
(sha256
(base32
"0yzga4cjq3yplqs47dl9714vwc3v3v8nxrj80rdc5wx4c5syb380"))))
"04p6b4rygrfd1jrskwrx3bn2icajg1mvbfhyc0c9l3ya7kixnhrv"))))
(build-system gnu-build-system)
(arguments
(list
@@ -296,7 +296,6 @@ tmpfs/ramfs filesystems.")
(,util-linux "lib")))
(native-inputs
(list gettext-minimal
pkg-config
;; For the tests.
e2fsprogs
+41 -48
View File
@@ -1005,7 +1005,7 @@ e.g. emacs-geiser-guile for Guile.")
(define-public emacs-gptel
(package
(name "emacs-gptel")
(version "0.9.9.5")
(version "0.9.9.4")
(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
"1bf7xynmrm859471nxc56sv028i039qnqhhmkhzkhf76mwac6cx8"))))
"1ffh2mwy9znjd0v9mh065lv122xg4nlnkbxwjfrsaqn1j1q2xc0c"))))
(build-system emacs-build-system)
(arguments
(list
@@ -1025,7 +1025,8 @@ e.g. emacs-geiser-guile for Guile.")
(lambda _
(copy-recursively
#$(this-package-native-input "emacs-gptel-test-files")
"test")))
"test")
(invoke "chmod" "--recursive" "u+w" "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_")))
@@ -1034,9 +1035,16 @@ 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-request.el"
("gptel-use-curl"
(search-input-file inputs "/bin/curl"))))))))
;; (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")))))))))
(inputs (list curl))
(propagated-inputs (list emacs-compat emacs-transient))
(native-inputs
@@ -1045,11 +1053,11 @@ e.g. emacs-geiser-guile for Guile.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/karthink/gptel-test")
(commit "c62e2f78d843f3454e068eb7ec6bb8d6001b0649")))
(commit "318c9dda9e6dbb3e61311cf4de23f124c4d2960a")))
(file-name "emacs-gptel-test-files")
(sha256
(base32
"1xixi1fa2iwixi6f0wdva2pyisxb8myljwbx2v5nxd3v0i3fbgq9")))))
"1368qrxxrw5zd2i0gx55r7yvi5xjma1khs8p5f2w76m7c6ms83yg")))))
(home-page "https://github.com/karthink/gptel")
(synopsis "GPTel is a simple ChatGPT client for Emacs")
(description
@@ -11896,22 +11904,22 @@ not hang at all.")
(license license:gpl3+)))
(define-public emacs-elastic-modes
(let ((commit "13c2b94a994717bb1517af0c19b10de33b29a94b")
(revision "3"))
(let ((commit "c577e8921a4d9bd77742729707152bc557fae3e2")
(revision "2"))
(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 "1fb7hy65ax288zqc2y1qjmkja1ksdslvsjbz3jzw7cjcb4yvfkpc"))))
(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"))))
(build-system emacs-build-system)
(arguments (list #:tests? #f)) ;no tests
(arguments (list #:tests? #false)) ;no tests
(propagated-inputs (list emacs-dash))
(home-page "https://github.com/jyp/elastic-modes")
(synopsis "Text and code alignment for variable-width fonts")
@@ -35192,36 +35200,21 @@ 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
(inherit emacs-dired-launch)
(name "emacs-dired-launch")
(version "20240809.1910")
(properties (list (cons 'superseded emacs-dired-launch)))))
(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+)))
(define-public emacs-dired-rsync
(package
+4 -18
View File
@@ -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, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2023 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -226,19 +226,15 @@ testing InfiniBand networks.")
(string-append "--with-rdmacm="
#$(this-package-input "rdma-core"))
#$@(if (this-package-input "rocr-runtime")
#~((string-append "--with-rocm="
#$(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))
(list numactl rdma-core rocr-runtime))
(synopsis "Optimized communication layer for message passing in HPC")
(description
"Unified Communication X (UCX) provides an optimized communication layer
@@ -254,13 +250,3 @@ 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)")))
+19 -15
View File
@@ -20,7 +20,6 @@
;;; 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.
;;;
@@ -1139,23 +1138,28 @@ transaction log.
(source #f)
(build-system trivial-build-system)
(arguments
(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)))))
`(#: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))))
(inputs
(list jfsutils/static))
`(("jfsutils" ,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))))
+5 -6
View File
@@ -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-2026 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2021-2025 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,15 +1382,14 @@ Font Format (WOFF).")
(hidden-package
(package
(name "fontconfig-minimal")
(version "2.17.1")
(version "2.16.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://gitlab.freedesktop.org/api/v4/projects/890"
"/packages/generic/fontconfig/" version "/fontconfig-"
version ".tar.xz"))
"https://www.freedesktop.org/software/"
"fontconfig/release/fontconfig-" version ".tar.xz"))
(sha256 (base32
"0hd5dw15q0i7518w1zqjcvyhvmlcf3ycv6df0ny1zz7zyj9swp4z"))
"086jdsdxmc9ryr0n0dmgs0vfnkhkxxw5hsgpr888pfn9biaxqcva"))
(patches (search-patches "fontconfig-cache-ignore-mtime.patch"))))
(build-system gnu-build-system)
;; In Requires or Requires.private of fontconfig.pc.
+4 -45
View File
@@ -44,7 +44,6 @@
;;; 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.
;;;
@@ -794,16 +793,16 @@ the freedesktop.org XDG Base Directory specification.")
(define-public elogind
(package
(name "elogind")
(version "257.14")
(version "255.17")
(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
"16cbkkia2wmcjwqxgzl714igi9sgpcl4sdvag388vlh941136bs9"))))
"0cb6p559281dzh24is91v6d4v4kz45yhyizibi4sfql9nign865h"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -3302,7 +3301,6 @@ 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
@@ -3477,45 +3475,6 @@ 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")
+34 -88
View File
@@ -227,7 +227,6 @@
#: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)
@@ -1235,11 +1234,11 @@ original rogue game found on 4.2BSD.")
(license license:bsd-3)))
(define-public sgt-puzzles
(let ((commit "06e37f1e334d85c7c779f79ef9e484ff2f708269")
(let ((commit "28032bd5a0d3dc409eb225b8bdb23fd0b18a28d7")
(revision "0"))
(package
(name "sgt-puzzles")
(version (git-version "20260308" revision commit))
(version (git-version "20251120" revision commit))
(source
(origin
(method git-fetch)
@@ -1248,7 +1247,7 @@ original rogue game found on 4.2BSD.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "141d57s1va2ng7nxjzdgmsqh5mdb0mpy3yiqaj4rplya8xlhm34h"))))
(base32 "0533fzzagmi7g7sw1fdgpzy6gjpif77gxf3avz1qnjsma5gq7f2l"))))
(build-system cmake-build-system)
(arguments
(list
@@ -5349,78 +5348,36 @@ also available.")
(sha256
(base32 "05aj09rm50xb6910zx6imarj8k728x9bpvpa7ydwgb4sj1nypil8"))
(modules '((guix build utils)))
(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")))))
(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")))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ;There are no tests.
#:configure-flags
#~(list "-DSRB2_CONFIG_ENABLE_DISCORDRPC=OFF"
"-DCMAKE_C_FLAGS_RELWITHDEBINFO='-O3 -g -DNDEBUG'"
#~(list "-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 (string-append #$output "/bin/ringracers")
(wrap-program "bin/ringracers"
`("RINGRACERSWADDIR" =
(,(assoc-ref inputs "ring-racers-data"))))))
(add-after 'wrap-program 'create-desktop-entry
@@ -5436,37 +5393,26 @@ also available.")
#:exec (string-append #$output "/bin/ringracers")
#:startup-notify #f
#:categories '("Application" "Game"))))))))
(native-inputs
(list pkg-config
(package-source stb)))
(inputs (list bash-minimal
curl
fmt
glm
(native-inputs (list pkg-config))
(inputs (list glm
libogg
libpng
libvorbis
libvpx
libxmp
libyuv
nlohmann-json
opus
ring-racers-data
sdl2
stb-rect-pack
tcbrindle-span
vulkan-headers
vulkan-memory-allocator
vulkan-volk
zlib))
(home-page "https://www.kartkrew.org/")
zlib
curl))
(home-page "https://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
@@ -5797,14 +5743,14 @@ world}, @uref{http://evolonline.org, Evol Online} and
(define-public openttd-engine
(package
(name "openttd-engine")
(version "15.3")
(version "15.2")
(source
(origin (method url-fetch)
(uri (string-append "https://cdn.openttd.org/openttd-releases/"
version "/openttd-" version "-source.tar.xz"))
(sha256
(base32
"1rrvjxsr2dp9zr6b35ifiw41c0dwqqcaq90r0x18misrgpm1x8jy"))))
"0xpzschcf562giqh3p8jj9gbi8chqrikdwgqqipabyn0nwbvd6nj"))))
(build-system cmake-build-system)
(inputs
(list allegro
@@ -6038,7 +5984,7 @@ Transport Tycoon Deluxe.")
(package
(inherit openttd)
(name "openttd-jgrpp")
(version "0.72.0")
(version "0.71.2")
(source
(origin
(method git-fetch)
@@ -6047,7 +5993,7 @@ Transport Tycoon Deluxe.")
(commit (string-append "jgrpp-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0xbnnx03y8vhbgi6s7hsxhiqhsy6rhj7fypq6dfqh0z74m5bldkf"))))
(base32 "1gb5gickmf1d1wkzqny5ryapvw32a2g94f77iq0102xhyyw8g8s0"))))
(inputs (modify-inputs inputs
(append zstd harfbuzz)))
(arguments
@@ -10225,7 +10171,7 @@ their own levels.")
(define-public libmanette
(package
(name "libmanette")
(version "0.2.13")
(version "0.2.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libmanette/"
@@ -10233,7 +10179,7 @@ their own levels.")
"libmanette-" version ".tar.xz"))
(sha256
(base32
"1bnqfxd9b5vff9256f8vxd404fkvbvc5gxva6qcjj2fyw3yw4z18"))))
"1n513s8ksjbrwqq7k46f3550avx11gly3a85shsdrwc0f4k4kcs8"))))
(build-system meson-build-system)
(native-inputs
(list `(,glib "bin") ; for glib-compile-resources
+22 -11
View File
@@ -50,15 +50,15 @@
(define-public lcms
(package
(name "lcms")
(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"))))
(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"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
@@ -73,8 +73,19 @@ Consortium standard (ICC), approved as ISO 15076-1.")
(home-page "https://www.littlecms.com/")
(properties '((cpe-name . "little_cms_color_engine")))))
;; Can be removed after 2027/05/01.
(define-deprecated-package lcms-next lcms)
(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"))))))
(define-public libpaper
(package
+2 -2
View File
@@ -994,7 +994,7 @@ useful for C++.")
(define-public python-pygobject
(package
(name "python-pygobject")
(version "3.54.5")
(version "3.54.3")
(source
(origin
(method url-fetch)
@@ -1003,7 +1003,7 @@ useful for C++.")
"/pygobject-" version ".tar.gz"))
(sha256
(base32
"11dm5yi80v143dn21bayqxb53w67hk1lishmrw35c97m91inyrdn"))))
"1rxsj85xl73a14vz7s30sy8lx9sswd2j2hgj3i4mcz8g989hknm8"))))
(build-system meson-build-system)
;; The tests require mutter, which would introduce a circular dependency.
(arguments (list #:tests? #f))
+4 -4
View File
@@ -682,7 +682,7 @@ and a high score table.")
(define-public komikku
(package
(name "komikku")
(version "50.3.0")
(version "50.1.0")
(source
(origin
(method git-fetch)
@@ -692,7 +692,7 @@ and a high score table.")
(file-name (git-file-name name version))
(sha256
(base32
"0hm1infvdsms193g2yp7qw7lrsxjsx5zziib8hgch34y6dbhfhf1"))))
"0q858zvpqy32nb2lxdfy1k6fgal46kp634534fg983192fyk1pqp"))))
(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.3.0")
(version "50.1.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
"0hm1infvdsms193g2yp7qw7lrsxjsx5zziib8hgch34y6dbhfhf1"))))
"0q858zvpqy32nb2lxdfy1k6fgal46kp634534fg983192fyk1pqp"))))
(build-system copy-build-system)
(arguments
(list
+164 -227
View File
@@ -215,7 +215,6 @@
#: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)
@@ -2085,7 +2084,7 @@ offline sources, providing a centralized place for managing your contacts.")
(define-public gnome-desktop
(package
(name "gnome-desktop")
(version "44.5")
(version "44.4")
(source
(origin
(method url-fetch)
@@ -2094,16 +2093,11 @@ offline sources, providing a centralized place for managing your contacts.")
name "-" version ".tar.xz"))
(sha256
(base32
"0br33ma7l45nr8yp9bcjqgy9zrj57yy2fnkc0b0yh0rsdrd9kq10"))))
"1129nh32ga5vv869fwby3n2lvj2chd9wys8j1jdnisr8lg3bk30x"))))
(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"
@@ -2693,7 +2687,7 @@ and single page document formats like PDF and DejaVu.")
(define-public gsettings-desktop-schemas
(package
(name "gsettings-desktop-schemas")
(version "49.1")
(version "48.0")
(source
(origin
(method url-fetch)
@@ -2702,7 +2696,7 @@ and single page document formats like PDF and DejaVu.")
name "-" version ".tar.xz"))
(sha256
(base32
"0qqfxml3kqg87ly5w8rhqalin6qv20jcn2gqkdmhga75sn1pyykp"))))
"1lqv5mn7r1c8nxm6dfxgvk56r2sqfgafkj5jm1jzh65z2dc1b3z6"))))
(build-system meson-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -2880,7 +2874,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
(define-public adwaita-icon-theme
(package
(name "adwaita-icon-theme")
(version "49.0")
(version "48.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -2888,7 +2882,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
name "-" version ".tar.xz"))
(sha256
(base32
"0p3mj6bl8wp1cri2qdszqrqqs47irh7qvajr5yaaly5js5hn85k5"))))
"04kfi8qpvghhmj83p03k509pnsp8ywlrii1qm0xv056dxf39pznb"))))
(build-system meson-build-system)
(arguments
(list #:phases
@@ -3227,7 +3221,6 @@ 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
@@ -3235,13 +3228,17 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
(lambda _
(substitute* "meson_post_install.py"
(("gtk-update-icon-cache") "true"))))
(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', .*") ""))))
#$@(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-before 'check 'pre-check
(lambda _
(setenv "HOME" "/tmp")
@@ -3497,7 +3494,7 @@ XML/CSS rendering engine.")
(define-public libgsf
(package
(name "libgsf")
(version "1.14.55")
(version "1.14.54")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -3505,7 +3502,7 @@ XML/CSS rendering engine.")
name "-" version ".tar.xz"))
(sha256
(base32
"0c91l0l3camxpanpgp634nd68vz3v0jbk9bxs5dfmlsvl6xhmmkl"))))
"08vny43clswk95djch50z17hdnns2p8qc93if6qcy4r598k6k26i"))))
(build-system glib-or-gtk-build-system)
(outputs '("out" "bin" "doc"))
(arguments
@@ -3553,7 +3550,7 @@ for dealing with different structured file formats.")
(define-public librsvg
(package
(name "librsvg")
(version "2.61.4")
(version "2.58.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/librsvg/"
@@ -3561,31 +3558,45 @@ for dealing with different structured file formats.")
"librsvg-" version ".tar.xz"))
(sha256
(base32
"036afbhd2h4brbd491kmgig0ib1df3s7j9bx8349b3zjs4lfm87w"))))
(build-system meson-build-system)
"0ym2yg94sc7ralh1kwqqrhz3wcc51079z90mbx0qrls7wfh36hi2"))))
(build-system gnu-build-system)
(outputs '("out" "doc" "debug"))
(arguments
(list
#:configure-flags
#~(list #$@(if (%current-target-system)
#~( ;; g-ir-scanner can't import its modules
#~(list "--disable-static"
#$@(if (%current-target-system)
#~(;; g-ir-scanner can't import its modules
;; and vala currently can't be cross-compiled.
"-Dintrospection=false"
"-Dvala=false"
"--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))
;; This is needed when cross-compiling for some
;; architectures as autoconf and rust disagree about
;; the target triplet.
(string-append "-Dtriplet="
(string-append "RUST_TARGET="
#$(platform-rust-target
(lookup-platform-by-target
(%current-target-system)))))
#~())
"-Dpixbuf-loader=enabled") ;disabled since 2.61.2
#:imported-modules (append %cargo-build-system-modules
%meson-build-system-modules)
#~("--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
#:modules
'(((guix build cargo-build-system) #:prefix cargo:)
(guix build meson-build-system)
(guix build gnu-build-system)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
@@ -3602,19 +3613,12 @@ for dealing with different structured file formats.")
(lambda _
;; Something about the build environment resists building
;; successfully with the '--locked' flag.
(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
(substitute* '("Makefile.am" "Makefile.in")
(("--locked") ""))))
(add-after 'unpack 'loosen-test-boundaries
(lambda _
(setenv "HOME" "/tmp") ;placate fontconfig errors
;; Increase reftest tolerance a bit to account for different
;; libraries like pango, etc.
;; harfbuzz, pango, etc.
(setenv "RSVG_TEST_TOLERANCE" "20")
;; These tests fail even after loosening the tolerance.
(substitute* "rsvg/tests/reference.rs"
@@ -3622,16 +3626,19 @@ 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/meson.build"
(substitute* "gdk-pixbuf-loader/Makefile.in"
;; By default the gdk-pixbuf loader is installed under
;; gdk-pixbuf's prefix. Work around that.
(("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)))))
(("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")))))
(add-after 'unpack 'prepare-cargo-build-system
(lambda args
(for-each
@@ -3643,30 +3650,23 @@ for dealing with different structured file formats.")
'(unpack-rust-crates
configure
check-for-pregenerated-files
patch-cargo-checksums))))
(add-after 'install 'sanitize-pkg-config-files
(lambda _
(substitute* (find-files #$output "\\.pc$")
(("^Requires.private:.*") "")))))))
patch-cargo-checksums)))))))
(native-inputs
(append
(list gdk-pixbuf
gi-docgen
`(,glib "bin")
gobject-introspection
pkg-config
python
python-docutils ;for rst2man
rust
rust-cargo-c
`(,rust "cargo")
vala)
(or (and=> (%current-target-system)
(compose list make-rust-sysroot))
'())))
(inputs
(cons* dav1d
freetype
(cons* freetype
gobject-introspection
harfbuzz
libxml2
pango
(cargo-inputs 'librsvg)))
@@ -4667,7 +4667,7 @@ and RDP protocols.")
(define-public dconf
(package
(name "dconf")
(version "0.49.0")
(version "0.40.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -4676,7 +4676,7 @@ and RDP protocols.")
name "-" version ".tar.xz"))
(sha256
(base32
"0dkc7nbd0byibf6i5gm9xqclr7i94n1p1qbqcnwxnml1lm4px90n"))))
"0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
(build-system meson-build-system)
(arguments
(list
@@ -4685,8 +4685,7 @@ 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"
"--wrap-mode=nodownload") ;for gvdb
"-Dgtk_doc=true")
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'increase-test-timeout
(lambda _
@@ -5212,26 +5211,17 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
(define-public gi-docgen
(package
(name "gi-docgen")
(version "2026.1")
(version "2025.4")
(source (origin
(method url-fetch)
(uri (pypi-uri "gi_docgen" version))
(sha256
(base32
"1df7yb6d5zsr4wks4p2lf40a2v4v2dasx3pv2v3d2ma25d7krb35"))))
"1i9dlwirizc0n5sw9w60yscaj14x9x06fdq64kwxqkia13d6dq3z"))))
(build-system pyproject-build-system)
(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))
(native-inputs
(list python-pytest-bootstrap
python-setuptools))
(propagated-inputs (list python-jinja2
python-markdown
python-markupsafe
@@ -6988,10 +6978,10 @@ side panel;
(license license:gpl2+)))
;; Also update (@ (gnu packages rust-sources) rust-glycin-3) when updating this.
(define-public libglycin
(define-public glycin-loaders
(package
(name "libglycin")
(version "2.1.1")
(name "glycin-loaders")
(version "2.0.7")
(source
(origin
(method git-fetch)
@@ -7001,16 +6991,12 @@ side panel;
(file-name (git-file-name name version))
(sha256
(base32
"1mrv733xhbxydww4szskv7jc0hif908aavh8h4kjcxp0zgy13blf"))
"0v6szxk5h8a4b28xb0lrhqrq6b4vka2ha4qgpdp35f6c49v9pdyp"))
(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:)
@@ -7096,15 +7082,18 @@ side panel;
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/sophie-h/test-images.git")
(commit "b3a107267cc4f1d136b7007938556250ce06fc4f")))
(commit "b148bcf70847d6f126a8e83e27e1c59d2e474adf")))
(file-name "glycin-test-images")
(sha256
(base32
"1jvra75kjqkndxzzpmi5lb8d3q4fi3yc4hha0r1g9brdsnbhsp6f")))))
"16s3lss4cbny5d0ixhc0vaxxcvq2n7rcnbklrxdm84p2m21192vm")))))
(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 libseccomp))
(propagated-inputs (list fontconfig glib gtk lcms-next 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
@@ -7112,22 +7101,6 @@ 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")
@@ -7198,7 +7171,6 @@ runtime image loader executables that are used inside the sandbox.")
gtk
lcms
libadwaita
libglycin
libgweather
libseccomp
(cargo-inputs 'loupe)))
@@ -7239,14 +7211,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.4")
(version "0.3.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/msgraph/"
(version-major+minor version) "/"
"msgraph-" version ".tar.xz"))
(sha256
(base32 "1iyn0jdqgw238cxaxvji0v9ds0xwfzffz65xpgzywcibn3kfqc87"))))
(base32 "04j00lf0aqiccgbg95jh9sxmx48bgsrg110ilap9014r58py3mrp"))))
(build-system meson-build-system)
(native-inputs (list gi-docgen gobject-introspection pkg-config uhttpmock))
(inputs (list gnome-online-accounts json-glib libsoup librest))
@@ -7259,7 +7231,7 @@ MS Graph APIs.")
(define-public gvfs
(package
(name "gvfs")
(version "1.58.1")
(version "1.58.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gvfs/"
@@ -7267,7 +7239,7 @@ MS Graph APIs.")
"gvfs-" version ".tar.xz"))
(sha256
(base32
"0fywnla2xwyi44jfipyixcczxh5h34c4lzfzf9lsgzxip9mpslzw"))))
"0bqq9z1y31yk3c8wz8i8fql7dr8cfxsd5a49xc4v7z6hfdlf76yx"))))
(build-system meson-build-system)
(arguments
(list
@@ -7617,7 +7589,7 @@ environments.")
(define-public yelp-xsl
(package
(name "yelp-xsl")
(version "49.0")
(version "42.4")
(source
(origin
(method url-fetch)
@@ -7626,7 +7598,7 @@ environments.")
(version-major version) "/"
name "-" version ".tar.xz"))
(sha256
(base32 "1v7va1xa80pyj0dyfraalvsag4m0lza4v87r2i7phyz6iy7kmm2r"))))
(base32 "1lfpmdc4y46a528q5filn6xs8add921avrnwl2vpysp6n9zb1szx"))))
(build-system meson-build-system)
(native-inputs
(list mallard-ducktype
@@ -7654,7 +7626,7 @@ jQuery.Syntax JavaScript libraries.")
(define-public yelp
(package
(name "yelp")
(version "49.0")
(version "42.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -7662,7 +7634,7 @@ jQuery.Syntax JavaScript libraries.")
name "-" version ".tar.xz"))
(sha256
(base32
"0mrlqsbr2wb0k2p3dmywzdb0c0rzcx1dv6qlimxzx9ab3w5lwqg6"))))
"18w95bfhq3d364af1qqb63rgaixkrl7xk0x079x6m7lscwic9k16"))))
(build-system meson-build-system)
(arguments
(list #:phases
@@ -7687,9 +7659,7 @@ jQuery.Syntax JavaScript libraries.")
`("PATH" ":" prefix
(,(dirname (search-input-file inputs "bin/groff"))))))))))
(native-inputs
(list desktop-file-utils
`(,glib "bin") ;for glib-genmarshal, etc.
`(,gtk "bin")
(list `(,glib "bin") ; for glib-genmarshal, etc.
intltool
itstool
pkg-config))
@@ -7698,14 +7668,13 @@ 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
webkitgtk-for-gtk3
yelp-xsl))
(home-page "https://wiki.gnome.org/Apps/Yelp")
(synopsis "GNOME help browser")
@@ -7994,88 +7963,57 @@ configuration program to choose applications starting on login.")
(define-public gjs
(package
(name "gjs")
(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")))))
(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"))))))
(build-system meson-build-system)
(arguments
(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:.*") "")))))))
'(#: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"))))))))))
(native-inputs
(list `(,glib "bin") ;for glib-compile-resources
pkg-config
@@ -8083,16 +8021,16 @@ configuration program to choose applications starting on login.")
;; For testing
dbus
dconf ;required to properly store settings
gtk+
sysprof
util-linux
xvfb-run))
(inputs (list mozjs readline))
xorg-server-for-tests))
(propagated-inputs
;; These are all in the Requires field of gjs-1.0.pc.
(list glib gobject-introspection))
;; 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))
(synopsis "Javascript bindings for GNOME")
(home-page "https://gitlab.gnome.org/GNOME/gjs")
(home-page "https://wiki.gnome.org/Gjs")
(description
"Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
javascript engine and the GObject introspection framework.")
@@ -8414,7 +8352,7 @@ window manager.")
(define-public gnome-online-accounts
(package
(name "gnome-online-accounts")
(version "3.56.4")
(version "3.54.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -8422,7 +8360,7 @@ window manager.")
name "-" version ".tar.xz"))
(sha256
(base32
"1cv1l757g4iac39l0ccwvqhibyjdjhy9q8p86fp8mqs5mfnix0ra"))))
"10bwrc50aqaf7j3qabv7zpfnf2dmf9mwbmnjpgqfqsmny2ba80pb"))))
(build-system meson-build-system)
(arguments
(list
@@ -9943,7 +9881,7 @@ easy, safe, and automatic.")
(define-public tinysparql
(package
(name "tinysparql")
(version "3.10.1")
(version "3.9.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/tinysparql/"
@@ -9951,7 +9889,7 @@ easy, safe, and automatic.")
"tinysparql-" version ".tar.xz"))
(sha256
(base32
"0r824dz8szfwd2z95nk8ffkvwq0ayva0wa6n1railrxnkmw3wzss"))))
"13mddmszrk4ihfwi5n67v5ykf01fmld4pkmw4881hphk4j807khl"))))
(build-system meson-build-system)
(arguments
(list
@@ -10234,7 +10172,6 @@ through portals.")
gst-plugins-base
json-glib
libadwaita
libglycin
libportal
libseccomp
libselinux
@@ -10306,7 +10243,7 @@ is complete it provides a graphical representation of each selected folder.")
(define-public gnome-backgrounds
(package
(name "gnome-backgrounds")
(version "49.0")
(version "48.2.1")
(source
(origin
(method url-fetch)
@@ -10315,7 +10252,7 @@ is complete it provides a graphical representation of each selected folder.")
name "-" version ".tar.xz"))
(sha256
(base32
"1dgl8jxczx2cwszg07bhrjpcg2rywfcak2d5md20x84bwl6jdzh1"))))
"1n8ypmdgpp2hj7jsbpicha0d2pfnqbwmavcjfzlmr3qd5rxmn73a"))))
(build-system meson-build-system)
(native-inputs (list gettext-minimal))
(home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
@@ -10380,7 +10317,7 @@ beautifying border effects.")
(define-public dconf-editor
(package
(name "dconf-editor")
(version "49.0")
(version "45.0.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -10388,7 +10325,7 @@ beautifying border effects.")
name "-" version ".tar.xz"))
(sha256
(base32
"16fkppclv7xzglfafqg8b9nd5cjqlfwlyci800gg7psivzxcra4h"))))
"1pa1k510qx4v0ywhqwpj3qfjyz8qiiis4565ghhydnpfg1v2k00i"))))
(build-system meson-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
@@ -13446,7 +13383,7 @@ GObject introspection bindings.")
(define-public sysprof
(package
(name "sysprof")
(version "49.0")
(version "48.1")
(source
(origin
(method url-fetch)
@@ -13454,7 +13391,7 @@ GObject introspection bindings.")
(version-major version) "/"
"sysprof-" version ".tar.xz"))
(sha256
(base32 "0y18535lymqv684n8aa2v601d61v6aj8f84690cq8p3q6yb1617z"))))
(base32 "1qmv76877vkw2ajfnc4cr8gw5qch5m32qm1fybig3vgizvymgwal"))))
(build-system meson-build-system)
(arguments
(list
@@ -13751,7 +13688,7 @@ Document Analysis and Recognition program.")
(define-public libadwaita
(package
(name "libadwaita")
(version "1.8.4")
(version "1.8.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libadwaita/"
@@ -13759,7 +13696,7 @@ Document Analysis and Recognition program.")
"libadwaita-" version ".tar.xz"))
(sha256
(base32
"074j59bz5zgnb7grw3clpwyxickw9268k6fj0980bw8gdxxvfayh"))))
"1cdda2sk1w5jmfkism8v6ihl03gs2s72klx7j230wx4i847nx6jq"))))
(build-system meson-build-system)
(arguments
`(#:phases
+349 -349
View File
@@ -106,6 +106,355 @@
#: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
@@ -900,355 +1249,6 @@ 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"))
+20 -32
View File
@@ -578,10 +578,7 @@ 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'.*") "")
;; This one is flaky (see:
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/work_items/5016>).
((".*'elements/inputselector.c'.*") ""))
((".*'elements/appsrc.c'.*") ""))
;; Some other tests fail on other architectures.
#$@(cond
((target-x86-32?)
@@ -769,8 +766,7 @@ model to base your own plug-in on, here it is.")
(build-system meson-build-system)
(arguments
(list
#:configure-flags #~(list "-Dgpl=enabled"
"-Dsctp-internal-usrsctp=disabled"
#:configure-flags #~(list "-Dsctp-internal-usrsctp=disabled"
;; TODO: Figure out why audiovisualizer test
;; fails on riscv64-linux.
#$@(if (target-riscv64?)
@@ -780,15 +776,6 @@ 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)
@@ -802,18 +789,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/792>
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3000>
((".*'elements/netsim\\.c'.*") "")
;; TODO: Figure out why this test fails on riscv64-linux.
@@ -822,19 +809,30 @@ model to base your own plug-in on, here it is.")
"'elements/viewfinderbin.c'], true, ],"))
'())
;; This test is flaky.
;; This test is flaky on at least some architectures.
;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1244
(("'elements/camerabin\\.c'\\].*],")
"'elements/camerabin.c'], true, ],")
#$@(if (member (%current-system)
'("aarch64-linux" "riscv64-linux"))
`((("'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.*") "")))))
((".*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\".*")
"")))))
(add-before 'check 'pre-check
(lambda _
;; Tests require a running X server.
@@ -1164,19 +1162,9 @@ 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.
+38 -44
View File
@@ -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-2026 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2020-2025 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.57.1")
(version "1.56.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -396,7 +396,7 @@ applications.")
(file-name (git-file-name name version))
(sha256
(base32
"0dfvlag7jhf4fzraxwhx4s016h2z7igq3knza9vfklkss8igs00a"))))
"0jnmydds9dmdah4fjj5rr5gmf1imxlxjc0w98if642n98vmsdf67"))))
(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.5")
(version "2.44.4")
(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
"0s5b010jlinmki5iidbj2yip8n2sxc6xc0qmcvpc104v2c4kxfb9"))
"05xxpl3sd37lsp5qqy01m0w9c14dqfi84x9rawsffyj2y71sm8ck"))
(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.60.0")
(version "2.52.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -789,7 +789,7 @@ images.")
name "-" version ".tar.xz"))
(sha256
(base32
"16fb2hv12k2vzh462gbd4qf8ipvnb2ijrc5d7w56dzfqjwd0rrc0"))))
"1azmbzik0gl2s03c9lq3dff3h1iql1zvlwn28yhizl68421zrhqa"))))
(build-system meson-build-system)
(arguments
(list
@@ -987,7 +987,7 @@ application suites.")
(package
(inherit gtk+-2)
(name "gtk+")
(version "3.24.52")
(version "3.24.51")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -996,11 +996,10 @@ application suites.")
(file-name (git-file-name name version))
(sha256
(base32
"197w1mb5vqm5d07sgdqkg54can7f1p4yjh42zx0y8z6m9p43shck"))
"07vw0rani9d65px36fzzj7sprv5r48shyjdgzipkihzqaldd98yh"))
(patches (search-patches
"gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"
"gtk3-treeview-test-fix.patch"))))
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
;; There is no "doc" output, because adding gtk-doc here would introduce a
;; dependency cycle with itself.
(outputs '("out" "bin"))
@@ -1076,20 +1075,22 @@ application suites.")
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests
(lambda _
(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',.*") "")))
#~())))
;; 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',.*") "")))
#~())))
(add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
(assoc-ref glib-or-gtk:%standard-phases
'generate-gdk-pixbuf-loaders-cache-file))
@@ -1113,13 +1114,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.22.1")
(version "4.20.3")
(source
(origin
(method url-fetch)
@@ -1127,11 +1128,9 @@ application suites.")
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32 "1z2mkmazc2d51jbg3qwwdycycqiwswm88nhw6bxscz8j86f5lyyd"))
(base32 "0ly1gqc6ybxv5f2a9hvjp5k6l9mfzy2yv8iy2xqnr9l8628g4wr8"))
(patches
(search-patches "gtk4-demo-reproducible.patch"
"gtk4-needs-udmabuf.patch"
"gtk4-respect-GUIX_GTK4_PATH.patch"))
(search-patches "gtk4-respect-GUIX_GTK4_PATH.patch"))
(modules '((guix build utils)))))
(build-system meson-build-system)
(outputs '("out" "bin" "doc"))
@@ -1199,9 +1198,6 @@ 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',.*") ""))
@@ -1258,10 +1254,8 @@ application suites.")
(setenv "XDG_CACHE_HOME" (getcwd))))
(add-before 'check 'pre-check
(lambda* (#:key inputs #:allow-other-keys)
;; 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 &")
;; Tests require a running X server.
(system "Xvfb :1 +extension GLX &")
(setenv "DISPLAY" ":1")
;; Tests write to $HOME.
(setenv "HOME" (getcwd))
@@ -1304,7 +1298,6 @@ 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
@@ -1328,6 +1321,7 @@ 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
@@ -1371,8 +1365,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")
@@ -2211,7 +2205,7 @@ information.")
(define-public gtk-doc
(package
(name "gtk-doc")
(version "1.35.1")
(version "1.34.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -2219,7 +2213,7 @@ information.")
name "-" version ".tar.xz"))
(sha256
(base32
"1qi5bgqca1chdcfw7v4h3sw8jg661nmp77d7x658mn6nxlj9y731"))
"0746lwxgybc5ss3hzdd0crjjghk0ck0x9jbmz73iig405arp42xj"))
(patches
(search-patches "gtk-doc-respect-xml-catalog.patch"
"gtk-doc-mkhtml-test-fix.patch"))))
+3 -3
View File
@@ -89,14 +89,14 @@
(define-public ibus-minimal
(package
(name "ibus")
(version "1.5.34-rc2")
(version "1.5.32")
(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 "1x05dwhi79s1mqgs34srdr2d5fvkyvihqvcnw91630xyf4r76b1h"))))
(sha256 (base32 "1rn2xpzi6x57n01rjin4a2h8yy1wdmvadgnglw0p6bdnc31q17a6"))))
(build-system glib-or-gtk-build-system)
(outputs '("out" "doc"))
(arguments
@@ -204,7 +204,7 @@
wayland
xmodmap))
(native-inputs
(list autoconf-2.72
(list autoconf
automake
docbook-xml-4.1.2
`(,glib "bin") ;for glib-genmarshal
+29 -75
View File
@@ -71,12 +71,11 @@
#: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)
@@ -97,11 +96,10 @@
#: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 pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
@@ -117,6 +115,7 @@
#: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)
@@ -184,81 +183,36 @@ convert images in more than 100 different formats.")
(define-public gradia
(package
(name "gradia")
(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"))))
(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"))))
(build-system meson-build-system)
(arguments
(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))
(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))
(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, @acronym{OCR, optical character recognition} and various export formats.")
cropping, and various export formats.")
(license license:gpl3+)))
(define-public iqa
@@ -2854,7 +2808,7 @@ Format) file format decoder and encoder.")
(define-public libjxl
(package
(name "libjxl")
(version "0.11.2")
(version "0.11.1")
(outputs (list "out" "pixbuf-loader"))
(source
(origin
@@ -2865,7 +2819,7 @@ Format) file format decoder and encoder.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "1c7d0mlxmmjby00hzgwqfyr6nb6lqcgcjsqcdmg2l10rmxiw33rg"))
(base32 "1wfxzrhj8a19z6x47ib1qbmgyg56jsxjs955xcvqhdkrx8l2271r"))
(modules '((guix build utils)))
(snippet
;; Delete the bundles that will not be used.
+8 -21
View File
@@ -1088,9 +1088,9 @@ wrappers.")
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/tc39/test262")
(commit "a6f387de323eb9ae56448bdb71c5d315df631ce4")))
(commit "a5e69a1534de88d1eb29b76657d84c8541b72df7")))
(file-name "test262")
(sha256 (base32 "09avg4f75rzbmh3hcybdvjij7hbl2m79x6xp1hgl6h8ihfbn33l0"))
(sha256 (base32 "078a7nim0n9x36q7q8yvjwhk4ig29p25b03rr4l7g2b545cky66l"))
(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.14.0")
(version "0.11.0")
(source
(origin
(method git-fetch)
@@ -1109,7 +1109,11 @@ wrappers.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "05k8niswh0ly5sx0129jdhiinqs84s86b7sv29ff68v3546dl04i"))))
(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"))))
(arguments
(list
#:configure-flags
@@ -1142,23 +1146,6 @@ 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?
+2 -2
View File
@@ -164,14 +164,14 @@ resolution, asynchronous file system operations, and threading primitives.")
(package
(inherit libuv)
(name "libuv")
(version "1.49.2")
(version "1.51.0")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.libuv.org/dist/v" version
"/libuv-v" version ".tar.gz"))
(sha256
(base32
"1a75p8wp4l43y2ffj1szs1ssm6nzjad7k51bqi2r04ngs9mp044c"))))
"1szqivvs7izbhw1a3nd1ipbk012yvqqkjg0sjmqxw1hi1fwmf1az"))))
(properties '((hidden? . #t)))))
(define-public libuv-for-r-httpuv
+22 -21
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2021, 2021-2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2021, 2021-2025 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,6 +10460,7 @@ 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))))
@@ -10503,15 +10504,6 @@ 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)
@@ -11535,7 +11527,7 @@ of Linux application development.")
(define-public wireplumber
(package
(name "wireplumber")
(version "0.5.14")
(version "0.5.12")
(source
(origin
(method git-fetch)
@@ -11545,7 +11537,7 @@ of Linux application development.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0rr2vlbwjjhgsk6lk2iwaww21gks2v63f0cs01rh2mdi8jpfz7h2"))))
(base32 "1dljz669ywy1lvvn0jh14ymynmbii45q5vay71zajpcg31249dyw"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dsystemd=disabled"
@@ -12268,7 +12260,7 @@ that avoids the usage of older system-wide @file{/sys} interface.")
(define-public libtracefs
(package
(name "libtracefs")
(version "1.8.3")
(version "1.7.0")
(source
(origin
(method git-fetch)
@@ -12277,16 +12269,25 @@ 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 "1bc4mwf488nlja64zawjznvb6640vchjb25xa02v53x6qfb1mpmq"))))
(build-system meson-build-system)
(base32 "0v896n3q0df0nxx5drbwyaqhrqiyxl06rvrdw3gp2r37awa9g1zb"))
(modules '((guix build utils)))
(snippet
#~(begin
(substitute* (list "Makefile" "scripts/utils.mk")
(("/bin/(pwd)" _ command) command))))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags
#~(list "-Ddoc=false")))
(native-inputs
(list bison
flex
pkg-config))
#: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))
(inputs (list libtraceevent))
(home-page "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/")
(synopsis "Linux kernel trace file system library")
+33 -16
View File
@@ -229,25 +229,42 @@ provides some unique features such as CSV log format and wide string support.")
(define-public multitail
(package
(name "multitail")
(version "7.1.5")
(version "6.5.2")
(source
(origin
(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)
(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)
(arguments
(list
#:tests? #f ;no test suite
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-curses-headers
(lambda _
(substitute* "mt.h"
(("ncursesw/") "")))))))
`(#: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)
(inputs (list ncurses))
(home-page "https://vanheusden.com/multitail/")
(synopsis "Monitor multiple log files")
+2 -2
View File
@@ -1129,7 +1129,7 @@ Grammars (PEGs).")
(define (make-lua-luv name lua)
(package
(name name)
(version "1.44.2-0")
(version "1.43.0-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
"0jdvsznzha290gnzd66vscsdacd5dapq0scwy4zj64d9wnsv39p7"))))
"1yzi4bm845vl84wyv2qw4z1n1v285lgwm681swmp84brfy2s7czp"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f ; there are none
+3 -5
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2018, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014-2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2025 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 arguments
(substitute-keyword-arguments (package-arguments openmpi-5)
((#:configure-flags flags '())
#~(cons* (string-append "--with-rocm="
#$(this-package-input "rocm-hip-runtime"))
@@ -440,9 +440,7 @@ 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)
(replace "ucx" ucx-rocm)
(replace "libfabric" libfabric-rocm)))
(append rocm-hip-runtime)))
(synopsis "MPI-3 implementation (with ROCm support)")))
(define-public openmpi-c++
-128
View File
@@ -171,7 +171,6 @@
#: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)
@@ -225,7 +224,6 @@
#: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
@@ -5357,132 +5355,6 @@ 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")
+8 -10
View File
@@ -591,7 +591,7 @@ Android, and ChromeOS.")
(define-public libnice
(package
(name "libnice")
(version "0.1.23")
(version "0.1.22")
(source
(origin
(method git-fetch)
@@ -601,7 +601,7 @@ Android, and ChromeOS.")
(file-name (git-file-name name version))
(sha256
(base32
"0zqnqhcm1rx5axbzd448yi6j4bq4kykiqb4wihs2p8h1k49nkyjh"))))
"0ik45q1qlr04llr2ssm6zb73840dmn31q303k3qrcpgj0jp578hg"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments
@@ -614,25 +614,23 @@ 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))
;; This test uses getaddrinfo, which cannot resolve in the
;; build environment.
((".*'test-slow-resolving',.*") ""))
;; 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)))
(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
+2 -2
View File
@@ -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.22.0")
(version "2.26.2")
(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 "02gqm23x26glffvyxrnk610hy3hg0kwh2v58dhnb032l0jhjzqvp"))))
(base32 "18xv0m40jgy3sc4pldw95w6p72ms5a5h0x2sm2mimlwlmxmrjlmb"))))
(build-system node-build-system)
(arguments
`(#:phases
+48 -58
View File
@@ -274,7 +274,7 @@
(lambda (file stat)
(executable-file? file))
#:stat lstat)))))
(add-after 'install 'install-npmrc
(add-after 'install 'fix-node-gyp-reference
;; 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/indutny/llparse-builder.git")
(url "https://github.com/nodejs/llparse-builder.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -491,10 +491,6 @@ 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"
@@ -521,7 +517,8 @@ Node.js and web browsers.")
(add-after 'patch-dependencies 'delete-dependencies
(lambda _
(modify-json (delete-dependencies
`("@types/mocha"
`("@types/debug"
"@types/mocha"
"@types/node"
"mocha"
"ts-node"
@@ -539,7 +536,7 @@ Node.js and web browsers.")
(list node-binary-search-bootstrap node-debug-bootstrap))
(native-inputs
(list esbuild))
(home-page "https://github.com/indutny/llparse-builder#readme")
(home-page "https://github.com/nodejs/llparse-builder#readme")
(properties '((hidden? . #t)))
(synopsis "Graph builder for consumption by llparse")
(description "This package builds graphs for consumption by llparse.")
@@ -553,7 +550,7 @@ Node.js and web browsers.")
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/indutny/llparse-frontend.git")
(url "https://github.com/nodejs/llparse-frontend.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -602,7 +599,7 @@ Node.js and web browsers.")
(list node-debug-bootstrap node-llparse-builder-bootstrap))
(native-inputs
(list esbuild))
(home-page "https://github.com/indutny/llparse-frontend#readme")
(home-page "https://github.com/nodejs/llparse-frontend#readme")
(properties '((hidden? . #t)))
(synopsis "Frontend for the llparse compiler")
(description "This package is a frontend for the llparse compiler.")
@@ -611,17 +608,17 @@ Node.js and web browsers.")
(define-public node-llparse-bootstrap
(package
(name "node-llparse")
(version "7.1.0")
(version "7.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/indutny/llparse.git")
(url "https://github.com/nodejs/llparse.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"10da273iy2if88hp79cwms6c8qpsl1fkgzll6gmqyx5yxv5mkyp6"))
"09hqjcynkz5iv7aydzdwgs42r7y2zylplv0ff7w0vkdsgb08j22a"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -645,10 +642,14 @@ Node.js and web browsers.")
(add-after 'patch-dependencies 'delete-dependencies
(lambda args
(modify-json (delete-dependencies
`("@types/debug"
`("@stylistic/eslint-plugin"
"@typescript-eslint/eslint-plugin"
"@typescript-eslint/parser"
"@types/debug"
"@types/mocha"
"@types/node"
"esm"
"eslint"
"llparse-test-fixture"
"mocha"
"ts-node"
@@ -676,7 +677,7 @@ parser definition into a C output.")
(define-public llhttp-bootstrap
(package
(name "llhttp")
(version "9.2.1")
(version "9.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -685,7 +686,7 @@ parser definition into a C output.")
(file-name (git-file-name name version))
(sha256
(base32
"0mzg19aqb1am498gms0z75cwd5kmfg9p78b1hhxw67019nsjcbac"))
"0yz4ys94pjq2fs2pihpqjvmxj2mbpm8k5prlm445z4qlajzlr4kb"))
(patches (search-patches "llhttp-ponyfill-object-fromentries.patch"))
(modules '((guix build utils)))
(snippet
@@ -747,14 +748,14 @@ source files.")
(define-public node-lts
(package
(inherit node-bootstrap)
(version "22.14.0")
(version "24.14.1")
(source (origin
(method url-fetch)
(uri (string-append "https://nodejs.org/dist/v" version
"/node-v" version ".tar.gz"))
(sha256
(base32
"12msprh604s6qdsgwymxw4kl8ivaldbaydf4v37lbp02aznk2kkc"))
"1cri5lp3a9jhh34dbd48hq2zyb7xjb9qs6zl36l3q2blawgwz642"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -770,13 +771,17 @@ source files.")
"deps/icu-small"
"deps/nghttp2"
"deps/ngtcp2"
"deps/llhttp"
"deps/uv"
"deps/zlib"))))))
"deps/zlib"
"deps/zstd"))))))
(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"
@@ -784,6 +789,7 @@ source files.")
"--with-intl=system-icu"
"--shared-ngtcp2"
"--shared-nghttp3"
"--shared-zstd"
;;Needed for correct snapshot checksums
"--v8-enable-snapshot-compression"))
((#:phases phases)
@@ -846,9 +852,11 @@ source files.")
(for-each delete-file
'("test/parallel/test-https-agent-unref-socket.js"))
;; This test is timing-sensitive, and fails sporadically on
;; These tests are timing-sensitive, and fail sporadically on
;; slow, busy, or even very fast machines.
(delete-file "test/parallel/test-fs-utimes.js")
(for-each delete-file
'("test/parallel/test-fs-utimes.js"
"test/sequential/test-performance-eventloopdelay.js"))
;; FIXME: This test fails randomly:
;; https://github.com/nodejs/node/issues/31213
@@ -899,18 +907,6 @@ 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
@@ -935,30 +931,22 @@ source files.")
;; https://github.com/npm/pacote/issues/285
(add-after 'install 'ignore-number-of-hardlinks
(lambda* (#:key outputs #:allow-other-keys)
(let ((file (string-append (assoc-ref outputs "out")
"/lib/node_modules/npm/node_modules"
"/tar/lib/write-entry.js")))
(substitute* file
(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"))
(("this.stat.nlink > 1") "false")))))
(add-after 'install 'install-node-gyp-wrapper
(replace 'fix-node-gyp-reference
(lambda* (#:key inputs outputs #:allow-other-keys)
(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))))))))
(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")))))))))
(native-inputs
(list ;; Runtime dependencies for binaries used as a bootstrap.
c-ares-for-node-lts
@@ -974,7 +962,8 @@ fi"
pkg-config
procps
python
util-linux))
util-linux
gcc-14))
(inputs
(list bash-minimal
coreutils
@@ -987,7 +976,8 @@ fi"
nghttp3
`(,nghttp2 "lib")
openssl-3.0
zlib))
zlib
`(,zstd-1.5.7 "lib")))
(supported-systems
(cons "riscv64-linux" (package-supported-systems node-bootstrap)))
(properties (alist-delete 'hidden? (package-properties node-bootstrap)))))
@@ -1003,6 +993,6 @@ fi"
`(cons* "--shared" "--without-npm" ,flags))
((#:phases phases '%standard-phases)
`(modify-phases ,phases
(delete 'install-npmrc)
(delete 'fix-node-gyp-reference)
(delete 'patch-nested-shebangs)
(delete 'ignore-number-of-hardlinks)))))))
+2 -60
View File
@@ -31,7 +31,6 @@
#: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)
@@ -47,16 +46,13 @@
#: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 xml)
#:use-module (gnu packages image))
(define-public ocrad
(package
@@ -79,60 +75,6 @@ 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,3 +1,6 @@
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
@@ -7,6 +10,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)
@@ -1,35 +0,0 @@
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: [
@@ -1,67 +0,0 @@
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
@@ -1,79 +0,0 @@
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()
@@ -1,35 +0,0 @@
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: [
@@ -1,29 +0,0 @@
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)
@@ -1,25 +0,0 @@
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):
-27
View File
@@ -1,27 +0,0 @@
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 */
@@ -0,0 +1,211 @@
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,
@@ -0,0 +1,26 @@
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))
@@ -1,299 +0,0 @@
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
@@ -0,0 +1,32 @@
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))
@@ -1,48 +0,0 @@
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
@@ -0,0 +1,13 @@
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
+32 -33
View File
@@ -31,7 +31,6 @@
;;; 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.
;;;
@@ -1612,41 +1611,41 @@ information for every pixel as the input.")
"0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm"))))
(build-system gnu-build-system)
(arguments
(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))
`(#: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)))
(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+)))
+2 -2
View File
@@ -237,7 +237,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.94.20")
(version "2.94.12")
(source
(origin
(method git-fetch)
@@ -246,7 +246,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "15qqs0iy50g3caqjbyhsdkfmbv0rlg541lcpdj9ajv7lwmpxm2ba"))
(base32 "0mpzpc69agcnp2dnay08z7xjx0zq2b77ddd2kds1w6qlh2fc36s9"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
+2 -2
View File
@@ -173,7 +173,7 @@ rates.")
(define-public pulseaudio
(package
(name "pulseaudio")
(version "17.0")
(version "16.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -181,7 +181,7 @@ rates.")
name "-" version ".tar.xz"))
(sha256
(base32
"1dc7xdfbn5rknwsvv5m2ijfwnqrap208liwyhiykjghsczb98dq5"))
"1r2aa0g7al9jhrrbrnih6i3bfznd73kkbafrbzwpjyflj7735vwf"))
(modules '((guix build utils)))
(snippet
;; Disable console-kit support by default since it's deprecated
+7 -7
View File
@@ -16986,11 +16986,12 @@ the @code{sendfile(2)} system call.")
(arguments
(list
#:test-flags
#~(list
"-k" "not TestCommandLineParser"
;; These contains flaky tests.
"--deselect=pyftpdlib/test/test_functional.py"
"--deselect=pyftpdlib/test/test_functional_ssl.py")))
#~(list "-k" "not TestCommandLineParser"
#$@(if (target-aarch64?)
;; TimeoutError: timed out
'((string-append "--deselect=pyftpdlib/test/test_functional.py"
"::TestTimeouts::test_idle_data_timeout2"))
'()))))
(native-inputs
(list python-psutil
python-pytest
@@ -21072,8 +21073,7 @@ into 22 character URL-safe base64 slug representation.")
(sha256
(base32 "0zwjry4ylqncqvxrywp0km96jng4f288dgz8kz5vymk7nr2z21m1"))))
(build-system pyproject-build-system)
;; The test_brokenpipeerror is flaky.
(arguments (list #:test-flags #~(list "-k" "not test_brokenpipeerror")))
;; tests: 856 passed, 24 skipped
(native-inputs
(list python-poetry-core
python-pytest
+4 -13
View File
@@ -1093,16 +1093,11 @@ 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 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_qsqlthread' test sometimes fails.
"tst_qsqlthread"
;; The 'tst_qthread' test is also flaky, despite the
;; patch applied that promised to fix it.
@@ -1201,11 +1196,7 @@ 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"
;; This test fails deterministically on a non-privileged
;; daemon.
"tst_qstandardpaths")
"tst_qsharedmemory")
#$@(cond
((target-ppc64le?)
#~((list
+4 -4
View File
@@ -1509,7 +1509,7 @@ defaults for 80% of the use cases.")
(define-public gitlogue
(package
(name "gitlogue")
(version "0.9.0")
(version "0.8.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
"008cqcc4kjandfi6pqrnr689xb11d6fdhcb48kbv0227v3f5gvn3"))
"007sf2b605jkjk4qyxar1bq7fh71yvv9ixsxfqrs3hzschyj3m2g"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3360,7 +3360,7 @@ command.")
(define-public wasm-bindgen-cli
(package
(name "wasm-bindgen-cli")
(version "0.2.120")
(version "0.2.118")
(source
(origin
(method git-fetch)
@@ -3369,7 +3369,7 @@ command.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0404jgzfcbmjvr1zl9jgw49nqs1s182cbvdzwh92i76qd2cpg166"))
(base32 "02yy57pa4p53vrhpgc8xf737dnqiifnnnjinh49yq1345kd3287j"))
(modules '((guix build utils)))
(snippet
'(begin
+2841 -3096
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1736,18 +1736,18 @@ and runtime for AI-assisted coding.")
(define-public rust-glycin-3
(package
(name "rust-glycin")
(version "3.1.0")
(version "3.0.7")
(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.1.1")))
(commit "2.0.7")))
(file-name (git-file-name name version))
(sha256
(base32
"1mrv733xhbxydww4szskv7jc0hif908aavh8h4kjcxp0zgy13blf"))
"0v6szxk5h8a4b28xb0lrhqrq6b4vka2ha4qgpdp35f6c49v9pdyp"))
(patches (search-patches "glycin-sandbox-Adapt-bwrap-invocation.patch"))))
(build-system cargo-build-system)
(arguments
+2 -14
View File
@@ -48,7 +48,6 @@
#: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)
@@ -273,24 +272,13 @@ 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")))))
(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)))))))))
(search-input-file inputs "/bin/bash"))))))))
(native-inputs
(list autoconf
automake
@@ -309,7 +297,7 @@ efficiency through the use of a compact vector representation of n-grams.")
pipewire
pulseaudio
python
python-pyxdg))
python-xdg-base-dirs))
(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,
+3 -3
View File
@@ -118,13 +118,13 @@ is in the public domain.")
(define-public sqlite-next
(package
(inherit sqlite)
(version "3.53.0")
(version "3.51.0")
(source (origin
(method url-fetch)
(uri (sqlite-uri version 2026))
(uri (sqlite-uri version 2025))
(sha256
(base32
"0ninfc6kh0idcslsdlcv7l6261pswxjsdfp0cnmcxqig34w9n7l5"))))
"19bc2inw7f9fn0y6j3b57w4mk6bzi2q8hp5yn6qyd8kav7ynvqj2"))))
(arguments
(substitute-keyword-arguments arguments
((#:tests? _ #f)
+46 -42
View File
@@ -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-2026 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2021-2025 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,33 +3573,22 @@ soon as it starts.")
(define-public libbluray
(package
(name "libbluray")
(version "1.4.1")
(version "1.3.4")
(source (origin
(method url-fetch)
(uri (string-append "https://download.videolan.org/videolan/"
name "/" version "/"
name "-" version ".tar.xz"))
name "-" version ".tar.bz2"))
(sha256
(base32
"0jglp44wsjpp5k3mrxskfj9b488ksn7cj2dhxfjdqa3z150drdbn"))))
(build-system meson-build-system)
"0aszpsz3pc7p7z6yahlib4na585m6pqbg2d9dkpyipgml1lgv3s7"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags #~(list "--disable-bdjava-jar" "--disable-static")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-dlopen-paths
(lambda* (#:key inputs #:allow-other-keys)
(define (lib/no.so library)
(let ((found (search-input-file inputs library)))
(substring found 0 (- (string-length found)
(string-length ".so")))))
(substitute* "src/libbluray/disc/aacs.c"
(("\"libaacs\"")
(string-append "\"" (lib/no.so "lib/libaacs.so") "\"")))
(substitute* "src/libbluray/disc/bdplus.c"
(("\"libbdplus\"")
(string-append "\"" (lib/no.so "lib/libbdplus.so") "\"")))))
(add-after 'install 'move-packages-to-libs
(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)
@@ -3607,17 +3596,27 @@ soon as it starts.")
(dirname
(search-input-file inputs
(string-append "lib/lib" lib ".so"))))
(substitute* (string-append #$output
"/lib/pkgconfig/libbluray.pc")
(("^Requires.private.*") "")
(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"))))))))
" -lxml2 -lfreetype -lfontconfig")))))
(add-before 'build 'fix-dlopen-paths
(lambda* (#:key inputs #:allow-other-keys)
(define (lib/no.so library)
(let ((found (search-input-file inputs library)))
(substring found 0 (- (string-length found)
(string-length ".so")))))
(substitute* "src/libbluray/disc/aacs.c"
(("\"libaacs\"")
(string-append "\"" (lib/no.so "lib/libaacs.so") "\""))
(("\"libbdplus\"")
(string-append "\"" (lib/no.so "lib/libbdplus.so") "\""))))))))
(native-inputs (list pkg-config))
(inputs (list fontconfig freetype libaacs libbdplus libudfread libxml2))
(inputs (list fontconfig freetype libaacs libbdplus libxml2))
(home-page "https://www.videolan.org/developers/libbluray.html")
(synopsis "Blu-Ray Disc playback library")
(description
@@ -3628,18 +3627,22 @@ players, like VLC or MPlayer.")
(define-public libdvdread
(package
(name "libdvdread")
(version "7.0.1")
(version "6.1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://download.videolan.org/videolan/"
"libdvdread/" version "/"
"libdvdread-" version ".tar.xz"))
"libdvdread-" version ".tar.bz2"))
(sha256
(base32
"01ylalrr9lw6x7fz7z030243kln1hfd1pbh3m9ikjp610nih8gif"))))
(build-system meson-build-system)
(native-inputs (list pkg-config))
(propagated-inputs (list libdvdcss))
"0sakl4c8y2kkp09km0b5353w66pvfc72y8wi1vjwn252jx4ladff"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-libdvdcss=yes")))
(native-inputs
(list pkg-config))
(propagated-inputs
(list libdvdcss))
(home-page "http://dvdnav.mplayerhq.hu/")
(synopsis "Library for reading video DVDs")
(description
@@ -3703,16 +3706,16 @@ MPEG-2 stream containing VOB packets.")
(define-public libdvdnav
(package
(name "libdvdnav")
(version "7.0.0")
(version "6.1.1")
(source (origin
(method url-fetch)
(uri (string-append "https://download.videolan.org/videolan/"
"libdvdnav/" version "/"
"libdvdnav-" version ".tar.xz"))
"libdvdnav-" version ".tar.bz2"))
(sha256
(base32
"07i2gdj4nfah4lwlc6hl14xjbyh6b12bc1lipxs3q4vdsdd8z8d2"))))
(build-system meson-build-system)
"0j4ds6c4xl34dijkfpw805vj7s0vzg095kw0fvzj7ls7b53sg4f1"))))
(build-system gnu-build-system)
(native-inputs (list pkg-config))
(propagated-inputs (list libdvdread)) ;in 'Requires.private' of dvdnav.pc
(home-page "http://dvdnav.mplayerhq.hu/")
@@ -3733,16 +3736,16 @@ encapsulated.")
(define-public libdvdcss
(package
(name "libdvdcss")
(version "1.5.0")
(version "1.4.3")
(source (origin
(method url-fetch)
(uri (string-append "https://download.videolan.org/pub/"
name "/" version "/"
name "-" version ".tar.xz"))
name "-" version ".tar.bz2"))
(sha256
(base32
"16f3lnwcldy0ssq2yah97qsb0b8scsvhsivfbhpgizmys7j6752j"))))
(build-system meson-build-system)
"0y800y33spblb20s1lsjbaiybknmwwmmiczmjqx5s760blpwjg13"))))
(build-system gnu-build-system)
(home-page "https://www.videolan.org/developers/libdvdcss.html")
(synopsis "Library for accessing DVDs as block devices")
(description
@@ -5191,18 +5194,19 @@ specifications.")
(define-public libaacs
(package
(name "libaacs")
(version "0.11.1")
(version "0.11.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://ftp.videolan.org/pub/videolan/libaacs/"
version "/libaacs-" version ".tar.bz2"))
(sha256
(base32 "0f8ax9dp49mrm1484bl2df659b34xyrjmngzmvvpg2n9wkms12m8"))))
(inputs (list libgcrypt))
(native-inputs (list bison flex))
(base32 "11skjqjlldmbjkyxdcz4fmcn6y4p95r1xagbcnjy4ndnzf0l723d"))))
(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
View File
@@ -3358,7 +3358,7 @@ compository, supporting the following features:
(define-public waybar
(package
(name "waybar")
(version "0.15.0")
(version "0.14.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 "1ify8zywlq6zrmbzp293q72pnzy3czkvrb4zia2xnsvsmy04mmp3"))))
(base32 "1b1783382y38mzzrzw53p20lwpfs0n2npqbs91j9ddgg6xk82s4q"))))
(build-system meson-build-system)
(arguments
(list #:configure-flags #~(list "--wrap-mode=nodownload")))
+1 -1
View File
@@ -116,7 +116,7 @@ knowledge of the Z-Wave protocol.")
(lambda _
(substitute* "binding.gyp"
(("std=c\\+\\+11")
"std=c++17"))))
"std=c++20"))))
(replace 'build
;; For some reason, `npm install` doesn't build
;; the addon automatically, so we do it explicitly here.
+1 -7
View File
@@ -216,10 +216,6 @@
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
@@ -1690,8 +1686,6 @@ 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 '())))
@@ -1727,7 +1721,7 @@ reload its settings file.")))
"-f" #$syslog.conf
#$@(syslog-configuration-extra-options config))
#:file-creation-mask #o137
#:pid-file #$(syslog-configuration-pid-file config)))
#:pid-file "/var/run/syslog.pid"))
(stop #~(make-kill-destructor))))
(define %default-syslog-files
+1 -3
View File
@@ -801,9 +801,7 @@ port=" (number->string port) "
(list (service-extension account-service-type
(const %mysql-accounts))
(service-extension shepherd-root-service-type
mysql-shepherd-services)
(service-extension profile-service-type
(compose list mysql-configuration-mysql))))
mysql-shepherd-services)))
(default-value (mysql-configuration))
(description "Run the MySQL or MariaDB database server,
@command{mysqld}.")))
+61 -1
View File
@@ -1542,6 +1542,66 @@ 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
@@ -1589,7 +1649,7 @@ of the service's configuration files."
(name 'elogind)
(extensions
(list (service-extension dbus-root-service-type
(compose list elogind-configuration-elogind))
elogind-dbus-service)
(service-extension udev-service-type
(compose list elogind-configuration-elogind))
(service-extension polkit-service-type
+2 -4
View File
@@ -26,8 +26,7 @@
#:use-module (guix monads)
#:use-module (guix search-paths)
#:use-module ((guix build glib-or-gtk-build-system)
#:select (%gdk-pixbuf-loaders-cache-file
%gdk-pixbuf-loaders-directory))
#:select (%gdk-pixbuf-loaders-cache-file))
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (guix packages)
@@ -36,8 +35,7 @@
glib-or-gtk-build
glib-or-gtk-cross-build
glib-or-gtk-build-system)
#:re-export (%gdk-pixbuf-loaders-cache-file
%gdk-pixbuf-loaders-directory)) ;for convenience
#:re-export (%gdk-pixbuf-loaders-cache-file)) ;for convenience
;; Commentary:
;;
+13 -7
View File
@@ -30,10 +30,16 @@
#:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:export (%node-build-system-modules
#:export (%default-lockfiles
%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)
@@ -47,6 +53,10 @@
"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))
@@ -78,17 +88,12 @@
(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"))
@@ -110,6 +115,7 @@
#:system #$system
#:npm-flags #$npm-flags
#:test-target #$test-target
#:lockfiles '#$lockfiles
#:tests? #$tests?
#:phases #$phases
#:outputs #$(outputs->gexp outputs)
+4
View File
@@ -105,6 +105,7 @@
source
(phases '%standard-phases)
(grammar-directories '("."))
(lockfiles %default-lockfiles)
(tests? #t)
(outputs '("out" "js"))
(search-paths '())
@@ -123,6 +124,7 @@
#:source #+source
#:system #$system
#:phases #$phases
#:lockfiles '#$lockfiles
#:tests? #$tests?
#:grammar-directories '#$grammar-directories
#:outputs #$(outputs->gexp outputs)
@@ -145,6 +147,7 @@
guile source
(phases '%standard-phases)
(grammar-directories '("."))
(lockfiles %default-lockfiles)
(tests? #t)
(outputs '("out" "js"))
(search-paths '())
@@ -179,6 +182,7 @@
#:build #$build
#:target #$target
#:phases #$phases
#:lockfiles '#$lockfiles
#:tests? #$tests?
#:grammar-directories '#$grammar-directories
#:outputs #$(outputs->gexp outputs)
+2 -6
View File
@@ -30,7 +30,6 @@
#: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))
@@ -208,8 +207,6 @@ 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
@@ -217,9 +214,8 @@ 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
(lambda (dir)
(find-files (in-vicinity dir %gdk-pixbuf-loaders-directory) "^.*.so$"))
directories))
(cut find-files <> "^libpixbufloader-.*\\.so$")
(delete-duplicates directories)))
(outputs* (map (cut string-append <> "/"
%gdk-pixbuf-loaders-cache-file)
outputs))
+78 -116
View File
@@ -5,6 +5,7 @@
;;; 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.
;;;
@@ -29,6 +30,7 @@
#: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
@@ -40,34 +42,6 @@
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
;;;
@@ -106,23 +80,19 @@ 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."
(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"))))
(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))))
(define* (modify-json-fields
fields
@@ -236,8 +206,7 @@ only after the 'patch-dependencies' phase."
(begin
(mkdir dir)
(setenv "HOME" (string-append (getcwd) "/" dir))
(format #t "set HOME to ~s~%" (getenv "HOME")))))))
#t)
(format #t "set HOME to ~s~%" (getenv "HOME"))))))))
(define (module-name module)
(let* ((package.json (string-append module "/package.json"))
@@ -257,67 +226,65 @@ 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) module))
(hash-set! index (module-name module)
(string-append "file://" 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 index (index-modules (map cdr inputs)))
(define resolve-dependencies
(let ((index (index-modules (map cdr inputs))))
(cut map
(match-lambda
((dependency . version)
(cons dependency (hash-ref index dependency version))))
<>)))
(define (resolve-dependencies dependencies)
(map
(match-lambda
((dependency . version)
(cons dependency (hash-ref index dependency version))))
dependencies))
(with-atomic-json-file-replacement
(define (resolve key getter)
(lambda (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)
(assoc-set! pkg-meta key
(resolve-dependencies (getter pkg-meta)))))
(define* (delete-lockfiles #:key inputs #:allow-other-keys)
"Delete 'package-lock.json', 'yarn.lock', and 'npm-shrinkwrap.json', if they
exist."
(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."
(for-each (lambda (pth)
(when (file-exists? pth)
(delete-file pth)))
'("package-lock.json"
"yarn.lock"
"npm-shrinkwrap.json"))
#t)
lockfiles))
(define* (configure #:key outputs inputs #:allow-other-keys)
(define* (configure #:key inputs #:allow-other-keys)
(let ((npm (string-append (assoc-ref inputs "node") "/bin/npm")))
(invoke npm "--offline" "--ignore-scripts" "--install-links" "install")
#t))
(invoke npm "--offline"
"--ignore-scripts"
"--install-links"
"--no-audit"
"install")))
(define* (build #:key inputs #:allow-other-keys)
(let ((package-meta (call-with-input-file "package.json" json->scm)))
(if (assoc-ref* (assoc-ref* package-meta "scripts" '()) "build" #f)
(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 ((npm (string-append (assoc-ref inputs "node") "/bin/npm")))
(invoke npm "run" "build"))
(format #t "there is no build script to run~%"))
#t))
(format #t "there is no build script to run~%"))))
(define* (check #:key tests? inputs test-target #:allow-other-keys)
"Run 'npm run TEST-TARGET' if TESTS?"
@@ -334,8 +301,7 @@ exist."
"--owner=0"
"--group=0"
"--numeric-owner"
"-czf" "../package.tgz" ".")
#t)
"-czf" "../package.tgz" "."))
(define* (install #:key outputs inputs #:allow-other-keys)
"Install the node module to the output store item."
@@ -347,8 +313,7 @@ exist."
"--loglevel" "info"
"--production"
"--install-links"
"install" "../package.tgz")
#t))
"install" "../package.tgz")))
(define* (avoid-node-gyp-rebuild #:key outputs #:allow-other-keys)
"Adjust the installed 'package.json' to remove an 'install' script that
@@ -376,28 +341,25 @@ 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
(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)))))
(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 %standard-phases
(modify-phases gnu:%standard-phases
+1 -1
View File
@@ -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 "$<" "$@"
cp "$@.in" "$@"
# The service script for sysvinit.
sysvinitservicedir = $(sysconfdir)/init.d