1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-07-08 06:04:04 +02:00

Compare commits

..

122 Commits

Author SHA1 Message Date
Noé Lopez cf76e5a1b9 gnu: Add libglycin.
We split the glycin loaders from libglycin to avoid dependency circles between
gdk-pixbuf and glycin:

glycin-loaders depends transitively on gdk-pixbuf. And gdk-pixbuf must depend
on glycin at some point, since the transition plan is that it starts using it
as a backend instead of its builtin loaders.

With this commit, gdk-pixbuf can depend on libglycin; avoiding the extra
dependencies brought by the loaders.

This split is also recommended in Glycin’s README.

* gnu/packages/gnome.scm
(libglycin): New variable.
(glycin-loaders): Define as inherited package of libglycin.
(loupe, nautilus)[inputs]: Add libglycin.

Change-Id: I424b2227882b9ca1cbd9c5130ac7239c22d59e56
2026-05-29 11:56:43 +02:00
Noé Lopez f3db2a83b4 gnu: rust-glycin-3: Update to 3.1.0.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs)[glycin]:
Update rust dependencies.
* gnu/packages/rust-sources.scm (rust-glycin-3): Update to 3.1.0.

Change-Id: Ib09a7f1ff0014e05ca2524a5aea6900b201f00ba
2026-05-29 11:56:41 +02:00
Maxim Cournoyer 9db32e6573 gnu: glycin-loaders: Update to 2.1.1.
* gnu/packages/gnome.scm (glycin-loaders): Update to 2.1.1.
[native-inputs]: Update test-images input.
* gnu/packages/rust-crates.scm: Re-import crates and delete unused ones.
Review a few forgotten crates for bundled sources, removing comments.

Change-Id: I71b5b98ecdc12bd85222dccb5dcb3782ecb72671
2026-05-20 20:54:36 +02:00
Maxim Cournoyer 51288fcc9e gnu: gvfs: Update to 1.58.1.
* gnu/packages/gnome.scm (gvfs): Update to 1.58.1.

Change-Id: I538b2b99a0f21702ac98c589c0a4d0a23b4724ee
2026-05-20 20:54:35 +02:00
Maxim Cournoyer 38e8f129c4 gnu: msgraph: Update to 0.3.4.
* gnu/packages/gnome.scm (msgraph): Update to 0.3.4.

Change-Id: Iffd639f2ac5739ffa536a2514135ae3bbbb104af
2026-05-20 20:54:35 +02:00
Maxim Cournoyer c62591bde7 gnu: libgsf: Update to 1.14.55.
* gnu/packages/gnome.scm (libgsf): Update to 1.14.55.

