Compare commits

...

159 commits

Author SHA1 Message Date
Rutherther
23aa0bedd5
gnu: wlroots: Update to 0.19.1.
* gnu/packages/wm.scm (wlroots): Update to 0.19.1.
(wlroots-0.19): Alias to wlroots.

Change-Id: Ie222ebfc52d36ff8d4ec7580074a8476ae5f5a78
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 17:02:49 -04:00
Rutherther
d74bfe66c1
gnu: scenefx: Use wlroots-0.18.
* gnu/packages/wm.scm (scenefx)[inputs]: Remove wlroots; add wlroots-0.18.

Change-Id: I6d2ec1bc2b9c1a088fc913c6d66b918d41d542bc
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 17:02:47 -04:00
Rutherther
b7b468ee31
gnu: sway: Use wlroots-0.18.
* gnu/packages/wm.scm (sway)[inputs]: Remove wlroots; add wlroots-0.18.

Change-Id: I3f59098af9f128269733f99a80daff2b6f7484a7
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 17:02:46 -04:00
Rutherther
952ba045cc
gnu: zig-wlroots: Use wlroots-0.18.
* gnu/packages/zig-xyz.scm (zig-wlroots)[propagated-inputs]: Remove wlroots; add wlroots-0.18.

Change-Id: I8aa52dcee7e03225819ca34aca3d3fd0bea3769d
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 17:02:45 -04:00
Rutherther
944e93a90c
gnu: wideriver: Update to 1.3.1.
* gnu/packages/wm.scm (wideriver): Update to 1.3.1.
[inputs]: Remove wlroots.

Change-Id: I5642972d1d7afd270e5717fe624418332db291ea
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 17:02:37 -04:00
Rutherther
226ff9fca7
gnu: labwc: Update to 0.9.1.
* gnu/packages/wm.scm (labwc): Update to 0.9.1.
[inputs]: Remove wlroots; add wlroots-0.19.

Change-Id: I481ece0d790c7c96db1490a04e6d299d029244bc
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 17:02:24 -04:00
Rutherther
f0b92a3ce9
gnu: swayfx: Use wlroots-0.18.
* gnu/packages/wm.scm (swayfx)[inputs]: Remove wlroots; add wlroots-0.18.

Change-Id: I921ea79301faf175036744b511aed35fc90d9f0a
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:57:43 -04:00
Rutherther
373d2f76b7
gnu: dwl: Use wlroots-0.18.
* gnu/packages/wm.scm (dwl)[inputs]: Remove wlroots; add wlroots-0.18.

Change-Id: I5555e43722d788d5f9ede5ce3143b54a9dfa4e63
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:57:42 -04:00
Rutherther
5302779055
gnu: fnott: Remove wlroots input.
* gnu/packages/wm.scm (fnott)[inputs]: Remove wlroots.

Change-Id: Id1ea1d5c30539965dfe980cdb899db81e45a00c1
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:57:41 -04:00
Rutherther
3f1b4b63a4
gnu: cage: Use wlroots-0.18.
* gnu/packages/wm.scm (cage)[inputs]: Remove wlroots; add wlroots-0.18.

Change-Id: I8f84f4e5b5e940e8144e04a432bdbb2f97d507ce
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:57:40 -04:00
Rutherther
299d8b2866
gnu: mpvpaper: Remove wlroots input.
mpvpaper doesn't use it, the output is the same with and without
it.

* gnu/packages/video.scm (mpvpaper)[inputs]: Remove wlroots.

Change-Id: I4a740aa3da82f1460380b161ff1dbfc8e5fb0979
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:57:40 -04:00
Rutherther
5da6508f7e
gnu: Add wlroots-0.19.
* gnu/packages/wm.scm (wlroots-0.19): New variable.

Change-Id: Iabd13690e9cafdcf876f4f3d18530fb3d75ae21f
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:57:39 -04:00
Rutherther
314cb4319e
gnu: Add wlroots-0.18.
* gnu/packages/wm.scm (wlroots-0.18): New variable.

Change-Id: I01eda336601fc26a03bb76c407caf95dd4b97a55
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:57:35 -04:00
Maxim Cournoyer
610bbfb4db
gnu: gupnp-av: Update to 0.14.4.
* gnu/packages/gnome.scm (gupnp-av): Update to 0.14.4.

Change-Id: I13cce944540f84f36d888e2266fb70728efecf2e
2025-09-27 16:55:28 -04:00
Maxim Cournoyer
09d546dc55
gnu: python-ufo2ft: Update to 2.33.4.
* gnu/packages/fontutils.scm (python-ufo2ft): Update to 2.33.4.
[arguments]: New field, to skip a few tests.

Change-Id: Iee6630e3ca9f4d6c69dd3a9aae80fef1d90aa7da
2025-09-27 16:55:26 -04:00
Maxim Cournoyer
9bf3b6e335
gnu: python-cu2qu: Update to 1.6.7.post2.
* gnu/packages/fontutils.scm (python-cu2qu): Update to 1.6.7.post2.

Change-Id: I1dd2a69912ac8c64dfd349695ee0713e51aefd33
2025-09-27 16:55:25 -04:00
Maxim Cournoyer
282c1098d1
gnu: python-afdko: Update to 4.0.2.
* gnu/packages/fontutils.scm (python-afdko): Update to 4.0.2.

Change-Id: I4c05f1100d80cbbd2b542cbdc537d7ab8373847a
2025-09-27 16:55:24 -04:00
Maxim Cournoyer
5eccc6e725
gnu: python-cffsubr: Update to 0.3.0.
* gnu/packages/fontutils.scm (python-cffsubr): Update to 0.3.0.

Change-Id: I452751aa6f2eea2cb4332f6d162b06d10d7c411e
2025-09-27 16:55:23 -04:00
Maxim Cournoyer
1ed0252645
gnu: python-afdko-3.6.1: Skip extra tests.
* gnu/packages/fontutils.scm (python-afdko-3.6.1)
[#:phases] {check}: Ignore proofpdf_test tests, newly failing due to libxml2
update.

Change-Id: Ia951573cfc54b25462bc38a3d29ee45275a3e91d
2025-09-27 16:55:22 -04:00
Maxim Cournoyer
fdaea945c9
gnu: python-lxml-4.9: Disable test suite.
* gnu/packages/xml.scm (python-lxml-4.9) [#:tests?]: Set to #f.
[#:phases] {check}: Delete.

Change-Id: I1e984f27598ed7dfd694712bb609b4d6a2ab242c
2025-09-27 16:55:21 -04:00
Maxim Cournoyer
c254d4a5e1
gnu: python-ufolib2: Update to 0.18.1.
* gnu/packages/fontutils.scm (python-ufolib2): Update to 0.18.1.

Change-Id: I598c2589f515cd4b0eef733b84491b64d77258ab
2025-09-27 16:55:20 -04:00
Maxim Cournoyer
75b2594014
gnu: python-defcon-bootstrap: Update to 0.12.2.
* gnu/packages/fontutils.scm (python-defcon-bootstrap): Update to 0.12.2.
Make hidden.
(python-defcon): Un-hide.

Change-Id: I107b1d40bd94c98bc14e81a052d28a8508eb2959
2025-09-27 16:55:19 -04:00
Maxim Cournoyer
fe875d5317
gnu: python-fontparts-bootstrap: Update to 0.13.3.
* gnu/packages/fontutils.scm (python-fontparts-bootstrap): Update to 0.13.3.
[source]: Adjust URI.
[native-inputs]: Remove unzip.

Change-Id: I81096277898f8b337bdb54fc23d3b8ac433b6426
2025-09-27 16:55:18 -04:00
Maxim Cournoyer
615efa47f2
gnu: python-booleanoperations: Update to 0.9.0.
* gnu/packages/graphics.scm (python-booleanoperations): Update to 0.9.0.
[#:modules, #:test-flags]: New arguments.
[native-inputs]: Delete unzip.

Change-Id: If4c4f36545f90b8d76d1a6a8c214aeaaa0841a58
2025-09-27 16:55:17 -04:00
Maxim Cournoyer
df5e971801
gnu: python-unicodedata2: Update to 16.0.0.
* gnu/packages/python-xyz.scm (python-unicodedata2): Update to 16.0.0.

Change-Id: Ia3edef9c5ada75b2c85727be3b55db4ab2bc7b44
2025-09-27 16:55:16 -04:00
Maxim Cournoyer
947eda0aba
gnu: harfbuzz: Update to 11.4.4.
* gnu/packages/gtk.scm (harfbuzz): Update to 11.4.4.

Change-Id: I0716fcaee731e062a250b5c9d4a04a433f2310b0
2025-09-27 16:55:15 -04:00
Maxim Cournoyer
728a0a1e6c
gnu: python-fonttools-minimal: Update to 4.59.2.
* gnu/packages/python-xyz.scm (python-fonttools-minimal): Update to 4.59.2.
[native-inputs]: Delete field.
(python-fonttools) [#:phases] {check}: Adjust.

Change-Id: Iaa4569e734956ff65dcd0bd6d8ed712858ee493c
2025-09-27 16:55:14 -04:00
John Kehayias
cb29f53da4
gnu: r-xml2: Update to 1.4.0.
* gnu/packages/cran.scm (r-xml2): Update to 1.4.0.

Change-Id: I4ec43f8e2b660086c16bd3c4479d071ee0fbec9d
2025-09-27 16:55:13 -04:00
Rutherther
733584d44f
gnu: mpv: Patch removed constants from ffmpeg 8.0.
MPV 0.40.0 didn't remove deprecated constants. Those
constants were removed in ffmpeg 8.0. Mpv is not planning
on releasing a patch release any time soon.

* gnu/packages/patches/mpv-0.40.0-fix-ffmpeg-8.0.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/video.scm (mpv)<source>[patches]: Apply it.

Change-Id: Id48bf513e6c80b59ae2bb167e7e98e41d5efad6f
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:55:12 -04:00
Maxim Cournoyer
babd4f920a
gnu: libmusicbrainz: Update to 5.1.0-0.4efbed3.
* gnu/packages/music.scm (libmusicbrainz): Update to 5.1.0-0.4efbed3.
[#:phases]: Delete trailing #t.

Change-Id: Ia256588bac3d618e90960783a0fec94f0bdabf67
2025-09-27 16:55:12 -04:00
John Kehayias
3eb7f36f4d
gnu: python-beautifulsoup4: Update to 4.13.5.
* gnu/packages/python-xyz.scm (python-beautifulsoup4): Update to 4.13.5.

Change-Id: Ie1786b0b16b4332ea6295a3ecea83540dbab82cc
2025-09-27 16:55:10 -04:00
Sergey Trofimov
afcc9734d4
gnu: sane: Update to 1.4.0.
* gnu/packages/scanner.scm (sane): Update to 1.4.0.

Change-Id: I6c0d98de464c38d5c326a7f8346ca03a2be6a34c
2025-09-27 16:55:09 -04:00
Sergey Trofimov
0df6bbf58c
gnu: sane-airscan: Update to 0.99.36.
* gnu/packages/scanner.scm (sane-airscan): Update to 0.99.36.

Change-Id: I1e5227d2ff2e4578531bcb7051ad9d7f94d3b323
2025-09-27 16:55:08 -04:00
Sergey Trofimov
db64e4e073
gnu: Replace usages of sane-backends with sane.
Replacement done using:
find gnu/packages -name '*.scm' -print0 | xargs -0 sed -ri \
  -e 's/"sane-backends" ,sane-backends/"sane" ,sane/' \
  -e 's/(list[^"]+sane)-backends/\1/' \
  -e 's/^( +sane)-backends/\1/'

* gnu/packages/hardware.scm (hw-probe)[inputs]:
* gnu/packages/wine.scm (wine)[inputs]:
* gnu/packages/python-xyz.scm (python-sane)[inputs]:
* gnu/packages/ocr.scm (gimagereader)[inputs]:
* gnu/packages/libreoffice.scm (libreoffice)[inputs]:
* gnu/packages/kde.scm (ksanecore)[inputs]:
* gnu/packages/gnome.scm (simple-scan, ocrfeeder, colord)[inputs]:
* gnu/packages/scanner.scm (scanbd, xsane, sane-airscan)[inputs]:
Replace sane-backends with sane.

Change-Id: If995e846ed4f53a740119b362e07c36c90a621cb
2025-09-27 16:55:07 -04:00
Sergey Trofimov
d087319ece
gnu: scanbd: Format inputs.
* gnu/packages/scanner.scm (scanbd)[inputs]: Use new format.

Change-Id: I82d4d013b93cf445056bfe3a0c78addef367b0db
2025-09-27 16:55:06 -04:00
Sergey Trofimov
6ff6fc52c9
gnu: sane-backends: Remove hplip dependency.
* gnu/packages/scanner.scm (sane-backends)[inputs]: Omit hplip.
[arguments]: Remove hplip phases.
* gnu/services/desktop.scm (lift-sane-configuration): Warn user that
hplip needs to be explicitly enabled in sane-configuration.

Change-Id: I05ffc3a2d04c5ee3da2739b68085557ff791814f
2025-09-27 16:55:05 -04:00
Sergey Trofimov
2c48201171
gnu: hplip: Make SANE backend truly pluggable.
* gnu/packages/cups.scm (hplip)[#:phases]
<move-sane-config-to-dll.d>: Fix dynamic loading.

Change-Id: I5ae3edabf8ccb87d547990f641fe42d2260e9080
2025-09-27 16:55:04 -04:00
Sergey Trofimov
ff1b1387dd
services: sane: Support pluggable backends.
* gnu/services/desktop.scm (sane-configuration): New record.
(sane-service-type): Add native search paths to environment.

Change-Id: Ia7b66b62cf027200dd94533f32c1e4bc0ed373d3
2025-09-27 16:55:03 -04:00
Sergey Trofimov
9f1105ec50
gnu: sane-backends-minimal: Rename to sane.
sane-backends-minimal contains helper programs and library files, but
none of the backends. Renaming the package to avoid confusion.

* gnu/packages/scanner.scm (sane-backends-minimal): Rename to...
(sane): ... this.
(utsushi, hplip, hplip-minimal)[inputs]: Replace sane-backends-minimal
with sane.

Change-Id: If987248f0ad8ac7041454a164d905c1c069242b7
2025-09-27 16:55:02 -04:00
Sergey Trofimov
d186087f96
gnu: sane-backends-minimal: Respect backend search paths.
SANE's dynamic loading mechanism looks for configs in SANE_CONFIG_DIR,
and the libraries are expected to be either in LD_LIBRARY_PATH or in the
LIBDIR, which is set during the build to $PREFIX/lib/sane. A small patch
is necessary to make SANE respect backend search paths set by Guix.

* gnu/local.mk: Register sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch
* gnu/packages/scanner.scm (sane-backends-minimal): Patch dynamic
loading mechanism to look for libraries in SANE_BACKEND_LIB_PATH.

Change-Id: I132a709d171331d249acfe2fd1242dae43867ae8
2025-09-27 16:55:01 -04:00
John Kehayias
d89c360134
gnu: python-fonttools: Fix build.
* gnu/packages/python-xyz.scm (python-fonttools)[propagated-inputs]: Change
python-lxml-4.9 to python-lxml.

Change-Id: I5fb32f3cd02dd7d9d537a7464bf0bcc5f0088f93
2025-09-27 16:55:00 -04:00
Ada Stevenson
ac669a791e
gnu: gegl: Fix build (re-enable dependency fallbacks).
* gnu/packages/gimp.scm (gegl)[arguments]<#:configure-flags>: Add
"--wrap-mode=nodownload".

Change-Id: I25440fde9a7bd20692fda7fbc83818263535df4c
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:54:59 -04:00
John Kehayias
2c439691a6
gnu: emacs-minimal: Fix test.
The included patch is already done upstream, just after the 30.2 release.

* gnu/packages/emacs.scm (emacs-minimal)[source]: Add patch.
* gnu/packages/patches/emacs-zoom-image-test-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I0134ec90a03f8757b4247b5aea0853752b67daef
2025-09-27 16:54:58 -04:00
John Kehayias
63e393e4ac
gnu: libosinfo: Fix build with newer libxml2.
* gnu/packages/virtualization.scm (libosinfo)[source]: Add patch.
* gnu/packages/patches/libosinfo-libxml2-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I31377cf36b92562d9a87e6434cf30a01f5d3dcb2
2025-09-27 16:54:57 -04:00
John Kehayias
610ba732cd
gnu: tracker: Fix build (re-enable dependency fallbacks).
* gnu/packages/gnome.scm (tracker)[arguments]<#:configure-flags>: Add
"--wrap-mode=nodownload".

Change-Id: I84a7cfb5cd301cde395e82863283e23bb364ac70
2025-09-27 16:54:56 -04:00
Liliana Marie Prikler
878bdee0fd
gnu: python-gst: Update to 1.26.3.
* gnu/packages/gstreamer.scm (python-gst): Update to 1.26.3.
[propagated-inputs]: Add gst-plugins-bad and gst-rtsp-server.

(cherry picked from commit 71c8e360f6)
2025-09-27 16:54:52 -04:00
Liliana Marie Prikler
7d7c26f565
gnu: Add gst-rtsp-server.
* gnu/packages/gstreamer.scm (gst-rtsp-server): New variable.

(cherry picked from commit 2605aa6323)
2025-09-27 16:54:51 -04:00
Liliana Marie Prikler
f727493e7e
gnu: gst-editing-services: Update to 1.26.3.
* gnu/packages/gstreamer.scm (gst-editing-services): Update to 1.26.3.

(cherry picked from commit 64c4c8d384)
2025-09-27 16:54:50 -04:00
Liliana Marie Prikler
00372cebce
gnu: gst-libav: Update to 1.26.3.
* gnu/packages/gstreamer.scm (gst-libav): Update to 1.26.3.

(cherry picked from commit 2c9e1edfe4)
2025-09-27 16:54:49 -04:00
Liliana Marie Prikler
e404ef8a54
gnu: gst-plugins-ugly: Update to 1.26.3.
* gnu/packages/gstreamer.scm (gst-plugins-ugly): Update to 1.26.3.

(cherry picked from commit 2ecf2f0892)
2025-09-27 16:54:48 -04:00
Liliana Marie Prikler
6603397aa3
gnu: gst-plugins-bad: Update to 1.26.3.
* gnu/packages/gstreamer.scm (gst-plugins-bad): Update to 1.26.3.
[adjust-tests]: Also disable “elements_vkcolorconvert” and “elements_vkupload”.

(cherry picked from commit 82e2d85db5)
2025-09-27 16:54:47 -04:00
Liliana Marie Prikler
9a6c7d33cd
gnu: gst-plugins-good: Update to 1.26.3.
* gnu/packages/gstreamer.scm (gst-plugins-good): Update to 1.26.3.

(cherry picked from commit e154bdc69b)
2025-09-27 16:54:46 -04:00
Liliana Marie Prikler
e641e26162
gnu: gst-plugins-base: Update to 1.26.3.
* gnu/packages/gstreamer.scm (gst-plugins-base): Update to 1.26.3.

(cherry picked from commit 8c82fb2fa3)
2025-09-27 16:54:45 -04:00
Liliana Marie Prikler
43ab261e30
gnu: gstreamer: Update to 1.26.3.
* gnu/packages/gstreamer.scm (gstreamer): Update to 1.26.3.

(cherry picked from commit 27ae993a06)
2025-09-27 16:54:44 -04:00
Liliana Marie Prikler
ad562b78c3
gnu: gstreamer-docs: Update to 1.26.3.
* gnu/packages/gstreamer.scm (gstreamer-docs): Update to 1.26.3.

(cherry picked from commit 413d5f948b)
2025-09-27 16:54:43 -04:00
John Kehayias
049e2bb30f
gnu: libzmf: Fix build with newer doxygen.
* gnu/packages/libreoffice.scm (libzmf)[source]: Add patch.
* gnu/packages/patches/libzmf-doxygen-1.14.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: Iced77d86eb5ed92d379cc9668182299dd865a5d4
2025-09-27 16:54:42 -04:00
John Kehayias
f79cc8d62b
gnu: raptor2: Fix build.
* gnu/packages/rdf.scm (raptor2)[source]: Add patch.
* gnu/packages/patches/raptor2-libxml2.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I690a6a9120692f81f68e20e3b0fdc96f04fbfb32
2025-09-27 16:54:41 -04:00
John Kehayias
dcc14005b3
gnu: liblangtag: Update to 0.6.7.
* gnu/packages/libreoffice.scm (liblangtag): Update to 0.6.7.

Change-Id: I53a382d3c5784240a941c85f3efc29612655b4df
2025-09-27 16:54:40 -04:00
John Kehayias
33a360ddae
gnu: gtk+: Fix build on i686-linux.
Looks like the (graft) update to gtk+ to 3.24.49 never built on i686-linux due
to a failing test.  It is unclear why, but since we use an old librsvg on this
platform compared to x86_64, that is a major difference in the build/tests.

* gnu/packages/gtk.scm (gtk+)[arguments]<#:phases>: Skip the linear-gradient
on i686-linux.

Change-Id: I61e2fccaeaa92889c5519ad7845483f0e6a6715f
2025-09-27 16:54:39 -04:00
John Kehayias
958b9db1cc
gnu: librsvg-2.40: Fix build.
* gnu/packages/gnome.scm (librsvg-2.40)[inputs]: Replace libxml2 with libxml2-2.11.
* gnu/packages/xml.scm (libxml2-2.11): New variable.
(libxml2): Remove outdated comment.

Change-Id: I7080f39aab81ca104836b64dd1f7c10d14157e81
2025-09-27 16:54:38 -04:00
John Kehayias
a9ad24eb9a
gnu: mariadb: Update to 10.11.14.
* gnu/packages/databases.scm (mariadb): Update to 10.11.14.

Change-Id: Iea635acff6b89f9be23f0ce4ba255ef322eb8643
2025-09-27 16:54:37 -04:00
John Kehayias
f5ac2ac784
gnu: gtk-doc: Fix test.
* gnu/packages/gtk.scm (gtk-doc)[source]: Add patch.
* gnu/packages/patches/gtk-doc-mkhtml-test-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: Ie1cc25bbef294755534db00380b880719c9ee9ff
2025-09-27 16:54:35 -04:00
John Kehayias
a9abdb81ee
gnu: inkscape/pinned: Fix build.
* gnu/packages/inkscape.scm (inkscape/pinned)[source]: Add patch.
* gnu/packages/patches/inkscape-libxml2.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I90394818c66093e8989a32905ddc69dad117f8c7
2025-09-27 16:54:34 -04:00
Liliana Marie Prikler
6dffabe40f
mesa: Re-enable dependency fallbacks.
* gnu/packages/gl.scm (mesa)[#:configure-flags]: Add “--wrap-mode=nodownload”.

(cherry picked from commit f0b058a541)
2025-09-27 16:54:33 -04:00
John Kehayias
6a5eb13d31
gnu: mesa: Update to 25.2.3.
* gnu/packages/gl.scm (mesa): Update to 25.2.3.

Change-Id: I28cee586fc49ba5aad9fa362260357e96d76977f
2025-09-27 16:54:32 -04:00
Sharlatan Hellseher
6d68d18446
gnu: meson: Update to 1.9.0.
* gnu/packages/build-tools.scm (meson): Update to 1.9.0.
[build-system]: Use pyproject.
[native-inputs]: Add python-setuptools.
[#:phases]: Adjust 'wrap phase for pyproject-build-system.
(meson-1.8): Remove variable.
* gnu/packages/gl.scm (mesa)[arguments]: Remove #:meson.

Co-authored-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Co-authored-by: Dariqq <dariqq@posteo.net>
Change-Id: I31932f24d1a54b8c79987296daaeb5a5285a8344
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Co-authored-by: John Kehayias <john@guixotic.coop>
(cherry picked from commit 3bcc621b2f)
2025-09-27 16:54:31 -04:00
Maxim Cournoyer
2a973bb9d6
build-system/meson: Make build verbose.
It's useful to see the link directives and other options passed to the
compiler when debugging build issues.

* guix/build/meson-build-system.scm (build): Invoke ninja with its --verbose
option.

Change-Id: Iab11eeb29351a1d6a954576e3a916e2d536058d9
(cherry picked from commit d9b9670b05)
2025-09-27 16:54:30 -04:00
Dariqq
d69a4706aa
build-system: meson: Set default wrap-mode to nofallback.
Fixes guix/guix#1162.

This solves two issues: Not having to wait for the network timeout (same as the
nodownload) option and also disabling meson to fall back to predownloaded
subprojects.

If desired, this behaviour can be overridden by adding --wrap-mode=MODE to #:configure-flags.

* guix/build/meson-build-system.scm (configure): Add --wrap-mode=nofallback.

Change-Id: Ibf1d6ac60a4c47cd71574a96ceb8773e6d8cf60b
(cherry picked from commit fe8dded27f)
2025-09-27 16:54:29 -04:00
Sergey Trofimov
1a4baddc0b
gnu: cups: Don't enforce root ownership on supplementary files.
Printers managed by CUPS might require supplementary files to function,
such as color profiles or filters. CUPS checks permissions on such files
to prevent the execution of unsafe code. One of the conditions-that the
files are owned by root-must be short-circuited on Guix, because this
condition cannot be met on a system with an unprivileged daemon (where
store files are owned by `guix-daemon`).

* gnu/packages/patches/cups-relax-root-ownership-check.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/cups.scm (cups)[source]: Include it.

Change-Id: I77f67f996d057a34bd018ab97cda54577060b0c3
Signed-off-by: John Kehayias <john@guixotic.coop>
2025-09-27 16:54:28 -04:00
John Kehayias
4fb51864d8
gnu: libxkbcommon: Update to 1.11.0.
* gnu/packages/xdisorg.scm (libxkbcommon): Update to 1.11.0.
[source]: Use git-fetch instead of url-fetch.
[native-inputs]: Add xorg-server-for-tests and xkbcomp.  Reformat.
[arguments]<#:configure-flags>: Add flag to enable docs.
(libxkbcommon-1.5, libxkbcommon-1.8): Remove variables.
* gnu/packages/terminals.scm (foot)[inputs]: Use libxkbcommon instead of
libxkbcommon-1.8.

Change-Id: I0e4ce4cab04c059916ea7dddd31d2780c7b49b26
2025-09-27 16:54:27 -04:00
John Kehayias
730f73121d
gnu: cups: Update to 2.4.14 [security-fixes].
Fixes CVE-2025-58060 and CVE-2025-58364.

* gnu/packages/cups.scm(cups): Update to 2.4.14.
[source]: Drop unneeded patch.
* gnu/packages/patches/cups-minimal-Address-PPD-injection-issues.patch: Remove
it.
* gnu/local.mk (dist_patch_DATA): Deregister it.

Change-Id: I719e568716c8739aca16c6ebc29f50c7d2ac83bc
2025-09-27 16:54:26 -04:00
John Kehayias
f24bad2890
gnu: doxygen: Update to 1.14.0.
* gnu/packages/documentation.scm (doxygen): Update to 1.14.0.
[arguments]<#:phases>: Rename disable-bibtex-test to disable-some-tests and
disable a failing test (reported upstream).

Change-Id: I2402138cb20916601adbc88ba9a769520d673f7f
2025-09-27 16:54:25 -04:00
John Kehayias
6b77af7b9b
gnu: python-lxml: Update to 6.0.1.
* gnu/packages/xml.scm (python-lxml): Update to 6.0.1.

Change-Id: Iab60f97a74c804e17fd2f2adf326d8a098c06ef0
2025-09-27 16:54:24 -04:00
John Kehayias
cff4b49212
gnu: automake: Skip some tests.
These tests fail for unknown reasons locally (even on master, without the
changes from this mesa-updates branch) though presumably pass on some machines
since there are substitutes available.  It appears to be non-deterministic.

See discussion at <https://codeberg.org/guix/guix/issues/1257>.

* gnu/packages/autotools.scm (automake)[arguments]<#:phases>: Skip some
tests.

Change-Id: I87099386483efdbb62e42251298f0995f3967179
2025-09-27 16:54:23 -04:00
John Kehayias
12d1567fcb
gnu: libxslt: Update to 1.1.43 [security-fixes].
The following CVEs were fixed:

- CVE-2025-24855: Fix use-after-free of XPath context node
- CVE-2024-55549: Fix UAF related to excluded namespaces

Additionally, a patch from Debian for generated IDs and reproduciblity no
longer applies cleanly and is likely problematic or (partially?) unneeded.
See <https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=902051> for the latest.

* gnu/packages/xml.scm (libxslt): Update to 1.1.43.
(source): Remove patch.
* gnu/packages/patches/libxslt-generated-ids.patch: Delete it.
* gnu/local.mk (dist_patch_DATA): Unregister it.

Change-Id: Ia10d906bab090792d28524beda6aca79a5a21684
2025-09-27 16:54:22 -04:00
John Kehayias
b28307bdf9
gnu: coreutils: Skip a test.
This test fails on btrfs more generally, not only on hurd.

* gnu/packages/base.scm (coreutils)[arguments]<#:phases>: Skip the
reflink-auto test unconditionally.

Change-Id: I27c4750f848a6b4c3c251614d95aefe41efe5d81
2025-09-27 16:54:21 -04:00
John Kehayias
b0b8ecbfff
gnu: libx11: Update to 1.8.12.
* gnu/packages/xorg.scm (libx11): Update to 1.8.12.

Change-Id: I42986033bde1534e09a0f027c3599ed4142ff9c0
2025-09-27 16:54:20 -04:00
John Kehayias
5e34f2ce35
gnu: libxml2: Update to 2.14.6; deprecate python-libxml2.
Python bindings for libxml2 are now built as part of libxml2; remove all
python-libxml2 inputs for libxml2 (nearly all already had libxml2) and
deprecate the package.  This was done manually using

git grep python-libxml2 gnu/packages

to find affected packages and then check all their input fields.

With the update to libxml2, we can remove all the libxml2-next* variants.
This change was automated with:

git grep -rl libxml2-next | xargs sed -i 's/\(libxml2-next\|libxml2-next-for-grafting\)/libxml2/g'

* gnu/packages/xml.scm (libxml2): Update to 2.14.6.
[arguments]<#:phases>: Add configure-python phase (from python-libxml2).
[native-inputs]: Add pkg-config and python-minimal.
(libxml2-next, libxml2-next/fixed, libxml2-next-for-grafting): Remove.
(python-libxml2): Deprecate in favor of libxml2.

Change-Id: I2976f2fde086e9bc345d661edbdc125abbb7a753
2025-09-27 16:54:18 -04:00
John Kehayias
1eb1277f56
gnu: rest: Ungraft.
* gnu/packages/gnome.scm (rest)[replacement]: Remove.
[propagated-inputs]: Replace libxml2 with libxml2-next-for-grafting.
(rest/fixed): Remove.

Change-Id: Ib203ef0697419558c0be0ba2e844293aa20a6061
2025-09-27 16:54:17 -04:00
John Kehayias
875e19dda2
gnu: gtk+: Ungraft.
* gnu/packages/gtk.scm (gtk+): Update to 3.24.43.
[replacement]: Remove.
[source]: Use git-fetch.
[arguments]<#:phases>: Add some test to disable-failing-tests phase.
(gtk+/fixed): Remove.

Change-Id: Ia34ac538f36424748e0a813cfc4e0dad2d643d0b
2025-09-27 16:54:16 -04:00
John Kehayias
e991da5eaf
gnu: wget: Ungraft.
* gnu/packages/wget.scm (wget): Update to 1.25.0.
[replacement]: Remove.
(wget/fixed): Remove.

Change-Id: Ib3798d67bc293295a0480e2db36de98e1ce7edea
2025-09-27 16:54:15 -04:00
John Kehayias
3cb17be21d
gnu: pixman: Update to 0.46.4.
Upstream no longer uses autotools so we build with meon-build-system now.  The
configure flag to not build a static output is no longer supported and even
though it was used previously, there was still a static library built.
Finally, the gnuplot configure flag is also removed, per
<https://issues.guix.gnu.org/69962>.

* gnu/packages/xdisorg.scm (pixman): Update to 0.46.4.
[build-system]: Switch to meson-build-system.
[arguments]<#:configure-flags>: Rewrite with gexp and for meson.  Remove
"--disable-static" as it is not a supported flag.  Remove "--enable-gnuplot"
flag.
[inputs, native-inputs]: Remove.
[home-page]: Use https URL.

Change-Id: I6bc17761ce96de9ef17bb8b420b8570d1ea11e07
2025-09-27 16:54:14 -04:00
Maxim Cournoyer
6f138f0f16
gnu: ffmpeg: Update to 8.0.
* gnu/packages/video.scm (ffmpeg-7): Replace with...
(ffmpeg): ... this updated version.
(ffmpeg): Adjust to use ffmpeg.
(ffmpeg-jami): Stay on ffmpeg-6.
* gnu/packages/tor-browsers.scm (make-torbrowser): Likewise.
* gnu/packages/python-xyz.scm (python-av): Likewise.
* gnu/packages/qt.scm (qtmultimedia): Likewise.

Change-Id: I2d7b1861a647f583da93fe230fd0734742671d4d
2025-09-27 16:54:13 -04:00
Maxim Cournoyer
e166ffb8ad
gnu: mesa: Update to 25.2.2.
* gnu/packages/gl.scm (mesa): Update to 25.2.2.

Change-Id: Iad91783d151000f6a7e43ce5d59f4b9b38aedc45
2025-09-27 16:54:12 -04:00
Cayetano Santos
94d14652d0
gnu: spirv-llvm-translator: Update to 18.1.10.
* gnu/packages/vulkan.scm (spirv-llvm-translator): Update to 18.1.10.
[native-inputs]: Add libffi, pkg-config.

Change-Id: Id7251c3594ae56533b0930f9ecd54d8db88b5ab6
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:11 -04:00
Cayetano Santos
bfbed144f8
gnu: vulkan-memory-allocator: Update to 3.3.0.
* gnu/packages/vulkan.scm (vulkan-memory-allocator)[arguments]: Use
G-Expressions.

Change-Id: I17030138801cb6d1b17cb849275dc0a0269daf4d
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:10 -04:00
Cayetano Santos
bd419c25d0
gnu: vkd3d: Improve style.
* gnu/packages/vulkan.scm (vkd3d)[arguments]: Use G-Expressions.
[native-inputs]: Modernize.

Change-Id: I29d558f777f3bd56e55e8e5872ca7fa291081b0d
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:09 -04:00
Cayetano Santos
76e384e3c1
gnu: vulkan: Update to 1.4.321.0.
* gnu/packages/vulkan.scm (spirv-headers, spirv-tools, spirv-cross,
glslang, vulkan-headers, vulkan-loader, vulkan-tools,
vulkan-validationlayers, vulkan-utility-libraries): Update to 1.4.321.0.

Change-Id: Ia19d8cdec3c3a904326d869a58c6348d4f5c5215
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:08 -04:00
Cayetano Santos
fd815c6c41
gnu: shaderc: Improve style.
* gnu/packages/vulkan.scm (shaderc)[arguments]: Use G-Expressions.

Change-Id: Ifa7b303c173a5093fa7733fa67e09eab1b39d8bd
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:07 -04:00
Cayetano Santos
201518da72
gnu: vulkan-tools: Improve style.
* gnu/packages/vulkan.scm (vulkan-tools): Fix max column.

Change-Id: Ibae23e8eaed1fa6c3f0ea593b4c64330e4037a94
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:06 -04:00
Cayetano Santos
ebc431bb21
gnu: vulkan-validationlayers: Improve style.
* gnu/packages/vulkan.scm (vulkan-validationlayers): Fix max column.

Change-Id: I3a79acbc7c4a36105e27a6dfaba028094a5d5232
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:05 -04:00
Cayetano Santos
b7f51e60ba
gnu: vulkan-loader: Improve style.
* gnu/packages/vulkan.scm (vulkan-loader): Fix max column.

Change-Id: I613ef9c8b87200168af3ab4c0379b0c8b2d09c58
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:04 -04:00
Cayetano Santos
baf0c69497
gnu: glslang: Improve style.
* gnu/packages/vulkan.scm (glslang)[arguments]: Use Gexp.
[native-inputs]: Remove python; add python-minimal.

Change-Id: I7b4f236b984b85d12f76f9d8de2b627e005bd232
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:03 -04:00
Cayetano Santos
f1b290743e
gnu: spirv-cross: Improve style.
* gnu/packages/vulkan.scm (spirv-cross)[arguments]: Use Gexp.
[native-inputs]: Remove python; add python-minimal.

Change-Id: Ia010d51736d099e4a0f983b79e2053bff6a63637
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:02 -04:00
Cayetano Santos
9e44a9d7ff
gnu: spirv-tools: Improve style.
* gnu/packages/vulkan.scm (spirv-tools):[arguments]: Use Gexp.
[native-inputs]: Remove python; add python-minimal.

Change-Id: I91c66e8b196a00f9beb327e440f39d2675964f99
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:54:01 -04:00
John Kehayias
7e30d4db88
gnu: mesa: Update to 25.2.1.
* gnu/packages/gl.scm (mesa): Update to 25.2.1.

Change-Id: I4ee0255e6208b282ccca139c56e051a08170e026
2025-09-27 16:54:00 -04:00
John Kehayias
e0c207194e
gnu: ffmpeg@4: Fix build.
* gnu/packages/video.scm (ffmpeg-4)[arguments]: Add modules.
<#:configure-flags>: Remove flags --enable-libplacebo and --enable-libshaderc.

Change-Id: Ib3b69703f74601b1b632dd7f673c0235f1fb6c79
2025-09-27 16:53:59 -04:00
John Kehayias
51f36c41b9
gnu: ffmpeg@6: Fix build with gcc-14 on i686-linux.
Without turning off this error, the build fails on some Vulkan related code.

* gnu/packages/video.scm (ffmpeg)[arguments]<#:phases>: In
relax-gcc-14-strictness phase, add -Wno-error=int-conversion to CFLAGS.

Change-Id: I3b0d0f5cbc80aae7b4b164b9a17bd0d8804c9fdd
2025-09-27 16:53:58 -04:00
John Kehayias
074fa4b920
gnu: shaderc: Disable tests.
The check phase started failing (after core-updates merge maybe?) as there are
no tests since building them was previously disabled already.

* gnu/packages/vulkan.scm (shaderc)[arguments]: Disable tests.

Change-Id: Ibfa53bd30e90a3b4fd6b5bbed403b8a9aa615e9c
2025-09-27 16:53:57 -04:00
John Kehayias
34bdb9849e
gnu: libinput: Update to 1.29.0.
* gnu/packages/freedesktop.scm (libinput): Update to 1.29.0.

Change-Id: Ib54bd0d7202707852694f875c44c84b90589feac
2025-09-27 16:53:56 -04:00
John Kehayias
ec937a9401
gnu: mesa: Update to 25.2.0.
Note: this is not the first "stable" release, but making this available for
testing as some configuration we used have been dropped upstream.

* gnu/packages/gl.scm (mesa): Update to 25.2.0.
[arguments]<#:meson>: Use meson-1.8.
<#:configure-flags>: Remove osmesa and gallium-xa flags (no longer available).
* gnu/packages/rust-crates.scm (mesa-cargo-inputs): Add rustc-hash.

Change-Id: I36d59582b5d827f78040a248a54fd11e2f982393
2025-09-27 16:53:55 -04:00
John Kehayias
c6bf6665a4
gnu: Add meson-1.8.
* gnu/packages/build-tools.scm (meson-1.8): New variable.

Change-Id: I9895780b41f659d73750519825e7340a1f2911f9
2025-09-27 16:53:54 -04:00
Murilo
f550644d69
gnu: Remove libinput-minimal-next.
* gnu/packages/freedesktop.scm (libinput-minimal-next): Delete variable.

Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2025-09-27 16:53:53 -04:00
Murilo
4d6e9b625b
gnu: hyprland: Build with libinput-minimal.
* gnu/packages/wm.scm (hyprland)[inputs]: Change libinput-minimal-next
to libinput-minimal.

Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2025-09-27 16:53:52 -04:00
Murilo
ac3464fbdd
gnu: libinput: Update to 1.28.1.
* gnu/packages/freedesktop.scm (libinput): Update to 1.28.1.

Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2025-09-27 16:53:51 -04:00
John Kehayias
a060347a46
gnu: mesa: Update to 25.1.6.
* gnu/packages/gl.scm (mesa): Update to 25.1.6.

Change-Id: I42e6d33411aea3876d84477212f5e21fadcf2605
2025-09-27 16:53:50 -04:00
Philipp Berger
f09ae65276
gnu: mesa: Re-enable X11 protocol support for the DRI2 extension.
Starting with Mesa 24.3, X11 protocol support for the DRI2 extension is
no longer enabled by default.  The developers are phasing it out in
favor of DRI3, and have moved it into an optional 'legacy-x11' feature.
Re-enable it to retain hardware acceleration on older systems that do
not support DRI3.

* gnu/packages/gl.el (mesa)[arguments]<#:configure-flags>: Add
'-Dlegacy-x11=dri2'.

Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
2025-09-27 16:53:49 -04:00
Maxim Cournoyer
f5486310de
gnu: wayland: Update to 1.24.0.
* gnu/packages/freedesktop.scm (wayland): Update to 1.24.0.
[arguments] <#:parallel-tests?>: Delete.
* gnu/packages/vulkan.scm (vulkan-tools) [source]: Apply patch.
* gnu/packages/patches/vulkan-tools-wayland-1.24.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I321ec682423cc12f320e56156305992349b4b6c6
2025-09-27 16:53:48 -04:00
Maxim Cournoyer
fbfc2e91d8
gnu: libplacebo: Update to 7.351.0.
* gnu/packages/video.scm (libplacebo): Update to 7.351.0.

Change-Id: I96b5c43f9269e3ce61390118269dadfcca0f3103
2025-09-27 16:53:47 -04:00
Maxim Cournoyer
fe24dc4fb4
gnu: mesa: Update to 25.1.5.
* gnu/packages/gl.scm (mesa): Update to 25.1.5.

Change-Id: Ic05db30a9c4d8ee8c165eb8455c245aa2e2afd85
2025-09-27 16:53:43 -04:00
Maxim Cournoyer
eb9c92ca2f
gnu: vulkan-validationlayers: Update to 1.4.313.0.
* gnu/packages/vulkan.scm (vulkan-validationlayers): Update to 1.4.313.0.

Change-Id: I122d61f1e931ec6624cbf96ed64f585ad92f4789
2025-09-27 16:53:42 -04:00
Maxim Cournoyer
45c2fca5f9
gnu: vulkan-tools: Update to 1.4.313.0.
* gnu/packages/vulkan.scm (vulkan-tools): Update to 1.4.313.0.

Change-Id: Ic96b91a364836a312a1d5f5d58fd2978ac50522a
2025-09-27 16:53:41 -04:00
Maxim Cournoyer
a149f11202
gnu: vulkan-loader: Update to 1.4.313.0.
* gnu/packages/vulkan.scm (vulkan-loader): Update to 1.4.313.0.

Change-Id: I5a969aab936ae40a7694dcc0d92e158d8375290a
2025-09-27 16:53:40 -04:00
Maxim Cournoyer
29fdc9225f
gnu: vulkan-headers: Update to 1.4.313.0.
* gnu/packages/vulkan.scm (vulkan-headers): Update to 1.4.313.0.

Change-Id: Ibed13fb472f5511a8e73625df19058e05b87d78a
2025-09-27 16:53:39 -04:00
Maxim Cournoyer
186c29328a
gnu: shaderc: Update to 2025.3.
* gnu/packages/vulkan.scm (shaderc): Update to 2025.3.

Change-Id: If5ac7736ba1f32ddd24aaba45e179768aa37558f
2025-09-27 16:53:38 -04:00
Maxim Cournoyer
f7a9a6a0fb
gnu: vulkan-utility-libraries: Update to 1.4.313.
* gnu/packages/vulkan.scm (vulkan-utility-libraries): Update to 1.4.313.

Change-Id: Ie7cbeb3393fb3d33859bf3983385961e072025ec
2025-09-27 16:53:37 -04:00
Maxim Cournoyer
fab53dafcc
gnu: spirv-cross: Update to 1.4.313.0.
* gnu/packages/vulkan.scm (spirv-cross): Update to 1.4.313.0.

Change-Id: Idee2fa8bd45d2510990bb0d6ab1f9352094693ef
2025-09-27 16:53:36 -04:00
Maxim Cournoyer
447139611a
gnu: glslang: Update to 1.4.313.0.
* gnu/packages/vulkan.scm (glslang): Update to 1.4.313.0.

Change-Id: Ie3a4168dc4d62846b68b9a1f417edebf7224134f
2025-09-27 16:53:35 -04:00
Maxim Cournoyer
eba72f670f
gnu: spirv-tools: Update to 1.4.313.0.
* gnu/packages/vulkan.scm (spirv-tools): Update to 1.4.313.0.

Change-Id: Id436a37723e3fbc75525877f66bbf092b19db8db
2025-09-27 16:53:34 -04:00
Maxim Cournoyer
1a2e3d9230
gnu: spirv-headers: Update to 1.4.313.0.
* gnu/packages/vulkan.scm (spirv-headers): Update to 1.4.313.0.

Change-Id: Id20c09fad12aad12ca3dd045af0369f63a5ef49d
2025-09-27 16:53:33 -04:00
Maxim Cournoyer
ca535d56a9
gnu: wayland-protocols: Update to 1.45.
* gnu/packages/freedesktop.scm (wayland-protocols): Update to 1.45.

Change-Id: I6855e59a86dec111b45c0e87d6e3fabe62880aa9
2025-09-27 16:53:32 -04:00
Jesse Gibbons
7664921cb8
gnu: ffmpeg-7: Add support for libgme.
* gnu/packages/video.scm (ffmpeg-7) [inputs]: Add libgme.
[configure-flags]: Add "--enable-libgme".

Change-Id: I7af4c2cc3af78a808f3d9b8f8e485d666692701a
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:53:31 -04:00
Maxim Cournoyer
28903a9081
gnu: ffmpeg-7: Enable libplacebo support.
* gnu/packages/video.scm (ffmpeg-7) [inputs]: Add libplacebo.
[configure-flags]: Add --enable-libplacebo.

Change-Id: Ib46d46505417b63d44d28369662617e8ebbf9098
2025-09-27 16:53:30 -04:00
45mg
57060a54ae
gnu: ffmpeg-7: Update to 7.1.1.
* gnu/packages/video.scm (ffmpeg-7): Update to 7.1.1.
[phases] {configure}: Don't expect a space in shebang lines; the spaces
were removed in FFmpeg commit 67e2f8b6bf5a44fa8083f90096de6131601879b4.
[native-inputs]: Replace yasm with nasm.

Change-Id: If774bae60713009d7267332959388002bc47daed
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-27 16:53:29 -04:00
Maxim Cournoyer
ae15c39f03
gnu: ffmpeg-7: Enable vulkan support.
* gnu/packages/video.scm (ffmpeg-7) [native-inputs]: Add vulkan-headers.
[inputs]: Add shaderc, spirv-tools and vulkan-loader.
[configure-flags]: Add --enable-libshaderc and --enable-vulkan.

Change-Id: I469b013f6fc4d85a86004615948d3a03c9c3efde
2025-09-27 16:53:28 -04:00
Maxim Cournoyer
bf209751b3
gnu: ffmpeg: Update to 6.1.2.
* gnu/packages/video.scm (ffmpeg): Update to 6.1.2.

Change-Id: I32ee4ff66f3e8dcf87dbfb373252859bdb1c86d6
2025-09-27 16:53:16 -04:00
Guillaume Le Vaillant
283f64c9bb
gnu: qspectrumanalyzer: Fix build.
* gnu/packages/radio.scm (qspectrumanalyzer)[arguments]: Disable tests.

Change-Id: Ib0d1c87eb12e85a6d2673ebe371a0134eaf88266
2025-09-27 15:10:26 +02:00
Guillaume Le Vaillant
ed91db8a8c
gnu: python-simplesoapy: Fix build.
* gnu/packages/radio.scm (python-simplesoapy)[arguments]: Disable tests.

Change-Id: I634c83eb36cb7072a18b4555c45db5cf51e062cd
2025-09-27 15:08:01 +02:00
Guillaume Le Vaillant
6c859f10ef
gnu: python-qt.py: Fix build.
* gnu/packages/qt.scm (python-qt.py)[arguments]: Disable tests.

Change-Id: I0e224883d7f0e5fb83ff22e882e98930eebb163a
2025-09-27 15:03:30 +02:00
Guillaume Le Vaillant
d505b6fae3
gnu: electron-cash: Fix build.
* gnu/packages/finance.scm (electron-cash)[arguments]: Add
  'relax-requirements' phase.

Change-Id: Ic1e19f2bcdec9b68b35ab8b792f9b9b2a2b52858
2025-09-27 14:35:25 +02:00
John Kehayias
da04b3bb42
gnu: Add python-dotenv-0.13.0.
Old version just for docker-compose until it is updated.  Fixes build for
docker-compose

* gnu/packages/docker.scm (python-dotenv-0.13.0): New variable.
(docker-compose)[inputs]: Use it instead of python-dotenv.

Change-Id: I8efc30ad7d40601bb5ad88e7c56484edb36e328e
2025-09-26 16:57:40 -04:00
John Kehayias
3b55a14377
gnu: Add python-sh-1.
This is just for the old docker-compose we still ship (long pending an update
to Go version), via next commit for an older python-dotenv.

* gnu/packages/python-xyz.scm (python-sh-1): New variable.

Change-Id: Idb2b6d476bb9391d9fd8b71aa0184696f3b45aba
2025-09-26 16:54:38 -04:00
John Kehayias
f5d61ca686
gnu: python-websocket-client-0.59: Fix tests.
* gnu/packages/python-web.scm (python-websocket-client-0.59)[native-inputs]:
Add python-six.

Change-Id: I213b164858db5fe4e8aeea643daf1a1b98998835
2025-09-26 16:54:36 -04:00
Arun Isaac
bb2dacd811
gnu: mumi: Update to 0.14.0.
* gnu/packages/mail.scm (mumi): Update to 0.14.0.
2025-09-26 21:50:17 +01:00
Arun Isaac
3c422c6111
gnu: mumi: Update source URI.
* gnu/packages/mail.scm (mumi)[source]: Update URI.
2025-09-26 21:49:33 +01:00
Andy Tai
f2c9dabec8
gnu: gcal: Update to 4.2.0.
* gnu/packages/gcal.scm (gcal): Update to 4.2.0.
[argument]<#:configure-flags>: Add "-lm".
[native-inputs]: Add pkg-config and check.

Change-Id: Ia67f66b604ab428c8cbe546c47bbcdf7a52dd8de
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:55:09 +02:00
Martin Schitter
abc35bae81
gnu: guile-next: Use codeberg git repository.
Fetch code from the more reliable and faster repository at codeberg.org.

	modified:   gnu/packages/guile.scm

Change-Id: I9340e22abadf80931019acd566a8f4e9701988c0
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:53:39 +02:00
Alissa Istleyeva
8a69897b7e
home: services: Fix binding options in sway-service-type.
* gnu/home/services/sway.scm (keybinding-options?): Add to-code option.
(codebinding-options?): Remove to-code option.

Change-Id: I0a43ccb7d997bb1ba2ec334721a9a7bdd5e5ce91
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:46:19 +02:00
Ludovic Courtès
8f7837e104
gnu: guix-jupyter: Update to 0.3.1.
* gnu/packages/package-management.scm (guix-jupyter): Update to 0.3.1.

Change-Id: I784c1fe10006c587d32b0b0bb1cb0f3677335ca9
2025-09-26 21:43:16 +02:00
Rodion Goritskov
054aae7bb2
services: Add miniflux-service-type.
* doc/guix.texi: Document Miniflux service and configuration.
* gnu/services/web.scm: New service.
* gnu/services/web.scm: Define shepherd service and account roles.
* gnu/tests/web.scm: (%miniflux-create-admin-credentials,
miniflux-base-system, %test-miniflux-admin-string, %test-miniflux-admin-file,
%test-miniflux-socket): Add system tests for Miniflux service.

Change-Id: I4a336e677ec8b46aed632f0ded9cc11c2d38975f
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-26 21:39:40 +02:00
Ludovic Courtès
d411aff611
teams: Adjust team membership for myself.
* etc/teams.scm (civodul): Remove ‘home’, ‘bootstrap’ and ‘documentation’.
Add ‘hpc’.

Change-Id: I7946be1fc59fc292a7b92b92035ccaea722aadc9
2025-09-26 21:35:43 +02:00
Ludovic Courtès
e1038aee6d
gnu: shepherd@1.0: Build against Fibers 1.4.x.
This reinstates 2ba475d37a.

* gnu/packages/admin.scm (shepherd-1.0)[native-inputs, inputs]: Use
‘guile-fibers’.

Change-Id: I4dbbc2d32d114ed9d16a2da4efb831fc2044a314
2025-09-26 21:31:04 +02:00
Ludovic Courtès
55b39642e2
gnu: guile-fibers@1.4: Disable JIT for ‘make check’.
Fixes guix/guix#2474.

* gnu/packages/guile-xyz.scm (guile-fibers-1.4)[arguments]: Add ‘disable-jit’
phase on AArch64.

Change-Id: Idad1a5e1a84d29259bf1ed4a284f9981c50defb8
2025-09-26 21:31:04 +02:00
Sören Tempel
e10da6bff8
gnu: binsec: Enable support for z3-builtin solver.
This is much faster than an external solver as it doesn't rely on
forking an external solver and instead uses the API provided by
ocaml-z3.  This feature was added in binsec release 0.9.1.

* gnu/packages/ocaml.scm (binsec)[propagated-inputs]: Add ocaml-z3.
* gnu/packages/ocaml.scm (binsec)[native-inputs]: Add z3.

Change-Id: I246fd1a13e8c9d6a6764608281a2bea5ac0a054b
Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2025-09-26 21:26:41 +02:00
jgart
67f5f23c88
gnu: trealla: Update to 2.83.9.
* gnu/packages/prolog.scm (trealla): Update to 2.83.9.

Change-Id: I8ca5daedef142f6f88a9f22283a7c0e9a518320a
2025-09-26 11:30:07 -05:00
Sharlatan Hellseher
d4c1dc6df5
gnu: python-argparse-manpage: Update to 4.7.
* gnu/packages/python-xyz.scm (python-argparse-manpage): Update to 4.7.
[source]: Fix uri name as seen in PyPI archive.
[arguments] <test-flags>: Skip tests requiring pip.
[native-inputs]: Remove python-pip, python-tomli, and python-wheel.

Fixes: guix/guix#3015
Change-Id: I10b31aa295bd97673071ecaaecb9895cd4d8a6b0
2025-09-26 17:16:06 +01:00
Sharlatan Hellseher
771659666d
gnu: python-aiorpcx: Fix tests.
* gnu/packages/python-web.scm (python-aiorpcx)[native-inputs]: Remove
python-pytest-asyncio and python-wheel; add python-pytest-asyncio-0.26.

Change-Id: I8acf3eb36a0ab1a41038471456aa15d0fef92cbc
2025-09-26 15:35:27 +01:00
Sharlatan Hellseher
04f3f640a2
gnu: nerd-dictation: Fix tests.
* gnu/packages/machine-learning.scm (nerd-dictation)[arguments]
<test-backend>: Use 'custom.
<test-flags>: Provide the path to test file.
[native-inputs]: Remove python-wheel.

Change-Id: Ia6e2c497ffe9315a87dc20b4d845fea111a144c9
2025-09-26 15:23:45 +01:00
Sharlatan Hellseher
6851e548a3
gnu: epour: Fix bulid.
* gnu/packages/enlightenment.scm (epour)[native-inputs]: Remove
python-setuptools and python-wheel; add python-setuptools-67 and
python-wheel-0.40.

Change-Id: Ia3863aa7f0af1d9e20ae78a875b6108d973ee410
2025-09-26 15:16:00 +01:00
Sharlatan Hellseher
cb2c75aa92
gnu: instantmusic: Update to 1.0-2.0477dd3, fix build.
* gnu/packages/music.scm (instantmusic): Update to 1.0-2.0477dd3.
[arguments] <tests?>: No tests provided.
[native-inputs]: Remove python-wheel.

Change-Id: I928c4cc909b6d57738eb6bd8b0cae7debb53f085
2025-09-26 15:11:24 +01:00
Hugo Buddelmeijer
d59508b9b4
gnu: python-bcbio-gff: Update to 0.7.1.
* gnu/packages/bioinformatics.scm (python-bcbio-gff): Update to 0.7.1.
[source]: Switch to git-fetch.
[arguments] <#:phases>: Enter correct directory.
[propagated-inputs]: Remove python-setuptools and python-wheel.
[native-inputs]: Add python-setuptools.

Change-Id: Ie961c40e9335f31d512e23658cbc3269a61126d0
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-09-26 14:03:31 +01:00
Sharlatan Hellseher
1c22d29388
gnu: efitools: Fix build with gcc-14.
* gnu/packages/efi.scm (efitools):[arguments] <make-flags>: Add options
relaxing GCC 14 strictness.

Fixes: guix/guix#3012
Change-Id: I1466b6ded8039ec222e905554b23e9bf99dba486
2025-09-26 13:58:14 +01:00
Sharlatan Hellseher
56e892e100
gnu: gemma: Refresh package style.
* gnu/packages/bioinformatics.scm (gemma): Apply G-Expressions, remove
trailing #t from procedures and lambdas, fix indentation.
[version]: Remove "v" to improve format, seen in
<https://codeberg.org/guix/guix/pulls/3009#issuecomment-7390966>.
[source] <uri>: Add "v" to {commit} field.
[native-inputs]: Remove labels.

Change-Id: I9c2113dbdc265e3726b548670d450d0cdcbf1bea
2025-09-26 13:00:45 +01:00
Gabriel Santos
593cd7f73f
gnu: Add xiphos.
* gnu/packages/books.scm (xiphos): New variable.
* gnu/packages/patches/xiphos-glib.patch: New file.
* gnu/local.mk (dist_PATCH_DATA): Add it.

Change-Id: I17f3e14c7721887fcb1852e7f07e80fc48d48a79
Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-09-26 13:42:34 +02:00
Hugo Buddelmeijer
d2d02faf18
gnu: reducelcs: Update to latest commit.
* gnu/packages/maths.scm (reducelcs): Update to latest commit.
[source]: Update to latest commit, increase revision to 2.
[arguments]<#:phases>{patch-source}: Remove upstreamed phase.

Change-Id: I3a49a03b8093961d166e2d2350638a0e652de3df
Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-09-26 13:17:22 +02:00
Hugo Buddelmeijer
3c96d9fb1e
gnu: reducelcs: Fix build with gcc-14.
* gnu/packages/maths.scm (reducelcs): Fix build with gcc14.
[origin]: Use git-version and git-file-name.
[arguments]<#:phases>: Add patch-source phase.

Change-Id: I906d899700ec9805c2c4a080cb303c6e9e90a271
Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-09-26 11:24:21 +02:00
宋文武
9a59e74bee
gnu: uxn: Update to 1.0-1.f2e8582.
* gnu/packages/emulators.scm (uxn): Update to 1.0-1.f2e8582.
[arguments]: Adjust install phase.

Change-Id: I24c076aa5eddafd30cc09f4f97c445c4c0994ce9
2025-09-26 17:06:29 +08:00
Gabriel Santos
35892a7a59
gnu: Add font-alcarin-tengwar.
* gnu/packages/fonts.scm (font-alcarin-tengwar): New variable.

Closes: #2850
Change-Id: I803c012dff56f24470db8cd356afca8b0275fee1
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-09-26 16:55:31 +08:00
Cayetano Santos
c04c7442f6
gnu: adaptivecpp: Update to 25.02.0.
* gnu/packages/sycl.scm (adaptivecpp): Update to 25.02.0.
[arguments]<#:phases>{create-symlinks}: New phase.
[inputs]: Add spirv-tools, numactl and libffi.
[native-inputs]: Add python-minimal, clang-19, llvm-19; remove python,
clang-15, llvm-15, spirv-tools.
[synopsys]: Fix max column.

Change-Id: I175287b08a409d4c5a495cd71f81ae11e23950a2
Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-09-26 10:33:45 +02:00
91 changed files with 2484 additions and 1916 deletions

View file

@ -144,6 +144,7 @@ Copyright @copyright{} 2024 Evgeny Pisemsky@*
Copyright @copyright{} 2025 jgart@*
Copyright @copyright{} 2025 Artur Wroblewski@*
Copyright @copyright{} 2025 Edouard Klein@*
Copyright @copyright{} 2025 Rodion Goritskov@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -26956,23 +26957,46 @@ site} for more information.
@defvar sane-service-type
This service provides access to scanners @i{via}
@uref{http://www.sane-project.org, SANE} by installing the necessary
udev rules. It is included in @code{%desktop-services} (@pxref{Desktop
Services}) and relies by default on @code{sane-backends-minimal} package
(see below) for hardware support.
udev rules and pluggable backends. It is included in
@code{%desktop-services} (@pxref{Desktop Services}) and relies by
default on @code{sane-backends} package (see below) for hardware
support.
@end defvar
@defvar sane-backends-minimal
The default package which the @code{sane-service-type} installs. It
supports many recent scanners.
@end defvar
@deftp {Data Type} sane-configuration
Data type representing the configuration for SANE.
@defvar sane-backends
This package includes support for all scanners that
@code{sane-backends-minimal} supports, plus older Hewlett-Packard
scanners supported by @code{hplip} package. In order to use this on
a system which relies on @code{%desktop-services}, you may use
@code{modify-services} (@pxref{Service Reference,
@code{modify-services}}) as illustrated below:
@table @asis
@item @code{sane} (default: @code{sane})
Package containing SANE library.
@item @code{backends} (default: @code{(sane-backends)})
List of packages with pluggable SANE backends:
@itemize @bullet
@item
@code{sane-backends}: The default backend collection which supports many recent scanners,
@item
@code{sane-airscan}: A backend that enables network scanners supporting eSCL (Apple) or WSD,
(Microsoft) protocols
@item
@code{hplip}: A backend containing drivers for older Hewlett-Packard scanners,
@item
@code{utsushi}: A backend containing drivers for older Epson devices.
@end itemize
@end table
@end deftp
In order to use additional backends on a system which relies on
@code{%desktop-services}, you may use @code{modify-services}
(@pxref{Service Reference, @code{modify-services}}) as illustrated
below:
@lisp
(use-modules (gnu))
@ -26986,13 +27010,14 @@ a system which relies on @code{%desktop-services}, you may use
(define %my-desktop-services
;; List of desktop services that supports a broader range of scanners.
(modify-services %desktop-services
(sane-service-type _ => sane-backends)))
(sane-service-type _ =>
(sane-configuration
(backends (list sane-backends sane-airscan))))))
(operating-system
@dots{}
(services %my-desktop-services))
@end lisp
@end defvar
@deffn {Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]
Return a configuration allowing an application to access GeoClue
@ -35700,6 +35725,80 @@ The file which should store the logging output of Agate.
@end table
@end deftp
@subsubheading Miniflux
@cindex miniflux
The @uref{https://miniflux.app/, Miniflux} is a minimalist RSS feed reader
with a web interface.
Depending on the configuration, an initial administrator user can be pre-created
on startup. To enable this, @code{create-admin?} should be set to @code{#t}, and
both @code{admin-username-file} and @code{admin-password-file} should point to
files containing the username and password, respectively. However, it is
recommended to manually change the password to a secure one via the web
UI after the initial service startup.
@defvar miniflux-service-type
This is the type of the Miniflux service. Its value
must be a @code{miniflux-configuration} record as in this example:
@lisp
(service miniflux-service-type
(miniflux-configuration
(listen-address "0.0.0.0:8080")
(base-url "http://my-news-source.test")
(create-administrator-account? #t)
(administrator-account-name "/var/miniflux/initial-admin-username")
(administrator-account-password "/var/miniflux/initial-admin-password")))
@end lisp
The details of the @code{miniflux-configuration} record type are given below.
@end defvar
@deftp {Data Type} miniflux-configuration
Available @code{miniflux-configuration} fields are:
@table @asis
@item @code{listen-address} (default: @code{"127.0.0.1:8080"}) (type: string)
Address to listen on.
Use absolute path like @code{"/var/run/miniflux/miniflux.sock"} for a Unix socket.
@item @code{base-url} (default: @code{"http://127.0.0.1/"}) (type: string)
Base URL to generate HTML links and base path for cookies.
@item @code{create-administrator-account?} (default: @code{#f}) (type: boolean)
Create an initial administrator account.
@item @code{administrator-account-name} (type: maybe-string-or-file-path)
Initial administrator account name as a string or an absolute path
to a file with an account name inside.
@item @code{administrator-account-password} (type: maybe-string-or-file-path)
Initial administrator account password as a string or an absolute path
to a file with a password inside.
@item @code{run-migrations?} (default: @code{#t}) (type: boolean)
Run database migrations during application startup.
@item @code{database-url} (default: @code{"host=/var/run/postgresql"}) (type: string)
PostgreSQL connection string.
@item @code{user} (default: @code{"miniflux"}) (type: string)
User name for Postgresql and system account.
@item @code{group} (default: @code{"miniflux"}) (type: string)
Group for the system account.
@item @code{log-file} (default: @code{"/var/log/miniflux.log"}) (type: string)
Path to the log file.
@item @code{extra-settings} (type: maybe-list)
Extra configuration parameters as a list of strings.
@end table
@end deftp
@node High Availability Services
@subsection High Availability Services

View file

@ -1058,8 +1058,8 @@ the \"texlive\" importer."
(define-member (person "Ludovic Courtès"
"ludo@gnu.org"
"civodul")
core home bootstrap core-packages installer
documentation mentors)
core core-packages hpc installer
mentors)
(define-member (person "Andreas Enge"
"andreas@enge.fr"

View file

@ -168,7 +168,7 @@
(lambda (e)
(or (member e
'("no-warn" "whole-window" "border" "exclude-titlebar"
"release" "locked" "inhibited" "no-repeat"))
"release" "locked" "to-code" "inhibited" "no-repeat"))
(string-prefix? "input-device=" e)))
lst))
@ -177,7 +177,7 @@
(lambda (e)
(or (member e
'("no-warn" "whole-window" "border" "exclude-titlebar"
"release" "locked" "to-code" "inhibited" "no-repeat"))
"release" "locked" "inhibited" "no-repeat"))
(string-prefix? "input-device=" e)))
lst))

View file

@ -1136,7 +1136,7 @@ dist_patch_DATA = \
%D%/packages/patches/csvkit-set-locale-for-tests.patch \
%D%/packages/patches/ctranslate2-local-build.patch \
%D%/packages/patches/cube-nocheck.patch \
%D%/packages/patches/cups-minimal-Address-PPD-injection-issues.patch \
%D%/packages/patches/cups-relax-root-ownership-check.patch \
%D%/packages/patches/cura-engine-gcc-14.patch \
%D%/packages/patches/curl-CVE-2024-8096.patch \
%D%/packages/patches/curl-use-ssl-cert-env.patch \
@ -1228,6 +1228,7 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-telega-path-placeholder.patch \
%D%/packages/patches/emacs-telega-test-env.patch \
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/emacs-zoom-image-test-fix.patch \
%D%/packages/patches/enblend-enfuse-reproducible.patch \
%D%/packages/patches/enjarify-setup-py.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
@ -1553,6 +1554,7 @@ dist_patch_DATA = \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
%D%/packages/patches/gtk-doc-mkhtml-test-fix.patch \
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
@ -1603,6 +1605,7 @@ dist_patch_DATA = \
%D%/packages/patches/idris-test-ffi008.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
%D%/packages/patches/inferno-fix-crash.patch \
%D%/packages/patches/inkscape-libxml2.patch \
%D%/packages/patches/instead-use-games-path.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/inetutils-hurd64.patch \
@ -1674,6 +1677,7 @@ dist_patch_DATA = \
%D%/packages/patches/librewolf-use-system-wide-dir.patch \
%D%/packages/patches/libvirt-add-install-prefix.patch \
%D%/packages/patches/libvirt-respect-modules-path.patch \
%D%/packages/patches/libzmf-doxygen-1.14.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/lightdm-arguments-ordering.patch \
%D%/packages/patches/lightdm-vnc-ipv6.patch \
@ -1746,6 +1750,7 @@ dist_patch_DATA = \
%D%/packages/patches/libofa-ftbfs-1.diff \
%D%/packages/patches/libofa-curl.diff \
%D%/packages/patches/libofa-ftbfs-2.diff \
%D%/packages/patches/libosinfo-libxml2-fix.patch \
%D%/packages/patches/libotr-test-auth-fix.patch \
%D%/packages/patches/libksieve-Fix-missing-link-libraries.patch \
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \
@ -1786,7 +1791,6 @@ dist_patch_DATA = \
%D%/packages/patches/libxcb-path-max.patch \
%D%/packages/patches/libxml2-xpath0-Add-option-xpath0.patch \
%D%/packages/patches/libwpd-gcc-compat.patch \
%D%/packages/patches/libxslt-generated-ids.patch \
%D%/packages/patches/libxt-guix-search-paths.patch \
%D%/packages/patches/lierolibre-check-unaligned-access.patch \
%D%/packages/patches/lierolibre-is-free-software.patch \
@ -1867,6 +1871,7 @@ dist_patch_DATA = \
%D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/mpg321-CVE-2019-14247.patch \
%D%/packages/patches/mpg321-gcc-10.patch \
%D%/packages/patches/mpv-0.40.0-fix-ffmpeg-8.0.patch \
%D%/packages/patches/modglue-fix-build.patch \
%D%/packages/patches/modem-manager-fix-test-wrapper.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
@ -2226,6 +2231,7 @@ dist_patch_DATA = \
%D%/packages/patches/rtosc-0.3.1-fix-invalid-comparison-operator.patch \
%D%/packages/patches/racket-chez-scheme-bin-sh.patch \
%D%/packages/patches/racket-launcher-config-dir.patch \
%D%/packages/patches/raptor2-libxml2.patch \
%D%/packages/patches/racket-rktio-bin-sh.patch \
%D%/packages/patches/re2c-Use-maximum-alignment.patch \
%D%/packages/patches/reduce-unbundle-libffi.patch \
@ -2261,6 +2267,7 @@ dist_patch_DATA = \
%D%/packages/patches/sage-safeguard-sage-getargspec-cython.patch \
%D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch \
%D%/packages/patches/sajson-build-with-gcc10.patch \
%D%/packages/patches/sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch \
%D%/packages/patches/sbc-fix-build-non-x86.patch \
%D%/packages/patches/sbcl-fix-arm64-shared-lib.patch \
%D%/packages/patches/sbcl-aserve-add-HTML-5-elements.patch \
@ -2433,6 +2440,7 @@ dist_patch_DATA = \
%D%/packages/patches/vtk-7-gcc-11-compat.patch \
%D%/packages/patches/vtk-7-hdf5-compat.patch \
%D%/packages/patches/vtk-7-python-compat.patch \
%D%/packages/patches/vulkan-tools-wayland-1.24.patch \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/wcstools-extend-makefiles.patch \
%D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \
@ -2460,6 +2468,7 @@ dist_patch_DATA = \
%D%/packages/patches/xfce4-settings-defaults.patch \
%D%/packages/patches/xgboost-use-system-dmlc-core.patch \
%D%/packages/patches/xinit-startx-mcookie-path.patch \
%D%/packages/patches/xiphos-glib.patch \
%D%/packages/patches/xmonad-dynamic-linking.patch \
%D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \
%D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \

View file

@ -601,8 +601,13 @@ interface and is based on GNU Guile.")
"/bin/gzip")
(string-append "--with-zstd=" #$(this-package-input "zstd")
"/bin/zstd")))))
(inputs (modify-inputs (package-inputs shepherd-0.10)
(append gzip zstd)))))
(native-inputs
(modify-inputs (package-native-inputs shepherd-0.10)
(replace "guile-fibers" guile-fibers))) ;use latest guile-fibers available
(inputs
(modify-inputs (package-inputs shepherd-0.10)
(replace "guile-fibers" guile-fibers) ;use latest guile-fibers available
(append gzip zstd)))))
(define-public shepherd shepherd-0.10)

View file

@ -57,7 +57,7 @@
"1zzdp5bwnszza5q6cjw66hkicay8b49n5pda7cbcgfg4hbbzv2rn"))))
(build-system gnu-build-system)
(propagated-inputs
(list libxml2-next))
(list libxml2))
(native-inputs
(list readline pkg-config))
(home-page "https://augeas.net")

View file

@ -13,6 +13,7 @@
;;; Copyright © 2020, 2023, 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2025 John Kehayias <john@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@ -460,7 +461,13 @@ Makefile, simplifying the entire process for the developer.")
'("t/tags-lisp-space.sh"
;; This test fails, probably a timestamp thing:
;; make: Nothing to be done for 'all'.
"t/remake-aclocal-version-mismatch.sh")
"t/remake-aclocal-version-mismatch.sh"
;; Non-deterministic test failures:
"t/aclocal-autoconf-version-check.sh"
"t/backcompat2.sh"
"t/backcompat3.sh"
"t/nodef.sh"
"t/nodef2.sh")
(("^#!.*" all)
(string-append all "exit 77;\n")))))
#$@(if (%current-target-system)

View file