Change-Id: I58c7e9a690ae6656aa3bf960109e0459a6629aef
2026-05-20 20:54:35 +02:00
Maxim Cournoyer 1add19280c gnu: gnome-desktop: Update to 44.5.
* gnu/packages/gnome.scm (gnome-desktop): Update to 44.5.
[#:phases] {disable-failing-tests}: New phase.

Change-Id: I878628048649797f020c4919a9be97f9e3b0549d
2026-05-20 20:54:35 +02:00
Maxim Cournoyer ba86d5f655 gnu: gnome-online-accounts: Update to 3.56.4.
* gnu/packages/gnome.scm (gnome-online-accounts): Update to 3.56.4.

Change-Id: I226970a8db6bcb5c61ce33c5d581b0082b628701
2026-05-20 20:54:35 +02:00
Maxim Cournoyer 762ded35ef gnu: gtk-doc: Update to 1.35.1.
* gnu/packages/gtk.scm (gtk-doc): Update to 1.35.1.

Change-Id: I5f6c59b7d873dd838982bbd71464d43c84ea42ba
2026-05-20 20:54:35 +02:00
Maxim Cournoyer ff65b44e7d gnu: glade3: Fix build, and wrap to render icons.
* gnu/packages/gnome.scm (glade3) [#:glib-or-gtk]: New.
[#:phases] {skip-gjs-test}: Delete.
{skip-modules-test}: New.

Change-Id: I71397e22835f37cb83cef517ee0c9116f706cfc9
2026-05-20 20:54:35 +02:00
Maxim Cournoyer bbd0e658e0 gnu: gjs: Update to 1.88.0.
* gnu/packages/gnome.scm (gjs): Update to 1.88.0.
[source] <snippet>: Update; unbundle most subprojects.
[#:modules]: New.
[#:configure-flags]: Delete.
[#:phases] {pre-check}: Delete, moving relevant bits to...
{check}: ... this new override phase, which is ordered after install.
{sanitize-pkg-config-files}: New.
[native-inputs]: Add gnome-desktop-testing, sysprof.  Replace
xorg-server-for-tests with xvfb-run.
[propagated-inputs]: Remove cairo.  Add glib.  Move mozjs to...
[inputs]: ... here.

Change-Id: I13d20c931dc68cdedebb8952ebf44d31caa6b684
2026-05-20 20:54:35 +02:00
Maxim Cournoyer cd8c4bd53d gnu: gjs: Update to 1.86.0.
* gnu/packages/gnome.scm (gjs): Update to 1.86.0.
[inputs]: Move gtk+ to...
[native-inputs]: ... here.
[home-page]: Update.

Change-Id: Iae26a02d3ba343c8a46076745cd8a053ebedcbb4
2026-05-20 20:54:34 +02:00
Noé Lopez 010a60bb90 gnu: mozjs: Keep API compatibility.
When changing to the icecat source, these two symbols are renamed.  We define
aliases to their canonical name.

* gnu/packages/gnuzilla.scm (mozjs)[arguments]<#:phases>: Add phase.

Change-Id: Ifdd09ebab2767faff71b558c7ffb622d101448b5
2026-05-20 20:54:34 +02:00
Maxim Cournoyer adb2f5d47c gnu: mozjs: Apply patch to resolve an error in the gjs build.
The headers of mozjs would previous return "#error "Unsupported OS?" when
building a recent gjs.

* gnu/packages/patches/mozjs-xp-win.patch: New patch.
* gnu/packages/gnuzilla.scm (mozjs): Apply it.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I9b3fb0d13a41524e6047940bc0759a218c69b277
2026-05-20 20:54:34 +02:00
Maxim Cournoyer 9a0bd7eb7a gnu: mozjs: Update to 140.10.1-gnu1.
* gnu/packages/gnuzilla.scm (mozjs): Update to 140.10.1-gnu1.
[version, source]: Use the same as icecat.  Fixes the TODO.
(mozjs, mozjs-128, mozjs-115): Move below icecat.

Co-Authored-By: Noé Lopez <noelopez@free.fr>
Change-Id: Ibe07c3124368171204b44d7d14a3952b3d68fb23
2026-05-20 20:54:34 +02:00
Maxim Cournoyer 79a08015a8 gnu: libmanette: Update to 0.2.13.
* gnu/packages/games.scm (libmanette): Update to 0.2.13.

Change-Id: Icf032e5411f93f64f847597407c2ba2b5a700496
2026-05-20 20:54:34 +02:00
Maxim Cournoyer 2a0f5a26a9 gnu: sysprof: Update to 49.0.
* gnu/packages/gnome.scm (sysprof): Update to 49.0.

Change-Id: If2d794cf959f1edd3b67ba8588a9193b54115d34
2026-05-20 20:54:34 +02:00
Maxim Cournoyer d6ed5db055 gnu: at-spi2-core: Update to 2.60.0.
* gnu/packages/gtk.scm (at-spi2-core): Update to 2.60.0.

Change-Id: I92d8208d689a0b148102d2bc3d84c693020924a8
2026-05-20 20:54:34 +02:00
Maxim Cournoyer c285fb5618 gnu: adwaita-icon-theme: Update to 49.0.
* gnu/packages/gnome.scm (adwaita-icon-theme): Update to 49.0.

Change-Id: If6cfbf9bd306c5a93e13bbbe6ac2e7e9f1ea2474
2026-05-20 20:54:34 +02:00
Maxim Cournoyer fd059abc5c gnu: libadwaita: Update to 1.8.4.
* gnu/packages/gnome.scm (libadwaita): Update to 1.8.4.

Change-Id: I106464421f494ccb4a36285c4b0be841013030cd
2026-05-20 20:54:33 +02:00
Maxim Cournoyer 338cc52cf6 gnu: tinysparql: Update to 3.10.1.
* gnu/packages/gnome.scm (tinysparql): Update to 3.10.1.

Change-Id: I182daf164f9da39662acb4e2b6d991c257010f8b
2026-05-20 20:54:33 +02:00
Maxim Cournoyer 935c71d6f0 gnu: elogind: Update to 257.14.
* gnu/packages/freedesktop.scm (elogind): Update to 257.14.

Change-Id: I894dbc4a34b82c1d1502f55a0da2de620e71d373
2026-05-20 20:54:33 +02:00
Noé Lopez 13b5d22946 build: glib-or-gtk: Export %gdk-pixbuf-loaders-directory.
* guix/build/glib-or-gtk-build-system.scm: Export it.
* guix/build-system/glib-or-gtk.scm: Re-export it.

Change-Id: I5f1c307b05b906243fcc66ae1c0363176c628073
2026-05-20 20:52:33 +02:00
Noé Lopez bb9cd7d41d gnu: librsvg: Install loader in right directory.
Before, it would be installed outside of the “loaders” directory, due to an
oversight in the substitution. We can use the new
%gdk-pixbuf-loaders-directory variable instead.

* gnu/packages/gnome.scm (librsvg)[arguments]<#:phases>: Fix path of
gdk-pixbuf loader.

Change-Id: I1618608d466ad7fdb344b1dcce9a69ff7fcad7af
2026-05-20 20:41:34 +02:00
Noé Lopez 25ca142fa2 build: glib-or-gtk: Find gdk-pixbuf loaders correctly.
The current approach to finding the loaders depends on an implicit naming
assumption. However it differs from what is actually used by gdk-pixbuf.

The correct approach is to take all module (.so) files in the loaders
directory (not in the whole input) as is done in gdk-pixbuf-query-loaders:
<https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/blob/361cfd5e235af26a32e4b4015606ae3dbe1d952f/gdk-pixbuf/queryloaders.c#L449>.

See also: <https://codeberg.org/guix/guix/pulls/8212#issuecomment-14661621>.

* guix/build/glib-or-gtk-build-system.scm
(%gdk-pixbuf-loaders-directory): New variable.
(generate-gdk-pixbuf-loaders-cache): Change logic to find loaders.

Reviewed-By: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Reviewed-By: Liliana Marie Prikler <liliana.prikler@gmail.com>
Signed-off-by: Noé Lopez <noelopez@free.fr>
Merges: guix/guix!8545
Change-Id: Idb9023775ac47019c93b291286f3c67f09b82857
2026-05-12 11:53:36 +02:00
Noé Lopez ae23962fa6 gnu: libtracefs: Update to 1.8.3.
* gnu/packages/linux.scm (libtracefs): Update to 1.8.3 and switch to
meson-build-system.
[native-inputs]: Add bison and flex.

Change-Id: If92fe0f3b16547129170492fc91a7b583da4ea73
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:54 +02:00
Maxim Cournoyer 03b7362f5b gnu: xdg-desktop-portal: Fix tests.
* gnu/packages/freedesktop.scm (xdg-desktop-portal)
[native-inputs]: Add librsvg.

Change-Id: I90e1f9b5997aba09ec8d1994666550a91ff93f2b
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:54 +02:00
Maxim Cournoyer bf66ac60c5 gnu: fontconfig: Update to 2.17.1.
* gnu/packages/fontutils.scm (fontconfig): Update to 2.17.1.
[source]: Adjust URI.
* gnu/packages/patches/fontconfig-cache-ignore-mtime.patch: Rebase.

Change-Id: I1e54b9fa4a7a1de81326726070b64c478bd3c615
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:53 +02:00
Maxim Cournoyer 1d9252aefd gnu: libnice: Update to 0.1.23.
* gnu/packages/networking.scm (libnice): Update to 0.1.23.
[#:phases] {disable-failing-tests}: Reinstate 'test-new-trickle'.  Disable
test-slow-resolving.

Change-Id: I1765304e09f5493a8096e42f5f40a86517888239
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:53 +02:00
Maxim Cournoyer 47bf936933 gnu: libjxl: Update to 0.11.2.
* gnu/packages/image.scm (libjxl): Update to 0.11.2.

Change-Id: If6d4aaac74b8d8593626f4ee1c56e351df2375d2
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:53 +02:00
Maxim Cournoyer 1e44d5afe3 [WIP] gnu: ibus-minimal: Update to 1.5.34-rc2.
This is WIP so that we go to 1.5.34 when it releases.

* gnu/packages/ibus.scm (ibus-minimal): Update to 1.5.34-rc2.

Change-Id: I60d1b292f756fea8a190e9eb2d6853959201f1be
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:53 +02:00
Maxim Cournoyer 886e396dee gnu: dconf: Update to 0.49.0.
* gnu/packages/gnome.scm (dconf): Update to 0.49.0.
[#:configure-flags]: Add --wrap-mode=nodownload.

Change-Id: I6aadef96f9c1fba7cab159b2d9e3ee93fff40922
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:53 +02:00
Maxim Cournoyer 56d2cc82bd gnu: dconf-editor: Update to 49.0.
* gnu/packages/gnome.scm (dconf-editor): Update to 49.0.

Change-Id: I5ed04ebb773bb22a7172223ba398de1c400bce5f
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:53 +02:00
Maxim Cournoyer 12a01c020a gnu: webrtc-audio-processing: Update to 2.1.
* gnu/packages/audio.scm (webrtc-audio-processing): Update to 2.1.
[source]: Apply new patches.
[#:phases]: Delete.
* gnu/packages/patches/webrtc-audio-processing-x86-no-sse.patch: Delete file.
* gnu/packages/patches/webrtc-audio-processing-byte-order-pointer-size.patch: Likewise.
* gnu/packages/patches/webrtc-audio-processing-abseil-cpp.patch: New file.
* gnu/packages/patches/webrtc-audio-processing-gcc-14.patch: Likewise.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.

Change-Id: I7b9c408a7e256d5fb83e14b4d21f6c44a9cd4616
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:53 +02:00
Maxim Cournoyer bce6cffcb3 gnu: gtk+: Update to 3.24.52.
* gnu/packages/patches/gtk3-treeview-test-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/gtk.scm (gtk+): Update to 3.24.52.  Apply patch.

Change-Id: Ibf49241f637ac1d5ed2c6f9675f78810c8acb265
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:52 +02:00
Maxim Cournoyer ce8a71d961 gnu: gsettings-desktop-schemas: Update to 49.1.
* gnu/packages/gnome.scm (gsettings-desktop-schemas): Update to 49.1.

Change-Id: I23742ca5779332ecc7a59bf0b77194387bfc0d7c
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:52 +02:00
Maxim Cournoyer 0892e93615 gnu: gnome-backgrounds: Update to 49.0.
* gnu/packages/gnome.scm (gnome-backgrounds): Update to 49.0.

Change-Id: If77094b502b8ca92c2595529a4536a1e5485336b
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:52 +02:00
Maxim Cournoyer c402d99037 gnu: librsvg: Update to 2.61.4.
* gnu/packages/gnome.scm (librsvg): Update to 2.61.4.
[build-system]: Switch to meson.
[#:configure-flags]: Port to Meson.  Add -Dpixbuf-loader=enabled.
[#:make-flags]: Delete.
[#:imported-modules, modules]: Adjust for build system switch.
[#:phases] {pre-build}: Set RUSTFLAGS environment variable.
{loosen-test-boundaries}: Rename to...
{prepare-for-tests}: ... this.  Set HOME.
{pre-configure}: Port to Meson.
{sanitize-pkg-config-files}: New.
* gnu/packages/rust-crates.scm: Re-import crates.
[native-inputs]: Add gi-docgen, python, python-docutils and rust-cargo-c.
rust:cargo.
[inputs]: Add dav1d.  Delete harfbuzz.

Change-Id: I4272ccdbfbcf2b40a347eac2c7c91446ea2f08c7
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:52 +02:00
Maxim Cournoyer ff9242e63e gnu: python-pygobject: Update to 3.54.5.
* gnu/packages/glib.scm (python-pygobject): Update to 3.54.5.

Change-Id: Id3832e76f2596aaf221ccd86d603b3b4c48b43c6
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:52 +02:00
Maxim Cournoyer c379adbf87 gnu: gdk-pixbuf: Update to 2.44.5.
* gnu/packages/gtk.scm (gdk-pixbuf): Update to 2.44.5.

Change-Id: Ia94deddcb894a08c1f9460be0b04013eda668a1b
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:52 +02:00
Maxim Cournoyer acad9ba45f gnu: gi-docgen: Update to 2026.1.
* gnu/packages/gnome.scm (gi-docgen): Update to 2026.1.
[arguments]: New field.
[native-inputs]: Add graphviz-14.

Change-Id: I5bd19caa41695d4660a12478d8e6766069ed0791
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:52 +02:00
Liliana Marie Prikler 3a9fb73409 gnu: meson: Keep vicinity of $prefix in RUNPATH.
* gnu/packages/patches/meson-keep-rpath-vicinity.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/build-tools.scm (meson)[patches]: Use it.

Merges: guix/guix!7583
Fixes: https://issues.guix.gnu.org/70349 (RUNPATH validation fails with Clang+Meson)
Change-Id: I79551bd3770e36009fe26f88074d5793fd18ad18
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 22:38:43 +02:00
Maxim Cournoyer 0e0b120588 gnu: meson: Apply patch to fix computed GIR library paths.
* gnu/packages/build-tools.scm (meson): Apply patch.
* gnu/packages/patches/meson-gir-fallback-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I7a54149aa4f7560c689202b5f4db3e3c3f7d9f39
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 18:02:31 +02:00
Maxim Cournoyer 489866cf11 gnu: pango: Update to 1.57.1.
* gnu/packages/gtk.scm (pango): Update to 1.57.1.

Change-Id: Ic315967b36da2371ee5febcb7a5b9bf369027cf9
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 18:02:30 +02:00
Maxim Cournoyer 17d29fa361 gnu: lcms: Update to 2.16.0.
* gnu/packages/ghostscript.scm (lcms): Update to 2.16.0.
(lcms-next): Deprecate package.
* gnu/packages/astronomy.scm (siril): Adjust accordingly.
* gnu/packages/gnome.scm (glycin-loaders): Likewise.

Co-Authored-By: Noé Lopez <noelopez@free.fr>
Change-Id: Idd3fb39d89a84fe3a7a2d322165e166199c87777
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 18:02:30 +02:00
Maxim Cournoyer 0b75deab99 gnu: yelp: Update to 49.0.
* gnu/packages/gnome.scm (yelp): Update to 49.0.

Change-Id: I5905c6240b47c83cdfa630e636b72478daeb47fd
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 18:02:30 +02:00
Maxim Cournoyer 96a8e11e9a gnu: yelp-xsl: Update to 49.0.
* gnu/packages/gnome.scm (yelp-xsl): Update to 49.0.

Change-Id: I88e2357d3769c0594e0dd09a64d869ac0d5c78c3
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-05 18:02:30 +02:00
Maxim Cournoyer 33640e95b8 gnu: qtbase: Skip racy 'tst_qsqldatabase' test; reinstate qsqlthread.
* gnu/packages/qt.scm (qtbase) [#:phases] {check}: Skip tst_qsqldatabase.
Reinstate qsqlthread one.

Change-Id: I60fcca2a8e5d730b9599b81103d7ee7acb8b5bda
2026-05-05 18:02:30 +02:00
Maxim Cournoyer 1464041366 gnu: wireplumber: Update to 0.5.14.
* gnu/packages/linux.scm (wireplumber): Update to 0.5.14.

Change-Id: Iad13fd3bf249c9faaa62695fcef9afc984dbf3ea
2026-05-05 18:02:30 +02:00
Maxim Cournoyer de9e4539c9 gnu: pulseaudio: Update to 17.0.
This resolves bugs caused by audio overflow hanging seek in gstreamer video
players like showtime.

* gnu/packages/pulseaudio.scm (pulseaudio): Update to 17.0.

Change-Id: I166bd19b2fcd4ef0e3d3cd74c690f2e4832d40ea
2026-05-05 18:02:29 +02:00
Maxim Cournoyer 73f31664a5 gnu: libnice: Disable test-send-recv flaky test.
* gnu/packages/networking.scm (libnice)
[#:phases]{disable-failing-tests}: Skip test-send-recv test.

Change-Id: I8df3bd9061cf154bcb028bee193a8d6cabebf3f1
2026-05-05 18:02:29 +02:00
Maxim Cournoyer d69e6c80ec gnu: gst-plugins-base: Disable elements-inputselector test.
* gnu/packages/gstreamer.scm (gst-plugins-base)
[#:phases] {disable-problematic-tests}: Disable elements-inputselector test.

Change-Id: I9785719f2b3d196869afc1630808c7f693b02c79
2026-05-05 18:02:29 +02:00
Maxim Cournoyer ab701f0e25 gnu: python-rich: Disable test_brokenpipeerror test.
* gnu/packages/python-xyz.scm (python-rich) [#:test-options]: New.

Change-Id: I0df72628c2ecd896bce8db8e8f8101cb992ea1a5
2026-05-05 18:02:29 +02:00
Maxim Cournoyer 94c15aade7 gnu: python-pyftpdlib: Harden against flaky test failures.
* gnu/packages/python-xyz.scm (python-pyftpdlib)
[#:test-flags]: Unconditionally deselect whole test_functional_ssl and
test_functional test suites.

Change-Id: Icdd50dbe488309d609f73693b69bab2bac39d135
2026-05-05 18:02:29 +02:00
Maxim Cournoyer ed09edf243 gnu: libbluray: Fix patching of libbdplus library path.
* gnu/packages/video.scm (libbluray)
[#:phases] {fix-dlopen-paths}: Adjust for new file name.

Change-Id: I191e88e30659a7d3ed37839b43464babfdf3be43
2026-05-05 18:02:29 +02:00
Maxim Cournoyer 2cb88181d8 gnu: libaacs: Do not build/install static libraries.
* gnu/packages/video.scm (libaacs) [arguments]: New field.

Change-Id: I2f7664d20ecb235d6d4ef54371c00ae84eb2895d
2026-05-05 18:02:29 +02:00
Maxim Cournoyer b0b32be4f9 gnu: libaacs: Update to 0.11.1.
* gnu/packages/video.scm (libaacs): Update to 0.11.1.

Change-Id: Id3311ff91bd38584d3074e8900046a073f27e6d2
2026-05-05 18:02:28 +02:00
Maxim Cournoyer 202a80eb11 gnu: gtk: Remove dependency on ffmpeg.
That's not needed anymore since 4.22.

* gnu/packages/gtk.scm (gtk) [inputs]: Remove ffmpeg.

Change-Id: I53fea883f47cefe6a17967e9520f4adc76ec2bf8
2026-05-05 18:02:28 +02:00
Maxim Cournoyer a1f71db3e5 gnu: gtk: Disable gtklistitemmanager test.
* gnu/packages/gtk.scm (gtk) [#:phases] {patch}: Disable
gtklistitemmanager test.

Change-Id: Ia6c7e1dba7922b0f8975ae920d5e0e20079bf5fc
2026-05-05 18:02:28 +02:00
Maxim Cournoyer fe4fcb8818 gnu: gtk: Make reproducible.
* gnu/packages/patches/gtk4-demo-reproducible.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/gtk.scm (gtk) [source]: Apply it.

Change-Id: I03ef58f324a84151a681988a18aa1ab986aeba79
2026-05-05 18:02:28 +02:00
Maxim Cournoyer c977f46f47 gnu: gtk: Update to 4.22.1.
* gnu/packages/gtk.scm (gtk): Update to 4.22.1.
[patches]: Add gtk-needs-udmabuf.patch.
[#:phases] {pre-check}: Adjust arguments of Xvfb.
[native-inputs]: Add glibc-utf8-locales.
* gnu/packages/patches/gtk-needs-udmabuf.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: If9043cb55a60f4ec703515b61796b38fb4959f0b
2026-05-05 18:02:28 +02:00
Maxim Cournoyer c31598426c gnu: gst-plugins-bad: Clean up 'adjust-tests' phase.
* gnu/packages/gstreamer.scm (gst-plugins-bad)
[#:phases] {adjust-tests}: Update cross-references.  Skip camerabin test on
all platforms.  Delete duplicate mxfdemux substitution.  Remove stale zxing.c
patching.

Change-Id: I75292bbeabf37c33f19a448d8fd592bfddbb4b2a
2026-05-05 18:02:28 +02:00
Maxim Cournoyer 8d62aab47a gnu: gst-plugins-ugly: Patch libdvdcss.so reference.
* gnu/packages/gstreamer.scm (gst-plugins-ugly)
[#:phases] {patch-paths}: New phase.

Change-Id: I86952f83bec68bc699c4700ee9dfed003db8dd6b
2026-05-05 18:02:28 +02:00
Maxim Cournoyer 5a49ba3d1b gnu: gst-plugins-bad: Patch libdvdcss.so reference.
* gnu/packages/gstreamer.scm (gst-plugins-bad)
[#:phases] {patch-paths}: New phase.

Change-Id: Idaf5de29b7cd6d0f5187af4250d8292997ecd38c
2026-05-05 18:02:28 +02:00
Maxim Cournoyer 0269bf6ad4 gnu: gst-plugins-ugly: Enable GPL plugins.
This enables dvdread, for DVD playback support, among others.

* gnu/packages/gstreamer.scm (gst-plugins-ugly)
[#configure-flags]: Add "-Dgpl=enabled".

Change-Id: Ibff7cdf10b33b76ed79c771e4673afe36b02ce19
2026-05-05 18:02:27 +02:00
Maxim Cournoyer 847ca0505f gnu: gst-plugins-bad: Enable GPL plugins.
This enables resindvd, for DVD playback support, among others.

* gnu/packages/gstreamer.scm (gst-plugins-bad)
[#configure-flags]: Add "-Dgpl=enabled".

Change-Id: I04c3501044160730298771875d85b99f277f1686
2026-05-05 18:02:27 +02:00
Maxim Cournoyer f52d6d59d6 gnu: libbluray: Update to 1.4.1.
* gnu/packages/video.scm (libbluray): Update to 1.4.1.
[source]: Adjust URI.
[build-system]: Switch to meson-build-system.
[#:configure-flags]: Delete.
[#:phases] {move-packages-to-libs}: Move after install phase and adjust
accordingly.
{fix-dlopen-paths}: Order after unpack phase.
[inputs]: Add libudfread.

Change-Id: I249215317cf51e84152115983706670319dd1bb9
2026-05-05 18:02:27 +02:00
Maxim Cournoyer d1abb90c37 gnu: libudfread: Update to 1.2.0.
* gnu/packages/cdrom.scm (libudfread): Update to 1.2.0.
[source]: Adjust URI.
[build-system]: Use meson-build-system.
[native-inputs]: Remove automake, autoconf and libtool.

Change-Id: Iee2e2b4120f6211112cc2b60edaf4d30d5a9bb1d
2026-05-05 18:02:27 +02:00
Maxim Cournoyer 6cc008d218 gnu: libdvdnav: Update to 7.0.0.
* gnu/packages/video.scm (libdvdnav): Update to 7.0.0.
[source]: Adjust URI.
[build-system]: Switch to meson-build-system.

Change-Id: I20cf2c46a713f0a9bc7afec3dec2e576b7ad381a
2026-05-05 18:02:27 +02:00
Maxim Cournoyer b1a84c94bf gnu: libdvdread: Update to 7.0.1.
* gnu/packages/video.scm (libdvdread): Update to 7.0.1.
[source]: Adjust URI.
[build-system]: Switch to meson-build-system.
[arguments]: Delete field.

Change-Id: I02231a64c2a3bb93e4d95f90051f58da5face50a
2026-05-05 18:02:27 +02:00
Maxim Cournoyer 32b07a35fe gnu: libdvdcss: Update to 1.5.0.
* gnu/packages/video.scm (libdvdcss): Update to 1.5.0.
[build-system]: Switch to meson-build-system.

Change-Id: Ie9667158d4973961ce7068cf41f656afa4ab1a17
2026-05-05 18:02:27 +02:00
Liliana Marie Prikler aa00c3d7fb gnu: Fix build of qtbase on non-privileged daemons.
* gnu/packages/qt.scm (qtbase)[#:phases]<check>: Also disable
“tst_qstandardpaths”.
2026-05-05 18:02:26 +02:00
λx.x 54a3afc52b gnu: emacs-elastic-modes: Improve style.
* gnu/packages/emacs-xyz.scm (emacs-elastic-modes): Run guix style.

Change-Id: Ia95b70433c2cbbab4ea4d09cb979ce6ac9058cca
Merges: https://codeberg.org/guix/guix/pulls/7264
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-06 00:32:22 +09:00
λx.x 185b816ed9 gnu: emacs-elastic-modes: Update to 1.0.0-3.13c2b94.
* gnu/packages/emacs-xyz.scm (emacs-elastic-modes):
  Update 1.0.0-3.13c2b94.

Change-Id: I011bf309ed0d12bc7eb167fcb02a0a4341e4b4ca
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-06 00:31:05 +09:00
Luis Guilherme Coelho 98062e0c27 gnu: Add xdg-desktop-portal-termfilechooser.
* gnu/packages/freedesktop (xdg-desktop-portal-termfilechooser):
  New variable.

Change-Id: Ic4e8842d4a4316cdf0f90685f972662d8bed0dad
Merges: https://codeberg.org/guix/guix/pulls/6353
Reviewed-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-06 00:29:20 +09:00
Sören Tempel 1d855b34f6 machine: hetzner: Use dhcpcd-service-type.
Guix 1.5.0 supports dhcpcd-service-type; therefore, (assuming hetzner
already has a Guix 1.5.0 image), it should no longer be necessary to
use dhcp-client-service-type here.  This is one of the few remaining
users of dhcp-client-service-type changing this here will allow to
remove this deprecated service in a future pull request.

* gnu/machine/hetzner.scm (hetzner-machine-bootstrap-os-form): Use
dhcpcd-service-type.

Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2026-05-05 23:48:45 +09:00
Maxim Cournoyer 3b05b9d7ac machine: hetzner: Fix default value for hetzner-configuration-delete?
#f is to keep the failed provisioned server intact for debugging. The
documented default is #t, so adjust the code accordingly.

* gnu/machine/hetzner.scm (<hetzner-configuration>)
[delete?]: Change default to #t to match documentation.

Change-Id: Iabee105cbf5f5e31e8a8f5cb5db99439a168f174
2026-05-05 23:48:45 +09:00
Gábor Udvari 3e1befe1d8 machine: hetzner: Fix deployment.
* gnu/machine/hetzner.scm (hetzner)
[hetzner-machine-rescue-install-os]: Fix deployment.

Reported-by: Sylvain Bellemare (https://codeberg.org/gluonix)
Fixes: #6585
Change-Id: Ie16ee541ad5b81d5014b825ad0e35deddd2e497e
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2026-05-05 23:48:44 +09:00
Maxim Cournoyer c8f53f4b2e services: mysql: Extend system profile with mysql package.
* gnu/services/databases.scm (mysql-service-type): Add profile-service-type
extension.

Change-Id: Ib4748c5faa2368713427c299396501d3516cf990
2026-05-05 23:48:31 +09:00
bdunahu eea9711889 gnu: quickjs-ng: Update to 0.14.0.
* gnu/packages/patches/quickjs-ng-64-bits-precision-on-i686.patch:
  Remove file.
* gnu/packages/patches/quickjs-ng-fix-atomics.pause-on-32-bit.patch:
  Remove file.
* gnu/local.mk: Deregister them.
* gnu/packages/javascript.scm (quickjs-ng): Update to 0.14.0.
  [source]: Remove deregistered patch files.
  [#:phases]: Add 'skip-failing-tests.
  (test262-source): Update to the latest commit pinned by quickjs-ng.

Change-Id: Ia19f54fef1851e82bae1a2f4bf79e48cc507fd6d
Merges: d9076445c0a2f5b0fb60e38269efe45ccbba6584
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-05 17:32:45 +09:00
Daniel Littlewood c1e2c71598 gnu: jfs_fsck/static: Improve style.
* gnu/packages/file-systems.scm (jfs_fsck/static)[inputs]:
  Remove input labels.  [arguments]: Switch to gexp and simplify.
  [description]: Break line.

Change-Id: I8fc9ee2a0bf8e93ef8084dad764d811176fb0717
Merges: https://codeberg.org/guix/guix/pulls/8077
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-05 17:27:07 +09:00
Daniel Littlewood f2f6164edb gnu: fbida: Improve style.
* gnu/packages/pdf.scm (fbida)[inputs]: Remove input labels.
  [arguments]: Switch to gexp.

Change-Id: I94f098dd56544338da85ae93d15b071d2e2178f9
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-05 17:27:07 +09:00
Cayetano Santos 2c161c4c52 gnu: emacs-gptel: Fix curl path.
* gnu/packages/emacs-xyz.scm (emacs-gptel)[arguments]: Fix
’use-appropriate-curl #:phase.

Change-Id: I0b996c801e5328dbfb9397ce2268445978d2834b
2026-05-05 10:16:47 +02:00
Sughosha a986f9176e gnu: Add lmms-next-with-vst.
* gnu/packages/music.scm (lmms-next-with-vst): New variable.

Change-Id: I533eb30e76e40776fd6adef0748ac68340d31caf
2026-05-05 13:38:04 +05:30
Sughosha b68966fde5 gnu: Add lmms-next.
* gnu/packages/music.scm (lmms-next): New variable.

Change-Id: I03d42d1dc53b461d5056298072a8c28b9418ee14
2026-05-05 13:38:04 +05:30
Sughosha 104d503e0c gnu: carla-2.6: Update to 2.6.0-1.294a801.
* gnu/packages/audio.scm (carla-2.6): Update to 2.6.0-1.294a801.
[inputs]: Replace python-pyqt with python-pyqt-6, qtbase-5 with qtbase, and
qtwayland-5 with qtwayland.

Change-Id: Ibcbb19a3d225a1d7d14b094f2a89e505f48575d7
2026-05-05 13:38:04 +05:30
Sughosha e4f9aaba79 gnu: carla: Fix lint warnings.
* gnu/packages/audio.scm (carla)[inputs]: Add bash-minimal.

Change-Id: If7e2c9441d6501b300a96352dfb9e01171699c02
2026-05-05 13:38:03 +05:30
Sughosha 0861076552 gnu: Add ringbuffer.
* gnu/packages/cpp.scm (ringbuffer): New variable.

Change-Id: Ic253a4870a1caa526f7107a9cc215699dd7a0e0c
2026-05-05 13:38:03 +05:30
Sughosha ba3368fcc7 gnu: Add hiir.
* gnu/packages/audio.scm (hiir): New variable.

Change-Id: I0187592634abd4d5079399a69b29812c8a8086cb
2026-05-05 13:38:03 +05:30
Sughosha 39acd8021b gnu: Add adplug.
* gnu/packages/audio.scm (adplug): New variable.

Change-Id: I7bc0d6600a7620f90f8b24cb5f2b931a4d65c637
2026-05-05 13:38:03 +05:30
Sughosha 48dda27f41 gnu: Add libbinio.
* gnu/packages/cpp.scm (libbinio): New variable.

Change-Id: Iacb0532f7f9fcce7e554297f1718c735332a17c9
2026-05-05 13:38:03 +05:30
Andy Tai f3145603c8 gnu: parted: Update to 3.7.
* gnu/packages/disk.scm (parted): Update to 3.7.
  [native-inputs]: Add pkg-config.

Change-Id: I6df17b84d9b00684a382862c837363cb536036a4
Merges: https://codeberg.org/guix/guix/pulls/7812
Reviewed-by: moksh <mysticmoksh@riseup.net>
Reviewed-by: Yelninei <yelninei@tutamail.com>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-05 16:59:34 +09:00
Cayetano Santos 4393dbcfd5 gnu: emacs-gptel: Update to 0.9.9.5.
* gnu/packages/emacs-xyz.scm (emacs-gptel): Update to 0.9.9.5.
[arguments]: Simplify ’unpack-tests #:phase.
[native-inputs]: Update emacs-gptel-test-files.

Change-Id: I5b7ca55859dbd93ef02aa1a6ee608fd739b9ddb4
2026-05-05 09:17:00 +02:00
Yappaholic a11eeeaf63 gnu: lua-luv: Update to 1.44.2-0
* gnu/packages/lua.scm (make-lua-luv): Update to 1.44.2-0.

Merges: https://codeberg.org/guix/guix/pulls/8251
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-05 15:59:13 +09:00
Junker 49613fb544 gnu: Add wp-notifyd.
* gnu/packages/audio.scm (wp-notifyd): New variable.

Change-Id: I2bb54497c84659b200cce6d1760979b2ddf85191
Signed-off-by: Sughosha <sughosha@disroot.org>
2026-05-04 21:52:03 +05:30
jgart 3612d6f692 gnu: trealla: Update to 2.94.20.
* gnu/packages/prolog.scm (trealla): Update to 2.94.20.

Change-Id: I02892bfe840be002e9566a9099970aa9563de24a
2026-05-04 10:34:34 -04:00
Christian Birk Sørensen 4939bcf4bb gnu: multitail: Update to 7.1.5
* gnu/packages/logging.scm (multitail): Update to 7.1.5.
  [source]<uri>: Switch back to the original repository.
  [build-system]: Change to cmake-build-system.
  [arguments]<#:phases>: Remove fix-broken-build.

Change-Id: I3164f57341940fc5a49a2713f73557090724be7c
Merges: https://codeberg.org/guix/guix/pulls/4248
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-04 22:14:10 +09:00
Ashish SHUKLA 2dfd0bd450 gnu: sqlite-next: Update to 3.53.0
* gnu/packages/sqlite.scm (sqlite-next): Update to 3.53.0.

Change-Id: Ic623915c7e41236b84b39edf5acf576c6269f4c7
Merges: https://codeberg.org/guix/guix/pulls/7848
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-05-04 22:03:10 +09:00
Liliana Marie Prikler dde0466984 gnu: komikku-servers: Update to 50.3.0.
* gnu/packages/gnome-circle.scm (komikku-servers): Update to 50.3.0.

Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-04 12:17:40 +02:00
Liliana Marie Prikler f8a599ff88 gnu: komikku: Update to 50.3.0.
* gnu/packages/gnome-circle.scm (komikku): Update to 50.3.0.

Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-04 12:17:39 +02:00
Andreas Enge 0ebdc92afc gnu: Remove pcl.
* gnu/packages/c.scm (pcl): Delete variable.

Fixes: guix/guix#7663
Change-Id: Ie64583263e88044283c6ca3cf11700cfd4c5af38
2026-05-04 10:38:27 +02:00
Andreas Enge 23356f4011 gnu: Remove discrover.
* gnu/packages/bioinformatics.scm (discrover): Delete variable.

Fixes: guix/guix#7640
Change-Id: Ic8588831d80485d42e4927a47b2174180a906043
2026-05-04 10:37:05 +02:00
Sughosha ed63b0a031 gnu: ring-racers: Unbundle more third party libraries.
* gnu/packages/games.scm (ring-racers)[source]: Rewrite snippet to also
unbundle discord-rpc, fmt, nlohmann-json, libyuv, stb, tcbrindle_span, vma,
volk, vulkan-headers, and xmp-lite.
[arguments]<#:configure-flags>: Add “-DSRB2_CONFIG_ENABLE_DISCORDRPC=OFF”.
<#:phases>: Add ‘copy-stb_vorbis.c’.
[native-inputs]: Add (package-source stb).
[inputs]: Add fmt, libxmp, nlohmann-json, stb-rect-pack, tcbrindle-span,
vulkan-headers, vulkan-memory-allocator, and vulkan-volk.

Change-Id: I842b5bdd60941ac7c0b003a2456b4fb0addace68
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-04 08:55:25 +02:00
Sughosha 7714e0bfb5 gnu: Add tcbrindle-span.
* gnu/packages/cpp.scm (tcbrindle-span): New variable.

Change-Id: I3d439358a4460765f945390ce509e897713cf69b
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-04 08:55:25 +02:00
Sughosha acc8f821c8 gnu: ring-racers: Fix lint warnings and reorder inputs.
* gnu/packages/games.scm (ring-racers)[inputs]: Reorder.  Add bash-minimal.
[home-page]: Fix permanent redirect.
[description]: Update as per texinfo conventions.

Change-Id: I28808bd4f2139a5f94aa7d2582afdaebe764bb2c
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-04 08:55:25 +02:00
Sughosha e1c5af77b2 gnu: ring-racers: Fix wrapping the binary file.
* gnu/packages/games.scm (ring-racers)[#:phases]<wrap-rpogram>: Use the
“bin/ringracers” located in #$output.

Change-Id: If2c8aca4eef1c4ed622c33abcbdbbd435b1bd0fe
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-04 08:55:25 +02:00
Anderson Torres 2756e884dd gnu: emacs-dired-launch: Update to 0.2-0.97eb002.
* gnu/packages/emacs-xyz.scm(emacs-dired-launch): Update to 0.2-0.97eb002.
[source]: Use git repository.
[#:tests?]: Set as #f.
(emacs-dired-launch-superseded-version): New dummy variable.

Change-Id: Iffe69604cf549b7a7e800d012529c4947d1f85ff
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-05-04 08:55:25 +02:00
Patrick Norton c1fd1e40f6 gnu: gitlogue: Update to 0.9.0.
* gnu/packages/rust-apps (gitlogue): Update to 0.9.0.
* gnu/packages/rust-crates (lookup-cargo-inputs)[gitlogue]: Update
dependencies.

Change-Id: I12a47c93df6f8ed9d37db891fa2289231092d1da
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-05-04 08:20:47 +03:00
Yappaholic c1897da250 gnu: wasm-bindgen-cli: Update to 0.2.120.
* gnu/packages/rust-apps.scm (wasm-bindgen-cli): Update to 0.2.120.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs)[wasm-bindgen-cli]:
Update entry.

Change-Id: I3367a2dce9d472d10b1cc57688e33d726e4d9440
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-05-04 08:14:04 +03:00
Efraim Flashner 6c666986e8 gnu: rust-crates: Adjust indentation.
* gnu/packages/rust-crates.scm: Standardize the indentation.

Change-Id: Idd3206b67763609549811ff4e71eea183c0b0f74
2026-05-04 08:09:08 +03:00
Zhu Zihao 43833afaa1 doc: Document the GUIX_DISTRO_AGE_WARNING environment variable.
* doc/guix.texi: (Invoking guix pull): Add document for the outdate warning.
(GUIX_DISTRO_AGE_WARNING): New environment variable.

Change-Id: Icb4537d59640fd92c0f552a57ba1f5a35d8ebb3d
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2026-05-04 11:36:58 +09:00
Patrick Norton 0ce84291ef gnu: openttd-jgrpp: Update to 0.72.0.
* gnu/packages/games.scm (openttd-jgrpp): Update to 0.72.0.

Change-Id: I07b2679f8380c7dccfa3dc4ddab3e56b8d7fc810
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-05-03 22:51:58 +02:00
Danylo Kondratiev e270413295 gnu: gradia: Update to 1.13.0.
* gnu/packages/image.scm (gradia): Update to 1.13.0.
Run guix style.
[arguments]<#:imported-modules>: Use meson and pyproject modules.
[arguments]<#:modules>: Import meson, pyproject build systems and
modules guix build utils module.
[arguments]<#:phases>: Add python-and-gi-wrap phase and
set-tesseract-and-tessdata-path phase.
[native-inputs]: Add desktop-file-utils, gobject-introspection.
[inputs]: Add bash-minimal, gtksourceview, libportal, libsoup,
python-pillow, python-pycairo, python-pytesseract, tesseract-ocr,
webp-pixbuf-loader.

Change-Id: Ida677975e326d3a2b3f8189c9144d5106326d0d0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8145
2026-05-03 22:45:54 +02:00
Danylo Kondratiev 58c844a1ec gnu: Add python-pytesseract.
* gnu/packages/ocr.scm (python-pytesseract): New variable.

Change-Id: Ie07b76be499b96038d0aac104adb0e237bb8c7f8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2026-05-03 22:45:54 +02:00
Ludovic Courtès 47919d9f99 doc: Fix typo.
This is a followup to 0e18caf221.

* doc/guix.texi (Bootloader Configuration): Change “logo” to singular.

Reported-by: Maxim Cournoyer <maxim@guixotic.coop>
Change-Id: I98c46746e33c0e7a14ebb90919fc28567780aa63
2026-05-03 22:45:54 +02:00
Yelninei c0d0ba76e5 services: syslog: Add pid file option.
Alternative syslogd implementations use a different pid file.

* gnu/services/base.scm: Export all syslog-configuration accessors.
(syslog-configuration): Add pid-file field.
(syslog-shepherd-service-type): Use it.
* doc/guix.texi (syslog-configuration): Document it.

Change-Id: I9be9fc741d98d4f49a37fbcbb2c644db859cadc1
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6096
2026-05-03 22:45:53 +02:00
Charles Roelli 9d0bb1ef26 build: Fix out-of-tree make.
* doc/local.mk (lang_to_texinfo): Refer to .texi files using srcdir.
(xref_command): Reference pre-inst-env using builddir.
($(srcdir)/%D%/guix.%.texi):
($(srcdir)/%D%/guix-cookbook.%.texi):
($(srcdir)/%D%/contributing.%.texi): Refer to source files using srcdir.
* nix/local.mk (etc/guix-gc.timer): Use the name of the prerequisite,
not just its file name.

Change-Id: I247bcd873c8355d0eae07870ec849d2eb8cfa6c5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8267
2026-05-03 22:45:53 +02:00
Ludovic Courtès 2b94e23e7c gnu: ucx, libfabric, openmpi: Remove ROCm support from the default variants.
* gnu/packages/fabric-management.scm (ucx)[inputs]: Remove ‘rocr-runtime’.
[arguments]: Make ‘--with-rocm’ flag conditional.
(ucx-rocm): New variable.
* gnu/packages/linux.scm (libfabric)[inputs]: Remove ‘rocr-runtime’.
(libfabric-rocm): New variable.
* gnu/packages/mpi.scm (openmpi-rocm): Modify the inherited arguments rather
than those of ‘openmpi-5’.  Replace ‘ucx’ and ‘libfabric’ with their ‘-rocm’
variant.

Fixes: guix/guix#7225
Change-Id: I355f38083313680058511f87a7a5d9068134f162
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8188
2026-05-03 22:45:48 +02:00
Patrick Norton a3373301a8 gnu: waybar: Update to 0.15.0.
* gnu/packages/wm.scm (waybar): Update to 0.15.0.

Change-Id: Iaac44d28ceca7f164f4b1c309fafd2e06c0f67c1
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-05-03 22:35:39 +02:00
Patrick Norton 05424e9633 gnu: sgt-puzzles: Update to 20260308.
* gnu/packages/games.scm (sgt-puzzles): Update to 20260308.

Change-Id: Ib106d60cf05a3884c699b4801d02d40c52db6236
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-05-03 22:22:03 +02:00
Johannes Christ 4f73e5570d gnu: openttd: Update to 15.3.
* gnu/packages/games.scm (openttd-engine): Update to 15.3.

Change-Id: Ib32b20bcbad797e6a880e17a4aec32090b4eb13b
Signed-off-by: Noé Lopez <noelopez@free.fr>
2026-05-03 19:49:37 +02:00
Vivien Kraus 589f02e0c5 gnu: speech-dispatcher: Wrap spd-conf.
* gnu/packages/speech.scm (gnu): Import (gnu packages freedesktop).
(speech-dispatcher)[arguments]: Add #:imported-modules and #:modules.
[#:phases]: Add 'wrap-spd-conf.
[inputs]: Remove python-xdg-base-dirs.  Add python-pyxdg.  Upstream always
mentioned PyXDG since version 0.8, and never xdg-base-dirs.

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