@ -526,8 +526,6 @@ used to apply commands with arbitrarily long arguments.")
"tests/split/fail.sh"
;; These tests error
"tests/dd/nocache.sh"
;; These tests can intermitently fail on btrfs
"tests/cp/reflink-auto.sh"
;; These tests fail
"tests/cp/sparse.sh"
"tests/cp/special-f.sh"
@ -573,6 +571,10 @@ used to apply commands with arbitrarily long arguments.")
(("(^| )main *\\(.*" all)
(string-append all "{\n exit (77);//"))))
'())
;; These tests can fail on btrfs.
(substitute* "tests/cp/reflink-auto.sh"
(("^#!.*" all)
(string-append all "exit 77;\n")))
(substitute* "Makefile.in"
;; fails on filesystems where inotify cannot be used,
;; more info in #47935

View file

@ -2204,26 +2204,38 @@ intended to behave exactly the same as the original BWK awk.")
(define-public python-bcbio-gff
(package
(name "python-bcbio-gff")
(version "0.6.9")
;; python-bcbio-gff can only be refreshed manually, because guix refresh
;; does not understand the tags on the github repository.
(version "0.7.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "bcbio-gff" version))
;; No tests in PyPI package.
(method git-fetch)
(uri (git-reference
(url "https://github.com/chapmanb/bcbb")
(commit (string-append "bcbio-gff-v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1pm1szyxabhn8jismrj9cjhf88ajgcmm39f0cgf36iagw5qakprl"))))
"0144xxzibq4mrg8a1w2scs120rd9svq07hm5ccs91n3a4nvwjfsd"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'enter-directory
(lambda _ (chdir "gff"))))))
(native-inputs
(list python-pytest))
(list python-setuptools python-pytest))
(propagated-inputs
(list python-biopython
python-setuptools
python-six
python-wheel))
python-six))
(home-page "https://github.com/chapmanb/bcbb/tree/master/gff")
(synopsis "Read and write GFF files with Biopython integration")
(description
"This package lets you read and write files in Generic Feature
Format (GFF) with Biopython integration.")
(properties
'((upstream-name . "bcbio-gff")))
(license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))))
(define-public python-bcbio-gff/biopython-1.73
@ -8691,52 +8703,48 @@ comment or quality sections.")
(define-public gemma
(package
(name "gemma")
(version "v0.98.5")
(version "0.98.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/genetics-statistics/GEMMA")
(commit version)))
(url "https://github.com/genetics-statistics/GEMMA")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1dm8pf1fbdmv2yiz5aybcvk3050m5350gq8xlr4j6swzm3wwhydn"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "contrib")
#t))))
#~(begin
(delete-file-recursively "contrib")))))
(build-system gnu-build-system)
(inputs
(list gsl openblas zlib))
(native-inputs
`(("catch" ,catch2-1)
("perl" ,perl)
("shunit2" ,shunit2)
("which" ,which)))
(list catch2-1
perl
shunit2
which))
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'prepare-build
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "bin")
(substitute* "Makefile"
(("/usr/local/opt/openblas")
(assoc-ref inputs "openblas")))
#t))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; 'make slow-check' expects shunit2-2.0.3.
(with-directory-excursion "test"
(invoke "./test_suite.sh"))
#t)))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(install-file "bin/gemma"
(string-append (assoc-ref outputs "out") "/bin"))
#t)))))
(list
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'prepare-build
(lambda _
(mkdir-p "bin")
(substitute* "Makefile"
(("/usr/local/opt/openblas")
#$(this-package-input "openblas")))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; 'make slow-check' expects shunit2-2.0.3.
(with-directory-excursion "test"
(invoke "./test_suite.sh")))))
(replace 'install
(lambda _
(install-file "bin/gemma" (string-append #$output "/bin")))))))
(home-page "https://github.com/genetics-statistics/GEMMA")
(synopsis "Tool for genome-wide efficient mixed model association")
(description
@ -23592,7 +23600,7 @@ The output is in SAM format.")
#$(this-package-input "libxml2")
"/include/libxml2"))))
(propagated-inputs
(list libxml2-next))
(list libxml2))
(native-inputs
(list check swig))
(home-page "https://sbml.org/Software/libSBML")

View file

@ -31,18 +31,29 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages cpp)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnome)
#:use-module (gnu packages inkscape)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages linux)
#:use-module (gnu packages music)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages tex)
#:use-module (gnu packages texlive)
#:use-module (gnu packages version-control))
#:use-module (gnu packages version-control)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xml))
(define-public book-sparc
(package
@ -170,3 +181,49 @@ is available in Russian and English.")
"The SWORD Project is a free Bible software project used to create Bible
software, with support for multiple texts and languages.")
(license license:gpl2+)))
(define-public xiphos
(package
(name "xiphos")
(version "4.3.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/crosswire/xiphos")
(commit version)))
(sha256
(base32 "15p8ahbcd8vjm1ch0wahjfj20agd06va8rvgw1awnyzkcw2xsf8x"))
(patches (search-patches "xiphos-glib.patch"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(native-inputs (list appstream
appstream-glib
atk
biblesync
desktop-file-utils ;for 'desktop-file-validate'
(list glib "bin")
gettext-minimal
gsettings-desktop-schemas
gtk+
libgsf
minizip
pkg-config
sword
util-linux ;for 'uuidgen'
(list util-linux "lib") ;for 'libuuid'
webkitgtk-with-libsoup2
yelp-tools
zip))
(inputs (list dbus dbus-glib libxml2 python python-lxml))
(arguments
(list
#:tests? #f)) ;No tests
(home-page "https://xiphos.org/")
(synopsis "Open Source Bible Study Software")
(description
"Xiphos is a Bible study tool using GTK. It uses Sword to
display bibles, commentaries, dictionaries, and other texts and images.
Xiphos includes features such as searching, biblesync, bookmarks,
parallel study, and original language study.")
(license license:gpl2+)))

View file

@ -19,6 +19,7 @@
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Aiden Isik <aidenisik+git@member.fsf.org>
;;; Copyright © 2025 Josep Bigorra <jjbigorra@gmail.com>
;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -308,7 +309,7 @@ files and generates build instructions for the Ninja build system.")
(define-public meson
(package
(name "meson")
(version "1.5.2")
(version "1.9.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/"
@ -316,8 +317,8 @@ files and generates build instructions for the Ninja build system.")
version ".tar.gz"))
(sha256
(base32
"02wi62k9w7716xxdgrrx68q89vaq3ncnbpw5ms0g27npn2df0mgr"))))
(build-system python-build-system)
"13a9pj7d2mxgv5gbd78di4pb4w722vjis0vmk38m1vdm95v2f9yd"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f ;disabled to avoid extra dependencies
#:phases
@ -327,12 +328,14 @@ files and generates build instructions for the Ninja build system.")
(replace 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* (search-input-file outputs "bin/meson")
(("# EASY-INSTALL-ENTRY-SCRIPT")
(format #f "\
import sys
sys.path.insert(0, '~a')
# EASY-INSTALL-ENTRY-SCRIPT" (site-packages inputs outputs)))))))))
(inputs (list python ninja/pinned))
(("import sys" all)
(string-append
all "\n"
"sys.path.insert(0, '"
(site-packages inputs outputs)
"')"))))))))
(native-inputs (list python-setuptools))
(inputs (list python ninja))
(home-page "https://mesonbuild.com/")
(synopsis "Build system designed to be fast and user-friendly")
(description

View file

@ -38082,14 +38082,14 @@ offers access to an XPath \"interpreter\".")
(define-public r-xml2
(package
(name "r-xml2")
(version "1.3.8")
(version "1.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "xml2" version))
(sha256
(base32
"01qhmlr5rhsn25ddb8cm3vl9vyqk5c5cgpc6c0krs9wccd1j4pbj"))))
"0qnw4id8bknm3anvd9dlpg344s18dnxzm8lhbyqkcpgqfya84bhc"))))
(properties
;; Avoid dependency cycle.
'((updater-ignored-native-inputs . ("r-httr"))))

View file

@ -12,6 +12,7 @@
;;; Copyright © 2025 Lukas Gradl <lgradl@posteo.net>
;;; Copyright © 2025 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 John Kehayias <john@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@ -321,7 +322,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
(define-public cups-minimal
(package
(name "cups-minimal")
(version "2.4.9")
(version "2.4.14")
(source
(origin
(method git-fetch)
@ -331,8 +332,8 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
;; Avoid NAME confusion: these are the complete CUPS sources.
(file-name (git-file-name "cups" version))
(sha256
(base32 "08wjd1flyaslhnwvxl39403qi3g675rk532ysiyk6cda4r8ks1g1"))
(patches (search-patches "cups-minimal-Address-PPD-injection-issues.patch"))))
(base32 "1dk5salizxy1qm19gw93ffdd34hsn1cd4s57nwl7nfhwwirkiri2"))
(patches (search-patches "cups-relax-root-ownership-check.patch"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
@ -703,6 +704,14 @@ should only be used as part of the Guix cups-pk-helper service.")
(string-append "rulessystemdir = " out "/lib/systemd/system"))
(("/etc/sane.d")
(string-append out "/etc/sane.d"))))))
(add-after 'install 'move-sane-config-to-dll.d
(lambda _
;; move dll.conf to dll.d - the directory intended for 3rd-party
;; backend configurations.
(let ((dll.d (string-append #$output "/etc/sane.d/dll.d"))
(dll.conf (string-append #$output "/etc/sane.d/dll.conf")))
(mkdir-p dll.d)
(rename-file dll.conf (string-append dll.d "/hpaio")))))
(add-after 'install 'install-models-dat
(lambda* (#:key outputs #:allow-other-keys)
(install-file "data/models/models.dat"
@ -751,7 +760,7 @@ should only be used as part of the Guix cups-pk-helper service.")
python-pygobject
python-pyqt
python-wrapper
sane-backends-minimal
sane
net-snmp
openssl
avahi
@ -789,7 +798,7 @@ should only be used as part of the Guix cups-pk-helper service.")
dbus
libjpeg-turbo
libusb
sane-backends-minimal
sane
zlib))
(synopsis "GUI-less version of hplip")))

View file

@ -1173,7 +1173,7 @@ Language.")
(define-public mariadb
(package
(name "mariadb")
(version "10.11.10")
(version "10.11.14")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.mariadb.com/MariaDB"
@ -1181,7 +1181,7 @@ Language.")
version ".tar.gz"))
(sha256
(base32
"08phlqcwcwl753zi2jv702q7b3h25d489289mflnm8c31djp8smh"))
"0bq5gn5yl3c6jnsamam4nb42y10c43ag764f7mkf7m5i9yqiqmwa"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -211,7 +211,7 @@ client.")
python-docker-5
python-dockerpty
python-docopt
python-dotenv
python-dotenv-0.13.0
python-jsonschema-3
python-pyyaml
python-requests

View file

@ -187,7 +187,7 @@ markup) can be customized and extended by the user.")
(define-public doxygen
(package
(name "doxygen")
(version "1.9.8")
(version "1.14.0")
(home-page "https://www.doxygen.nl/")
(source (origin
(method url-fetch)
@ -198,7 +198,7 @@ markup) can be customized and extended by the user.")
".src.tar.gz")))
(sha256
(base32
"0qjgw7bnx668hpi4r8m366vsq118s9365zf8z4x5yjrqx0ld5qq5"))))
"0pbbdvc1zxps6mi58bry16rcrdw6b9gvf9nhv0kp60qkmc8nslyl"))))
(build-system cmake-build-system)
(native-inputs
(list bison
@ -219,12 +219,15 @@ markup) can be customized and extended by the user.")
#~'())
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-bibtex-test
(add-after 'unpack 'disable-some-tests
(lambda _
;; Disable test that requires bibtex to avoid a
;; circular dependency.
(for-each delete-file-recursively
'("testing/012" "testing/012_cite.dox"))))
;; Disable test that requires bibtex to avoid a
;; circular dependency.
'("testing/012" "testing/012_cite.dox"
;; Reported upstream, see
;; <https://github.com/doxygen/doxygen/issues/11772>.
"testing/009" "testing/009_bug.cpp"))))
(add-before 'configure 'patch-sh
(lambda* (#:key inputs #:allow-other-keys)
(let ((/bin/sh (search-input-file inputs "/bin/sh")))

View file

@ -172,7 +172,7 @@ information.")
(arguments
`(#:tests? #f ; No tests exist.
#:make-flags
'("CC=gcc")
'("CC=gcc -g -O2 -Wno-error=implicit-function-declaration")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch

View file

@ -243,7 +243,7 @@ object or archive file), @command{eu-strip} (for discarding symbols),
(list pkg-config texinfo python-sphinx python))
(propagated-inputs
(list elfutils ;libabigail.la says -lelf
libxml2-next)) ;in Requires.private of libabigail.pc
libxml2)) ;in Requires.private of libabigail.pc
(synopsis "Analyze application binary interfaces (ABIs)")
(description
"@dfn{ABIGAIL} stands for the Application Binary Interface Generic

View file

@ -158,7 +158,8 @@
"emacs-native-comp-driver-options.patch"
"emacs-native-comp-fix-filenames.patch"
"emacs-native-comp-pin-packages.patch"
"emacs-pgtk-super-key-fix.patch"))
"emacs-pgtk-super-key-fix.patch"
"emacs-zoom-image-test-fix.patch"))
(modules '((guix build utils)))
(snippet
'(with-directory-excursion "lisp"

View file

@ -4555,11 +4555,11 @@ cache visualization. Developed at FEE CTU for computer architecture classes.")
(license license:zlib)))
(define-public uxn
(let ((commit "83237c9641490d303a42c81ca247314d11055dea")
(let ((commit "f2e858273890abcffe7451b0566669e610036f49")
(revision "1"))
(package
(name "uxn")
(version (git-version "0.1.0" revision commit))
(version (git-version "1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@ -4568,7 +4568,7 @@ cache visualization. Developed at FEE CTU for computer architecture classes.")
(file-name (string-append name "-" version))
(sha256
(base32
"159qfz66k1jc43jhyl8by3yiphsr2dyiyclw1x7mkr3zciwc29z3"))))
"1li0ly8di2vpzvi3wzlcm355dg38m6sfp0i6mryp9x4ibq7kqmy0"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;no tests
@ -4584,12 +4584,10 @@ cache visualization. Developed at FEE CTU for computer architecture classes.")
(share (string-append #$output
"/share/uxn")))
(with-directory-excursion "bin"
(for-each (lambda (x)
(install-file x bin))
'("uxnasm" "uxncli" "uxnemu"))
(for-each (lambda (x)
(install-file x share))
'("asma.rom" "launcher.rom")))))))))
(for-each
(lambda (x)
(install-file x bin))
'("uxnasm" "uxncli" "uxnemu")))))))))
(inputs (list sdl2))
(home-page "https://100r.co/site/uxn.html")
(synopsis "Assembler and emulator for the Uxn stack-machine")

View file

@ -1566,8 +1566,7 @@ use on a given system.")
parallel
perl
pkg-config
python-wrapper
python-libxml2))
python-wrapper))
(inputs
(list pcre2))
(home-page "https://www.gnu.org/software/libredwg/")

View file

@ -561,6 +561,7 @@ directories.
@dfn{Enlightenment Foundation Libraries} (EFL).")
(license license:bsd-2)))
;; XXX: See: <https://codeberg.org/guix/guix/issues/3014>.
(define-public epour
(package
(name "epour")
@ -583,8 +584,8 @@ directories.
(substitute* "epour/gui/__init__.py"
(("join\\(data_path")
(string-append "join(\"" #$output "/share/epour\""))))))))
(native-inputs (list intltool python-distutils-extra python-setuptools
python-wheel))
(native-inputs (list intltool python-distutils-extra python-setuptools-67
python-wheel-0.40))
(inputs (list libtorrent-rasterbar-1.2 python-dbus python-efl python-pyxdg))
(home-page "https://www.enlightenment.org")
(synopsis "EFL Bittorrent client")

View file

@ -799,6 +799,11 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(substitute* "electroncash/secp256k1.py"
(("libsecp256k1.so.0")
(search-input-file inputs "lib/libsecp256k1.so.0")))))
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "contrib/requirements/requirements.txt"
(("python-dateutil<2\\.9")
"python-dateutil"))))
(add-after 'install 'wrap-qt
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))

View file

@ -176,6 +176,29 @@ source code legibility.")
Mono, Iosevka customized to match Inter.")
(license license:silofl1.1)))
(define-public font-alcarin-tengwar
(let ((commit "a4530d430ea01871b0b0a54d1de218d2ffde0ea5")
(revision "1"))
(package
(name "font-alcarin-tengwar")
(version "0.83")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Tosche/Alcarin-Tengwar")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"190g43y7b8kiswnc3d1mdyw7p336p950b5wyb8hnbd3303ccjlsv"))))
(build-system font-build-system)
(home-page "https://tosche.net/fonts/alcarin-tengwar")
(synopsis "Tengwar font")
(description
"Alcarin Tengwar is a Tengwar (script invented by J. R. R. Tolkien)
typeface. It is designed with an academic context in mind.")
(license license:silofl1.1))))
(define-public font-arapey
(let ((commit "28fa45c7f31afe62f577b0b857570ab0326b9113")
(revision "1"))

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-2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2021-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2022 Felipe Balbi <balbi@kernel.org>
@ -181,13 +181,13 @@ them as it goes.")
(define-public python-afdko
(package
(name "python-afdko")
(version "3.9.5")
(version "4.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "afdko" version))
(sha256
(base32 "02c1rjx7ggbd1m9vqgsc2r28yiw66cjgvs5cq1a2fz0lkadbvrnb"))
(base32 "0c6ribidsmcd9rihy32gknfrr3iw8dy2jlmq6lk05pc33s3ix8z1"))
(modules '((guix build utils)))
(snippet
#~(begin
@ -415,6 +415,7 @@ but also provides many useful font conversion and analysis facilities.
"--ignore=tests/makeotfexe_test.py"
"--ignore=tests/otc2otf_test.py"
"--ignore=tests/otf2ttf_test.py"
"--ignore=tests/proofpdf_test.py"
"--ignore=tests/ttxn_test.py")))))))
(native-inputs
(list pkg-config
@ -470,7 +471,7 @@ other operations on paths.")
(define-public python-cffsubr
(package
(name "python-cffsubr")
(version "0.2.9.post1")
(version "0.3.0")
(source
(origin
(method url-fetch)
@ -478,7 +479,7 @@ other operations on paths.")
(modules '((guix build utils)))
(snippet '(delete-file-recursively "external")) ;unbundle ADFKO
(sha256
(base32 "0p7wyagkmwf4agr6ysgswrpmpifx5rz8dnjbcs2gmj29rwnl2cbb"))))
(base32 "1yrfjn3mdi48pg78yzlmskdz9i4nf2wg7h8ivnn9yrw1vc5iaibp"))))
(build-system python-build-system)
(arguments
(list
@ -560,13 +561,13 @@ for fontTools.")
(define-public python-cu2qu
(package
(name "python-cu2qu")
(version "1.6.7.post1")
(version "1.6.7.post2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cu2qu" version ".zip"))
(sha256
(base32 "1x762r7bf39g6aivfvrmq00h6f07abvs9x1xm0fz8l81vq8jz64c"))))
(base32 "022qpzbpi6j56wqz48rnqs6dvksipw13fi4g10k941fnkgcn5x8x"))))
(build-system pyproject-build-system)
(arguments
;; XXX: Try to remove it when updating python-fonttools.
@ -592,14 +593,24 @@ converts any cubic curves to quadratic. The most useful function is probably
(define-public python-ufo2ft
(package
(name "python-ufo2ft")
(version "2.31.0")
(version "2.33.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ufo2ft" version))
(sha256
(base32 "1rg2997af8blvswlwif0kpz2vxrlh555gzqslz6yv9y7i7v8lphl"))))
(base32 "0xnnwlj3rl0p7q19l6wdrfkzzq1f2l5vyl2qs7kl4vvfalgpzakv"))))
(build-system pyproject-build-system)
(arguments
(list #:test-flags
#~(list "-k"
;; XXX: These tests all fail with "TTX output is different
;; from expected". Potentially fixed in 3.x release.
(string-append "not test_compileVariableTTF "
"and not test_compileVariableCFF2 "
"and not test_drop_glyph_names_variable "
"and not test_buildTables_FeatureLibError "
"and not test_kern_zyyy_zinh"))))
(native-inputs
(list python-pytest
python-setuptools-scm
@ -708,13 +719,13 @@ implementing the pen protocol for manipulating glyphs.")
(hidden-package
(package
(name "python-fontparts-bootstrap")
(version "0.11.0")
(version "0.13.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fontParts" version ".zip"))
(uri (pypi-uri "fontparts" version ".tar.gz"))
(sha256
(base32 "0j4h8hszky639gmfy1avmw670y80ya49kca8yc635h5ihl0c3v8x"))))
(base32 "0ddyfa975hskaip6l4hn7n2jh50y5s0pw911phyx2fsws54pw5s7"))))
(build-system pyproject-build-system)
(arguments
(list #:test-backend #~'custom
@ -726,8 +737,7 @@ implementing the pen protocol for manipulating glyphs.")
python-fonttools-minimal))
(native-inputs
(list python-setuptools
python-setuptools-scm
unzip))
python-setuptools-scm))
(home-page "https://github.com/robotools/fontParts")
(synopsis "Library for interacting with font parts")
(description "FontParts is an @acronym{API, Application Programming
@ -1925,13 +1935,13 @@ with @samp{nameIDs}.")
(define-public python-ufolib2
(package
(name "python-ufolib2")
(version "0.13.1")
(version "0.18.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ufoLib2" version))
(uri (pypi-uri "ufolib2" version))
(sha256
(base32 "0yx4i8q5rfyqhr2fj70a7z1bp1jv7bdlr64ww9z4nv9ycbda4x9j"))))
(base32 "1971ibdsgji8x0jzlk1hc6dv2r5wnfyylz7f6wjkymqw6v6fzq3x"))))
(build-system pyproject-build-system)
(native-inputs
(list python-pytest
@ -1954,51 +1964,53 @@ API-compatible with defcon.")
;;; A variant used to break a cycle between python-fontpens and
;;; python-fontparts.
(define-public python-defcon-bootstrap
(package
(name "python-defcon-bootstrap")
(version "0.11.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/robotools/defcon")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "06w5kd5ac63m6m8x8j4xwdl7ncbpjl7pdpfpy9i6c8nhbd8sbjfm"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-version
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
(propagated-inputs (list python-fontpens-bootstrap python-fonttools))
(native-inputs
(list python-pytest
python-setuptools
python-setuptools-scm
unzip))
(home-page "https://github.com/robotools/defcon")
(synopsis "Flexible objects for representing UFO data")
(description
"Defcon is a set of @acronym{UFO, unified font object} based
(hidden-package
(package
(name "python-defcon-bootstrap")
(version "0.12.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/robotools/defcon")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1zx4xas6qcpp54d1vcfy5wjv17aazkpfmb7hkjy99g47xsi6crrh"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-version
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
(propagated-inputs (list python-fontpens-bootstrap python-fonttools))
(native-inputs
(list python-pytest
python-setuptools
python-setuptools-scm))
(home-page "https://github.com/robotools/defcon")
(synopsis "Flexible objects for representing UFO data")
(description
"Defcon is a set of @acronym{UFO, unified font object} based
objects optimized for use in font editing applications. The objects are built
to be lightweight, fast and flexible. The objects are very bare-bones and
they are not meant to be end-all, be-all objects. Rather, they are meant to
provide base functionality so that you can focus on your applications
behavior, not object observing or maintaining cached data. Defcon implements
UFO3 as described by the UFO font format.")
(license license:expat)))
(license license:expat))))
(define-public python-defcon
(hidden-package
(package/inherit python-defcon-bootstrap
(name "python-defcon")
(propagated-inputs
(modify-inputs (package-propagated-inputs python-defcon-bootstrap)
(replace "python-fontpens-bootstrap" python-fontpens))))))
(package/inherit python-defcon-bootstrap
(name "python-defcon")
(propagated-inputs
(modify-inputs (package-propagated-inputs python-defcon-bootstrap)
(replace "python-fontpens-bootstrap" python-fontpens)))
(properties
(alist-delete 'hidden?
(package-properties python-fontparts-bootstrap)))))
(define-public nototools
(package

View file

@ -586,7 +586,7 @@ freedesktop.org project.")
;; Updating this will rebuild over 700 packages through libinput-minimal.
(package
(name "libinput")
(version "1.26.2")
(version "1.29.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -595,7 +595,7 @@ freedesktop.org project.")
(file-name (git-file-name name version))
(sha256
(base32
"1zwwq7a0a6yznc6jxhp6gb50yw5vpfkvgbrabrpc5pwldpckfbrg"))))
"1kgr18p7n9bvim9bx24jbr5nwp6icla3bgzfskr04f68mirmx561"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Ddocumentation=false")
@ -642,21 +642,6 @@ other applications that need to directly deal with input devices.")
"-Ddebug-gui=false" ;requires gtk+@3
,flags))))))
;; TODO: Remove this package when libinput-minimal >= 1.28
(define-public libinput-minimal-next
(package/inherit libinput-minimal
(name "libinput-minimal")
(version "1.28.903")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/libinput/libinput.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0i5yljdff4fjchpa8ifscbcssnmiim58ai1zy3v41vim2illprv5"))))))
(define-public libei
(package
(name "libei")
@ -1363,7 +1348,7 @@ in and for C++.")
(define-public wayland
(package
(name "wayland")
(version "1.23.1")
(version "1.24.0")
(source (origin
(method url-fetch)
(uri (string-append "https://gitlab.freedesktop.org/" name
@ -1371,12 +1356,11 @@ in and for C++.")
name "-" version ".tar.xz"))
(sha256
(base32
"1vg5h6d94hglh7724q6wx9dpg4y0afvxksankp1hwbcy76lb4kw6"))))
"0dh5bldg24ajxz7xmylwm01nmj572x1vb0ya9qrppmhsl23j92c2"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments
(list #:parallel-tests? #f
#:phases
(list #:phases
#~(modify-phases %standard-phases
(add-after 'install 'move-doc
(lambda _
@ -1414,7 +1398,7 @@ fullscreen) or other display servers.")
(define-public wayland-protocols
(package
(name "wayland-protocols")
(version "1.44")
(version "1.45")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1423,7 +1407,7 @@ fullscreen) or other display servers.")
(file-name (git-file-name name version))
(sha256
(base32
"1gjhfiah8hkhqlfan2pr8jvf9h8rjkyz79kkxddi8js2q7dy4bbq"))))
"1d2fv41vq75pvgkd3ykjypnp8zv0afv71p36cd91h19lbmwaia8h"))))
(build-system meson-build-system)
(inputs
(list wayland))
@ -2250,7 +2234,7 @@ between protocols to provide a unified interface for applications.")
(inputs (list sqlite))
(propagated-inputs
;; telepathy-logger-0.2.pc refers to all these.
(list libxml2-next telepathy-glib))
(list libxml2 telepathy-glib))
(synopsis "Telepathy logger library")
(home-page "https://telepathy.freedesktop.org/")
(description

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2025 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -20,19 +21,22 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix licenses))
#:use-module (guix licenses)
#:use-module (gnu packages check)
#:use-module (gnu packages pkg-config))
(define-public gcal
(package
(name "gcal")
(version "4.1")
(version "4.2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gcal/gcal-"
(uri (string-append "https://www.alteholz.dev/gnu/gcal-"
version ".tar.xz"))
(sha256
(base32
"1av11zkfirbixn05hyq4xvilin0ncddfjqzc4zd9pviyp506rdci"))
"1p3q6his31bxs24nsgpfavw3nlhalqf0zak4f3b530p725s2vgfq"))
(modules '((guix build utils)))
(snippet
'(begin
@ -50,6 +54,8 @@
"/* BSD stdio derived implementations")))
#t))))
(build-system gnu-build-system)
(native-inputs (list check pkg-config))
(arguments `(#:configure-flags '("LDFLAGS=-lm")))
(home-page "https://www.gnu.org/software/gcal/")
(synopsis "Calculating and printing a wide variety of calendars")
(description

View file

@ -244,7 +244,10 @@ provided, as well as a framework to add new color models and data types.")
(base32 "0v2wa2a3vnz1g4z5h9s8ili5h5kzk95hxlcp0zlxkwgbf5img1sq"))))
(build-system meson-build-system)
(arguments
`(#:phases
`(#:configure-flags
;; TODO: properly unbundle.
'("--wrap-mode=nodownload")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'extend-test-time-outs
(lambda _

View file

@ -314,7 +314,7 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa
(package
(name "mesa")
(version "25.1.3")
(version "25.2.3")
(source
(origin
(method url-fetch)
@ -324,7 +324,7 @@ also known as DXTn or DXTC) for Mesa.")
"mesa-" version ".tar.xz")))
(sha256
(base32
"0zxsvly6xjinaicgcf81ycljjjzy3mj0hqwf01b6sdgxnnnnrjzz"))))
"1y5lj9zy2hfvx9ji1rvsjapmzap7mpp5i3pf2yfcpmpica2v5mpj"))))
(build-system meson-build-system)
(propagated-inputs
;; The following are in the Requires.private field of gl.pc.
@ -357,7 +357,6 @@ also known as DXTn or DXTC) for Mesa.")
glslang
libclc
pkg-config
python-libxml2 ;for OpenGL ES 1.1 and 2.0 support
python-mako
python-ply
python-pyyaml
@ -406,13 +405,12 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
"-Dglx=dri" ;Thread Local Storage, improves performance
;; "-Dopencl=true"
;; "-Domx=true"
"-Dosmesa=true"
"-Dgallium-xa=enabled"
;; features required by wayland
"-Dgles2=enabled"
"-Dgbm=enabled"
"-Dshared-glapi=enabled"
"--wrap-mode=nodownload" ; XXX: disable
#$@(cond
((target-x86-32?)
@ -439,6 +437,9 @@ panfrost,r300,r600,svga,softpipe,llvmpipe,tegra,v3d,vc4,virgl,zink"))
;; Also enable the tests.
"-Dbuild-tests=true"
;; Re-enable X11 protocol support for the DRI2 extension.
"-Dlegacy-x11=dri2"
"-Dllvm=enabled") ; default is x86/x86_64 only
;; XXX: 'debugoptimized' causes LTO link failures on some drivers. The

View file

@ -770,7 +770,7 @@ The intltool collection can be used to do these things:
"1jl7gsr7aclb9nvqazr039m86y7f7ivfhl2pixcrbfqjkb97r6kb"))))
(build-system gnu-build-system)
(inputs
(list bash-minimal libxml2 python-libxml2 python))
(list bash-minimal libxml2 python))
(arguments
(list
#:phases
@ -858,7 +858,7 @@ by GDBus included in Glib.")
pkg-config
vala))
(inputs (list check python python-pygobject))
(propagated-inputs (list glib libxml2-next sqlite))
(propagated-inputs (list glib libxml2 sqlite))
(arguments
(list #:tests? #f ;one test fails.
#:imported-modules `((guix build python-build-system)

View file

@ -443,7 +443,7 @@ services.")
"/share/gtk-doc/html"))))
(native-inputs (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable
pkg-config))
(propagated-inputs (list glib libsoup-minimal-2 libxml2-next-for-grafting))
(propagated-inputs (list glib libsoup-minimal-2 libxml2))
(synopsis "Glib library for feeds")
(description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
and other formats.")
@ -1223,7 +1223,7 @@ Library reference documentation.")
;; These inputs are required by the pkg-config file.
(list glib
libsoup
libxml2-next-for-grafting))
libxml2))
(synopsis "WebDav server implementation using libsoup")
(description "PhoDav was initially developed as a file-sharing mechanism for Spice,
but it is generic enough to be reused in other projects,
@ -1433,7 +1433,7 @@ a debugging tool, @command{gssdp-device-sniffer}.")
gsettings-desktop-schemas ;for org.gnome.system.proxy.
gssdp
libsoup
libxml2-next-for-grafting))
libxml2))
(synopsis "PnP API for GNOME")
(description "This package provides GUPnP, an object-oriented framework
for creating UPnP devices and control points, written in C using
@ -1476,7 +1476,7 @@ given profile, etc. DLNA is a subset of UPnP A/V.")
(define-public gupnp-av
(package
(name "gupnp-av")
(version "0.14.1")
(version "0.14.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -1484,7 +1484,7 @@ given profile, etc. DLNA is a subset of UPnP A/V.")
name "-" version ".tar.xz"))
(sha256
(base32
"0kry7arwmvs8b4175wia3l0s02ap1shq68f29g2xjrhc9g6f175p"))))
"1izq71qphyac02ynypwk0skxqzhfr0zrl7dap3sxrdaw4yrp9n91"))))
(build-system meson-build-system)
(native-inputs
(list gettext-minimal
@ -2018,7 +2018,7 @@ and system administrators.")
(inputs
(list graphene
gtk+
libxml2-next-for-grafting
libxml2
libxslt
poppler
python-minimal
@ -2068,7 +2068,7 @@ formats like PNG, SVG, PDF and EPS.")
("json-glib" ,json-glib)
("liboauth" ,liboauth)
("libsoup" ,libsoup-minimal-2)
("libxml2" ,libxml2-next-for-grafting)))
("libxml2" ,libxml2)))
(home-page "https://wiki.gnome.org/Projects/libgdata")
(synopsis "Library for accessing online service APIs")
(description
@ -3600,7 +3600,7 @@ XML/CSS rendering engine.")
zlib))
(propagated-inputs
(list glib
libxml2-next-for-grafting))
libxml2))
(synopsis "G Structured File Library")
(description "Libgsf aims to provide an efficient extensible I/O abstraction
for dealing with different structured file formats.")
@ -3802,7 +3802,7 @@ diagrams.")
`(,glib "bin") ; glib-mkenums, etc.
gobject-introspection)) ; g-ir-compiler, etc.
(inputs
(list pango libcroco libxml2))
(list pango libcroco libxml2-2.11))
(propagated-inputs
;; librsvg-2.0.pc refers to all of that.
(list cairo gdk-pixbuf glib))
@ -4215,7 +4215,7 @@ ported to GTK+.")
(inputs
(list python)) ;; needed for the optional libglade-convert program
(propagated-inputs
(list gtk+-2 libxml2-next-for-grafting)) ; required by libglade-2.0.pc
(list gtk+-2 libxml2)) ; required by libglade-2.0.pc
(native-inputs
(list pkg-config))
(home-page "https://developer.gnome.org/libglade")
@ -4254,7 +4254,7 @@ widgets built in the loading process.")
;; Therefore we must do it.
(zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
;; Mentioned as Required by the .pc file
(propagated-inputs (list libxml2-next-for-grafting))
(propagated-inputs (list libxml2))
(inputs
(list popt pangox-compat libgnome libgnomecanvas libglade))
(native-inputs
@ -4911,7 +4911,7 @@ GLib and GObject, and integrates JSON with GLib data types.")
("libtool" ,libtool)))
(propagated-inputs
;; Required by libxklavier.pc.
(list glib libxml2-next-for-grafting))
(list glib libxml2))
(inputs
(list iso-codes/pinned libxi libxkbfile xkbcomp xkeyboard-config))
(home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
@ -5021,7 +5021,6 @@ files.")
(define-public rest
(package
(replacement rest/fixed)
(name "rest")
(version "0.8.1")
(source (origin
@ -5050,13 +5049,6 @@ claim to be \"RESTful\". It includes convenience wrappers for libsoup and
libxml to ease remote use of the RESTful API.")
(license license:lgpl2.1+)))
(define-public rest/fixed
(package
(inherit rest)
(propagated-inputs
(modify-inputs (package-propagated-inputs rest)
(replace "libxml2" libxml2-next-for-grafting)))))
(define-public rest-next
(package
(inherit rest)
@ -5210,7 +5202,7 @@ as OpenStreetMap, OpenCycleMap, OpenAerialMap and Maps.")
libpsl
nghttp2 ;for pkg-config
`(,nghttp2 "lib")
libxml2-next-for-grafting
libxml2
sqlite
zlib))
(inputs
@ -5799,7 +5791,7 @@ output devices.")
docbook-xsl
gtk-doc/stable
libxslt
sane-backends
sane
vala))))) ;for VAPI, needed by simple-scan
(define-public geoclue
@ -6018,7 +6010,7 @@ service via the system message bus.")
(list gtk+
gdk-pixbuf
json-glib
libxml2-next-for-grafting
libxml2
libsoup
geocode-glib))
(inputs
@ -6137,7 +6129,7 @@ settings, themes, mouse settings, and startup of other daemons.")
(list intltool
`(,glib "bin") gobject-introspection pkg-config))
(propagated-inputs
(list glib gmime libarchive libgcrypt libxml2-next-for-grafting))
(list glib gmime libarchive libgcrypt libxml2))
(inputs
(list libsoup))
(home-page "https://projects.gnome.org/totem")
@ -7238,7 +7230,7 @@ USB transfers with your high-level application or system daemon.")
gdk-pixbuf
gusb
libadwaita
sane-backends))
sane))
(home-page "https://gitlab.gnome.org/GNOME/simple-scan")
(synopsis "Document and image scanner")
(description
@ -8122,7 +8114,7 @@ to display dialog boxes from the commandline and shell scripts.")
libxext
libxfixes
libxkbcommon
libxml2-next-for-grafting
libxml2
libxrandr
mesa
pango
@ -8948,7 +8940,7 @@ the available networks and allows users to easily switch between them.")
(base32 "0gp8irc5ny9i6bw9fp21p8djgksi1s8l5flbn5blisgfpcb2w820"))))
(build-system gnu-build-system)
(propagated-inputs
(list libxml2-next-for-grafting)) ;required by .pc file
(list libxml2)) ;required by .pc file
(native-inputs
(list autoconf
automake
@ -9726,7 +9718,8 @@ easy, safe, and automatic.")
#$output "/lib:"
#$output "/lib/tracker-3.0")
"-Ddocs=false"
"-Dsystemd_user_services=false")
"-Dsystemd_user_services=false"
"--wrap-mode=nodownload") ; XXX: to be disabled
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
@ -13885,7 +13878,7 @@ developed with the aim of being used with the Librem 5 phone.")
sqlite
vala))
(propagated-inputs
(list libxml2-next-for-grafting)) ; required by libgda-5.0.pc
(list libxml2)) ; required by libgda-5.0.pc
(home-page "https://gitlab.gnome.org/GNOME/libgda")
(synopsis "Uniform data access")
(description
@ -14000,7 +13993,7 @@ world.")
("python-pyenchant" ,python-pyenchant)
("python-reportlab" ,python-reportlab)
("python-sane" ,python-sane)
("sane-backends" ,sane-backends)
("sane" ,sane)
("tesseract-ocr" ,tesseract-ocr)))
(home-page "https://wiki.gnome.org/Apps/OCRFeeder")
(synopsis "Complete OCR Suite")

View file

@ -21,7 +21,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020, 2021, 2025 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020-2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2020-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2021 Andy Tai <atai@atai.org>
@ -1224,14 +1224,30 @@ basic geometries.")
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/typemytype/booleanOperations")
(commit version)))
(url "https://github.com/typemytype/booleanOperations")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0ahfgamyq1ndwbr9n8sdx8qhqc2195xnbahylgjpk877hbr2gxav"))))
(build-system pyproject-build-system)
(arguments
(list
;; There are
#:modules '((guix build pyproject-build-system)
(guix build utils)
(ice-9 format))
;; Some tests fail due to small differences in the expected result (see:
;; <https://github.com/typemytype/booleanOperations/issues/69>).
#:test-flags #~(list "-k"
(format #f "not ~{~a~^ and not ~}"
'("test_QTail_reversed_difference"
"test_QTail_reversed_intersection"
"test_QTail_reversed_union"
"test_QTail_reversed_xor"
"test_Q_difference"
"test_Q_intersection"
"test_Q_union"
"test_Q_xor")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-version
@ -1243,8 +1259,7 @@ basic geometries.")
python-fontpens-bootstrap
python-pytest
python-setuptools
python-setuptools-scm
unzip))
python-setuptools-scm))
(home-page "https://github.com/typemytype/booleanOperations")
(synopsis "Boolean operations on paths")
(description

View file

@ -374,7 +374,7 @@ arrays of data.")
(define-public gstreamer-docs
(package
(name "gstreamer-docs")
(version "1.24.9")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append
@ -382,7 +382,7 @@ arrays of data.")
"/gstreamer-docs-" version ".tar.xz"))
(sha256
(base32
"0vb4d35rglvjlj2y9r0nlgankflqw0ql6gwsf4612505sa01mz7s"))))
"11q0yydchisd4c0jnqa6kmnf66kf25fim3l456krlwcy1qpsvd4j"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
@ -434,7 +434,7 @@ the GStreamer multimedia framework.")
(define-public gstreamer
(package
(name "gstreamer")
(version "1.24.9")
(version "1.26.3")
(source
(origin
(method url-fetch)
@ -443,7 +443,7 @@ the GStreamer multimedia framework.")
version ".tar.xz"))
(sha256
(base32
"03r6rwmih3nqxrfw9nkhpbwpwp1yf7qw3m2phl6a027mxrmppx7b"))))
"1016z0znl2j43n08rl19zdhfvfsgnmg44qh8fk6dr4qj481icrnw"))))
(build-system meson-build-system)
(arguments
(list #:disallowed-references (list python)
@ -515,7 +515,7 @@ This package provides the core library and elements.")
(define-public gst-plugins-base
(package
(name "gst-plugins-base")
(version "1.24.9")
(version "1.26.3")
(source
(origin
(method url-fetch)
@ -523,7 +523,7 @@ This package provides the core library and elements.")
name "-" version ".tar.xz"))
(sha256
(base32
"1jspg24zlpmg4bxa298v6l8hcaqw27411dj2v16y0g3xj13bkcsv"))))
"0cvrq9767w0aqzinifbirbc95jg4i4md4b8f4b70hlq217pzkyaf"))))
(build-system meson-build-system)
(propagated-inputs
(list glib ;required by gstreamer-sdp-1.0.pc
@ -623,7 +623,7 @@ for the GStreamer multimedia library.")
(define-public gst-plugins-good
(package
(name "gst-plugins-good")
(version "1.24.9")
(version "1.26.3")
(source
(origin
(method url-fetch)
@ -632,7 +632,7 @@ for the GStreamer multimedia library.")
"https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32 "17vr55pgh2paqi82l5jn841873c2w0lal7kgz2i3qzikzw5yazc9"))))
(base32 "0lrwscda9yy8a61bv65c3392vb5m8phrl5i7bwgbprnz1rkwjkpy"))))
(build-system meson-build-system)
(arguments
(list
@ -743,14 +743,14 @@ model to base your own plug-in on, here it is.")
(define-public gst-plugins-bad
(package
(name "gst-plugins-bad")
(version "1.24.9")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/src/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32
"1aswb97v1ird3rmfcsa32bvp4kgp8r987f83pd1knx8amylzgz1n"))
"0qbmblksgl2nmbi6brw54b1bzziw9flvqk2zb576y9qlmyn8vi4m"))
(modules '((guix build utils)))
(snippet
'(begin
@ -814,7 +814,13 @@ model to base your own plug-in on, here it is.")
((".*elements/dtls\\.c.*") "")
;; https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3921
((".*elements/mxfdemux\\.c.*") ""))
((".*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.
@ -953,7 +959,7 @@ par compared to the rest.")
(define-public gst-plugins-ugly
(package
(name "gst-plugins-ugly")
(version "1.24.9")
(version "1.26.3")
(source
(origin
(method url-fetch)
@ -961,7 +967,7 @@ par compared to the rest.")
(string-append "https://gstreamer.freedesktop.org/src/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32 "1dn33ivfc0rnn545y40303h5z9bm5ca9f8j2czmhbk9q1w8k0ssb"))))
(base32 "19fvv6rvrcvhw4lnx078xb4b85pzbwbrqwdk841sqd7pjpl5wzs1"))))
(build-system meson-build-system)
(arguments
(list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
@ -1010,7 +1016,7 @@ think twice about shipping them.")
(define-public gst-libav
(package
(name "gst-libav")
(version "1.24.9")
(version "1.26.3")
(source
(origin
(method url-fetch)
@ -1019,7 +1025,7 @@ think twice about shipping them.")
"https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32 "0v253lbic7abc9vpb690f80arql10193ljqkzgs03vh8wnd2ws1j"))))
(base32 "0kbjs8z545maj3j2qzgpg41v3yr53q1c852v80zbmf5rld87xnis"))))
(build-system meson-build-system)
(native-inputs (list perl pkg-config python-wrapper ruby))
(inputs (list ffmpeg))
@ -1033,7 +1039,7 @@ decoders, muxers, and demuxers provided by FFmpeg.")
(define-public gst-editing-services
(package
(name "gst-editing-services")
(version "1.24.9")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append
@ -1041,7 +1047,7 @@ decoders, muxers, and demuxers provided by FFmpeg.")
"gst-editing-services-" version ".tar.xz"))
(sha256
(base32
"04khlbw3wy5zr2s246252zrd4hnzv2x36l5avz0lxif6pr9nwl07"))))
"1lkgs5h76qzqfpqvi31vs5xr68bbi0kwkw2g0ahvcs1l5hysj86x"))))
(build-system meson-build-system)
(arguments
(list
@ -1100,10 +1106,45 @@ given, also pass them to the build system instead of the ones used by PKG."
\"bad\" plugin set, essentially containing libraries and the gst-transcoder
binary, but none of the actual plugins.")))
(define-public gst-rtsp-server
(package
(name "gst-rtsp-server")
(version "1.26.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32 "1ibg83sa0nswqan5fg378bg36jis5sn1dwfl1mvqjiw4m59qlpj1"))))
(build-system meson-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests
(lambda _
(define failing
(list "client" "media" "mediafactory" "rtspserver"
"sessionmedia" "stream" "onvif" "rtspclientsink"))
(substitute* "tests/check/meson.build"
(("'gst/(.*)',?" all test)
(if (member test failing) "" all))))))))
(propagated-inputs
(list gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad))
(native-inputs (list gobject-introspection
`(,glib "bin")
pkg-config
python-wrapper))
(home-page "https://gstreamer.freedesktop.org/")
(synopsis "Library for building RTSP servers with GStreamer")
(description "This package provides a GStreamer extension to handle
RTSP connections and messages.")
(license license:lgpl2.0+)))
(define-public python-gst
(package
(name "python-gst")
(version "1.24.9")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append
@ -1111,7 +1152,7 @@ binary, but none of the actual plugins.")))
"gst-python-" version ".tar.xz"))
(sha256
(base32
"0bplhfnvsi3l9fmfb346n2dvzi1jrxqpp4kcwiwsrjrlgic1vrl0"))))
"04hv5pj8br56knvw1nsx74j1lpxskbm6znsdqac28iszqjkvjhwk"))))
(build-system meson-build-system)
(arguments
(list
@ -1127,7 +1168,10 @@ binary, but none of the actual plugins.")))
(native-inputs
(list pkg-config python))
(propagated-inputs
(list gst-plugins-base python-pygobject))
(list gst-plugins-base
gst-plugins-bad ; for gst-analytics
gst-rtsp-server
python-pygobject))
(home-page "https://gstreamer.freedesktop.org/")
(synopsis "GStreamer GObject Introspection overrides for Python")
(description

View file

@ -36,7 +36,7 @@
;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2024, 2025 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2025 Florian Pelz <pelzflorian@pelzflorian.de>
;;; Copyright © 2025 Remco van 't Veer <remco@remworks.net>
;;;
@ -285,7 +285,7 @@ output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
(define-public harfbuzz
(package
(name "harfbuzz")
(version "8.3.0")
(version "11.4.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/harfbuzz/harfbuzz"
@ -293,7 +293,7 @@ output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
version ".tar.xz"))
(sha256
(base32
"0izq2lpqxrf1l755nxrxkkiarywkx5j43asznankxplbxgm0358h"))))
"1iaqiwh3b6mwv1ar2mm29fpfygsb1x79wv7mm6ppyn7a8rqz2lqh"))))
(build-system meson-build-system)
(outputs '("out"
"bin")) ;160K, only hb-view depend on cairo
@ -613,7 +613,7 @@ diagrams.")
fribidi
glib
gtk
libxml2-next
libxml2
pango
pcre2))
(home-page "https://wiki.gnome.org/Projects/GtkSourceView")
@ -1009,19 +1009,19 @@ application suites.")
(package
(inherit gtk+-2)
(name "gtk+")
(version "3.24.43")
(replacement gtk+/fixed)
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1izky8dxaxp4bg5nii4n58dgpkw79mvmvbkldf04n0qmhmjg013y"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
(version "3.24.49")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/GNOME/gtk")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0flsnh3f0l9v3y2hmnxz1h15nw1l12ixmiwcpiy1ywplrlgq4j00"))
(patches (search-patches
"gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
;; There is no "doc" output, because adding gtk-doc here would introduce a
;; dependency cycle with itself.
(outputs '("out" "bin"))
@ -1097,11 +1097,22 @@ 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',.*") ""))))
;; These tests fail only in the containerized environment, for
;; unknown reasons.
(substitute* "testsuite/gtk/meson.build"
((".*\\['defaultvalue'],.*") "")
((".*\\['objects-finalize',.*") ""))
;; The 'flipping-icons.ui' and 'gtk-icontheme-sizing.ui' tests
;; fail for unknown reasons (see:
;; <https://gitlab.gnome.org/GNOME/gtk/-/issues/7679>).
(substitute* "testsuite/reftests/meson.build"
((" 'flipping-icons.ui',.*") "")
((" 'gtk-icontheme-sizing.ui',.*") ""))
;; This test fails just on i686-linux, for unknown reasons.
#$@(if (target-x86-32?)
#~((substitute* "testsuite/reftests/meson.build"
((" 'linear-gradient.ui',.*") "")))
#~())))
(add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
(assoc-ref glib-or-gtk:%standard-phases
'generate-gdk-pixbuf-loaders-cache-file))
@ -1128,41 +1139,6 @@ application suites.")
(variable "GUIX_GTK3_PATH")
(files '("lib/gtk-3.0")))))))
(define-public gtk+/fixed
(package
(inherit gtk+)
(name "gtk+")
(version "3.24.49")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/GNOME/gtk")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0flsnh3f0l9v3y2hmnxz1h15nw1l12ixmiwcpiy1ywplrlgq4j00"))
(patches (search-patches
"gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments gtk+)
((#:phases phases)
#~(modify-phases #$phases
(replace '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',.*") ""))))))))))
(define-public gtk
(package
(name "gtk")
@ -2370,7 +2346,8 @@ information.")
(base32
"0746lwxgybc5ss3hzdd0crjjghk0ck0x9jbmz73iig405arp42xj"))
(patches
(search-patches "gtk-doc-respect-xml-catalog.patch"))))
(search-patches "gtk-doc-respect-xml-catalog.patch"
"gtk-doc-mkhtml-test-fix.patch"))))
(build-system meson-build-system)
(arguments
(list

View file

@ -1189,7 +1189,20 @@ is not available for Guile 2.0.")
(base32
"15ynxr3pfjscd6mz641zagv6i84jh9y65i5dnbb3j3q72j6bbvnb"))
(patches '())))
(arguments '())))
(arguments
(if (target-aarch64?)
(list #:phases
#~(modify-phases %standard-phases
(add-before 'check 'disable-jit
(lambda _
;; XXX: Due to a JIT bug in Guile 3.0.9 on AArch64,
;; some tests would hang:
;; <https://codeberg.org/fibers/fibers/issues/83>.
;; Disable JIT for now; re-enable it when Guile 3.0.10+
;; is used. (Note: The Shepherd disables JIT on
;; AArch64 so it can safely use Fibers.)
(setenv "GUILE_JIT_THRESHOLD" "-1")))))
'()))))
(define-public guile-fibers guile-fibers-1.4)

View file

@ -502,7 +502,7 @@ without requiring the source code to be rewritten.")
;; The main goal here is to allow for '--with-branch'.
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/guile.git")
(url "https://codeberg.org/guile/guile.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256

View file

@ -476,7 +476,7 @@ sharing.")
procps
psmisc ;for pstree
rpm
sane-backends
sane
smartmontools
sysstat
upower

View file

@ -815,7 +815,7 @@ the OpenCV-Python library.")
libpng
(librsvg-for-system)
libtiff
libxml2-next
libxml2
libwebp
matio
openexr

View file

@ -8,6 +8,7 @@
;;; Copyright © 2020 Boris A. Dekshteyn <boris.dekshteyn@gmail.com>
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2023, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2025 John Kehayias <john@guixotic.coop>
;;;
;;; This file is part of GNU Guix.
;;;
@ -78,6 +79,7 @@
(base32 "0sq81smxwypgnp7r3wgza8w25dsz9qa8ga79sc85xzj3qi6q9lfv"))
(modules '((guix build utils)
(ice-9 format)))
(patches (search-patches "inkscape-libxml2.patch"))
(snippet
'(begin
(let-syntax

View file

@ -1417,7 +1417,7 @@ transport data and for performing public transport journey queries.")
(list extra-cmake-modules))
(inputs
(list ki18n
sane-backends))
sane))
(home-page "https://invent.kde.org/libraries/ksanecore")
(synopsis "Library providing logic to interface scanners")
(description

View file

@ -286,7 +286,7 @@ into other word processors.")
(native-inputs
(list cppunit gperf pkg-config))
(propagated-inputs ; in Requires or Requires.private field of .pkg
(list icu4c liblangtag librevenge libxml2-next))
(list icu4c liblangtag librevenge libxml2))
(inputs
(list boost))
(arguments
@ -372,7 +372,7 @@ working with graphics in the WPG (WordPerfect Graphics) format.")
(native-inputs
(list autoconf automake libtool cppunit pkg-config))
(propagated-inputs ;in Requires field of .pkg
(list curl libxml2-next))
(list curl libxml2))
(inputs
(list boost cyrus-sasl openssl))
(arguments
@ -413,7 +413,7 @@ as Alfresco or Nuxeo.")
(native-inputs
(list doxygen gperf perl pkg-config))
(propagated-inputs ; in Requires or Requires.private field of .pkg
(list librevenge libxml2-next))
(list librevenge libxml2))
(inputs
(list boost))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libabw")
@ -467,7 +467,7 @@ CorelDRAW documents of all versions.")
(native-inputs
(list cppunit doxygen gperf pkg-config))
(propagated-inputs ; in Requires or Requires.private field of .pkg
(list liblangtag librevenge libxml2-next zlib))
(list liblangtag librevenge libxml2 zlib))
(inputs
(list boost glm mdds))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libetonyek")
@ -479,14 +479,14 @@ Apple Keynote documents. It currently supports Keynote versions 2 to 5.")
(define-public liblangtag
(package
(name "liblangtag")
(version "0.6.4")
(version "0.6.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/tagoh/liblangtag/downloads/"
"liblangtag-" version ".tar.bz2"))
(sha256
(base32 "0r55r30ih8dgq1hwbpl834igilj7bpxcnmlrlkd3vryk2wn0c0ap"))))
(base32 "03h33sjqsrmmkyj2kxs7c6226hd4s5n22bz62b4hag1zmvabrmjy"))))
(build-system gnu-build-system)
(native-inputs
(list libtool pkg-config))
@ -772,15 +772,28 @@ Works word processor file format.")
(uri (string-append "http://dev-www.libreoffice.org/src/libzmf/libzmf-"
version ".tar.xz"))
(sha256 (base32
"08mg5kmkjrmqrd8j5rkzw9vdqlvibhb1ynp6bmfxnzq5rcq1l197"))))
"08mg5kmkjrmqrd8j5rkzw9vdqlvibhb1ynp6bmfxnzq5rcq1l197"))
(patches (search-patches "libzmf-doxygen-1.14.patch"))))
(build-system gnu-build-system)
(arguments
;; A harmless 'sign-compare' error pops up on i686 so disable '-Werror'.
'(#:configure-flags '("--disable-werror")))
(list
;; A harmless 'sign-compare' error pops up on i686 so disable '-Werror'.
#:configure-flags #~'("--disable-werror")
#:phases
#~(modify-phases %standard-phases
(replace 'bootstrap
(lambda _
;; Override the bootstrap phase as a makefile has been patched.
(invoke "autoreconf" "-vif"))))))
(inputs
(list boost icu4c libpng librevenge zlib))
(native-inputs
(list cppunit doxygen pkg-config))
(list autoconf
automake
libtool
cppunit
doxygen
pkg-config))
(home-page "https://wiki.documentfoundation.org/DLP/Libraries/libzmf")
(synopsis "Parses file format of Zoner Callisto/Draw documents")
(description "Libzmf is a library that parses the file format of Zoner
@ -1177,7 +1190,7 @@ commonly called @code{ftoa} or @code{dtoa}.")
python-lxml
qrcodegen-cpp
redland
sane-backends
sane
unixodbc
unzip
vigra

View file

@ -6121,12 +6121,14 @@ simple speech recognition.")
(build-system pyproject-build-system)
(arguments
(list
#:test-backend #~'custom
#:test-flags #~(list "../../tests/from_words_to_digits.py")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "package/python"))))))
(native-inputs (list python-setuptools python-wheel))
(native-inputs (list python-setuptools))
(propagated-inputs (list python-vosk))
(home-page "https://github.com/ideasman42/nerd-dictation")
(synopsis "Offline speech-to-text for desktop Linux")

View file

@ -4353,16 +4353,16 @@ It is a replacement for the @command{urlview} program.")
(define-public mumi
(package
(name "mumi")
(version "0.13.0")
(version "0.14.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/guix/mumi.git/")
(url "https://codeberg.org/guix/mumi.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"04mcd1xkdpvxlvpf4k4mvnwi06sdy8vy1di6gxxsr9msgdb366ir"))))
"1v5gjzh8idz926518c0bv0qsmyggr6lvqn5vksf5j0qdh6r6dar7"))))
(build-system gnu-build-system)
(arguments
(list

View file

@ -303,7 +303,7 @@ desktop and the mate-about program.")
(propagated-inputs
;; both of these are requires.private in mateweather.pc
(list libsoup-minimal-2
libxml2-next))
libxml2))
(home-page "https://mate-desktop.org/")
(synopsis "MATE library for weather information from the Internet")
(description

View file

@ -8206,37 +8206,36 @@ instruction sets. Thus, an application written with Vc can be compiled for:
(define-public reducelcs
;; This is the last commit which is available upstream, no
;; release happened since 2010.
(let ((commit "474f88deb968061abe8cf11c959e02319b8ae5c0")
(revision "1"))
(let ((commit "963f74f7279ba6fc0ea7d8ddfd361ea190c80313")
(revision "2"))
(package
(name "reducelcs")
(version (string-append "1.0-" revision "." (string-take commit 7)))
(version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gdv/Reduce-Expand-for-LCS")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(file-name (git-file-name name version))
(sha256
(base32
"1rllzcfwc042c336mhq262a8ha90x6afq30kvk60r7i4761j4yjm"))))
"03chvd9wb2z08r7ka2npr49dbimjvzn2gfm7cnp5l079vbw1dfny"))))
(build-system gnu-build-system)
(inputs
(list openlibm))
(inputs (list openlibm))
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(delete 'configure) ; No configure script exists.
(replace 'install ; No install phase exists.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "Approximation" bin)
(install-file "CollectResults" bin)
(install-file "GenerateInstances" bin)
#t))))))
(list
#:tests? #f ; no tests
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; No configure script exists.
(replace 'install ; No install phase exists.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "Approximation" bin)
(install-file "CollectResults" bin)
(install-file "GenerateInstances" bin)))))))
(synopsis "Approximate Longest Commons Subsequence computation tool")
(description
"@code{reduceLCS} is an implementation of the Reduce-Expand

View file

@ -300,7 +300,7 @@ XMPP-based sessions.")
gtk-doc/stable
pkg-config))
(inputs (list libxcrypt ncurses))
(propagated-inputs (list glib libxml2-next))
(propagated-inputs (list glib libxml2))
(synopsis "GLib Ncurses Toolkit")
(description "GNT is an ncurses toolkit for creating text-mode graphical
user interfaces in a fast and easy way. It is based on GLib and ncurses.")

View file

@ -4206,8 +4206,8 @@ websites such as Libre.fm.")
(license license:asl2.0)))
(define-public instantmusic
(let ((commit "300891d09c703525215fa5a116b9294af1c923c8")
(revision "1"))
(let ((commit "0477dd310e0aeb11d4d113bb96baa40d824cc330")
(revision "2"))
(package
(name "instantmusic")
(version (git-version "1.0" revision commit))
@ -4219,10 +4219,11 @@ websites such as Libre.fm.")
(file-name (git-file-name name version))
(sha256
(base32
"0j7qivaa04bpdz3anmgci5833dgiyfqqwq9fdrpl9m68b34gl773"))))
"0pxp1h0q4j7bidgdh4wgrvnm4ckdr4bvgk1wccr02mynfsjq8x5c"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ;no tests
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'change-directory
@ -4243,7 +4244,7 @@ websites such as Libre.fm.")
(chmod file #o644))
(find-files "instantmusic.egg-info"
"PKG-INFO|.*\\.txt")))))))
(native-inputs (list python-setuptools python-wheel))
(native-inputs (list python-setuptools))
(inputs (list yt-dlp))
(propagated-inputs (list python-requests eyed3 python-beautifulsoup4))
(home-page "https://github.com/yask123/Instant-Music-Downloader")
@ -6089,40 +6090,44 @@ Recording Code} (ISRC) can be extracted.}")
(license license:lgpl3+)))
(define-public libmusicbrainz
(package
(name "libmusicbrainz")
(version "5.1.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/metabrainz/libmusicbrainz/releases/download/release-"
version "/libmusicbrainz-" version ".tar.gz"))
(sha256
(base32
"0ikb9igyyk28jm34raxfzkw2qyn4nzzwsymdyprp7cmvi6g2ajb7"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-build
(lambda _
(substitute* "src/CMakeLists.txt"
(("\\*.inc") ""))))
(replace 'check
(lambda _
;; requires network connections
;; (invoke "tests/mbtest")
(invoke "tests/ctest")
#t)))))
(inputs (list neon libxml2))
(native-inputs (list pkg-config))
(home-page "https://musicbrainz.org/doc/libmusicbrainz")
(synopsis "MusicBrainz client library")
(description "The MusicBrainz Client Library (libmusicbrainz), also known as
;; The latest release is more than a decade old, doesn't build with the
;; latest libxml2 release.
(let ((commit "4efbed3afae11ef68281816088d7cf3d0f704dfe")
(revision "0"))
(package
(name "libmusicbrainz")
(version (git-version "5.1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/metabrainz/libmusicbrainz")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1h1q0gg3xzhw115ifr5ja9gbd2k6ggkpm2f4sdqp313wp3lj86g9"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-build
(lambda _
(substitute* "src/CMakeLists.txt"
(("\\*.inc") ""))))
(replace 'check
(lambda _
;; requires network connections
;; (invoke "tests/mbtest")
(invoke "tests/ctest"))))))
(inputs (list neon libxml2))
(native-inputs (list pkg-config))
(home-page "https://musicbrainz.org/doc/libmusicbrainz")
(synopsis "MusicBrainz client library")
(description "The MusicBrainz Client Library (libmusicbrainz), also known as
mb_client, is a development library geared towards developers who wish to add
MusicBrainz lookup capabilities to their applications.")
(license license:lgpl2.1+)))
(license license:lgpl2.1+))))
(define-public perl-musicbrainz-discid
(package

View file

@ -1470,14 +1470,15 @@ Knuths LR(1) parser construction technique.")
(wrap-program (string-append #$output "/bin/" "binsec")
`("OCAMLPATH" ":" prefix ,ocamlpath))))))))
(inputs (list bash-minimal))
(native-inputs (list gmp ocaml-qcheck ocaml-ounit2))
(native-inputs (list gmp ocaml-qcheck ocaml-ounit2 z3))
(propagated-inputs (list dune-site
ocaml-base
ocaml-menhir
ocaml-graph
ocaml-zarith
ocaml-grain-dypgen
ocaml-toml))
ocaml-toml
ocaml-z3))
(synopsis "Binary-level analysis platform")
(description
"BINSEC is a binary analysis platform which implements analysis

View file

@ -213,7 +213,7 @@ default. To add support for more languages, the
leptonica
podofo
poppler-qt5
sane-backends
sane
qtbase-5
qtspell
quazip-5

View file

@ -1931,7 +1931,7 @@ This package just includes the agent component.")))
(define-public guix-jupyter
(package
(name "guix-jupyter")
(version "0.3.0")
(version "0.3.1")
(home-page "https://codeberg.org/guix-science/guix-jupyter")
(source (origin
(method git-fetch)
@ -1939,7 +1939,7 @@ This package just includes the agent component.")))
(commit (string-append "v" version))))
(sha256
(base32
"0cvjxv60la2bqmwb7m2bfpvjy8hx1hmjk2qy9wfzaffcabgr0x44"))
"1yvrmaj4qcb9vn2nfjz1q0cil830hvmxpp8cgi76aylbnv36aask"))
(file-name (string-append "guix-jupyter-" version "-checkout"))))
(build-system gnu-build-system)
(arguments

View file

@ -1,529 +0,0 @@
From 373924d728b61cf6dec9c8a1a1edeb4b9f342529 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Fri, 27 Sep 2024 17:03:10 +0200
Subject: [PATCH] gnu: cups-minimal: Address PPD injection issues.
This patch combines 5 upstream commits:
9939a70b750edd9d05270060cc5cf62ca98cfbe5
04bb2af4521b56c1699a2c2431c56c05a7102e69
e0630cd18f76340d302000f2bf6516e99602b844
1e6ca5913eceee906038bc04cc7ccfbe2923bdfd
2abe1ba8a66864aa82cd9836b37e57103b8e1a3b
---
cups/ppd-cache.c | 235 +++++++++++++++++++++++++++++++++--------------
scheduler/ipp.c | 9 +-
2 files changed, 174 insertions(+), 70 deletions(-)
diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c
index e750fccd4..d2533b731 100644
--- a/cups/ppd-cache.c
+++ b/cups/ppd-cache.c
@@ -32,6 +32,7 @@
static int cups_connect(http_t **http, const char *url, char *resource, size_t ressize);
static int cups_get_url(http_t **http, const char *url, char *name, size_t namesize);
static const char *ppd_inputslot_for_keyword(_ppd_cache_t *pc, const char *keyword);
+static void ppd_put_string(cups_file_t *fp, cups_lang_t *lang, cups_array_t *strings, const char *ppd_option, const char *ppd_choice, const char *pwg_msgid);
static void pwg_add_finishing(cups_array_t *finishings, ipp_finishings_t template, const char *name, const char *value);
static void pwg_add_message(cups_array_t *a, const char *msg, const char *str);
static int pwg_compare_finishings(_pwg_finishings_t *a, _pwg_finishings_t *b);
@@ -3197,9 +3198,10 @@ _ppdCreateFromIPP2(
ipp_t *media_col, /* Media collection */
*media_size; /* Media size collection */
char make[256], /* Make and model */
- *model, /* Model name */
+ *mptr, /* Pointer into make and model */
ppdname[PPD_MAX_NAME];
/* PPD keyword */
+ const char *model; /* Model name */
int i, j, /* Looping vars */
count, /* Number of values */
bottom, /* Largest bottom margin */
@@ -3221,8 +3223,7 @@ _ppdCreateFromIPP2(
int have_qdraft = 0,/* Have draft quality? */
have_qhigh = 0; /* Have high quality? */
char msgid[256]; /* Message identifier (attr.value) */
- const char *keyword, /* Keyword value */
- *msgstr; /* Localized string */
+ const char *keyword; /* Keyword value */
cups_array_t *strings = NULL;/* Printer strings file */
struct lconv *loc = localeconv();
/* Locale data */
@@ -3260,34 +3261,104 @@ _ppdCreateFromIPP2(
}
/*
- * Standard stuff for PPD file...
+ * Get a sanitized make and model...
*/
- cupsFilePuts(fp, "*PPD-Adobe: \"4.3\"\n");
- cupsFilePuts(fp, "*FormatVersion: \"4.3\"\n");
- cupsFilePrintf(fp, "*FileVersion: \"%d.%d\"\n", CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR);
- cupsFilePuts(fp, "*LanguageVersion: English\n");
- cupsFilePuts(fp, "*LanguageEncoding: ISOLatin1\n");
- cupsFilePuts(fp, "*PSVersion: \"(3010.000) 0\"\n");
- cupsFilePuts(fp, "*LanguageLevel: \"3\"\n");
- cupsFilePuts(fp, "*FileSystem: False\n");
- cupsFilePuts(fp, "*PCFileName: \"ippeve.ppd\"\n");
+ if ((attr = ippFindAttribute(supported, "printer-make-and-model", IPP_TAG_TEXT)) != NULL && ippValidateAttribute(attr))
+ {
+ /*
+ * Sanitize the model name to only contain PPD-safe characters.
+ */
- if ((attr = ippFindAttribute(supported, "printer-make-and-model", IPP_TAG_TEXT)) != NULL)
strlcpy(make, ippGetString(attr, 0, NULL), sizeof(make));
+
+ for (mptr = make; *mptr; mptr ++)
+ {
+ if (*mptr < ' ' || *mptr >= 127 || *mptr == '\"')
+ {
+ /*
+ * Truncate the make and model on the first bad character...
+ */
+
+ *mptr = '\0';
+ break;
+ }
+ }
+
+ while (mptr > make)
+ {
+ /*
+ * Strip trailing whitespace...
+ */
+
+ mptr --;
+ if (*mptr == ' ')
+ *mptr = '\0';
+ }
+
+ if (!make[0])
+ {
+ /*
+ * Use a default make and model if nothing remains...
+ */
+
+ strlcpy(make, "Unknown", sizeof(make));
+ }
+ }
else
- strlcpy(make, "Unknown Printer", sizeof(make));
+ {
+ /*
+ * Use a default make and model...
+ */
+
+ strlcpy(make, "Unknown", sizeof(make));
+ }
if (!_cups_strncasecmp(make, "Hewlett Packard ", 16) || !_cups_strncasecmp(make, "Hewlett-Packard ", 16))
{
+ /*
+ * Normalize HP printer make and model...
+ */
+
model = make + 16;
strlcpy(make, "HP", sizeof(make));
+
+ if (!_cups_strncasecmp(model, "HP ", 3))
+ model += 3;
+ }
+ else if ((mptr = strchr(make, ' ')) != NULL)
+ {
+ /*
+ * Separate "MAKE MODEL"...
+ */
+
+ while (*mptr && *mptr == ' ')
+ *mptr++ = '\0';
+
+ model = mptr;
}
- else if ((model = strchr(make, ' ')) != NULL)
- *model++ = '\0';
else
- model = make;
+ {
+ /*
+ * No separate model name...
+ */
+ model = "Printer";
+ }
+
+ /*
+ * Standard stuff for PPD file...
+ */
+
+ cupsFilePuts(fp, "*PPD-Adobe: \"4.3\"\n");
+ cupsFilePuts(fp, "*FormatVersion: \"4.3\"\n");
+ cupsFilePrintf(fp, "*FileVersion: \"%d.%d\"\n", CUPS_VERSION_MAJOR, CUPS_VERSION_MINOR);
+ cupsFilePuts(fp, "*LanguageVersion: English\n");
+ cupsFilePuts(fp, "*LanguageEncoding: ISOLatin1\n");
+ cupsFilePuts(fp, "*PSVersion: \"(3010.000) 0\"\n");
+ cupsFilePuts(fp, "*LanguageLevel: \"3\"\n");
+ cupsFilePuts(fp, "*FileSystem: False\n");
+ cupsFilePuts(fp, "*PCFileName: \"ippeve.ppd\"\n");
cupsFilePrintf(fp, "*Manufacturer: \"%s\"\n", make);
cupsFilePrintf(fp, "*ModelName: \"%s\"\n", model);
cupsFilePrintf(fp, "*Product: \"(%s)\"\n", model);
@@ -3317,13 +3388,13 @@ _ppdCreateFromIPP2(
}
cupsFilePuts(fp, "\"\n");
- if ((attr = ippFindAttribute(supported, "printer-more-info", IPP_TAG_URI)) != NULL)
+ if ((attr = ippFindAttribute(supported, "printer-more-info", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr))
cupsFilePrintf(fp, "*APSupplies: \"%s\"\n", ippGetString(attr, 0, NULL));
- if ((attr = ippFindAttribute(supported, "printer-charge-info-uri", IPP_TAG_URI)) != NULL)
+ if ((attr = ippFindAttribute(supported, "printer-charge-info-uri", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr))
cupsFilePrintf(fp, "*cupsChargeInfoURI: \"%s\"\n", ippGetString(attr, 0, NULL));
- if ((attr = ippFindAttribute(supported, "printer-strings-uri", IPP_TAG_URI)) != NULL)
+ if ((attr = ippFindAttribute(supported, "printer-strings-uri", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr))
{
http_t *http = NULL; /* Connection to printer */
char stringsfile[1024]; /* Temporary strings file */
@@ -3367,7 +3438,7 @@ _ppdCreateFromIPP2(
response = cupsDoRequest(http, request, resource);
- if ((attr = ippFindAttribute(response, "printer-strings-uri", IPP_TAG_URI)) != NULL)
+ if ((attr = ippFindAttribute(response, "printer-strings-uri", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr))
cupsFilePrintf(fp, "*cupsStringsURI %s: \"%s\"\n", keyword, ippGetString(attr, 0, NULL));
ippDelete(response);
@@ -3389,10 +3460,10 @@ _ppdCreateFromIPP2(
if (ippGetBoolean(ippFindAttribute(supported, "job-accounting-user-id-supported", IPP_TAG_BOOLEAN), 0))
cupsFilePuts(fp, "*cupsJobAccountingUserId: True\n");
- if ((attr = ippFindAttribute(supported, "printer-privacy-policy-uri", IPP_TAG_URI)) != NULL)
+ if ((attr = ippFindAttribute(supported, "printer-privacy-policy-uri", IPP_TAG_URI)) != NULL && ippValidateAttribute(attr))
cupsFilePrintf(fp, "*cupsPrivacyURI: \"%s\"\n", ippGetString(attr, 0, NULL));
- if ((attr = ippFindAttribute(supported, "printer-mandatory-job-attributes", IPP_TAG_KEYWORD)) != NULL)
+ if ((attr = ippFindAttribute(supported, "printer-mandatory-job-attributes", IPP_TAG_KEYWORD)) != NULL && ippValidateAttribute(attr))
{
char prefix = '\"'; // Prefix for string
@@ -3410,7 +3481,7 @@ _ppdCreateFromIPP2(
cupsFilePuts(fp, "\"\n");
}
- if ((attr = ippFindAttribute(supported, "printer-requested-job-attributes", IPP_TAG_KEYWORD)) != NULL)
+ if ((attr = ippFindAttribute(supported, "printer-requested-job-attributes", IPP_TAG_KEYWORD)) != NULL && ippValidateAttribute(attr))
{
char prefix = '\"'; // Prefix for string
@@ -3973,18 +4044,16 @@ _ppdCreateFromIPP2(
cupsFilePrintf(fp, "*DefaultInputSlot: %s\n", ppdname);
for (j = 0; j < (int)(sizeof(sources) / sizeof(sources[0])); j ++)
+ {
if (!strcmp(sources[j], keyword))
{
snprintf(msgid, sizeof(msgid), "media-source.%s", keyword);
- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr))
- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid)
- msgstr = keyword;
-
cupsFilePrintf(fp, "*InputSlot %s: \"<</MediaPosition %d>>setpagedevice\"\n", ppdname, j);
- cupsFilePrintf(fp, "*%s.InputSlot %s/%s: \"\"\n", lang->language, ppdname, msgstr);
+ ppd_put_string(fp, lang, strings, "InputSlot", ppdname, msgid);
break;
}
+ }
}
cupsFilePuts(fp, "*CloseUI: *InputSlot\n");
}
@@ -4010,12 +4079,9 @@ _ppdCreateFromIPP2(
pwg_ppdize_name(keyword, ppdname, sizeof(ppdname));
snprintf(msgid, sizeof(msgid), "media-type.%s", keyword);
- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr))
- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid)
- msgstr = keyword;
cupsFilePrintf(fp, "*MediaType %s: \"<</MediaType(%s)>>setpagedevice\"\n", ppdname, ppdname);
- cupsFilePrintf(fp, "*%s.MediaType %s/%s: \"\"\n", lang->language, ppdname, msgstr);
+ ppd_put_string(fp, lang, strings, "MediaType", ppdname, msgid);
}
cupsFilePuts(fp, "*CloseUI: *MediaType\n");
}
@@ -4476,12 +4542,9 @@ _ppdCreateFromIPP2(
pwg_ppdize_name(keyword, ppdname, sizeof(ppdname));
snprintf(msgid, sizeof(msgid), "output-bin.%s", keyword);
- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr))
- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid)
- msgstr = keyword;
cupsFilePrintf(fp, "*OutputBin %s: \"\"\n", ppdname);
- cupsFilePrintf(fp, "*%s.OutputBin %s/%s: \"\"\n", lang->language, ppdname, msgstr);
+ ppd_put_string(fp, lang, strings, "OutputBin", ppdname, msgid);
if ((tray_ptr = ippGetOctetString(trays, i, &tray_len)) != NULL)
{
@@ -4600,9 +4663,6 @@ _ppdCreateFromIPP2(
cupsArrayAdd(names, (char *)keyword);
snprintf(msgid, sizeof(msgid), "finishings.%d", value);
- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr))
- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid)
- msgstr = keyword;
if (value >= IPP_FINISHINGS_NONE && value <= IPP_FINISHINGS_LAMINATE)
ppd_keyword = base_keywords[value - IPP_FINISHINGS_NONE];
@@ -4617,7 +4677,7 @@ _ppdCreateFromIPP2(
continue;
cupsFilePrintf(fp, "*StapleLocation %s: \"\"\n", ppd_keyword);
- cupsFilePrintf(fp, "*%s.StapleLocation %s/%s: \"\"\n", lang->language, ppd_keyword, msgstr);
+ ppd_put_string(fp, lang, strings, "StapleLocation", ppd_keyword, msgid);
cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*StapleLocation %s\"\n", value, keyword, ppd_keyword);
}
@@ -4680,9 +4740,6 @@ _ppdCreateFromIPP2(
cupsArrayAdd(names, (char *)keyword);
snprintf(msgid, sizeof(msgid), "finishings.%d", value);
- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr))
- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid)
- msgstr = keyword;
if (value >= IPP_FINISHINGS_NONE && value <= IPP_FINISHINGS_LAMINATE)
ppd_keyword = base_keywords[value - IPP_FINISHINGS_NONE];
@@ -4697,7 +4754,7 @@ _ppdCreateFromIPP2(
continue;
cupsFilePrintf(fp, "*FoldType %s: \"\"\n", ppd_keyword);
- cupsFilePrintf(fp, "*%s.FoldType %s/%s: \"\"\n", lang->language, ppd_keyword, msgstr);
+ ppd_put_string(fp, lang, strings, "FoldType", ppd_keyword, msgid);
cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*FoldType %s\"\n", value, keyword, ppd_keyword);
}
@@ -4768,9 +4825,6 @@ _ppdCreateFromIPP2(
cupsArrayAdd(names, (char *)keyword);
snprintf(msgid, sizeof(msgid), "finishings.%d", value);
- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr))
- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid)
- msgstr = keyword;
if (value >= IPP_FINISHINGS_NONE && value <= IPP_FINISHINGS_LAMINATE)
ppd_keyword = base_keywords[value - IPP_FINISHINGS_NONE];
@@ -4785,7 +4839,7 @@ _ppdCreateFromIPP2(
continue;
cupsFilePrintf(fp, "*PunchMedia %s: \"\"\n", ppd_keyword);
- cupsFilePrintf(fp, "*%s.PunchMedia %s/%s: \"\"\n", lang->language, ppd_keyword, msgstr);
+ ppd_put_string(fp, lang, strings, "PunchMedia", ppd_keyword, msgid);
cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*PunchMedia %s\"\n", value, keyword, ppd_keyword);
}
@@ -4856,9 +4910,6 @@ _ppdCreateFromIPP2(
cupsArrayAdd(names, (char *)keyword);
snprintf(msgid, sizeof(msgid), "finishings.%d", value);
- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr))
- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid)
- msgstr = keyword;
if (value == IPP_FINISHINGS_TRIM)
ppd_keyword = "Auto";
@@ -4866,7 +4917,7 @@ _ppdCreateFromIPP2(
ppd_keyword = trim_keywords[value - IPP_FINISHINGS_TRIM_AFTER_PAGES];
cupsFilePrintf(fp, "*CutMedia %s: \"\"\n", ppd_keyword);
- cupsFilePrintf(fp, "*%s.CutMedia %s/%s: \"\"\n", lang->language, ppd_keyword, msgstr);
+ ppd_put_string(fp, lang, strings, "CutMedia", ppd_keyword, msgid);
cupsFilePrintf(fp, "*cupsIPPFinishings %d/%s: \"*CutMedia %s\"\n", value, keyword, ppd_keyword);
}
@@ -4905,12 +4956,11 @@ _ppdCreateFromIPP2(
cupsArrayAdd(templates, (void *)keyword);
+ pwg_ppdize_name(keyword, ppdname, sizeof(ppdname));
+
snprintf(msgid, sizeof(msgid), "finishing-template.%s", keyword);
- if ((msgstr = _cupsLangString(lang, msgid)) == msgid || !strcmp(msgid, msgstr))
- if ((msgstr = _cupsMessageLookup(strings, msgid)) == msgid)
- msgstr = keyword;
- cupsFilePrintf(fp, "*cupsFinishingTemplate %s: \"\n", keyword);
+ cupsFilePrintf(fp, "*cupsFinishingTemplate %s: \"\n", ppdname);
for (finishing_attr = ippFirstAttribute(finishing_col); finishing_attr; finishing_attr = ippNextAttribute(finishing_col))
{
if (ippGetValueTag(finishing_attr) == IPP_TAG_BEGIN_COLLECTION)
@@ -4923,7 +4973,7 @@ _ppdCreateFromIPP2(
}
}
cupsFilePuts(fp, "\"\n");
- cupsFilePrintf(fp, "*%s.cupsFinishingTemplate %s/%s: \"\"\n", lang->language, keyword, msgstr);
+ ppd_put_string(fp, lang, strings, "cupsFinishingTemplate", ppdname, msgid);
cupsFilePuts(fp, "*End\n");
}
@@ -4959,9 +5009,8 @@ _ppdCreateFromIPP2(
{
ipp_t *preset = ippGetCollection(attr, i);
/* Preset collection */
- const char *preset_name = ippGetString(ippFindAttribute(preset, "preset-name", IPP_TAG_ZERO), 0, NULL),
+ const char *preset_name = ippGetString(ippFindAttribute(preset, "preset-name", IPP_TAG_ZERO), 0, NULL);
/* Preset name */
- *localized_name; /* Localized preset name */
ipp_attribute_t *member; /* Member attribute in preset */
const char *member_name; /* Member attribute name */
char member_value[256]; /* Member attribute value */
@@ -4969,7 +5018,8 @@ _ppdCreateFromIPP2(
if (!preset || !preset_name)
continue;
- cupsFilePrintf(fp, "*APPrinterPreset %s: \"\n", preset_name);
+ pwg_ppdize_name(preset_name, ppdname, sizeof(ppdname));
+ cupsFilePrintf(fp, "*APPrinterPreset %s: \"\n", ppdname);
for (member = ippFirstAttribute(preset); member; member = ippNextAttribute(preset))
{
member_name = ippGetName(member);
@@ -5010,7 +5060,10 @@ _ppdCreateFromIPP2(
fin_col = ippGetCollection(member, i);
if ((keyword = ippGetString(ippFindAttribute(fin_col, "finishing-template", IPP_TAG_ZERO), 0, NULL)) != NULL)
- cupsFilePrintf(fp, "*cupsFinishingTemplate %s\n", keyword);
+ {
+ pwg_ppdize_name(keyword, ppdname, sizeof(ppdname));
+ cupsFilePrintf(fp, "*cupsFinishingTemplate %s\n", ppdname);
+ }
}
}
else if (!strcmp(member_name, "media"))
@@ -5037,13 +5090,13 @@ _ppdCreateFromIPP2(
if ((keyword = ippGetString(ippFindAttribute(media_col, "media-source", IPP_TAG_ZERO), 0, NULL)) != NULL)
{
pwg_ppdize_name(keyword, ppdname, sizeof(ppdname));
- cupsFilePrintf(fp, "*InputSlot %s\n", keyword);
+ cupsFilePrintf(fp, "*InputSlot %s\n", ppdname);
}
if ((keyword = ippGetString(ippFindAttribute(media_col, "media-type", IPP_TAG_ZERO), 0, NULL)) != NULL)
{
pwg_ppdize_name(keyword, ppdname, sizeof(ppdname));
- cupsFilePrintf(fp, "*MediaType %s\n", keyword);
+ cupsFilePrintf(fp, "*MediaType %s\n", ppdname);
}
}
else if (!strcmp(member_name, "print-quality"))
@@ -5088,8 +5141,9 @@ _ppdCreateFromIPP2(
cupsFilePuts(fp, "\"\n*End\n");
- if ((localized_name = _cupsMessageLookup(strings, preset_name)) != preset_name)
- cupsFilePrintf(fp, "*%s.APPrinterPreset %s/%s: \"\"\n", lang->language, preset_name, localized_name);
+ snprintf(msgid, sizeof(msgid), "preset-name.%s", preset_name);
+ pwg_ppdize_name(preset_name, ppdname, sizeof(ppdname));
+ ppd_put_string(fp, lang, strings, "APPrinterPreset", ppdname, msgid);
}
}
@@ -5360,6 +5414,43 @@ cups_get_url(http_t **http, /* IO - Current HTTP connection */
}
+/*
+ * 'ppd_put_strings()' - Write localization attributes to a PPD file.
+ */
+
+static void
+ppd_put_string(cups_file_t *fp, /* I - PPD file */
+ cups_lang_t *lang, /* I - Language */
+ cups_array_t *strings, /* I - Strings */
+ const char *ppd_option,/* I - PPD option */
+ const char *ppd_choice,/* I - PPD choice */
+ const char *pwg_msgid) /* I - PWG message ID */
+{
+ const char *text; /* Localized text */
+
+
+ if ((text = _cupsLangString(lang, pwg_msgid)) == pwg_msgid || !strcmp(pwg_msgid, text))
+ {
+ if ((text = _cupsMessageLookup(strings, pwg_msgid)) == pwg_msgid)
+ return;
+ }
+
+ // Add the first line of localized text...
+ cupsFilePrintf(fp, "*%s.%s %s/", lang->language, ppd_option, ppd_choice);
+ while (*text && *text != '\n')
+ {
+ // Escape ":" and "<"...
+ if (*text == ':' || *text == '<')
+ cupsFilePrintf(fp, "<%02X>", *text);
+ else
+ cupsFilePutChar(fp, *text);
+
+ text ++;
+ }
+ cupsFilePuts(fp, ": \"\"\n");
+}
+
+
/*
* 'pwg_add_finishing()' - Add a finishings value.
*/
@@ -5473,7 +5564,7 @@ pwg_ppdize_name(const char *ipp, /* I - IPP keyword */
*end; /* End of name buffer */
- if (!ipp)
+ if (!ipp || !_cups_isalnum(*ipp))
{
*name = '\0';
return;
@@ -5488,8 +5579,14 @@ pwg_ppdize_name(const char *ipp, /* I - IPP keyword */
ipp ++;
*ptr++ = (char)toupper(*ipp++ & 255);
}
- else
+ else if (*ipp == '_' || *ipp == '.' || *ipp == '-' || _cups_isalnum(*ipp))
+ {
*ptr++ = *ipp++;
+ }
+ else
+ {
+ ipp ++;
+ }
}
*ptr = '\0';
diff --git a/scheduler/ipp.c b/scheduler/ipp.c
index 37623c54e..14b1fe1e0 100644
--- a/scheduler/ipp.c
+++ b/scheduler/ipp.c
@@ -1,7 +1,7 @@
/*
* IPP routines for the CUPS scheduler.
*
- * Copyright © 2020-2023 by OpenPrinting
+ * Copyright © 2020-2024 by OpenPrinting
* Copyright © 2007-2021 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
@@ -5417,6 +5417,13 @@ create_local_bg_thread(
}
}
+ // Validate response from printer...
+ if (!ippValidateAttributes(response))
+ {
+ send_ipp_status(con, IPP_STATUS_ERROR_DEVICE, _("Printer returned invalid data: %s"), cupsLastErrorString());
+ goto finish_response;
+ }
+
// TODO: Grab printer icon file...
httpClose(http);
--
2.46.0

View file

@ -0,0 +1,34 @@
From 943e44dafa192b54fadcbb24f5f87d62a22c9f84 Mon Sep 17 00:00:00 2001
From: Sergey Trofimov <sarg@sarg.org.ru>
Date: Wed, 17 Sep 2025 12:09:34 +0200
Subject: [PATCH] Exempt files in /gnu/store from root ownership check.
---
cups/file.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/cups/file.c b/cups/file.c
index 95054f3c8..9822619d4 100644
--- a/cups/file.c
+++ b/cups/file.c
@@ -159,7 +159,8 @@ _cupsFileCheck(
* 4. Must not be writable by others
*/
- if (fileinfo.st_uid || /* 1. Must be owned by root */
+ int in_gnu_store = !strncmp(filename, "/gnu/store/", 11);
+ if ((fileinfo.st_uid && !in_gnu_store) || /* 1. Must be owned by root or be in /gnu/store */
(fileinfo.st_mode & S_IWGRP) || /* 2. Must not be writable by group */
(fileinfo.st_mode & S_ISUID) || /* 3. Must not be setuid */
(fileinfo.st_mode & S_IWOTH)) /* 4. Must not be writable by others */
@@ -198,7 +199,7 @@ _cupsFileCheck(
goto finishup;
}
- if (fileinfo.st_uid || /* 1. Must be owned by root */
+ if ((fileinfo.st_uid && !in_gnu_store) || /* 1. Must be owned by root or be in /gnu/store */
(fileinfo.st_mode & S_IWGRP) || /* 2. Must not be writable by group */
(fileinfo.st_mode & S_ISUID) || /* 3. Must not be setuid */
(fileinfo.st_mode & S_IWOTH)) /* 4. Must not be writable by others */
--
2.51.0

View file

@ -0,0 +1,25 @@
From 462a541db904405ede8446c48ba0c71ad41c544d Mon Sep 17 00:00:00 2001
From: Eli Zaretskii <eliz@gnu.org>
Date: Thu, 17 Jul 2025 19:34:50 +0300
Subject: [PATCH] ; * test/lisp/net/shr-tests.el (shr-test/zoom-image): Fix
<img> (bug#79041).
---
test/lisp/net/shr-tests.el | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/lisp/net/shr-tests.el b/test/lisp/net/shr-tests.el
index 363cd144e8f3..a931d07a1631 100644
--- a/test/lisp/net/shr-tests.el
+++ b/test/lisp/net/shr-tests.el
@@ -145,8 +145,8 @@ settings, then once more for each (OPTION . VALUE) pair.")
(dolist (alt '(nil "" "nothing to see here"))
(with-temp-buffer
(ert-info ((format "image with alt=%S" alt))
- (let ((attrs (if alt (format " alt=\"%s\"" alt) "")))
- (insert (format "<img src=\"%s\" %s" image-url attrs)))
+ (let ((attrs (if alt (format " alt=\"%s\">" alt) ">")))
+ (insert (format "<img src=\"%s\"%s" image-url attrs)))
(cl-letf* (;; Pretend we're a graphical display.
((symbol-function 'display-graphic-p) #'always)
((symbol-function 'url-queue-retrieve)

View file

@ -0,0 +1,33 @@
From 951743698610eaaa0cc9030f7d7d02437419ac24 Mon Sep 17 00:00:00 2001
From: Neil Hanlon <neil@shrug.pw>
Date: Fri, 9 Feb 2024 15:32:38 -0500
Subject: [PATCH] Add gobject example source code to path for mkhtml test
Fixes #150
I'm not really sure why this is required, but I suspect it has to do
with changes in how GCC handles path traversal due to recent (ish)
security issues, as the code here is evaluated to
`../xml/../../examples/gobject.c` which probably looks unhealthy to
automatically include.
Signed-off-by: Neil Hanlon <neil@shrug.pw>
---
tests/gobject/docs/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/gobject/docs/meson.build b/tests/gobject/docs/meson.build
index a1dd66ca..236a1cc0 100644
--- a/tests/gobject/docs/meson.build
+++ b/tests/gobject/docs/meson.build
@@ -119,6 +119,7 @@ test(
'--path=@0@'.format(':'.join([
gobject_test_docs_dir,
srcdir,
+ join_paths(srcdir, 'tests/gobject/examples'),
])
),
],
--
GitLab

View file

@ -0,0 +1,33 @@
From 694d8ae43d06efff21adebf377ce614d660b24cd Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@eworm.de>
Date: Fri, 17 Nov 2023 22:30:42 +0100
Subject: [PATCH] include missing header file
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This fixes build error:
```
/build/inkscape/src/inkscape/src/object/uri.cpp: In constructor Inkscape::URI::URI(const gchar*, const char*):
/build/inkscape/src/inkscape/src/object/uri.cpp:86:9: error: xmlFree was not declared in this scope; did you mean xmlFreeURI?
86 | xmlFree(full);
```
---
src/object/uri.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/object/uri.h b/src/object/uri.h
index 381adec58cf..d5b211fe2b2 100644
--- a/src/object/uri.h
+++ b/src/object/uri.h
@@ -13,6 +13,7 @@
#define INKSCAPE_URI_H
#include <libxml/uri.h>
+#include <libxml/xmlmemory.h>
#include <memory>
#include <string>
--
GitLab

View file

@ -0,0 +1,83 @@
From 0adf38535637ec668e658d43f04f60f11f51574f Mon Sep 17 00:00:00 2001
From: Roman Bogorodskiy <bogorodskiy@gmail.com>
Date: Thu, 10 Apr 2025 13:54:02 +0200
Subject: [PATCH] loader: don't use libxml2 deprecated APIs
Address the following items:
- Deprecated direct access to buf's content
- Mismatching error function signature
- Deprecated direct access to ctxt's lastError
Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
---
osinfo/osinfo_loader.c | 42 +++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
index 0a9004af..b3fd4535 100644
--- a/osinfo/osinfo_loader.c
+++ b/osinfo/osinfo_loader.c
@@ -354,7 +354,7 @@ osinfo_loader_doc(const char *xpath,
xmlXPathFreeObject(obj);
OSINFO_LOADER_SET_ERROR(err, "Cannot format stylesheet");
}
- ret = g_strdup((char *)buf->content);
+ ret = g_strdup((char *)xmlBufferContent(buf));
xmlBufferFree(buf);
xmlXPathFreeObject(obj);
@@ -1902,28 +1902,32 @@ static void osinfo_loader_root(OsinfoLoader *loader,
}
static void
-catchXMLError(void *ctx, const char *msg ATTRIBUTE_UNUSED, ...)
+catchXMLError(void *ctx, const char *msg, ...)
{
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
+ const xmlError *xmlErr = NULL;
+ g_autofree gchar *xmlmsg = NULL;
- if (ctxt && ctxt->_private) {
- GError **err = ctxt->_private;
- if (!error_is_set(err)) {
- gchar *xmlmsg;
- if (ctxt->lastError.file) {
- xmlmsg = g_strdup_printf("%s:%d: %s",
- ctxt->lastError.file,
- ctxt->lastError.line,
- ctxt->lastError.message);
- } else {
- xmlmsg = g_strdup_printf("at line %d: %s",
- ctxt->lastError.line,
- ctxt->lastError.message);
- }
- OSINFO_LOADER_SET_ERROR(ctxt->_private, xmlmsg);
- g_free(xmlmsg);
- }
+ if (!ctxt || !ctxt->_private)
+ return;
+
+ if (error_is_set(ctxt->_private))
+ return;
+
+ if (!(xmlErr = xmlCtxtGetLastError(ctx)))
+ return;
+
+ if (xmlErr->file) {
+ xmlmsg = g_strdup_printf("%s:%d: %s",
+ xmlErr->file,
+ xmlErr->line,
+ xmlErr->message);
+ } else {
+ xmlmsg = g_strdup_printf("at line %d: %s",
+ xmlErr->line,
+ xmlErr->message);
}
+ OSINFO_LOADER_SET_ERROR(ctxt->_private, xmlmsg);
}
static void osinfo_loader_process_xml(OsinfoLoader *loader,
--
GitLab

View file

@ -1,173 +0,0 @@
This makes generated IDs deterministic.
Written by Daniel Veillard.
This should be fixed in next release (2.29).
See https://bugzilla.gnome.org/show_bug.cgi?id=751621.
diff --git a/libxslt/functions.c b/libxslt/functions.c
index 6448bde..5b00a6d 100644
--- a/libxslt/functions.c
+++ b/libxslt/functions.c
@@ -651,6 +651,63 @@ xsltFormatNumberFunction(xmlXPathParserContextPtr ctxt, int nargs)
}
/**
+ * xsltCleanupIds:
+ * @ctxt: the transformation context
+ * @root: the root of the resulting document
+ *
+ * This clean up ids which may have been saved in Element contents
+ * by xsltGenerateIdFunction() to provide stable IDs on elements.
+ *
+ * Returns the number of items cleaned or -1 in case of error
+ */
+int
+xsltCleanupIds(xsltTransformContextPtr ctxt, xmlNodePtr root) {
+ xmlNodePtr cur;
+ int count = 0;
+
+ if ((ctxt == NULL) || (root == NULL))
+ return(-1);
+ if (root->type != XML_ELEMENT_NODE)
+ return(-1);
+
+ cur = root;
+ while (cur != NULL) {
+ if (cur->type == XML_ELEMENT_NODE) {
+ if (cur->content != NULL) {
+ cur->content = NULL;
+ count++;
+ }
+ if (cur->children != NULL) {
+ cur = cur->children;
+ continue;
+ }
+ }
+ if (cur->next != NULL) {
+ cur = cur->next;
+ continue;
+ }
+ do {
+ cur = cur->parent;
+ if (cur == NULL)
+ break;
+ if (cur == (xmlNodePtr) root) {
+ cur = NULL;
+ break;
+ }
+ if (cur->next != NULL) {
+ cur = cur->next;
+ break;
+ }
+ } while (cur != NULL);
+ }
+
+fprintf(stderr, "Attributed %d IDs for element, cleaned up %d\n",
+ ctxt->nextid, count);
+
+ return(count);
+}
+
+/**
* xsltGenerateIdFunction:
* @ctxt: the XPath Parser context
* @nargs: the number of arguments
@@ -701,7 +758,39 @@ xsltGenerateIdFunction(xmlXPathParserContextPtr ctxt, int nargs){
if (obj)
xmlXPathFreeObject(obj);
- val = (long)((char *)cur - (char *)&base_address);
+ /*
+ * Try to provide stable ID for generated document:
+ * - usually ID are computed to be placed on elements via attributes
+ * so using the element as the node for the ID
+ * - the cur->content should be a correct placeholder for this, we use
+ * it to hold element node numbers in xmlXPathOrderDocElems to
+ * speed up XPath too
+ * - xsltCleanupIds() clean them up before handing the XSLT output
+ * to the API client.
+ * - other nodes types use the node address method but that should
+ * not end up in resulting document ID
+ * - we can enable this by default without risk of performance issues
+ * only the one pass xsltCleanupIds() is added
+ */
+ if (cur->type == XML_ELEMENT_NODE) {
+ if (cur->content == NULL) {
+ xsltTransformContextPtr tctxt;
+
+ tctxt = xsltXPathGetTransformContext(ctxt);
+ if (tctxt == NULL) {
+ val = (long)((char *)cur - (char *)&base_address);
+ } else {
+ tctxt->nextid++;
+ val = tctxt->nextid;
+ cur->content = (void *) (val);
+ }
+ } else {
+ val = (long) cur->content;
+ }
+ } else {
+ val = (long)((char *)cur - (char *)&base_address);
+ }
+
if (val >= 0) {
sprintf((char *)str, "idp%ld", val);
} else {
diff --git a/libxslt/functions.h b/libxslt/functions.h
index e0e0bf9..4a1e163 100644
--- a/libxslt/functions.h
+++ b/libxslt/functions.h
@@ -64,6 +64,13 @@ XSLTPUBFUN void XSLTCALL
int nargs);
/*
+ * Cleanup for ID generation
+ */
+XSLTPUBFUN int XSLTCALL
+ xsltCleanupIds (xsltTransformContextPtr ctxt,
+ xmlNodePtr root);
+
+/*
* And the registration
*/
diff --git a/libxslt/transform.c b/libxslt/transform.c
index 24f9eb2..2bdf6bf 100644
--- a/libxslt/transform.c
+++ b/libxslt/transform.c
@@ -700,6 +700,7 @@ xsltNewTransformContext(xsltStylesheetPtr style, xmlDocPtr doc) {
cur->traceCode = (unsigned long*) &xsltDefaultTrace;
cur->xinclude = xsltGetXIncludeDefault();
cur->keyInitLevel = 0;
+ cur->nextid = 0;
return(cur);
@@ -6092,6 +6093,13 @@ xsltApplyStylesheetInternal(xsltStylesheetPtr style, xmlDocPtr doc,
if (root != NULL) {
const xmlChar *doctype = NULL;
+ /*
+ * cleanup ids which may have been saved in Elements content ptrs
+ */
+ if (ctxt->nextid != 0) {
+ xsltCleanupIds(ctxt, root);
+ }
+
if ((root->ns != NULL) && (root->ns->prefix != NULL))
doctype = xmlDictQLookup(ctxt->dict, root->ns->prefix, root->name);
if (doctype == NULL)
diff --git a/libxslt/xsltInternals.h b/libxslt/xsltInternals.h
index 95e8fe6..8eedae4 100644
--- a/libxslt/xsltInternals.h
+++ b/libxslt/xsltInternals.h
@@ -1782,6 +1782,8 @@ struct _xsltTransformContext {
int maxTemplateVars;
unsigned long opLimit;
unsigned long opCount;
+
+ unsigned long nextid;/* for generating stable ids */
};
/**

View file

@ -0,0 +1,30 @@
From 48f94abff2fcc4943626a62c6180c60862288b08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Tue, 3 Jun 2025 11:57:29 +0200
Subject: [PATCH 245/248] Install all files generated by doxygen
Install the whole directory and do not pick only some file-types
Change-Id: I743253696f3e57dfe70c6509b7d620dc2bf39e76
---
docs/doxygen/Makefile.am | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/docs/doxygen/Makefile.am b/docs/doxygen/Makefile.am
index 4351042..40a02e8 100644
--- a/docs/doxygen/Makefile.am
+++ b/docs/doxygen/Makefile.am
@@ -6,9 +6,7 @@ if WITH_LIBZMF_DOCS
install-data-am:
mkdir -p $(DESTDIR)$(docdir)/html
- $(INSTALL_DATA) html/*.html $(DESTDIR)$(docdir)/html/
- $(INSTALL_DATA) html/*.png $(DESTDIR)$(docdir)/html/
- $(INSTALL_DATA) html/*.css $(DESTDIR)$(docdir)/html/
+ $(INSTALL_DATA) html/* $(DESTDIR)$(docdir)/html/
uninstall-am:
-rm -rf $(DESTDIR)$(docdir)/html
--
2.51.0

View file

@ -0,0 +1,40 @@
Patch obtained from https://github.com/mpv-player/mpv/commit/26b29fba02a2782f68e2906f837d21201fc6f1b9
See https://github.com/mpv-player/mpv/issues/16176 for discussion. Next version
of mpv will have this fixed, but upstream is not planning to release a patch
release.
From 26b29fba02a2782f68e2906f837d21201fc6f1b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kacper=20Michaj=C5=82ow?= <kasper93@gmail.com>
Date: Fri, 28 Mar 2025 19:12:01 +0100
Subject: [PATCH] demux_mkv: fix compilation after deprecated definitions
removal
See: https://github.com/FFmpeg/FFmpeg/commit/822432769868da325ba03774df1084aa78b9a5a0
---
demux/demux_mkv.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 135edcc23d82b..cc7ce3e98f4f6 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -2200,16 +2200,16 @@ static int demux_mkv_open_sub(demuxer_t *demuxer, mkv_track_t *track)
// [0x30..0x37] are component tags utilized for
// non-mobile captioning service ("profile A").
if (component_tag >= 0x30 && component_tag <= 0x37)
- lav->profile = FF_PROFILE_ARIB_PROFILE_A;
+ lav->profile = AV_PROFILE_ARIB_PROFILE_A;
break;
case 0x0012:
// component tag 0x87 signifies a mobile/partial reception
// (1seg) captioning service ("profile C").
if (component_tag == 0x87)
- lav->profile = FF_PROFILE_ARIB_PROFILE_C;
+ lav->profile = AV_PROFILE_ARIB_PROFILE_C;
break;
}
- if (lav->profile == FF_PROFILE_UNKNOWN)
+ if (lav->profile == AV_PROFILE_UNKNOWN)
MP_WARN(demuxer, "ARIB caption profile %02x / %04x not supported.\n",
component_tag, data_component_id);
}

View file

@ -6,18 +6,18 @@ that 'itstool' stumbles upon when processing UTF-8 data:
Patch by Jan Matejek
from <https://bugzilla.opensuse.org/show_bug.cgi?id=1065270>.
--- libxml2-2.9.5.orig/python/libxml.c
+++ libxml2-2.9.5/python/libxml.c
@@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -1499,6 +1499,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx, const char *msg,
PyObject *message;
PyObject *result;
char str[1000];
+ unsigned char *ptr = (unsigned char *)str;
#ifdef DEBUG_ERROR
printf("libxml_xmlErrorFuncHandler(%p, %s, ...) called\n", ctx, msg);
@@ -1636,12 +1637,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
str[999] = 0;
if (libxml_xmlPythonErrorFuncHandler == NULL) {
va_start(ap, msg);
@@ -1510,12 +1511,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNUSED void *ctx, const char *msg,
str[999] = 0;
va_end(ap);
+#if PY_MAJOR_VERSION >= 3
@ -32,7 +32,7 @@ from <https://bugzilla.opensuse.org/show_bug.cgi?id=1065270>.
- message = libxml_charPtrConstWrap(str);
+ message = libxml_charPtrConstWrap(ptr);
PyTuple_SetItem(list, 1, message);
result = PyEval_CallObject(libxml_xmlPythonErrorFuncHandler, list);
result = PyObject_CallObject(libxml_xmlPythonErrorFuncHandler, list);
+ /* Forget any errors caused in the error handler. */
+ PyErr_Clear();
Py_XDECREF(list);

View file

@ -0,0 +1,30 @@
https://bugs.gentoo.org/906227
https://github.com/dajobe/raptor/issues/59
https://github.com/dajobe/raptor/pull/58
From 4dbc4c1da2a033c497d84a1291c46f416a9cac51 Mon Sep 17 00:00:00 2001
From: David Anes <david.anes@suse.com>
Date: Thu, 4 May 2023 11:54:02 +0200
Subject: [PATCH] Remove the access to entities 'checked' private symbol for
libxml2 2.11.0
Since version 2.11.0, some private symbols that were never intended
as public API/ABI have been removed from libxml2, therefore the field
'checked' is no longer present and raptor fails to build in this
scenario.
--- a/src/raptor_libxml.c
+++ b/src/raptor_libxml.c
@@ -246,10 +246,11 @@ raptor_libxml_getEntity(void* user_data, const xmlChar *name)
ret->owner = 1;
-#if LIBXML_VERSION >= 20627
+#if LIBXML_VERSION >= 20627 && LIBXML_VERSION < 21100
/* Checked field was released in 2.6.27 on 2006-10-25
* http://git.gnome.org/browse/libxml2/commit/?id=a37a6ad91a61d168ecc4b29263def3363fff4da6
*
+ * and was later removed in version 2.11.0
*/
/* Mark this entity as having been checked - never do this again */

View file

@ -0,0 +1,25 @@
From 324ad2e5b5d4b08fb682fa05d5baaaf087d13f5c Mon Sep 17 00:00:00 2001
From: Sergey Trofimov <sarg@sarg.org.ru>
Date: Sat, 20 Sep 2025 18:26:44 +0200
Subject: [PATCH] Look for plugins in SANE_BACKEND_LIB_PATH.
---
backend/dll.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/backend/dll.c b/backend/dll.c
index bf34c4f6d..d52e81206 100644
--- a/backend/dll.c
+++ b/backend/dll.c
@@ -461,6 +461,8 @@ load (struct backend *be)
be->op[i] = op_unsupported;
path = getenv ("LD_LIBRARY_PATH");
+ if (!path)
+ path = getenv ("SANE_BACKEND_LIB_PATH"); /* for guix */
if (!path)
path = getenv ("SHLIB_PATH"); /* for HP-UX */
if (!path)
--
2.51.0

View file

@ -0,0 +1,100 @@
From f546743016f5301c063f2c50af0ea43dd2485ef4 Mon Sep 17 00:00:00 2001
From: Charles Giessen <charles@lunarg.com>
Date: Thu, 17 Jul 2025 09:56:40 -0500
Subject: [PATCH] build: Remove pkg-config provided library names
The library names of Xcb, Xlib, and Wayland do not need to be queried from pkg-config,
instead they can be hardcoded to use the fallback names.
The intent of querying the library names was to prevent issues where the hardcoded name
was not the platform-appropriate name. But because <library>_LINK_LIBRARIES can have
more than one library name, the logic to assign <library>_LINK_LIBRARIES into a compile
definition breaks horribly. While it is possible to handle this in CMake, the dlopen code would
also have to handle it which is much more error prone.
---
cube/CMakeLists.txt | 20 --------------------
cube/wayland_loader.h | 3 ---
cube/xcb_loader.h | 3 ---
cube/xlib_loader.h | 3 ---
4 files changed, 29 deletions(-)
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
index 7e135e79b..dac6bfed9 100644
--- a/cube/CMakeLists.txt
+++ b/cube/CMakeLists.txt
@@ -307,16 +307,6 @@ if (ANDROID)
return()
endif()
-if (XCB_LINK_LIBRARIES)
- target_compile_definitions(vkcube PRIVATE "XCB_LIBRARY=\"${XCB_LINK_LIBRARIES}\"")
-endif()
-if (X11_LINK_LIBRARIES)
- target_compile_definitions(vkcube PRIVATE "XLIB_LIBRARY=\"${X11_LINK_LIBRARIES}\"")
-endif()
-if (WAYLAND_CLIENT_LINK_LIBRARIES)
- target_compile_definitions(vkcube PRIVATE "WAYLAND_LIBRARY=\"${WAYLAND_CLIENT_LINK_LIBRARIES}\"")
-endif()
-
# ----------------------------------------------------------------------------
# vkcubepp
@@ -360,16 +350,6 @@ target_include_directories(vkcubepp PRIVATE .)
target_compile_definitions(vkcubepp PRIVATE ${ENABLED_CUBE_PLATFORMS})
target_link_libraries(vkcubepp ${CMAKE_DL_LIBS} Vulkan::Headers)
-if (XCB_LINK_LIBRARIES )
- target_compile_definitions(vkcubepp PUBLIC "XCB_LIBRARY=\"${XCB_LINK_LIBRARIES}\"")
-endif()
-if (X11_LINK_LIBRARIES)
- target_compile_definitions(vkcubepp PUBLIC "XLIB_LIBRARY=\"${X11_LINK_LIBRARIES}\"")
-endif()
-if (WAYLAND_CLIENT_LINK_LIBRARIES)
- target_compile_definitions(vkcubepp PUBLIC "WAYLAND_LIBRARY=\"${WAYLAND_CLIENT_LINK_LIBRARIES}\"")
-endif()
-
if(APPLE)
install(
TARGETS vkcubepp
diff --git a/cube/wayland_loader.h b/cube/wayland_loader.h
index 2afab6e97..7d7d91412 100644
--- a/cube/wayland_loader.h
+++ b/cube/wayland_loader.h
@@ -80,9 +80,6 @@ static PFN_wl_display_disconnect cube_wl_display_disconnect = NULL;
static inline void *initialize_wayland() {
void *wayland_library = NULL;
-#if defined(WAYLAND_LIBRARY)
- wayland_library = dlopen(WAYLAND_LIBRARY, RTLD_NOW | RTLD_LOCAL);
-#endif
if (NULL == wayland_library) {
wayland_library = dlopen("libwayland-client.so.0", RTLD_NOW | RTLD_LOCAL);
}
diff --git a/cube/xcb_loader.h b/cube/xcb_loader.h
index a94d5ab56..cecd25402 100644
--- a/cube/xcb_loader.h
+++ b/cube/xcb_loader.h
@@ -88,9 +88,6 @@ static PFN_xcb_screen_next cube_xcb_screen_next = NULL;
void *initialize_xcb() {
void *xcb_library = NULL;
-#if defined(XCB_LIBRARY)
- xcb_library = dlopen(XCB_LIBRARY, RTLD_NOW | RTLD_LOCAL);
-#endif
if (NULL == xcb_library) {
xcb_library = dlopen("libxcb.so.1", RTLD_NOW | RTLD_LOCAL);
}
diff --git a/cube/xlib_loader.h b/cube/xlib_loader.h
index c7874d0e7..881789f18 100644
--- a/cube/xlib_loader.h
+++ b/cube/xlib_loader.h
@@ -72,9 +72,6 @@ static PFN_XFlush cube_XFlush = NULL;
void* initialize_xlib() {
void* xlib_library = NULL;
-#if defined(XLIB_LIBRARY)
- xlib_library = dlopen(XLIB_LIBRARY, RTLD_NOW | RTLD_LOCAL);
-#endif
if (NULL == xlib_library) {
xlib_library = dlopen("libX11.so.6", RTLD_NOW | RTLD_LOCAL);
}

View file

@ -0,0 +1,43 @@
This patch has already been upstreamed, see: <https://github.com/crosswire/xiphos/pull/1103>.
It should be removed once Xiphos updates.
From 0e9e686c902935c0f00afdf9d0d45f9635995988 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Sat, 15 Jan 2022 05:00:37 +0100
Subject: [PATCH] Add dbus-glib dependency to main
It is required through the ipc header and the build will fail without it on Nix:
In file included from /build/source/src/main/search_sidebar.cc:48:
/build/source/src/gui/ipc.h:26:10: fatal error: dbus/dbus-glib.h: No such file or directory
26 | #include <dbus/dbus-glib.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
---
src/main/CMakeLists.txt | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt
index 49b86371..bb8e4bb6 100644
--- a/src/main/CMakeLists.txt
+++ b/src/main/CMakeLists.txt
@@ -75,7 +75,18 @@ target_link_libraries(main
PkgConfig::Soup
PkgConfig::Sword
PkgConfig::Biblesync
- )
+)
+
+IF (DBUS)
+ target_include_directories (main
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+ PkgConfig::DBus
+ )
+ target_link_libraries(main
+ PRIVATE
+ PkgConfig::DBus
+ )
+ENDIF (DBUS)
if(WK_FOUND)
target_compile_definitions(main

View file

@ -185,7 +185,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.83.8")
(version "2.83.9")
(source
(origin
(method git-fetch)
@ -194,7 +194,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "1bpfzrwsgbmjl1maiaw5b8ixkgh548gw1lkiznsjgkjm7dxr4ns4"))
(base32 "01gxml7g6qf185pa51v8vrsv1m42b3dz5rcnyqf7ic041s6p9bwl"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs

View file

@ -1699,9 +1699,8 @@ It features a minimal TLS 1.3 implementation, a QUIC stack and an HTTP/3 stack."
;; This test opens a remote connection.
#~(list "-k" "not test_create_connection_resolve_good")))
(native-inputs (list python-pytest
python-pytest-asyncio
python-setuptools
python-wheel))
python-pytest-asyncio-0.26
python-setuptools))
(propagated-inputs
(list python-attrs python-websockets))
(home-page "https://github.com/kyuupichan/aiorpcX")
@ -5295,7 +5294,10 @@ WebSocket usage in Python programs.")
(method url-fetch)
(uri (pypi-uri "websocket-client" version))
(sha256
(base32 "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"))))))
(base32 "0p0cz2mdissq7iw1n7jrmsfir0jfmgs1dvnpnrx477ffx9hbsxnk"))))
(native-inputs
(modify-inputs (package-native-inputs python-websocket-client)
(append python-six)))))
(define-public python-purl
(package

View file

@ -4809,6 +4809,31 @@ Unicode-to-LaTeX conversion.")
@code{subprocess} feature.")
(license license:expat)))
;; Old version just for python-dotenv-0.13.0 for docker-compose; remove once
;; that is updated.
(define-public python-sh-1
(package
(inherit python-sh)
(version "1.14.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sh" version))
(sha256
(base32
"03gyss1rhj4in7pgysg4q0hxp3230whinlpy1532ljs99lrx0ywx"))))
;(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
;; XXX: A Python 2 test fails when HOME=/homeless-shelter.
(setenv "HOME" "/tmp")
(invoke "python" "sh.py" "test"))))))
(native-inputs
(list python-setuptools))))
(define-public python-cftime
(package
(name "python-cftime")
@ -13131,8 +13156,7 @@ experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
python-pytest
python-setuptools
python-wheel))
(inputs
(list ffmpeg-7))
(inputs (list ffmpeg))
(home-page "https://github.com/PyAV-Org/PyAV")
(synopsis "Pythonic bindings for FFmpeg's libraries")
(description
@ -15629,14 +15653,14 @@ the GObject Introspection bindings to libnotify for non-GTK applications.")
(define-public python-beautifulsoup4
(package
(name "python-beautifulsoup4")
(version "4.13.4")
(version "4.13.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "beautifulsoup4" version))
(sha256
(base32
"15bi8fl51aibdz33h3j1191n5l0c4r3k4hpjvbmyysmfrvhw9cyv"))))
"159niwk99m9lbcxb9sl6jfqy9mb39bss4l1lwcypq3lkh89i6w2y"))))
(build-system pyproject-build-system)
(native-inputs
(list python-hatchling
@ -17586,16 +17610,14 @@ number of lines in the contained files easily.")
(hidden-package
(package
(name "python-fonttools-minimal")
(version "4.39.3")
(version "4.59.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "fonttools" version ".zip"))
(uri (pypi-uri "fonttools" version ".tar.gz"))
(sha256
(base32
"1msibi5cmi5znykkg66dq7xshl07lkqjxhrz5hcipqvlggsvjd4j"))))
"08pgq9nrj3r81gzb6gbf5mcak0xyqrj26cw0rc5za4v1n14hfb77"))))
(build-system python-build-system)
(native-inputs
(list unzip))
(arguments '(#:tests? #f))
(home-page "https://github.com/fonttools/fonttools")
(synopsis "Tools to manipulate font files")
@ -17622,14 +17644,17 @@ from an XML-based format.")
(when tests?
(invoke "pytest" "-vv"
"-k"
;; XXX: These tests need .trm files that are
;; not shipped with the PyPI release.
;; XXX: These tests need data files that are not
;; shipped with the PyPI release.
(format #f "not ~a"
(string-join
'("test_read_fontdimens_mathsy"
'("test_cli_vtp"
"test_group_order"
"test_read_fontdimens_mathsy"
"test_read_fontdimens_mathex"
"test_read_fontdimens_vanilla"
"test_read_boundary_char"
"test_reading_supplement_encoding"
"fontTools.tfmLib"
;; The MtiTest tests fail for unknown
;; reasons (see:
@ -17643,7 +17668,7 @@ from an XML-based format.")
(propagated-inputs
(list python-brotli
python-fs
python-lxml-4.9
python-lxml
python-lz4
python-scipy
python-unicodedata2
@ -20156,18 +20181,22 @@ and dataclasses.")
(define-public python-argparse-manpage
(package
(name "python-argparse-manpage")
(version "4.5")
(version "4.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "argparse-manpage" version))
(uri (pypi-uri "argparse_manpage" version))
(sha256
(base32
"1nq4sq1zk1xzdsqq61hd27jhj978ys136aba1zjg02x1g0c0cg11"))))
(base32 "0clb20scp408gxac675v731vnj89pk9d5fb7pcy7bj1a45mvgshx"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
;; Tests require PIP.
#~(list "--ignore=tests/test_examples.py")))
(native-inputs
(list python-pip python-pytest python-setuptools python-tomli
python-wheel))
(list python-pytest
python-setuptools))
(home-page "https://github.com/praiskup/argparse-manpage")
(synopsis "Build manual page from Python's ArgumentParser object")
(description
@ -21024,13 +21053,13 @@ expression.")
(define-public python-unicodedata2
(package
(name "python-unicodedata2")
(version "15.0.0")
(version "16.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "unicodedata2" version))
(sha256
(base32 "0bcgls7m2zndpd8whgznnd5908jbsa50si2bh88wsn0agcznhv7d"))))
(base32 "1z3llixb4cd6cc6nmyps5vv2sss14n3x6dzcc65xg75mj9jqsj05"))))
(build-system python-build-system)
(home-page "https://github.com/fonttools/unicodedata2")
(synopsis "Python unicodedata backport")
@ -35527,7 +35556,7 @@ restores the original state after the string is printed.")
(native-inputs
(list python-pytest))
(inputs
(list sane-backends))
(list sane))
(home-page "https://github.com/python-pillow/Sane")
(synopsis "Python interface to the SANE scanner")
(description "This package provides Python interface to the SANE scanner
@ -36879,6 +36908,35 @@ systems in Python.")
key-value pairs from a @code{.env} file and set them as environment variables.")
(license license:bsd-3)))
;; Old version just for docker-compose; remove once that is updated.
(define-public python-dotenv-0.13.0
(package (inherit python-dotenv)
(name "python-dotenv")
(version "0.13.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-dotenv" version))
(sha256
(base32
"0x5dagmfn31phrbxlwacw3s4w5vibv8fxqc62nqcdvdhjsy0k69v"))))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(setenv "PATH" (string-append (getenv "PATH") ":"
(assoc-ref outputs "out") "/bin"))
;; Skip the ipython tests.
(delete-file "tests/test_ipython.py")
(invoke "python" "-m" "pytest")))))))
(native-inputs
(modify-inputs (package-native-inputs python-dotenv)
(append python-mock)
(replace "python-sh" python-sh-1)))))
(define-public date2name
(let ((commit "6c8f37277e8ec82aa50f90b8921422be30c4e798")
(revision "1"))

View file

@ -2117,7 +2117,7 @@ Vulkan, OpenGL and other main graphic APIs.")
vulkan-headers))
(inputs
(list alsa-lib
ffmpeg
ffmpeg-6
glib
libxkbcommon
libxrandr
@ -4793,6 +4793,8 @@ PySide2, PyQt6, PySide6) and additional custom QWidgets.")
(base32 "07rvfwzjl378j75j2va0c6xylwx16icxa6dycsjgjc329pgpng40"))))
(build-system python-build-system)
(native-inputs (list python-pyqt))
(arguments
(list #:tests? #f)) ; No tests
(home-page "https://github.com/mottosso/Qt.py")
(synopsis "Abstraction layer for Python Qt bindings")
(description

View file

@ -766,6 +766,8 @@ a local network link.")
python-wheel))
(propagated-inputs
(list python-numpy soapysdr))
(arguments
(list #:tests? #f)) ; No tests
(home-page "https://github.com/xmikos/simplesoapy")
(synopsis "Python wrapper for SoapySDR")
(description
@ -820,7 +822,8 @@ devices that are supported by the SoapySDR library.")
python-simplesoapy
soapy-power))
(arguments
(list #:phases
(list #:tests? #f ; No tests
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'wrap-path
;; Add the location of the default backend to PATH.

View file

@ -252,8 +252,7 @@ of parts of the Windows API.")
linux-pam
openssl
pixman
python
python-libxml2))
python))
(native-inputs
(append
(list bison

View file

@ -77,7 +77,8 @@
"-" version ".tar.gz"))
(sha256
(base32
"1026whyxpajwijlr4k5c0iliwn09mwxrg7gkvd5kb0n9ga6vg788"))))
"1026whyxpajwijlr4k5c0iliwn09mwxrg7gkvd5kb0n9ga6vg788"))
(patches (search-patches "raptor2-libxml2.patch"))))
(build-system gnu-build-system)
(inputs
(list curl libxml2 libxslt zlib))

View file

@ -19903,6 +19903,7 @@
`(("paste" ,rust-paste-1.0.15)
("proc-macro2" ,rust-proc-macro2-1.0.94)
("quote" ,rust-quote-1.0.40)
("rustc-hash" ,rust-rustc-hash-2.1.1)
("syn" ,rust-syn-2.0.100)
("unicode-ident" ,rust-unicode-ident-1.0.18)))

View file

@ -42,18 +42,20 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
#:use-module (guix build-system gnu)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module ((guix licenses)
#:prefix license:)
#:use-module (guix packages)
#:use-module (guix search-paths)
#:use-module (guix utils))
(define-public sane-airscan
(package
(name "sane-airscan")
(version "0.99.27")
(version "0.99.36")
(source
(origin
(method git-fetch)
@ -62,7 +64,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1syxsih1kdnz9slsg5a92bqnllagm4cybqk4n2y6mbkqn6h0zlnv"))))
(base32 "1dh7rq1g120gqhkr7ac3p7yizm330dj3xqrrg08dff7ra1jx955y"))))
(build-system gnu-build-system)
(arguments
(list #:make-flags
@ -78,8 +80,9 @@
gnutls
libjpeg-turbo
libpng
libtiff
libxml2
sane-backends))
sane))
(home-page "https://github.com/alexpevzner/sane-airscan")
(synopsis "SANE backend for eSCL (AirScan) and WSD document scanners")
(description ; no @acronym{eSCL} because the meaning isn't officially known
@ -103,10 +106,11 @@ both WSD and eSCL.")
(license (list license:gpl2+ ; the combined work
license:expat)))) ; http_parser.[ch]
(define-public sane-backends-minimal
(define-deprecated/public-alias sane-backends-minimal sane)
(define-public sane
(package
(name "sane-backends-minimal")
(version "1.3.1")
(name "sane")
(version "1.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -114,7 +118,9 @@ both WSD and eSCL.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1fb6shx9bz0svcyasmyqs93rbbwq7kzg6l0h1zh3kjvcwhchyv72"))
(base32 "09hcqrli127amdxjlj6xd9lvc0rhlhhm8vxrnldbd8c2mxss7dbv"))
(patches (search-patches
"sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch"))
(modules '((guix build utils)))
(snippet
;; Generated HTML files and udev rules normally embed a
@ -186,6 +192,11 @@ both WSD and eSCL.")
(string-append out
"/lib/udev/rules.d/"
"60-libsane.rules")))))
(add-after 'install 'remove-dll.conf
(lambda _
;; dll.conf lists enabled backends, so it should be removed as
;; there are none in this package
(delete-file (string-append %output "/etc/sane.d/dll.conf"))))
(add-after 'install 'make-reproducible
;; XXX Work around an old bug <https://issues.guix.gnu.org/26247>.
;; Then work around "Throw to key `decoding-error' ..." by using sed.
@ -197,6 +208,14 @@ both WSD and eSCL.")
(invoke "sed" "-i" "/^PO-Revision-Date:/d" file))
(list "en@boldquot/LC_MESSAGES/sane-backends.mo"
"en@quot/LC_MESSAGES/sane-backends.mo")))))))))
(native-search-paths
(list
(search-path-specification
(variable "SANE_CONFIG_DIR")
(files '("etc/sane.d")))
(search-path-specification
(variable "SANE_BACKEND_LIB_PATH")
(files '("lib/sane")))))
(home-page "http://www.sane-project.org")
(synopsis
"Raster image scanner library and drivers, without scanner support")
@ -206,20 +225,16 @@ hand-held scanner, video- and still-cameras, frame-grabbers, etc.). The
package contains the library, but no drivers.")
(license license:gpl2+))) ; plus linking exception
;; This variant links in the hpaio backend provided by hplip, which adds
;; support for HP scanners whose backends are not maintained by the SANE
;; project, and builds all of those backends.
(define-public sane-backends
(package/inherit sane-backends-minimal
(package/inherit sane
(name "sane-backends")
(inputs
`(("hplip" ,(@ (gnu packages cups) hplip))
("libjpeg" ,libjpeg-turbo) ; for pixma/epsonds/other back ends
`(("libjpeg" ,libjpeg-turbo) ; for pixma/epsonds/other back ends
("libpng" ,libpng) ; support scanimage --format=png
("libxml2" ,libxml2) ; for pixma back end
,@(package-inputs sane-backends-minimal)))
,@(package-inputs sane)))
(arguments
(substitute-keyword-arguments (package-arguments sane-backends-minimal)
(substitute-keyword-arguments (package-arguments sane)
((#:phases phases)
`(modify-phases ,phases
(delete 'disable-backends)
@ -229,22 +244,6 @@ package contains the library, but no drivers.")
;; <https://bugs.gnu.org/39449>
(substitute* "testsuite/backend/genesys/Makefile.in"
((" genesys_unit_tests\\$\\(EXEEXT\\)") ""))
#t))
(add-after 'unpack 'add-backends
(lambda _
(substitute* "backend/dll.conf.in"
(("hp5590" all) (format #f "~a~%~a" all "hpaio")))
#t))
(add-after 'install 'install-hpaio
(lambda* (#:key inputs outputs #:allow-other-keys)
(define hplip (string-append (assoc-ref inputs "hplip")
"/lib/sane"))
(define out (string-append (assoc-ref outputs "out")
"/lib/sane"))
(for-each
(lambda (file)
(symlink file (string-append out "/" (basename file))))
(find-files hplip))
#t))))))
(synopsis
"Raster image scanner library and drivers, with scanner support")
@ -288,7 +287,7 @@ package contains the library and drivers.")))
"/lib/udev/rules.d")))))))
(inputs (list boost
eudev
sane-backends-minimal
sane
libusb
libjpeg-turbo
imagemagick
@ -350,11 +349,7 @@ standard.")
(native-inputs
(list pkg-config))
(inputs
`(("dbus" ,dbus)
("libconfuse" ,libconfuse)
("sane-backends" ,sane-backends)
("udev" ,eudev)
("zlib" ,zlib)))
(list dbus libconfuse sane eudev zlib))
(home-page "https://scanbd.sourceforge.io")
(synopsis "Configurable scanner button monitor")
(description "Scanbd stands for scanner button daemon. It regularly polls
@ -435,7 +430,7 @@ provided the driver also exposes the buttons.")
lcms
libjpeg-turbo
libtiff
sane-backends
sane
xdg-utils)) ;to open the manual from the Help menu
(home-page "https://gitlab.com/sane-project/frontend/xsane")
(synopsis "Featureful graphical interface for document and image scanners")

View file

@ -18,12 +18,15 @@
(define-module (gnu packages sycl)
#:use-module (guix build-system cmake)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages boost)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages rocm)
@ -37,7 +40,7 @@
(define-public adaptivecpp
(package
(name "adaptivecpp")
(version "24.10.0")
(version "25.02.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -46,13 +49,50 @@
(file-name (git-file-name name version))
(sha256
(base32
"1gha90zkvg6nabyj1y55rflxzygdkznkjqj8v6zb1jgm1f5w60b7"))))
"01wajw1vvbic1hiyz4rj7in09js3kl0xvaa2qpcg1pv7xkrz0xxx"))))
(build-system cmake-build-system)
(native-inputs (list clang-15 llvm-15 python spirv-tools))
(inputs (list boost rocm-opencl-runtime spirv-headers))
(arguments `(#:tests? #f)) ; no tests
;; Sync with llvm-for-rocm llvm release.
(native-inputs (list clang-19 llvm-19 python-minimal))
(inputs
(list boost
libffi
numactl
rocm-opencl-runtime
spirv-headers
spirv-tools))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
;; FIXME: There is probably a much better way.
;; This file: bin/hipSYCL/llvm-to-backend/llvm-to-host-tool
;; requires libacpp-common.so and libllvm-to-{backend,host}.so
;; in RUNPATH
(add-before 'validate-runpath 'create-symlinks
(lambda _
(symlink
(string-append #$output "/lib/libacpp-common.so")
(string-append
#$output
"/bin/hipSYCL/llvm-to-backend/libacpp-common.so"))
(symlink
(string-append
#$output
"/lib/hipSYCL/llvm-to-backend/libllvm-to-backend.so")
(string-append
#$output
"/bin/hipSYCL/llvm-to-backend/libllvm-to-backend.so"))
(symlink
(string-append
#$output
"/lib/hipSYCL/llvm-to-backend/libllvm-to-host.so")
(string-append
#$output
"/bin/hipSYCL/llvm-to-backend/libllvm-to-host.so")))))
#:tests? #f)) ; no tests
(home-page "https://adaptivecpp.github.io/")
(synopsis "Implementation of the SYCL programming language for accelerators")
(synopsis
"Implementation of the SYCL programming language for accelerators")
(description
"AdaptiveCpp is aImplementation of SYCL and C++ standard parallelism
for CPUs and GPUs from all vendors, with independent, community-driven

View file

@ -887,7 +887,7 @@ eye-candy, customizable, and reasonably lightweight.")
(list (search-path-specification
(variable "TERMINFO_DIRS")
(files '("share/terminfo")))))
(inputs (list fcft libxkbcommon-1.8 wayland wayland-protocols))
(inputs (list fcft libxkbcommon wayland wayland-protocols))
(synopsis "Wayland-native terminal emulator")
(description
"@command{foot} is a terminal emulator for systems using the Wayland

View file

@ -240,7 +240,7 @@ Browser.")
libxcomposite
libxt
libffi
ffmpeg-7
ffmpeg
libvpx
icu4c
pixman

View file

@ -1527,7 +1527,7 @@ libebml is a C++ library to read and write EBML files.")
(define-public libplacebo
(package
(name "libplacebo")
(version "7.349.0")
(version "7.351.0")
(source
(origin
(method git-fetch)
@ -1536,7 +1536,7 @@ libebml is a C++ library to read and write EBML files.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1q12yf04z570a2l3vkig2iqm7bgqr90hdxmn78sk2injrsyx124q"))))
(base32 "094mzr4cvvryxr7rpxqhvrs018r89m116cpkmmfy3d3sk8b09jki"))))
(build-system meson-build-system)
(arguments
(list #:configure-flags
@ -1644,17 +1644,17 @@ These tools require a supported graphics chip, driver, and VA-API back end to
operate properly.")
(license license:expat)))
(define-public ffmpeg-7
(define-public ffmpeg
(package
(name "ffmpeg")
(version "7.0.2")
(version "8.0")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
"12dkv17mrsdqrm70c30azjw7qi1lfxca7xisw81x6flacddm2il6"))))
"13kvs9rh5mp21gx64hdj0jlnz6q5c6spik8kh5q7fk6cnv61yxdj"))))
(outputs '("out" "debug"))
(build-system gnu-build-system)
(inputs
@ -1674,6 +1674,8 @@ operate properly.")
libcaca
libcdio-paranoia
libdrm
libgme
libplacebo
libtheora
libva
libvdpau
@ -1685,13 +1687,16 @@ operate properly.")
mesa
openal
pulseaudio
shaderc
sdl2
soxr
speex
spirv-tools
srt
svt-av1
twolame
vidstab
vulkan-loader
x265
xvid
zlib)))
@ -1701,7 +1706,8 @@ operate properly.")
pkg-config
texinfo
speex
yasm))
vulkan-headers
nasm))
(arguments
(list
#:test-target "fate"
@ -1716,7 +1722,6 @@ operate properly.")
;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
;; --enable-libflite enable flite (voice synthesis) support via
;; libflite [no]
;; --enable-libgme enable Game Music Emu via libgme [no]
;; --enable-libgsm enable GSM de/encoding via libgsm [no]
;; --enable-libiec61883 enable iec61883 via libiec61883 [no]
;; --enable-libilbc enable iLBC de/encoding via libilbc [no]
@ -1769,12 +1774,15 @@ operate properly.")
"--enable-libcdio"
"--enable-libdav1d"
"--enable-libfreetype"
"--enable-libgme"
"--enable-libmp3lame"
"--enable-libopus"
"--enable-libplacebo"
"--enable-libpulse"
#$@(if (this-package-input "rav1e")
'("--enable-librav1e")
'())
"--enable-libshaderc"
"--enable-libsoxr"
"--enable-libspeex"
"--enable-libsrt"
@ -1792,6 +1800,7 @@ operate properly.")
"--enable-opengl"
"--enable-libdrm"
"--enable-vaapi"
"--enable-vulkan"
"--enable-runtime-cpudetect"
@ -1836,7 +1845,7 @@ operate properly.")
(lambda* (#:key outputs configure-flags #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "configure"
(("#! /bin/sh") (string-append "#!" (which "sh"))))
(("#! */bin/sh") (string-append "#!" (which "sh"))))
(setenv "SHELL" (which "bash"))
(setenv "CONFIG_SHELL" (which "bash"))
(apply invoke
@ -1861,23 +1870,23 @@ convert and stream audio and video. It includes the libavcodec
audio/video codec library.")
(license license:gpl2+)))
(define-public ffmpeg
(define-public ffmpeg-6
(package
(inherit ffmpeg-7)
(version "6.1.1")
(inherit ffmpeg)
(version "6.1.2")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
"0s7r2qv8gh2a3w568n9xxgcz0q8j5ww1jdsci1hm9f4l1yqg9146"))
"0f2fr8ywchhlkdff88lr4d4vscqzsi1ndjh3r5jwbkayf94lcqiv"))
(patches
(search-patches
"ffmpeg-add-av_stream_get_first_dts-for-chromium.patch"))))
(arguments
(if (target-x86-32?)
(substitute-keyword-arguments (package-arguments ffmpeg-7)
(substitute-keyword-arguments (package-arguments ffmpeg)
((#:phases phases)
#~(modify-phases #$phases
(add-before 'configure 'relax-gcc-14-strictness
@ -1885,8 +1894,9 @@ audio/video codec library.")
(setenv
"CFLAGS"
(string-append "-g -O2"
" -Wno-error=incompatible-pointer-types")))))))
(package-arguments ffmpeg-7)))))
" -Wno-error=incompatible-pointer-types"
" -Wno-error=int-conversion")))))))
(package-arguments ffmpeg)))))
(define-public ffmpeg-5
(package
@ -1926,8 +1936,12 @@ audio/video codec library.")
(replace "sdl2" sdl2-2.0)))
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg-5)
((#:modules modules %default-gnu-modules)
`((srfi srfi-1) ,@modules))
((#:configure-flags flags ''())
#~(cons "--enable-avresample" #$flags))))))
#~(cons "--enable-avresample"
(fold delete #$flags '("--enable-libplacebo"
"--enable-libshaderc"))))))))
(define-public ffmpeg-for-stepmania
(hidden-package
@ -1995,270 +2009,271 @@ audio/video codec library.")
;;; Custom ffmpeg package used by Jami, which incorporates custom patches.
(define-public ffmpeg-jami
(package
(inherit ffmpeg)
(name "ffmpeg-jami")
(source (let ((ffmpeg-origin (package-source ffmpeg)))
(origin
(inherit ffmpeg-origin)
;; These patches originate come from
;; <https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/>.
;; Make sure to keep them update and/or register any new ones
;; here.
(patches
(append
(origin-patches ffmpeg-origin)
(search-patches
"ffmpeg-jami-remove-mjpeg-log.patch"
"ffmpeg-jami-change-RTCP-ratio.patch"
"ffmpeg-jami-rtp_ext_abs_send_time.patch"
"ffmpeg-jami-libopusdec-enable-FEC.patch"
"ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch"
"ffmpeg-jami-screen-sharing-x11-fix.patch"
"ffmpeg-jami-pipewiregrab-source-filter.patch"))))))
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg)
((#:configure-flags _ '())
;; The base configure flags preserved from ffmpeg appear first.
#~(list "--disable-static"
"--enable-shared"
"--disable-stripping"
(let ((ffmpeg ffmpeg-6))
(package
(inherit ffmpeg)
(name "ffmpeg-jami")
(source (let ((ffmpeg-origin (package-source ffmpeg)))
(origin
(inherit ffmpeg-origin)
;; These patches originate come from
;; <https://review.jami.net/plugins/gitiles/jami-daemon/+/refs/heads/master/contrib/src/ffmpeg/>.
;; Make sure to keep them update and/or register any new ones
;; here.
(patches
(append
(origin-patches ffmpeg-origin)
(search-patches
"ffmpeg-jami-remove-mjpeg-log.patch"
"ffmpeg-jami-change-RTCP-ratio.patch"
"ffmpeg-jami-rtp_ext_abs_send_time.patch"
"ffmpeg-jami-libopusdec-enable-FEC.patch"
"ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.patch"
"ffmpeg-jami-screen-sharing-x11-fix.patch"
"ffmpeg-jami-pipewiregrab-source-filter.patch"))))))
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg)
((#:configure-flags _ '())
;; The base configure flags preserved from ffmpeg appear first.
#~(list "--disable-static"
"--enable-shared"
"--disable-stripping"
;; Extra Guix-added flags that make sense for this custom
;; package; these could be contributed upstream.
"--disable-doc"
;; Extra Guix-added flags that make sense for this custom
;; package; these could be contributed upstream.
"--disable-doc"
;; The following flags are those specified by Jami.
;; They're from the jami/daemon/contrib/src/ffmpeg/rules.mak
;; file. We try to keep it as close to the official Jami
;; package as possible, to provide all the codecs and extra
;; features that are expected (see:
;; https://review.jami.net/plugins/gitiles/jami-daemon/+/
;; refs/heads/master/contrib/src/ffmpeg/rules.mak).
"--disable-everything"
"--enable-zlib"
"--enable-gpl"
"--enable-swscale"
"--enable-bsfs"
"--disable-filters"
"--disable-programs"
"--disable-postproc"
;; The following flags are those specified by Jami.
;; They're from the jami/daemon/contrib/src/ffmpeg/rules.mak
;; file. We try to keep it as close to the official Jami
;; package as possible, to provide all the codecs and extra
;; features that are expected (see:
;; https://review.jami.net/plugins/gitiles/jami-daemon/+/
;; refs/heads/master/contrib/src/ffmpeg/rules.mak).
"--disable-everything"
"--enable-zlib"
"--enable-gpl"
"--enable-swscale"
"--enable-bsfs"
"--disable-filters"
"--disable-programs"
"--disable-postproc"
"--enable-libpipewire"
"--enable-filter=pipewiregrab"
"--enable-indev=lavfi"
"--enable-decoder=wrapped_avframe"
"--enable-libpipewire"
"--enable-filter=pipewiregrab"
"--enable-indev=lavfi"
"--enable-decoder=wrapped_avframe"
"--disable-protocols"
"--enable-protocol=crypto"
"--enable-protocol=file"
"--enable-protocol=rtp"
"--enable-protocol=srtp"
"--enable-protocol=tcp"
"--enable-protocol=udp"
"--enable-protocol=unix"
"--enable-protocol=pipe"
"--disable-protocols"
"--enable-protocol=crypto"
"--enable-protocol=file"
"--enable-protocol=rtp"
"--enable-protocol=srtp"
"--enable-protocol=tcp"
"--enable-protocol=udp"
"--enable-protocol=unix"
"--enable-protocol=pipe"
;; Enable muxers/demuxers.
"--disable-demuxers"
"--disable-muxers"
"--enable-muxer=rtp"
"--enable-muxer=g722"
"--enable-muxer=g723_1"
"--enable-muxer=g726"
"--enable-muxer=g726le"
"--enable-muxer=h263"
"--enable-muxer=h264"
"--enable-muxer=hevc"
"--enable-muxer=matroska"
"--enable-muxer=webm"
"--enable-muxer=ogg"
"--enable-muxer=pcm_s16be"
"--enable-muxer=pcm_s16le"
"--enable-muxer=wav"
"--enable-demuxer=rtp"
"--enable-demuxer=mjpeg"
"--enable-demuxer=mjpeg_2000"
"--enable-demuxer=mpegvideo"
"--enable-demuxer=gif"
"--enable-demuxer=image_jpeg_pipe"
"--enable-demuxer=image_png_pipe"
"--enable-demuxer=image_webp_pipe"
"--enable-demuxer=matroska"
"--enable-demuxer=m4v"
"--enable-demuxer=mp3"
"--enable-demuxer=ogg"
"--enable-demuxer=flac"
"--enable-demuxer=wav"
"--enable-demuxer=ac3"
"--enable-demuxer=g722"
"--enable-demuxer=g723_1"
"--enable-demuxer=g726"
"--enable-demuxer=g726le"
"--enable-demuxer=pcm_mulaw"
"--enable-demuxer=pcm_alaw"
"--enable-demuxer=pcm_s16be"
"--enable-demuxer=pcm_s16le"
"--enable-demuxer=h263"
"--enable-demuxer=h264"
"--enable-demuxer=hevc"
;; Enable muxers/demuxers.
"--disable-demuxers"
"--disable-muxers"
"--enable-muxer=rtp"
"--enable-muxer=g722"
"--enable-muxer=g723_1"
"--enable-muxer=g726"
"--enable-muxer=g726le"
"--enable-muxer=h263"
"--enable-muxer=h264"
"--enable-muxer=hevc"
"--enable-muxer=matroska"
"--enable-muxer=webm"
"--enable-muxer=ogg"
"--enable-muxer=pcm_s16be"
"--enable-muxer=pcm_s16le"
"--enable-muxer=wav"
"--enable-demuxer=rtp"
"--enable-demuxer=mjpeg"
"--enable-demuxer=mjpeg_2000"
"--enable-demuxer=mpegvideo"
"--enable-demuxer=gif"
"--enable-demuxer=image_jpeg_pipe"
"--enable-demuxer=image_png_pipe"
"--enable-demuxer=image_webp_pipe"
"--enable-demuxer=matroska"
"--enable-demuxer=m4v"
"--enable-demuxer=mp3"
"--enable-demuxer=ogg"
"--enable-demuxer=flac"
"--enable-demuxer=wav"
"--enable-demuxer=ac3"
"--enable-demuxer=g722"
"--enable-demuxer=g723_1"
"--enable-demuxer=g726"
"--enable-demuxer=g726le"
"--enable-demuxer=pcm_mulaw"
"--enable-demuxer=pcm_alaw"
"--enable-demuxer=pcm_s16be"
"--enable-demuxer=pcm_s16le"
"--enable-demuxer=h263"
"--enable-demuxer=h264"
"--enable-demuxer=hevc"
;; Enable parsers.
"--enable-parser=h263"
"--enable-parser=h264"
"--enable-parser=hevc"
"--enable-parser=mpeg4video"
"--enable-parser=vp8"
"--enable-parser=vp9"
"--enable-parser=opus"
;; Enable parsers.
"--enable-parser=h263"
"--enable-parser=h264"
"--enable-parser=hevc"
"--enable-parser=mpeg4video"
"--enable-parser=vp8"
"--enable-parser=vp9"
"--enable-parser=opus"
;; Encoders/decoders.
"--enable-encoder=adpcm_g722"
"--enable-decoder=adpcm_g722"
"--enable-encoder=adpcm_g726"
"--enable-decoder=adpcm_g726"
"--enable-encoder=adpcm_g726le"
"--enable-decoder=adpcm_g726le"
"--enable-decoder=g729"
"--enable-encoder=g723_1"
"--enable-decoder=g723_1"
"--enable-encoder=rawvideo"
"--enable-decoder=rawvideo"
"--enable-encoder=libx264"
"--enable-decoder=h264"
"--enable-encoder=pcm_alaw"
"--enable-decoder=pcm_alaw"
"--enable-encoder=pcm_mulaw"
"--enable-decoder=pcm_mulaw"
"--enable-encoder=mpeg4"
"--enable-decoder=mpeg4"
"--enable-encoder=libvpx_vp8"
"--enable-decoder=vp8"
"--enable-decoder=vp9"
"--enable-encoder=h263"
"--enable-encoder=h263p"
"--enable-decoder=h263"
"--enable-encoder=mjpeg"
"--enable-decoder=mjpeg"
"--enable-decoder=mjpegb"
"--enable-libspeex"
"--enable-libopus"
"--enable-libvpx"
"--enable-libx264"
"--enable-encoder=libspeex"
"--enable-decoder=libspeex"
"--enable-encoder=libopus"
"--enable-decoder=libopus"
;; Encoders/decoders.
"--enable-encoder=adpcm_g722"
"--enable-decoder=adpcm_g722"
"--enable-encoder=adpcm_g726"
"--enable-decoder=adpcm_g726"
"--enable-encoder=adpcm_g726le"
"--enable-decoder=adpcm_g726le"
"--enable-decoder=g729"
"--enable-encoder=g723_1"
"--enable-decoder=g723_1"
"--enable-encoder=rawvideo"
"--enable-decoder=rawvideo"
"--enable-encoder=libx264"
"--enable-decoder=h264"
"--enable-encoder=pcm_alaw"
"--enable-decoder=pcm_alaw"
"--enable-encoder=pcm_mulaw"
"--enable-decoder=pcm_mulaw"
"--enable-encoder=mpeg4"
"--enable-decoder=mpeg4"
"--enable-encoder=libvpx_vp8"
"--enable-decoder=vp8"
"--enable-decoder=vp9"
"--enable-encoder=h263"
"--enable-encoder=h263p"
"--enable-decoder=h263"
"--enable-encoder=mjpeg"
"--enable-decoder=mjpeg"
"--enable-decoder=mjpegb"
"--enable-libspeex"
"--enable-libopus"
"--enable-libvpx"
"--enable-libx264"
"--enable-encoder=libspeex"
"--enable-decoder=libspeex"
"--enable-encoder=libopus"
"--enable-decoder=libopus"
;; Encoders/decoders for ringtones and audio streaming.
"--enable-decoder=flac"
"--enable-decoder=vorbis"
"--enable-decoder=aac"
"--enable-decoder=ac3"
"--enable-decoder=eac3"
"--enable-decoder=mp3"
"--enable-decoder=pcm_u24le"
"--enable-decoder=pcm_u32le"
"--enable-decoder=pcm_u8"
"--enable-decoder=pcm_f16le"
"--enable-decoder=pcm_f32le"
"--enable-decoder=pcm_f64le"
"--enable-decoder=pcm_s16le"
"--enable-decoder=pcm_s24le"
"--enable-decoder=pcm_s32le"
"--enable-decoder=pcm_s64le"
"--enable-decoder=pcm_u16le"
"--enable-encoder=pcm_u8"
"--enable-encoder=pcm_f32le"
"--enable-encoder=pcm_f64le"
"--enable-encoder=pcm_s16le"
"--enable-encoder=pcm_s32le"
"--enable-encoder=pcm_s64le"
;; Encoders/decoders for ringtones and audio streaming.
"--enable-decoder=flac"
"--enable-decoder=vorbis"
"--enable-decoder=aac"
"--enable-decoder=ac3"
"--enable-decoder=eac3"
"--enable-decoder=mp3"
"--enable-decoder=pcm_u24le"
"--enable-decoder=pcm_u32le"
"--enable-decoder=pcm_u8"
"--enable-decoder=pcm_f16le"
"--enable-decoder=pcm_f32le"
"--enable-decoder=pcm_f64le"
"--enable-decoder=pcm_s16le"
"--enable-decoder=pcm_s24le"
"--enable-decoder=pcm_s32le"
"--enable-decoder=pcm_s64le"
"--enable-decoder=pcm_u16le"
"--enable-encoder=pcm_u8"
"--enable-encoder=pcm_f32le"
"--enable-encoder=pcm_f64le"
"--enable-encoder=pcm_s16le"
"--enable-encoder=pcm_s32le"
"--enable-encoder=pcm_s64le"
;; Encoders/decoders for images.
"--enable-encoder=gif"
"--enable-decoder=gif"
"--enable-encoder=jpegls"
"--enable-decoder=jpegls"
"--enable-encoder=ljpeg"
"--enable-decoder=jpeg2000"
"--enable-encoder=png"
"--enable-decoder=png"
"--enable-encoder=bmp"
"--enable-decoder=bmp"
"--enable-encoder=tiff"
"--enable-decoder=tiff"
;; Encoders/decoders for images.
"--enable-encoder=gif"
"--enable-decoder=gif"
"--enable-encoder=jpegls"
"--enable-decoder=jpegls"
"--enable-encoder=ljpeg"
"--enable-decoder=jpeg2000"
"--enable-encoder=png"
"--enable-decoder=png"
"--enable-encoder=bmp"
"--enable-decoder=bmp"
"--enable-encoder=tiff"
"--enable-decoder=tiff"
;; Filters.
"--enable-filter=scale"
"--enable-filter=overlay"
"--enable-filter=amix"
"--enable-filter=amerge"
"--enable-filter=aresample"
"--enable-filter=format"
"--enable-filter=aformat"
"--enable-filter=fps"
"--enable-filter=transpose"
"--enable-filter=pad"
;; Filters.
"--enable-filter=scale"
"--enable-filter=overlay"
"--enable-filter=amix"
"--enable-filter=amerge"
"--enable-filter=aresample"
"--enable-filter=format"
"--enable-filter=aformat"
"--enable-filter=fps"
"--enable-filter=transpose"
"--enable-filter=pad"
;; Decoders for ringtones and audio streaming.
"--enable-decoder=pcm_s16be"
"--enable-decoder=pcm_s16be_planar"
"--enable-decoder=pcm_s16le_planar"
"--enable-decoder=pcm_s24be"
"--enable-decoder=pcm_s24le_planar"
"--enable-decoder=pcm_s32be"
"--enable-decoder=pcm_s32le_planar"
"--enable-decoder=pcm_s64be"
"--enable-decoder=pcm_s8"
"--enable-decoder=pcm_s8_planar"
"--enable-decoder=pcm_u16be"
;; Decoders for ringtones and audio streaming.
"--enable-decoder=pcm_s16be"
"--enable-decoder=pcm_s16be_planar"
"--enable-decoder=pcm_s16le_planar"
"--enable-decoder=pcm_s24be"
"--enable-decoder=pcm_s24le_planar"
"--enable-decoder=pcm_s32be"
"--enable-decoder=pcm_s32le_planar"
"--enable-decoder=pcm_s64be"
"--enable-decoder=pcm_s8"
"--enable-decoder=pcm_s8_planar"
"--enable-decoder=pcm_u16be"
;; More filters.
"--enable-filter=afir"
"--enable-filter=split"
"--enable-filter=drawbox"
"--enable-filter=drawtext"
"--enable-filter=rotate"
"--enable-filter=loop"
"--enable-filter=setpts"
"--enable-filter=movie"
"--enable-filter=alphamerge"
"--enable-filter=boxblur"
"--enable-filter=lut"
"--enable-filter=negate"
"--enable-filter=colorkey"
"--enable-filter=transpose"
;; More filters.
"--enable-filter=afir"
"--enable-filter=split"
"--enable-filter=drawbox"
"--enable-filter=drawtext"
"--enable-filter=rotate"
"--enable-filter=loop"
"--enable-filter=setpts"
"--enable-filter=movie"
"--enable-filter=alphamerge"
"--enable-filter=boxblur"
"--enable-filter=lut"
"--enable-filter=negate"
"--enable-filter=colorkey"
"--enable-filter=transpose"
"--enable-libfreetype"
"--enable-libfreetype"
#$@(if (string-contains (%current-system) "linux")
;; Leave out the '--enable-cuvid' ... '--enable-encoder=hevc_nvenc'
;; flags, as there's no support for ffnvcodec in Guix;
;; it would not work with Mesa anyway.
'("--enable-pic"
"--extra-cxxflags=-fPIC"
"--extra-cflags=-fPIC"
"--target-os=linux"
"--enable-indev=v4l2"
"--enable-indev=xcbgrab"
"--enable-vdpau"
"--enable-hwaccel=h264_vdpau"
"--enable-hwaccel=mpeg4_vdpau"
"--enable-vaapi"
"--enable-hwaccel=h264_vaapi"
"--enable-hwaccel=mpeg4_vaapi"
"--enable-hwaccel=h263_vaapi"
"--enable-hwaccel=vp8_vaapi"
"--enable-hwaccel=mjpeg_vaapi"
"--enable-hwaccel=hevc_vaapi"
"--enable-encoder=h264_vaapi"
"--enable-encoder=vp8_vaapi"
"--enable-encoder=mjpeg_vaapi"
"--enable-encoder=hevc_vaapi")
'())))))
(inputs (modify-inputs (package-inputs ffmpeg)
(append pipewire)))))
#$@(if (string-contains (%current-system) "linux")
;; Leave out the '--enable-cuvid' ... '--enable-encoder=hevc_nvenc'
;; flags, as there's no support for ffnvcodec in Guix;
;; it would not work with Mesa anyway.
'("--enable-pic"
"--extra-cxxflags=-fPIC"
"--extra-cflags=-fPIC"
"--target-os=linux"
"--enable-indev=v4l2"
"--enable-indev=xcbgrab"
"--enable-vdpau"
"--enable-hwaccel=h264_vdpau"
"--enable-hwaccel=mpeg4_vdpau"
"--enable-vaapi"
"--enable-hwaccel=h264_vaapi"
"--enable-hwaccel=mpeg4_vaapi"
"--enable-hwaccel=h263_vaapi"
"--enable-hwaccel=vp8_vaapi"
"--enable-hwaccel=mjpeg_vaapi"
"--enable-hwaccel=hevc_vaapi"
"--enable-encoder=h264_vaapi"
"--enable-encoder=vp8_vaapi"
"--enable-encoder=mjpeg_vaapi"
"--enable-encoder=hevc_vaapi")
'())))))
(inputs (modify-inputs (package-inputs ffmpeg)
(append pipewire))))))
(define-public ffmpegthumbnailer
(package
@ -2685,7 +2700,10 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0w0qk61ll0mddbkiwavqfx048sacyvp6fwglms58ypw869rh7iy7"))))
(base32 "0w0qk61ll0mddbkiwavqfx048sacyvp6fwglms58ypw869rh7iy7"))
(patches
(search-patches
"mpv-0.40.0-fix-ffmpeg-8.0.patch"))))
(build-system meson-build-system)
(arguments
(list
@ -2994,7 +3012,7 @@ To load this plugin, specify the following option when starting mpv:
(file-name (git-file-name name version))))
(build-system meson-build-system)
(inputs
(list mpv libdisplay-info wlroots))
(list mpv libdisplay-info))
(native-inputs
(list pkg-config cmake-minimal))
(home-page "https://github.com/GhostNaN/mpvpaper")

View file

@ -1516,7 +1516,8 @@ using simplestreams index files as the publishing mechanism
version ".tar.xz"))
(sha256
(base32
"1dn6pzv0gzkxrjvi60cdzdmyxqlcsvinbrbds91xm4v7wbn5g1dd"))))
"1dn6pzv0gzkxrjvi60cdzdmyxqlcsvinbrbds91xm4v7wbn5g1dd"))
(patches (search-patches "libosinfo-libxml2-fix.patch"))))
(build-system meson-build-system)
(arguments
(list
@ -1775,7 +1776,7 @@ to integrate other virtualization mechanisms if needed.")
`(,glib "bin") vala))
(propagated-inputs
;; Required: by the installed .pc files.
(list glib libvirt libxml2-next gobject-introspection))
(list glib libvirt libxml2 gobject-introspection))
(home-page "https://libvirt.org")
(synopsis "GLib wrapper around libvirt")
(description "libvirt-glib wraps the libvirt library to provide a
@ -1901,8 +1902,8 @@ virtualization library.")
libosinfo
libvirt
libvirt-glib
libxml2
python-minimal
python-libxml2
python-libvirt
python-pycairo
python-pygobject

View file

@ -771,7 +771,7 @@ the user specifically asks to proxy, so the @dfn{VPN} interface no longer
"etc/vpnc/vpnc-script")))))
(native-inputs (list gettext-minimal pkg-config))
(inputs (list lz4 vpnc-scripts))
(propagated-inputs (list libxml2-next gnutls zlib))
(propagated-inputs (list libxml2 gnutls zlib))
(synopsis "Client for Cisco VPN")
(description
"OpenConnect is a client for Cisco's AnyConnect SSL VPN, which is

View file

@ -9,6 +9,8 @@
;;; Copyright © 2023, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org>
;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -44,6 +46,7 @@
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages libffi)
#:use-module (gnu packages llvm)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@ -53,7 +56,7 @@
(define-public spirv-headers
(package
(name "spirv-headers")
(version "1.4.309.0")
(version "1.4.321.0")
(source
(origin
(method git-fetch)
@ -62,7 +65,7 @@
(commit (string-append "vulkan-sdk-" version))))
(sha256
(base32
"15l35w60sbw1i3a48057hvpvldf0lrlfmkz73bp456g2jn5vln23"))
"11nsfr6z11dx6ccyi9anz2iycxr9i06zl8dk4pdllf3dvk5wq61d"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@ -85,7 +88,7 @@ and for the GLSL.std.450 extended instruction set.
(define-public spirv-tools
(package
(name "spirv-tools")
(version "1.4.309.0")
(version "1.4.321.0")
(source
(origin
(method git-fetch)
@ -93,19 +96,21 @@ and for the GLSL.std.450 extended instruction set.
(url "https://github.com/KhronosGroup/SPIRV-Tools")
(commit (string-append "vulkan-sdk-" version))))
(sha256
(base32 "1ykrsd3fl8sx9sq8pc551swacqnl0xwv3p0l1ppdpw2h2mvz8syr"))
(base32 "015xymrzch87f3xkzx9rvlglqp39zx4vphjb2dkl5w6qcpz5s1y8"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
;; Some packages like mpv fail to link
;; when the static libraries are built.
"-DSPIRV_TOOLS_BUILD_STATIC=OFF"
(string-append
"-DSPIRV-Headers_SOURCE_DIR="
(assoc-ref %build-inputs "spirv-headers")))))
(list
#:configure-flags
#~(list "-DBUILD_SHARED_LIBS=ON"
;; Some packages like mpv fail to link
;; when the static libraries are built.
"-DSPIRV_TOOLS_BUILD_STATIC=OFF"
(string-append
"-DSPIRV-Headers_SOURCE_DIR="
(assoc-ref %build-inputs "spirv-headers")))))
(inputs (list spirv-headers))
(native-inputs (list pkg-config python))
(native-inputs (list pkg-config python-minimal))
(home-page "https://github.com/KhronosGroup/SPIRV-Tools")
(synopsis "API and commands for processing SPIR-V modules")
(description
@ -117,7 +122,7 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
(define-public spirv-cross
(package
(name "spirv-cross")
(version "1.4.309.0")
(version "1.4.321.0")
(source
(origin
(method git-fetch)
@ -125,34 +130,35 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
(url "https://github.com/KhronosGroup/SPIRV-Cross")
(commit (string-append "vulkan-sdk-" version))))
(sha256
(base32 "1sckwqz67mh48zypgr1r9x101mcq1dlkh8sxi341ynrxzjk8rm3j"))
(base32 "13fci6z74bxm8pbb3plchx31r04yzb4g11dbzcw3337dsgdllqma"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(;; Disable tests for now due to upstream issue hit when running
;; update-reference-shaders phase:
;; <https://github.com/KhronosGroup/SPIRV-Tools/issues/5980>.
#:tests? #f
#:configure-flags
(list "-DSPIRV_CROSS_SHARED=YES")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests-to-find-deps
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("\\$\\{CMAKE_(.*)_DIR\\}/external/glslang(.*)/bin")
(string-append (assoc-ref inputs "glslang") "/bin")))
(substitute* "CMakeLists.txt"
(("\\$\\{CMAKE_(.*)_DIR\\}/external/spirv-tools(.*)/bin")
(string-append (assoc-ref inputs "spirv-tools") "/bin")))))
(add-before 'check 'update-reference-shaders
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "../source"
(invoke "./update_test_shaders.sh"))))))))
(list
;; Disable tests for now due to upstream issue hit when running
;; update-reference-shaders phase:
;; <https://github.com/KhronosGroup/SPIRV-Tools/issues/5980>.
#:tests? #f
#:configure-flags
#~(list "-DSPIRV_CROSS_SHARED=YES")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-tests-to-find-deps
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("\\$\\{CMAKE_(.*)_DIR\\}/external/glslang(.*)/bin")
(string-append (assoc-ref inputs "glslang") "/bin")))
(substitute* "CMakeLists.txt"
(("\\$\\{CMAKE_(.*)_DIR\\}/external/spirv-tools(.*)/bin")
(string-append (assoc-ref inputs "spirv-tools") "/bin")))))
(add-before 'check 'update-reference-shaders
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "../source"
(invoke "./update_test_shaders.sh"))))))))
(inputs
(list glslang spirv-headers spirv-tools))
(native-inputs (list python))
(native-inputs (list python-minimal))
(home-page "https://github.com/KhronosGroup/SPIRV-Cross")
(synopsis "Parser for and converter of SPIR-V to other shader languages")
(description
@ -164,7 +170,7 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.")
(define-public spirv-llvm-translator
(package
(name "spirv-llvm-translator")
(version "18.1.0")
(version "18.1.10")
(source
(origin
(method git-fetch)
@ -173,7 +179,7 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0yfz02mlnf4ffn67g2ms0w8f7jgdsn438w2dbxd5mvcf5dk2x27b"))))
(base32 "11gmb1kw6j90hwcf6wxjz4pki653lyd8v8kphk7jq67gvw8dkiwy"))))
(build-system cmake-build-system)
(arguments
;; The test suite is known to fail on several architectures:
@ -201,7 +207,14 @@ SPIR-V, aiming to emit GLSL or MSL that looks like human-written code.")
(apply (assoc-ref gnu:%standard-phases 'check)
#:test-target "test" args))))))
(inputs (list llvm-18))
(native-inputs (list clang-18 llvm-18 python-lit spirv-headers))
(native-inputs
(list
clang-18
libffi
llvm-18
pkg-config
python-lit
spirv-headers))
(home-page "https://github.com/KhronosGroup/SPIRV-LLVM-Translator")
(synopsis "Bi-directional translation between SPIR-V and LLVM IR")
(description
@ -212,7 +225,7 @@ translation between LLVM IR and SPIR-V.")
(define-public glslang
(package
(name "glslang")
(version "1.4.309.0")
(version "1.4.321.0")
(source
(origin
(method git-fetch)
@ -221,36 +234,39 @@ translation between LLVM IR and SPIR-V.")
(commit (string-append "vulkan-sdk-" version))))
(sha256
(base32
"0kzzjh2dxzkznp75jk9sl4fjjgdy5s6xr8vha9av6cvi3jxm2i8y"))
"1b0zsrv12b34q0wp9g85x11kpd5kjvx4lbn7xv8b4szfpwdkxxxh"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"
"-DALLOW_EXTERNAL_SPIRV_TOOLS=ON"
,@(if (target-riscv64?)
`("-DCMAKE_EXE_LINKER_FLAGS=-latomic")
'()))
#:phases (modify-phases %standard-phases
,@(if (target-ppc32?)
`((add-after 'unpack 'skip-failing-test
(lambda _
;; TODO: Figure out why this test fails.
(substitute* "Test/runtests"
((".*remap\\.invalid" all)
(string-append "# " all))))))
'())
(replace 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
(when tests?
(invoke "ctest"
"-j" (if parallel-tests?
(number->string (parallel-job-count))
"1")
"--rerun-failed"
"--output-on-failure")))))))
(list
#:configure-flags
#~(list "-DBUILD_SHARED_LIBS=ON"
"-DALLOW_EXTERNAL_SPIRV_TOOLS=ON"
#$@(if (target-riscv64?)
`("-DCMAKE_EXE_LINKER_FLAGS=-latomic")
'()))
#:phases
#~(modify-phases %standard-phases
#$@(if (target-ppc32?)
`((add-after 'unpack 'skip-failing-test
(lambda _
;; TODO: Figure out why this test fails.
(substitute* "Test/runtests"
((".*remap\\.invalid" all)
(string-append "# " all))))))
'())
(replace 'check
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
(when tests?
(invoke "ctest"
"-j" (if parallel-tests?
(number->string (parallel-job-count))
"1")
"--rerun-failed"
"--output-on-failure")))))))
(inputs (list spirv-tools))
(native-inputs
(list pkg-config python))
(list pkg-config python-minimal))
(home-page "https://github.com/KhronosGroup/glslang")
(synopsis "OpenGL and OpenGL ES shader front end and validator")
(description
@ -317,7 +333,7 @@ Enhanced Subpixel Morphological Anti-Aliasing
(define-public vulkan-headers/no-loader
(package
(name "vulkan-headers")
(version "1.4.309.0")
(version "1.4.321.0")
(source
(origin
(method git-fetch)
@ -327,7 +343,7 @@ Enhanced Subpixel Morphological Anti-Aliasing
(file-name (git-file-name name version))
(sha256
(base32
"0ncj4gqb5zmkgmd205frrq8rxxdqlissqpj2fq3wxkdbdyx7pwid"))))
"1kamn5hw5lpw4yxyri4mlrryzhn33bnnrqby0yxla45z5f5f6fb3"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; No tests.
@ -361,7 +377,7 @@ Enhanced Subpixel Morphological Anti-Aliasing
(define-public vulkan-loader
(package
(name "vulkan-loader")
(version "1.4.309.0")
(version "1.4.321.0")
(source
(origin
(method git-fetch)
@ -371,7 +387,7 @@ Enhanced Subpixel Morphological Anti-Aliasing
(file-name (git-file-name name version))
(sha256
(base32
"1y6wqc8adzg7ndmbr95nzhcxf93qsfndfdnsym5pkbjfx454151d"))))
"0fbpypznznvwkqgf2zw85xdpbiq92j95xyldhnjk94lia6bs4klb"))))
(build-system cmake-build-system)
(arguments
(list
@ -387,31 +403,33 @@ Enhanced Subpixel Morphological Anti-Aliasing
%build-inputs "include/vulkan"))))
#$@(if (%current-target-system)
#~("-DBUILD_TESTS=OFF" "-DUSE_GAS=OFF"
(string-append "-DPKG_CONFIG_EXECUTABLE="
(search-input-file
%build-inputs
(string-append "bin/" #$(pkg-config-for-target)))))
(string-append
"-DPKG_CONFIG_EXECUTABLE="
(search-input-file
%build-inputs
(string-append "bin/" #$(pkg-config-for-target)))))
#~("-DBUILD_TESTS=ON")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-pkg-config-file
(lambda* (#:key inputs #:allow-other-keys)
(let ((vulkan-headers (dirname (search-input-directory
inputs "include/vulkan"))))
;; Ensure the pkg-config file refers to vulkan-headers.
(substitute* "loader/vulkan.pc.in"
(("^includedir=.*")
(string-append "includedir=" vulkan-headers "\n"))))))
(add-after 'unpack 'use-system-googletest
(lambda _
(substitute* "tests/CMakeLists.txt"
(((string-append "message\\(FATAL_ERROR \"Could not "
"find googletest directory. See BUILD.md\"\\)"))
"find_package(GTest REQUIRED)"))
;; Use the namespaced variable.
(substitute* "tests/framework/CMakeLists.txt"
(("PUBLIC gtest ")
"PUBLIC GTest::gtest ")))))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-pkg-config-file
(lambda* (#:key inputs #:allow-other-keys)
(let ((vulkan-headers (dirname (search-input-directory
inputs "include/vulkan"))))
;; Ensure the pkg-config file refers to vulkan-headers.
(substitute* "loader/vulkan.pc.in"
(("^includedir=.*")
(string-append "includedir=" vulkan-headers "\n"))))))
(add-after 'unpack 'use-system-googletest
(lambda _
(substitute* "tests/CMakeLists.txt"
(((string-append
"message\\(FATAL_ERROR \"Could not "
"find googletest directory. See BUILD.md\"\\)"))
"find_package(GTest REQUIRED)"))
;; Use the namespaced variable.
(substitute* "tests/framework/CMakeLists.txt"
(("PUBLIC gtest ")
"PUBLIC GTest::gtest ")))))))
(native-inputs
(list googletest
libxrandr
@ -440,50 +458,56 @@ and the ICD.")
license:bsd-3))))
(define-public vulkan-tools
(package
(name "vulkan-tools")
(version "1.4.309.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/Vulkan-Tools")
(commit (string-append "vulkan-sdk-" version))))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet #~(substitute* "tests/icd/mock_icd_tests.cpp"
;; Disable driver info test since it relies on git branch info
(("ASSERT_EQ\\(std::string\\(driver_properties\\.driverInfo\\)")
"// ASSERT_EQ(std::string(driver_properties.driverInfo)")))
(sha256
(base32
"0ywvvkra29y2cvw8i9laf4skn6cl7phrwshcc7z9dljb3il87cym"))))
(build-system cmake-build-system)
(inputs
(list glslang libxrandr vulkan-loader wayland wayland-protocols))
(native-inputs
(list googletest pkg-config python vulkan-volk vulkan-headers))
(arguments
`(#:configure-flags (list "-DBUILD_TESTS=ON")
#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./tests/vulkan_tools_tests")))))))
(home-page
"https://github.com/KhronosGroup/Vulkan-Tools")
(synopsis "Tools and utilities for Vulkan")
(description
"Vulkan-Tools provides tools and utilities that can assist development by
;; Required to fix an issue. See:
;; https://github.com/KhronosGroup/Vulkan-Tools/issues/1130
(let ((commit "105d6c1fede00c3a9055e5a531ebf3d99bac406e")
(revision "1"))
(package
(name "vulkan-tools")
(version (git-version "1.4.321.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/Vulkan-Tools")
(commit commit)))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
#~(substitute* "tests/icd/mock_icd_tests.cpp"
;; Disable driver info test since it relies on git branch info
(("ASSERT_EQ\\(std::string\\(driver_properties\\.driverInfo\\)")
"// ASSERT_EQ(std::string(driver_properties.driverInfo)")))
(sha256
(base32
"1dphpf4v0kip2b0vhhwb136gjjmgxc64gg26sg3wpg6nnwakpznc"))))
(build-system cmake-build-system)
(inputs
(list glslang libxrandr vulkan-loader wayland wayland-protocols))
(native-inputs
(list googletest pkg-config python vulkan-volk vulkan-headers))
(arguments
(list
#:configure-flags #~(list "-DBUILD_TESTS=ON")
#:phases #~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./tests/vulkan_tools_tests")))))))
(home-page
"https://github.com/KhronosGroup/Vulkan-Tools")
(synopsis "Tools and utilities for Vulkan")
(description
"Vulkan-Tools provides tools and utilities that can assist development by
enabling developers to verify their applications correct use of the Vulkan
API.")
(license (list license:asl2.0)))) ;LICENSE.txt
(license (list license:asl2.0))))) ;LICENSE.txt
(define-public shaderc
(package
(name "shaderc")
;; shaderc doesn't follow the versioning scheme of vulkan sdk
(version "2025.1")
(version "2025.3")
(source
(origin
(method git-fetch)
@ -493,44 +517,44 @@ API.")
(file-name (git-file-name name version))
(sha256
(base32
"0hbsvyyy5fzgal83z8kx4a3x9d2fnd2fcs53l3s9n0pyybip3i5j"))))
"0w1mj5b3n6kp0brqindb7fppvllzlywkdk1zglkbj3bw8k0795mb"))))
(build-system cmake-build-system)
(arguments
`(;; FIXME: Skip most of the tests, because enabling system gtest breaks
;; the build: <https://github.com/google/shaderc/issues/470>.
#:configure-flags
(list "-DSHADERC_SKIP_TESTS=ON"
;; The two flags are copied from:
;; https://sdk.lunarg.com/sdk/download/1.3.280.0/linux/config.json
"-DSHADERC_ENABLE_SHARED_CRT=ON"
"-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
"-DPYTHON_EXECUTABLE=python3"
;; Note: despite the name, this just specifies the headers.
(string-append "-Dglslang_SOURCE_DIR="
(assoc-ref %build-inputs "glslang") "/include/glslang"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'do-not-look-for-bundled-sources
(lambda _
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(third_party\\)")
""))
(substitute* "glslc/test/CMakeLists.txt"
(("\\$<TARGET_FILE:spirv-dis>")
(which "spirv-dis")))
;; Do not attempt to use git to encode version information.
(substitute* "glslc/CMakeLists.txt"
(("add_dependencies\\(glslc_exe build-version\\)")
""))
(call-with-output-file "glslc/src/build-version.inc"
(lambda (port)
(format port "\"~a\"\n\"~a\"\n\"~a\"~%"
,version
,(package-version spirv-tools)
,(package-version glslang))))
#t)))))
(list
#:tests? #f ; We don't build the tests, see below.
;; FIXME: Skip most of the tests, because enabling system gtest breaks
;; the build: <https://github.com/google/shaderc/issues/470>.
#:configure-flags
#~(list "-DSHADERC_SKIP_TESTS=ON"
;; The two flags are copied from:
;; https://sdk.lunarg.com/sdk/download/1.3.280.0/linux/config.json
"-DSHADERC_ENABLE_SHARED_CRT=ON"
"-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
"-DPYTHON_EXECUTABLE=python3"
;; Note: despite the name, this just specifies the headers.
(string-append "-Dglslang_SOURCE_DIR="
#$(this-package-input "glslang")
"/include/glslang"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'do-not-look-for-bundled-sources
(lambda _
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(third_party\\)")
""))
(substitute* "glslc/test/CMakeLists.txt"
(("\\$<TARGET_FILE:spirv-dis>")
(which "spirv-dis")))
;; Do not attempt to use git to encode version information.
(substitute* "glslc/CMakeLists.txt"
(("add_dependencies\\(glslc_exe build-version\\)")
""))
(call-with-output-file "glslc/src/build-version.inc"
(lambda (port)
(format port "\"~a\"\n\"~a\"\n\"~a\"~%"
#$version
#$(package-version spirv-tools)
#$(package-version glslang)))))))))
(inputs
(list glslang spirv-headers spirv-tools))
(native-inputs
@ -544,56 +568,57 @@ shader compilation.")
(define-public vkd3d
(let ((commit "56cd4a94d541707959ce7677af6d1a34739e5579")) ; Release 1.2.
(package
(name "vkd3d")
(version "1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://source.winehq.org/git/vkd3d.git")
(commit commit)))
(sha256
(base32
"1n4a622drgnprvz5hjxzyzcsg2lp5rlf1sajki2vzf5gsx6fdpk8"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-spirv-tools")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-for-new-vulkan
(lambda _
;; Mimic upstream commit 8e7bf8a5c3e0047 for
;; compatibility with newer vulkan-headers.
(substitute* "libs/vkd3d/vkd3d_private.h"
(("VK_PIPELINE_BIND_POINT_RANGE_SIZE")
"2u"))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("gettext" ,gettext-minimal)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(inputs
(list libx11
libxcb
spirv-headers
spirv-tools
vulkan-headers
vulkan-loader
wine-minimal ; Needed for 'widl'.
xcb-util
xcb-util-keysyms
xcb-util-wm))
(home-page "https://source.winehq.org/git/vkd3d.git/")
(synopsis "Direct3D 12 to Vulkan translation library")
(description "vkd3d is a library for translating Direct3D 12 to Vulkan.")
(license license:lgpl2.1))))
(name "vkd3d")
(version "1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://source.winehq.org/git/vkd3d.git")
(commit commit)))
(sha256
(base32
"1n4a622drgnprvz5hjxzyzcsg2lp5rlf1sajki2vzf5gsx6fdpk8"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags #~(list "--with-spirv-tools")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-for-new-vulkan
(lambda _
;; Mimic upstream commit 8e7bf8a5c3e0047 for
;; compatibility with newer vulkan-headers.
(substitute* "libs/vkd3d/vkd3d_private.h"
(("VK_PIPELINE_BIND_POINT_RANGE_SIZE")
"2u")))))))
(native-inputs
(list autoconf
automake
gettext-minimal
libtool
pkg-config))
(inputs
(list libx11
libxcb
spirv-headers
spirv-tools
vulkan-headers
vulkan-loader
wine-minimal ; Needed for 'widl'.
xcb-util
xcb-util-keysyms
xcb-util-wm))
(home-page "https://source.winehq.org/git/vkd3d.git/")
(synopsis "Direct3D 12 to Vulkan translation library")
(description "vkd3d is a library for translating Direct3D 12 to Vulkan.")
(license license:lgpl2.1))))
(define-public vulkan-validationlayers
(package
(name "vulkan-validationlayers")
(version "1.4.309.0")
(version "1.4.321.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -608,7 +633,7 @@ shader compilation.")
"")))
(sha256
(base32
"1dvgbgfxcp3ypy06j5m561j1gag0hk40zqd477cdv1kizv6i7nsk"))))
"1lmkcgz80386304s6kr4fi825r5004305fhvfc7gmsqdih0bqcv9"))))
(build-system cmake-build-system)
(inputs (list glslang
libxrandr
@ -619,39 +644,43 @@ shader compilation.")
vulkan-loader
vulkan-utility-libraries
wayland))
(native-inputs (list googletest pkg-config python spirv-headers vulkan-headers))
(native-inputs
(list googletest pkg-config python spirv-headers vulkan-headers))
(arguments
(list #:tests? #f ; tests crash on some hardware (various upstream issues)
#:configure-flags
#~(list "-DBUILD_TESTS=ON")
#:phases #~(modify-phases %standard-phases
(add-after 'install 'set-layer-path-in-manifest
(lambda _
(let ((manifest (string-append #$output
"/share/vulkan/explicit_layer.d"
"/VkLayer_khronos_validation.json")))
(substitute* manifest
(("\"libVkLayer_khronos_validation.so\"")
(string-append "\"" #$output
"/lib/libVkLayer_khronos_validation.so\""))))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "VK_LAYER_PATH"
(string-append (getcwd) "/layers"))
(setenv "LD_LIBRARY_PATH"
(string-append #$(this-package-input
"vulkan-loader") "/lib"))
(setenv "MESA_SHADER_CACHE_DIR"
(string-append (getcwd) "/shader-cache"))
(setenv "XDG_RUNTIME_DIR" (getcwd))
(invoke "./tests/vk_layer_validation_tests")))))))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'set-layer-path-in-manifest
(lambda _
(let ((manifest
(string-append #$output
"/share/vulkan/explicit_layer.d"
"/VkLayer_khronos_validation.json")))
(substitute* manifest
(("\"libVkLayer_khronos_validation.so\"")
(string-append
"\"" #$output
"/lib/libVkLayer_khronos_validation.so\""))))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "VK_LAYER_PATH"
(string-append (getcwd) "/layers"))
(setenv "LD_LIBRARY_PATH"
(string-append #$(this-package-input
"vulkan-loader") "/lib"))
(setenv "MESA_SHADER_CACHE_DIR"
(string-append (getcwd) "/shader-cache"))
(setenv "XDG_RUNTIME_DIR" (getcwd))
(invoke "./tests/vk_layer_validation_tests")))))))
(home-page "https://github.com/KhronosGroup/Vulkan-ValidationLayers")
(synopsis "Khronos official validation layers for Vulkan")
(description
"Vulkan-ValidationLayers provides the Khronos official validation layers that
can assist development by enabling developers to verify their applications correctly
use the Vulkan API.")
"Vulkan-ValidationLayers provides the Khronos official validation layers
that can assist development by enabling developers to verify their
applications correctly use the Vulkan API.")
(license license:asl2.0)))
(define-public vulkan-volk
@ -696,7 +725,7 @@ skipping loader dispatch overhead.")
(define-public vulkan-memory-allocator
(package
(name "vulkan-memory-allocator")
(version "3.2.1")
(version "3.3.0")
(source
(origin
(method git-fetch)
@ -707,11 +736,9 @@ skipping loader dispatch overhead.")
(file-name (git-file-name name version))
(sha256
(base32
"0y8ccx080bqrgv71ggixxpl57vc5znq55rnvl4v4srfkjxhz6yiy"))))
"1qadyd9nir9ip176fsxvl91w60mnyvk07d5ihjlpqvl7rdbjmwac"))))
(build-system cmake-build-system)
(arguments
;; no test
`(#:tests? #f))
(arguments (list #:tests? #f)) ;no tests
(inputs (list vulkan-loader vulkan-headers))
(synopsis "Vulkan memory allocation library")
(description
@ -725,7 +752,7 @@ storage.")
(define-public vulkan-utility-libraries
(package
(name "vulkan-utility-libraries")
(version "1.4.309.0")
(version "1.4.321.0")
(source
(origin
(method git-fetch)
@ -733,7 +760,7 @@ storage.")
(url "https://github.com/KhronosGroup/Vulkan-Utility-Libraries")
(commit (string-append "vulkan-sdk-" version))))
(sha256
(base32 "1ihk95gjszk9yn3r6xvda83qp7f463m86srj6cq43z01sk2naxkr"))
(base32 "1xj860z596p2wgdfc5yr15q0hasz8p4ci6x0j1wim7jklp92g89i"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments

View file

@ -6,6 +6,7 @@
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -46,17 +47,14 @@
(define-public wget
(package
(replacement wget/fixed)
(name "wget")
(version "1.21.4")
(version "1.25.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/wget/wget-"
version ".tar.lz"))
(sha256
(base32
"1nabhxx3rg28h2scba2mlawzjyx3dw07j2kjn76cpvahbyd630rn"))))
(method url-fetch)
(uri (string-append "mirror://gnu/wget/wget-" version ".tar.lz"))
(sha256
(base32 "07waw3s51zmjqzqq717xyyd353qc1ajcd38lh7y8i85hav3mq8hr"))))
(build-system gnu-build-system)
(inputs
(list gnutls libidn2 libpsl))
@ -76,17 +74,6 @@ wild cards, supports proxies and cookies, and it can convert absolute links
in downloaded documents to relative links.")
(license license:gpl3+))) ; some files are under GPLv2+
(define-public wget/fixed
(package
(inherit wget)
(version "1.25.0")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/wget/wget-" version ".tar.lz"))
(sha256
(base32 "07waw3s51zmjqzqq717xyyd353qc1ajcd38lh7y8i85hav3mq8hr"))))))
(define-public wgetpaste
(package
(name "wgetpaste")

View file

@ -185,7 +185,7 @@ integrate Windows applications into your desktop.")
libgphoto2
openldap
samba
sane-backends
sane
libpcap
libusb
libice

View file

@ -243,7 +243,7 @@ the leaves of a full binary tree.")
(native-inputs (list pkg-config scdoc
;; for wayland-scanner
wayland))
(inputs (list wayland wlroots libxkbcommon))
(inputs (list wayland wlroots-0.18 libxkbcommon))
(home-page "https://github.com/cage-kiosk/cage")
(synopsis "Wayland kiosk")
(description "This package provides a Wayland @dfn{kiosk}, which runs a
@ -428,7 +428,7 @@ loginctl commands (lock/unlock/before-sleep) and inhibit.")
hyprland-qtutils
hyprlang
hyprutils
libinput-minimal-next
libinput-minimal
libxcursor
libxkbcommon
mesa
@ -1472,7 +1472,7 @@ the XDG Autostart specification.")
tllist
scdoc))
(inputs
(list wlroots wayland fcft dbus libpng))
(list wayland fcft dbus libpng))
(home-page "https://codeberg.org/dnkl/fnott")
(synopsis "Keyboard driven and lightweight Wayland notification daemon")
(description "Fnott is a keyboard driven and lightweight notification daemon
@ -1909,7 +1909,7 @@ started automatically on the first call via D-Bus.")
(native-inputs
(list pkg-config))
(inputs
(list wlroots))
(list wlroots-0.18))
(home-page "https://codeberg.org/dwl/dwl")
(synopsis "Dynamic window manager for Wayland")
(description
@ -2104,7 +2104,7 @@ XDG-Output for wlclock to work.")
(define-public wlroots
(package
(name "wlroots")
(version "0.18.2")
(version "0.19.1")
(source
(origin
(method git-fetch)
@ -2113,7 +2113,7 @@ XDG-Output for wlclock to work.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1l1c4m8m1h8rl00y9yi6qjma5m3lhai9hqv5578q69yg2dcwraxw"))))
(base32 "1w3nlrvy7625jh4f0l923f7irywzfdashcw5hbf8jq9kpjhpm323"))))
(build-system meson-build-system)
(arguments
(list #:phases
@ -2162,6 +2162,24 @@ Wayland compositor")
modules for building a Wayland compositor.")
(license license:expat))) ; MIT license
;; Allow packages refering to stable wlroots version, because
;; wlroots updates are backward incompatible.
(define-public wlroots-0.19 wlroots)
(define-public wlroots-0.18
(package
(inherit wlroots)
(version "0.18.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/wlroots/wlroots")
(commit version)))
(file-name (git-file-name "wlroots" version))
(sha256
(base32 "1l1c4m8m1h8rl00y9yi6qjma5m3lhai9hqv5578q69yg2dcwraxw"))))))
(define-public wlroots-0.17
(package
(inherit wlroots)
@ -2310,7 +2328,7 @@ narrow the items to those matching the tokens in the input.")
pcre2
swaybg
wayland
wlroots))
wlroots-0.18))
(native-inputs
(cons* linux-pam mesa pkg-config scdoc wayland-protocols
(if (%current-target-system)
@ -2349,7 +2367,7 @@ narrow the items to those matching the tokens in the input.")
scenefx
swaybg
wayland
wlroots))
wlroots-0.18))
(home-page "https://github.com/WillPower3309/swayfx")
(synopsis "Sway Fork with extra options and effects")
(description
@ -3796,7 +3814,7 @@ read and write, and compatible with JSON.")
(define-public labwc
(package
(name "labwc")
(version "0.8.4")
(version "0.9.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3805,7 +3823,7 @@ read and write, and compatible with JSON.")
(file-name (git-file-name name version))
(sha256
(base32
"1wbza00y2xf2zn34q5c8g5k2dn2xjzbbqmsnjv6c90mh2bbk1q95"))))
"0p475vjn9gg314spf89di6i1l2lr9xx59mz4hq4shvbh64hr48pi"))))
(build-system meson-build-system)
(native-inputs
(list pkg-config gettext-minimal scdoc))
@ -3818,7 +3836,7 @@ read and write, and compatible with JSON.")
libxcb
libxml2
pango
wlroots))
wlroots-0.19))
(home-page "https://labwc.github.io")
(synopsis "Window-stacking compositor for Wayland")
(description
@ -4484,7 +4502,7 @@ battery efficient---polling is only done when absolutely necessary.")
(define-public wideriver
(package
(name "wideriver")
(version "1.2.0")
(version "1.3.1")
(source
(origin
(method git-fetch)
@ -4493,7 +4511,7 @@ battery efficient---polling is only done when absolutely necessary.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "16i0mzgxn32nrh5ajn0kb4xdwmsjg03amhasxhwyvspar5y4flhg"))))
(base32 "1ljl1finfajinvrj073dbwk9vm352jwr6rm9vn5fkrqi296s1n8x"))))
(build-system gnu-build-system)
(arguments
(list
@ -4504,7 +4522,7 @@ battery efficient---polling is only done when absolutely necessary.")
#:phases #~(modify-phases %standard-phases
(delete 'configure)))) ; no configure script
(native-inputs (list pkg-config cmocka))
(inputs (list wayland wayland-protocols wlroots))
(inputs (list wayland wayland-protocols))
(home-page "https://github.com/alex-courtis/wideriver")
(synopsis "A set of riverWM layouts")
(description
@ -4555,7 +4573,7 @@ configure input, and customize Wayfire plugins.")
mesa
libxkbcommon
libdrm
wlroots))
wlroots-0.18))
(home-page "https://github.com/wlrfx/scenefx")
(synopsis "Drop-in replacement for the wlroots scene API")
(description

View file

@ -53,7 +53,7 @@
;;; Copyright © 2021 ikasero <ahmed@ikasero.com>
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021, 2025 jgart <jgart@dismail.de>
;;; Copyright © 2022, 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022, 2024, 2025 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 Derek Chuank <derekchuank@outlook.com>
;;; Copyright © 2022, 2023 Wamm K. D. <jaft.r@outlook.com>
@ -633,14 +633,16 @@ avoiding password prompts when X11 forwarding has already been setup.")
(define-public libxkbcommon
(package
(name "libxkbcommon")
(version "1.6.0")
(version "1.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
version ".tar.xz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/xkbcommon/libxkbcommon")
(commit (string-append "xkbcommon-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0awwz5pg9x5bj0d7dpg4a7bd4gl6k55mlpxwb12534fkrpn19p0f"))))
"1swa6rf63c0wi0qq5r661g63yk2iwa9l66148078xkrwcf05sp91"))))
(outputs '("out" "doc"))
(build-system meson-build-system)
(inputs
@ -652,12 +654,19 @@ avoiding password prompts when X11 forwarding has already been setup.")
xkeyboard-config))
(native-inputs
(append
(list bison doxygen pkg-config python
;; wayland-scanner is required at build time.
wayland)
(if (%current-target-system)
(list pkg-config-for-build)
'())))
(list bison
doxygen
pkg-config
python
;; wayland-scanner is required at build time.
wayland
;; Xvfb for tests.
xorg-server-for-tests
;; xkbcomp for tests.
xkbcomp)
(if (%current-target-system)
(list pkg-config-for-build)
'())))
(arguments
(list
#:configure-flags
@ -666,7 +675,8 @@ avoiding password prompts when X11 forwarding has already been setup.")
%build-inputs "share/X11/xkb"))
(string-append "-Dx-locale-root="
(search-input-directory
%build-inputs "share/X11/locale")))
%build-inputs "share/X11/locale"))
"-Denable-docs=true")
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'move-doc
@ -695,41 +705,6 @@ X11 (yet).")
"See 'COPYING' in the distribution."))
(properties '((cpe-name . "xkbcommon")))))
(define-public libxkbcommon-1.5
(package
(inherit libxkbcommon)
(version "1.5.0")
(source (origin
(inherit (package-source libxkbcommon))
(method url-fetch)
(uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
version ".tar.xz"))
(sha256
(base32
"05z08rpa464x8myjxddhix7jp9jcmakd7xrybx4hz8dwpg2123sn"))))))
(define-public libxkbcommon-1.8
(package
(inherit libxkbcommon)
(version "1.8.1")
(source (origin
(inherit (package-source libxkbcommon))
(method git-fetch)
(uri (git-reference
(url "https://github.com/xkbcommon/libxkbcommon")
(commit (string-append "xkbcommon-" version))))
(file-name (git-file-name (package-name libxkbcommon) version))
(sha256
(base32
"0fz6mf99lyp7x6g6v33210hhpykbg32fjmckyvxfpd805cza0xrj"))))
(arguments
(substitute-keyword-arguments (package-arguments libxkbcommon)
((#:configure-flags flags #~(list))
#~(cons "-Denable-docs=true" #$flags))))
(native-inputs (modify-inputs (package-native-inputs libxkbcommon)
(append xorg-server ;; Xvfb for tests
xkbcomp))))) ;; xkbcomp for tests
(define-public libfakekey
(package
(name "libfakekey")
@ -902,31 +877,29 @@ typing tool (@code{wtype}, @code{xdotool}, etc.), or via standard output.")
(define-public pixman
(package
(name "pixman")
(version "0.42.2")
(version "0.46.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.cairographics.org/releases/pixman-"
version ".tar.gz"))
(sha256
(base32 "0pk298iqxqr64vk3z6nhjwr6vjg1971zfrjkqy5r9zd2mppq057a"))
(base32 "072rd8sd454rzybmxx90fdzvabzvx0pr57y745qfwnxxqgml976h"))
(patches (search-patches "pixman-CVE-2016-5296.patch"))))
(build-system gnu-build-system)
(build-system meson-build-system)
(arguments
`(#:configure-flags
(list "--disable-static"
"--enable-timers"
"--enable-gnuplot"
,@(if (target-arm32?)
`("--disable-arm-simd")
'()))))
(native-inputs (list pkg-config))
(inputs (list libpng zlib))
(list
#:configure-flags
#~(list "-Dtimers=true"
"-Dgnuplot=true"
#$@(if (target-arm32?)
'("-Darm-simd=false")
'()))))
(synopsis "Low-level pixel manipulation library")
(description "Pixman is a low-level software library for pixel
manipulation, providing features such as image compositing and trapezoid
rasterisation.")
(home-page "http://www.pixman.org/")
(home-page "https://www.pixman.org/")
(license license:expat)))
(define-public libdrm

View file

@ -37,6 +37,7 @@
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2025 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -188,19 +189,19 @@ binary extension of XML for the purpose of storing and manipulating data in a
hierarchical form with variable field lengths.")
(license license:lgpl2.1)))
;; Note: Remember to check python-libxml2 when updating this package.
(define-public libxml2
(package
(name "libxml2")
(version "2.9.14")
(version "2.14.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libxml2/"
(version-major+minor version)"/libxml2-"
version ".tar.xz"))
(sha256
(base32
"1vnzk33wfms348lgz9pvkq9li7jm44pvm73lbr3w1khwgljlmmv0"))))
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libxml2/"
(version-major+minor version)"/libxml2-"
version ".tar.xz"))
(sha256
(base32
"0fi0jysncjpvhvp29qcx3bydndapwphgkx7ial5kzf7ymyh5ir3w"))
(patches (search-patches "python-libxml2-utf8.patch"))))
(build-system gnu-build-system)
(outputs '("out" "static" "doc"))
(arguments
@ -218,6 +219,13 @@ hierarchical form with variable field lengths.")
(string-append "/bin/" file)) "."))
'("config.guess" "config.sub")))))
#~())
(add-before 'configure 'configure-python
(lambda _
(substitute* "python/setup.py.in"
;; The build system ignores C_INCLUDE_PATH & co, so
;; provide the absolute directory name.
(("/opt/include")
(string-append #$output "/include/libxml2")))))
(add-after 'install 'use-other-outputs
(lambda _
(let ((doc (string-append #$output:doc "/share/"))
@ -245,7 +253,7 @@ hierarchical form with variable field lengths.")
(native-inputs (append (if (target-loongarch64?)
(list config)
'())
(list perl)))
(list perl pkg-config python-minimal)))
(native-search-paths
(list $SGML_CATALOG_FILES $XML_CATALOG_FILES))
(search-paths native-search-paths)
@ -254,57 +262,23 @@ hierarchical form with variable field lengths.")
project (but it is usable outside of the Gnome platform).")
(license license:x11)))
(define-public libxml2-next
(package
(inherit libxml2)
(name "libxml2")
(version "2.14.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libxml2/"
(version-major+minor version)"/libxml2-"
version ".tar.xz"))
(sha256
(base32
"0jylv2kkyzih710blg24al7b43iaqg6xsfn52qy865knagrhdl03"))))
(native-inputs (modify-inputs (package-native-inputs libxml2)
(append pkg-config
python-minimal)))))
(define-public libxml2-next/fixed
(package
(inherit libxml2)
(properties '((hidden? . #t)))
(name "libxml2")
(version "2.14.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libxml2/"
(version-major+minor version)"/libxml2-"
version ".tar.xz"))
(sha256
(base32
"0jylv2kkyzih710blg24al7b43iaqg6xsfn52qy865knagrhdl03"))))
(arguments
(substitute-keyword-arguments (package-arguments libxml2-next)
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(add-after 'install 'symlink-hardcoded-lib-for-grafts
(lambda _
(let ((lib (string-append #$output "/lib/libxml2.so")))
;; XXX: When grafting, we need to reproduce the file paths to
;; the libraries too.
(symlink (string-append lib ".16")
(string-append lib ".2")))))))))
(native-inputs (modify-inputs (package-native-inputs libxml2)
(append pkg-config
python-minimal)))))
(define-public libxml2-next-for-grafting
(package
(inherit libxml2)
(replacement libxml2-next/fixed)
(properties '((hidden? . #t)))))
;; This is an old version (the most recent that works) of libxml2 solely for
;; building librsvg-2.40.
;; XXX: Remove once Rust (and thus newer librsvg) is supported on all
;; platforms.
(define-public libxml2-2.11
(hidden-package
(package
(inherit libxml2)
(version "2.11.9")
(source (origin
(inherit (package-source libxml2))
(uri (string-append "mirror://gnome/sources/libxml2/"
(version-major+minor version)"/libxml2-"
version ".tar.xz"))
(sha256
(base32
"17w0a622466k2hi5nln276la6rzfr9xaip3lqj71hmyvxyhmf0bq")))))))
(define-public libxml2-xpath0
(package/inherit libxml2
@ -320,34 +294,7 @@ provides an @code{--xpath0} option to @command{xmllint} that enables it
to output XPath results with a null delimiter.")))
(define-public python-libxml2
(package/inherit libxml2
(name "python-libxml2")
(source (origin
(inherit (package-source libxml2))
(patches
(append (search-patches "python-libxml2-utf8.patch")
(origin-patches (package-source libxml2))))))
(build-system pyproject-build-system)
(outputs '("out"))
(arguments
(list
;; XXX: Tests are specified in 'Makefile.am', but not in 'setup.py'.
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'configure
(lambda* (#:key inputs #:allow-other-keys)
(chdir "python")
(let ((libxml2-headers (search-input-directory
inputs "include/libxml2")))
(substitute* "setup.py"
;; The build system ignores C_INCLUDE_PATH & co, so
;; provide the absolute directory name.
(("/opt/include")
(dirname libxml2-headers)))))))))
(native-inputs (list python-setuptools))
(inputs (list libxml2))
(synopsis "Python bindings for the libxml2 library")))
(deprecated-package "python-libxml2" libxml2))
(define-public libxlsxwriter
(package
@ -394,7 +341,7 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
(define-public libxslt
(package
(name "libxslt")
(version "1.1.37")
(version "1.1.43")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources"
@ -402,8 +349,7 @@ formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.")
"/libxslt-" version ".tar.xz"))
(sha256
(base32
"1d1s2bk0m6d7bzml9w90ycl0jlpcy4v07595cwaddk17h3f2fjrs"))
(patches (search-patches "libxslt-generated-ids.patch"))))
"0fhqy01x99iia8306czakxza4spzyn88w4bin4sw5bx57hw6ngas"))))
(build-system gnu-build-system)
(arguments
(list #:phases
@ -1256,7 +1202,7 @@ XSL-T processor. It also performs any necessary post-processing.")
"1shk40mpaqaf05skgyxa7qxgcarjd6i1fadn2sk0b8lakfv96bnq"))))
(build-system gnu-build-system)
(propagated-inputs ; according to xmlsec1.pc
(list libxml2-next libxslt))
(list libxml2 libxslt))
(inputs
(list gnutls libgcrypt libltdl))
(native-inputs
@ -1937,13 +1883,13 @@ because lxml.etree already has its own implementation of XPath 1.0.")
(define-public python-lxml
(package
(name "python-lxml")
(version "5.2.2")
(version "6.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "lxml" version))
(sha256
(base32 "11yvrzlswlh81z6lpmds2is2jd3wkigpwj6mcfcaggl0h64w8bdv"))))
(base32 "14064h0pxdsx36nhyjzrw0v16ygz977qf6l0ydnh5p97pwp8hfib"))))
(build-system pyproject-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -1975,19 +1921,13 @@ libxml2 and libxslt.")
(sha256
(base32 "03l86qr5xzvz0jcbk669sj8nbw1fjshmf0b7l83gl5cfnx81wm5i"))))
(arguments
(list #:phases
(list #:tests? #f ;some tests fail with newer libxml2
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'relax-gcc-14-strictness
(lambda _
(setenv "CFLAGS"
"-Wno-error=incompatible-pointer-types")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(substitute* "src/lxml/tests/test_elementtree.py"
;; AssertionError: Lists differ: [] != [('end', 'element')]
(("def test_simple_xml") "def _do_not_test_simple_xml"))
(invoke "make" "test"))))))))))
"-Wno-error=incompatible-pointer-types")))))))))
(define-deprecated python-lxml-4.7 python-lxml)
(export python-lxml-4.7)

View file

@ -5759,7 +5759,7 @@ Wayland.")
(define-public libx11
(package
(name "libx11")
(version "1.8.10")
(version "1.8.12")
(source
(origin
(method url-fetch)
@ -5767,7 +5767,7 @@ Wayland.")
version ".tar.xz"))
(sha256
(base32
"0lywvwsz92j7isglvw2227g3na4ghyspvsvblpf43ns7jfnksfrb"))))
"16lspc3bw2pg3jal7zyq6mxmxmmaax0fz6lgh1n4skqjn2dny0ps"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;8 MiB of man pages + XML

View file

@ -445,7 +445,7 @@ interface.")
`(,@args #:install-source? #f))
(chdir ".."))))))
(propagated-inputs
(list wlroots
(list wlroots-0.18
zig-pixman
zig-wayland
zig-xkbcommon))

View file

@ -80,8 +80,10 @@
#:use-module (gnu packages nfs)
#:use-module (gnu packages enlightenment)
#:use-module (guix deprecation)
#:use-module (guix i18n)
#:use-module (guix records)
#:use-module (guix packages)
#:use-module (guix search-paths)
#:use-module (guix store)
#:use-module (guix ui)
#:use-module (guix utils)
@ -147,6 +149,11 @@
accountsservice-service ; deprecated
cups-pk-helper-service-type
sane-configuration
sane-configuration?
sane-configuration-backends
sane-configuration-sane
sane-service-type
gnome-desktop-configuration
@ -1681,6 +1688,38 @@ accountsservice web site} for more information."
;; The '60-libsane.rules' udev rules refers to the "scanner" group.
(list (user-group (name "scanner") (system? #t))))
(define (non-empty-list-of-packages? val)
(and (not (null? val)) (list-of-packages? val)))
(define-configuration/no-serialization sane-configuration
(sane
(package sane)
"The package that provides the SANE library.")
(backends
(non-empty-list-of-packages (list sane-backends))
"A list of packages containing SANE backends."))
(define (sane-search-paths config)
(match-record config <sane-configuration> (sane backends)
(let ((backend-union (directory-union "sane-backends" backends)))
(map (match-lambda
(($ <search-path-specification> variable (files))
(cons variable (file-append backend-union "/" files))))
(package-native-search-paths sane)))))
(define* (lift-sane-configuration config #:key warn?)
(if (sane-configuration? config)
config
(begin
(when warn?
(warning (G_ "'sane' service now expects a 'sane-configuration' record~%"))
(when (eq? config sane-backends)
(warning (G_ "'sane-backends' does not include 'hplip' backend anymore. Add it
explicitly when needed.~%"))))
(sane-configuration (backends (list config))))))
(define sane-service-type
(service-type
(name 'sane)
@ -1688,9 +1727,15 @@ accountsservice web site} for more information."
"This service provides access to scanners @i{via}
@uref{http://www.sane-project.org, SANE} by installing the necessary udev
rules.")
(default-value sane-backends-minimal)
(default-value (sane-configuration))
(extensions
(list (service-extension udev-service-type list)
(list (service-extension udev-service-type
(lambda (c)
(sane-configuration-backends
(lift-sane-configuration c #:warn? #t))))
(service-extension session-environment-service-type
(lambda (c)
(sane-search-paths (lift-sane-configuration c))))
(service-extension account-service-type
(const %sane-accounts))))))
@ -2445,7 +2490,7 @@ applications needing access to be root.")
;; Add udev rules for MTP devices so that non-root users can access
;; them.
(simple-service 'mtp udev-service-type (list libmtp))
;; Add udev rules for scanners.
;; Add udev rules and default backends for scanners.
(service sane-service-type)
;; Add polkit rules, so that non-root users in the wheel group can
;; perform administrative tasks (similar to "sudo").

View file

@ -19,6 +19,7 @@
;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com>
;;; Copyright © 2024 Leo Nikkilä <hello@lnikki.la>
;;; Copyright © 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2025 Rodion Goritskov <rodion@goritskov.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -40,8 +41,10 @@
#:use-module (gnu services shepherd)
#:use-module (gnu services admin)
#:use-module (gnu services configuration)
#:use-module (gnu services databases)
#:use-module (gnu services getmail)
#:use-module (gnu services mail)
#:use-module (gnu system file-systems)
#:use-module (gnu system pam)
#:use-module (gnu system shadow)
#:use-module (gnu packages admin)
@ -59,7 +62,9 @@
#:use-module (gnu packages mail)
#:use-module (gnu packages rust-apps)
#:autoload (guix i18n) (G_)
#:autoload (gnu build linux-container) (%namespaces)
#:use-module (guix diagnostics)
#:use-module (guix least-authority)
#:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix modules)
@ -74,6 +79,7 @@
#:use-module (srfi srfi-34)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:use-module (ice-9 regex)
#:export (httpd-configuration
httpd-configuration?
httpd-configuration-package
@ -328,7 +334,23 @@
agate-configuration-group
agate-configuration-log-file
agate-service-type))
agate-service-type
miniflux-configuration
miniflux-configuration?
miniflux-configuration-listen-address
miniflux-configuration-base-url
miniflux-configuration-create-administrator-account?
miniflux-configuration-administrator-account-name
miniflux-configuration-administrator-account-password
miniflux-configuration-run-migrations?
miniflux-configuration-database-url
miniflux-configuration-user
miniflux-configuration-group
miniflux-configuration-log-file
miniflux-configuration-extra-settings
miniflux-service-type))
;;; Commentary:
;;;
@ -2279,3 +2301,173 @@ root=/srv/gemini
(default-value (agate-configuration))
(description "Run Agate, a simple Gemini protocol server written in
Rust.")))
(define (serialize-string field-name val)
(format #f "~a=~a\n" field-name val))
(define (string-or-file-path? val)
(string? val))
(define (serialize-string-or-file-path field-name val)
(serialize-string (if (absolute-file-name? val)
(format #f "~a_FILE" field-name) field-name) val))
(define-maybe string-or-file-path)
(define (serialize-list field-name val)
(string-append (string-join val "\n") "\n"))
(define-maybe list)
(define (serialize-boolean field-name val)
(if val (serialize-string field-name "1") (serialize-string field-name "0")))
(define-configuration/no-serialization miniflux-configuration
(listen-address
(string "127.0.0.1:8080")
"Address to listen on.
Use absolute path like @code{\"/var/run/miniflux/miniflux.sock\"} for a Unix socket.")
(base-url
(string "http://127.0.0.1/")
"Base URL to generate HTML links and base path for cookies.")
(create-administrator-account?
(boolean #f)
"Create an initial administrator account.")
(administrator-account-name
maybe-string-or-file-path
"Initial administrator account name as a string or an absolute path to a file with a account name inside.")
(administrator-account-password
maybe-string-or-file-path
"Initial administrator account password as a string or an absolute path to a file with a password inside.")
(run-migrations?
(boolean #t)
"Run database migrations during application startup.")
(database-url
(string "host=/var/run/postgresql")
"PostgreSQL connection string.")
(user
(string "miniflux")
"User name for Postgresql and system account.")
(group
(string "miniflux")
"Group for the system account.")
(log-file
(string "/var/log/miniflux.log")
"Path to the log file.")
(extra-settings
maybe-list
"Extra configuration parameters as a list of strings."))
(define (miniflux-serialize-configuration config)
(match-record config <miniflux-configuration>
(listen-address base-url create-administrator-account?
administrator-account-name administrator-account-password
run-migrations? database-url extra-settings)
(string-append (serialize-string "LISTEN_ADDR" listen-address)
(serialize-string "BASE_URL" base-url)
(serialize-boolean "CREATE_ADMIN" create-administrator-account?)
(serialize-maybe-string-or-file-path "ADMIN_USERNAME" administrator-account-name)
(serialize-maybe-string-or-file-path "ADMIN_PASSWORD" administrator-account-password)
(serialize-boolean "RUN_MIGRATIONS" run-migrations?)
(serialize-string "DATABASE_URL" database-url)
(serialize-maybe-list #f extra-settings))))
(define (miniflux-configuration-file config)
(mixed-text-file "miniflux.conf" (miniflux-serialize-configuration config)))
(define (pair->file-system-mapping pair previous)
(if (pair? pair)
(let ((path (car pair))
(writable (cdr pair)))
(if (or (and (string? path)
(absolute-file-name? path))
(computed-file? path))
(append previous (list (file-system-mapping
(source path)
(target source)
(writable? writable))))
previous))
previous))
(define (miniflux-shepherd-service config)
(match-record config <miniflux-configuration>
(user group log-file database-url listen-address
administrator-account-name administrator-account-password)
(let ((config-file (miniflux-configuration-file config)))
(list (shepherd-service
(documentation "Run Miniflux server")
(provision '(miniflux))
(requirement '(postgres networking))
(start #~(make-forkexec-constructor
(list #$(least-authority-wrapper
(file-append miniflux "/bin/miniflux")
#:name "miniflux"
#:user user
#:group group
#:preserved-environment-variables
(append %default-preserved-environment-variables
'("SSL_CERT_FILE"))
#:mappings
(fold pair->file-system-mapping
'()
`((,log-file . #t)
(,config-file . #f)
("/etc/ssl/certs/ca-certificates.crt" . #f)
(,administrator-account-name . #f)
(,administrator-account-password . #f)
(,(dirname listen-address) . #t)
,(let* ((db-socket-match (string-match ".*host=(/[^ ]*).*" database-url))
(db-socket (if db-socket-match (match:substring db-socket-match 1) #f)))
(if db-socket
`(,db-socket . #t)))))
#:namespaces
(fold delq %namespaces '(net user)))
"-config-file"
#$config-file)
#:log-file #$log-file))
(stop #~(make-kill-destructor)))))))
(define (miniflux-accounts config)
(match-record config <miniflux-configuration>
(user group)
`(,(user-group
(name group)
(system? #t))
,(user-account
(name user)
(group group)
(system? #t)
(comment "miniflux server user")
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin"))))))
(define (miniflux-postgresql-role config)
(list (postgresql-role
(name (miniflux-configuration-user config))
(create-database? #t))))
(define (miniflux-log-files config)
(list (miniflux-configuration-log-file config)))
(define (miniflux-activation-service-type config)
(match-record config <miniflux-configuration>
(user listen-address)
#~(begin
(use-modules (gnu build activation))
(let ((user (getpwnam #$user)))
(if (absolute-file-name? #$listen-address)
(mkdir-p/perms (dirname #$listen-address) user #o755))))))
(define miniflux-service-type
(service-type
(name 'miniflux)
(default-value (miniflux-configuration))
(extensions
(list (service-extension account-service-type
miniflux-accounts)
(service-extension postgresql-role-service-type
miniflux-postgresql-role)
(service-extension shepherd-root-service-type
miniflux-shepherd-service)
(service-extension log-rotation-service-type
miniflux-log-files)
(service-extension activation-service-type
miniflux-activation-service-type)))
(description "Run Miniflux, minimalist feed reader")))

View file

@ -5,6 +5,7 @@
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2025 Rodion Goritskov <rodion@goritskov.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -37,6 +38,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages databases)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages patchutils)
#:use-module (gnu packages python)
#:use-module (gnu packages tls)
@ -56,7 +58,10 @@
%test-hpcguix-web
%test-anonip
%test-patchwork
%test-agate))
%test-agate
%test-miniflux-admin-string
%test-miniflux-admin-file
%test-miniflux-socket))
(define %index.html-contents
;; Contents of the /index.html file.
@ -848,3 +853,190 @@ HTTP-PORT."
(name "agate")
(description "Connect to a running Agate service.")
(value (run-agate-test name %agate-os %index.gmi-contents))))
;;;
;;; Miniflux
;;;
(define %miniflux-create-admin-credentials
#~(begin
(mkdir "/var/miniflux")
(call-with-output-file "/var/miniflux/admin-username"
(lambda (port)
(display "test" port)))
(call-with-output-file "/var/miniflux/admin-password"
(lambda (port)
(display "testpassword" port)))))
(define miniflux-base-system
(lambda (miniflux-config)
(simple-operating-system
(simple-service 'create-admin-credentials
activation-service-type
%miniflux-create-admin-credentials)
(service dhcpcd-service-type)
(service postgresql-service-type
(postgresql-configuration
(postgresql postgresql-13)))
(service miniflux-service-type
miniflux-config))))
(define %miniflux-with-admin-as-string
(miniflux-base-system
(miniflux-configuration
(listen-address "0.0.0.0:8080")
(create-administrator-account? #t)
(administrator-account-name "test")
(administrator-account-password "testpassword"))))
(define %miniflux-with-admin-as-file
(miniflux-base-system
(miniflux-configuration
(listen-address "0.0.0.0:8080")
(create-administrator-account? #t)
(administrator-account-name "/var/miniflux/admin-username")
(administrator-account-password "/var/miniflux/admin-password"))))
(define %miniflux-with-socket
(miniflux-base-system
(miniflux-configuration
(listen-address "/var/run/miniflux/miniflux.sock"))))
(define* (run-miniflux-test name test-os)
(define os
(marionette-operating-system
test-os
#:imported-modules '((gnu services herd)
(guix combinators))))
(define forwarded-port 8080)
(define vm
(virtual-machine
(operating-system os)
(memory-size 512)
(port-forwardings `((8080 . ,forwarded-port)))))
(define test
(with-extensions (list guile-gcrypt)
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (srfi srfi-64)
(srfi srfi-11)
(gnu build marionette)
(web client)
(web uri)
(web response)
(ice-9 match)
(ice-9 iconv)
(gcrypt base64))
(define marionette
(make-marionette (list #$vm)))
(test-runner-current (system-test-runner #$output))
(test-begin #$name)
(test-assert "Check Miniflux service is running"
(begin
(#$retry-on-error
(lambda ()
(marionette-eval
'(begin
(use-modules (gnu services herd))
(match (start-service '#$(string->symbol "miniflux"))
(#f #f)
(('service response-parts ...)
(match (assq-ref response-parts 'running)
(#f #f)
((running) #t)))))
marionette))
#:delay 1
#:times 10)))
(test-assert "Miniflux TCP port ready, IPv4"
(wait-for-tcp-port #$forwarded-port marionette))
(test-assert "Miniflux login page is opened"
(begin
(wait-for-tcp-port #$forwarded-port marionette)
(#$retry-on-error
(lambda ()
(let-values (((_ text)
(http-get
#$(format #f "http://localhost:~A/" forwarded-port)
#:decode-body? #t)))
(string-contains text "<title>Sign In - Miniflux</title>")))
#:times 10
#:delay 2)))
(define authorization-header
(let ((encoded (base64-encode (string->bytevector "test:testpassword" "utf-8"))))
`(authorization . (basic . ,encoded))))
(test-equal "Miniflux initial admin API call is successful"
200
(begin
(wait-for-tcp-port #$forwarded-port marionette)
(#$retry-on-error
(lambda ()
(let-values (((response _)
(http-get #$(format #f "http://localhost:~A/v1/me" forwarded-port)
#:headers (list authorization-header)
#:decode-body? #t)))
(response-code response)))
#:times 10
#:delay 2)))
(test-end)))))
(gexp->derivation (string-append name "-test") test))
(define* (run-miniflux-socket-test name test-os)
(define os
(marionette-operating-system
test-os
#:imported-modules '((gnu services herd)
(guix combinators))))
(define vm
(virtual-machine
(operating-system os)
(memory-size 512)))
(define test
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (srfi srfi-64)
(gnu build marionette))
(define marionette
(make-marionette (list #$vm)))
(test-runner-current (system-test-runner #$output))
(test-begin #$name)
(test-assert "Check socket file is created"
(wait-for-unix-socket "/var/run/miniflux/miniflux.sock" marionette))
(test-end))))
(gexp->derivation (string-append name "-test") test))
(define %test-miniflux-admin-string
(system-test
(name "miniflux-admin-string")
(description "Run Miniflux with initial admin credentials as string.")
(value (run-miniflux-test name %miniflux-with-admin-as-string))))
(define %test-miniflux-admin-file
(system-test
(name "miniflux-admin-file")
(description "Run Miniflux with initial admin credentials as file.")
(value (run-miniflux-test name %miniflux-with-admin-as-file))))
(define %test-miniflux-socket
(system-test
(name "miniflux-socket")
(description "Run Miniflux on unix socket.")
(value (run-miniflux-socket-test name %miniflux-with-socket))))

View file

@ -64,6 +64,7 @@
includedir "/include"))
'())
,(string-append "--buildtype=" build-type)
"--wrap-mode=nofallback"
,(string-append "-Dc_link_args=-Wl,-rpath="
(assoc-ref outputs "out") "/lib")
,(string-append "-Dcpp_link_args=-Wl,-rpath="
@ -75,12 +76,12 @@
(chdir build-dir)
(apply invoke "meson" "setup" args)))
(define* (build #:key parallel-build?
#:allow-other-keys)
(define* (build #:key parallel-build? #:allow-other-keys)
"Build a given meson package."
(invoke "ninja" "-j" (if parallel-build?
(number->string (parallel-job-count))
"1")))
(invoke "ninja" "--verbose"
"-j" (if parallel-build?
(number->string (parallel-job-count))
"1")))
(define* (check #:key tests? test-options parallel-tests?
#:allow-other-keys)