1
0
forked from tribes/guix

Compare commits

...

122 Commits

Author SHA1 Message Date
Julien Lepiller 91bda669ab gnu: ant/java8: Rename to ant.
* gnu/packages/java.scm (ant): Rename to...
(ant/java7): ...this.
(ant/java8): Rename to...
(ant): ...this.
(java-qdox-1.12, java-jarjar, java-hamcrest-core, java-hamcrest-parent-pom)
(java-junit, java-org-ow2-parent-pom-1.3, java-asm-bootstrap): Rename
inputs accordingly.
* gnu/packages/axoloti.scm: Rename accordingly.
* gnu/packages/bioinformatics.scm: idem.
* gnu/packages/groovy.scm: idem.
* gnu/packages/java-maths.scm: idem.
* guix/build-system/ant.scm: idem.

Change-Id: I9d79ce8e351862747420fc2a58301b7f61212293
2026-04-20 08:31:21 +02:00
Mathieu Lirzin f384e4f25a gnu: ant/java8: Wrap binary.
This ant package variant is meant to be used in profiles.

* gnu/packages/java.scm (ant/java8)[arguments]<fix-executable-paths>: New phase.

Change-Id: I06ea8a399576132f395bf1fea643a8af4ea206cd
2026-04-20 08:31:17 +02:00
Julien Lepiller 86330b7344 gnu: ant-junit: Deprecate.
* gnu/packages/bioinformatics (java-picard-1.113): Remove ant-junit
  dependency.
* gnu/packages/groovy.scm (groovy-ant): Remove ant-junit dependency.
* gnu/packages/java.scm (ant-junit): Deprecate in favor of ant/java8.

Change-Id: Ic877958cc559acd710ac38b7b9d4b271d3982c3f
2026-04-20 08:31:15 +02:00
Julien Lepiller d3a0108415 gnu: ant/java8: Enable tests.
As a side-effect, this also builds ant-junit.

* gnu/packages/java.scm (ant/java8)[build-system]: Use ant-build-system.
[arguments]: Enable tests and build of ant-junit.
[native-inputs]: Remove.
[inputs]: Add junit and hamcrest.

Change-Id: Ia6fe325b11f4a50a2466c88befcdc1f56cef7c31
2026-04-20 08:31:13 +02:00
Julien Lepiller 1a7e8d47e3 gnu: java-junitparams: Disable failing tests.
gnu/packages/java.scm (java-junitparams)[arguments]: Disable failing tests.

Change-Id: Ibe4af6c58f590e87728792be5c57e37ed59dffd2
2026-04-20 08:31:10 +02:00
Julien Lepiller 927469313c gnu: java-junit: Update to 4.13.2.
* gnu/packages/java.scm (java-junit): Update to 4.13.2.

Change-Id: I82e7e3bb294375ddc3f81b66d741f8881adfd22d
2026-04-20 08:31:06 +02:00
Julien Lepiller 5043ec49c5 guix: ant: Use ant/java8 by default.
This is the latest version.

* guix/build-system/ant.scm (default-ant): Use ant/java8.

Change-Id: I3bd1cb9ff7520d2b44a1a4f8467e7df37b082f23
2026-04-20 08:31:04 +02:00
Julien Lepiller 5660474bfa gnu: ant: Do not inherit.
The derivation does not change, but drop inheritance so we can modify
the latest ant package independently.

* gnu/packages/java.scm (ant): Do not inherit.

Change-Id: I559103d2662f920bc77e0e0107e15fbb75117425
2026-04-20 08:30:59 +02:00
Julien Lepiller 5bef6564ba gnu: java-junit: Explicitely use the older ant.
Its dependencies need to use the same ant version.

* gnu/packages/java.scm (java-junit)[arguments]: Use ant.
(java-qdox-1.12, java-jarjar, java-hamcrest-core)
(java-hamcrest-parent-pom, java-org-ow2-parent-pom-1.3)
(java-asm-bootstrap)[arguments]: Use ant.

Change-Id: I522760227a450ac937ad0f4fc0ed27c7e3ec5348
2026-04-20 08:30:44 +02:00
Julien Lepiller c781426226 gnu: ant: Simplify definition.
* gnu/packages/java.scm (ant)[arguments]: Clean up phases.

Change-Id: I9aac740918e1ac54a9c9333a8dace9a3075fb4d0
2026-04-20 08:30:27 +02:00
Anderson Torres 3699c4a4fe gnu: nvi: Move to (gnu packages text-editors).
* gnu/packages/nvi.scm (nvi): Deprecate, move from here ...
* gnu/packages/text-editors.scm: ... to here.  Update copyright headers.
* gnu/system.scm: Do not use (gnu packages nvi).

Change-Id: I9968c854a7ea42b1f3288ae68a9259bd7d35c685
Merges: https://codeberg.org/guix/guix/pulls/4806
Reviewed-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-20 12:43:25 +09:00
Anderson Torres d1011b548f gnu: nvi: Reformat.
* gnu/packages/nvi.scm (nvi)[source]: Reduce indentation,
  reformat uri, use G-expression snippet.
  [inputs]: Remove newline.
  [description]: Reduce indentation, limit width to 72 columns.
  [home-page]: Update.
  [license]: Add prefix.

Change-Id: I0f8068a7f204a817deb02ac0dc179bde47d96d58
Reviewed-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-20 12:42:04 +09:00
Ashish SHUKLA 3814cc1da9 gnu: labwc: Update to 0.9.7
* gnu/packages/wm.scm (labwc): Update to 0.9.7.

Change-Id: Iaf7437e8bcc71819252250934b386bb1b1927724
Merges: https://codeberg.org/guix/guix/pulls/7969
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-20 11:41:55 +09:00
Maxim Cournoyer 746add3f1b gnu: luanti-mineclonia: Update to 0.121.1.
* gnu/packages/luanti.scm (luanti-mineclonia): Update to 0.121.1.

Change-Id: Iabbb5743e04106393736be5e891458da8bef98e3
2026-04-20 11:18:12 +09:00
jgart 2fbb82a8a5 gnu: trealla: Update to 2.92.41.
* gnu/packages/prolog.scm (trealla): Update to 2.92.41.

Change-Id: I23d7054e7154cd8f484522e8ed8781981b75915c
2026-04-19 20:30:37 -04:00
Johannes Christ 45cf15b751 gnu: forgejo-cli: Update to 0.5.0.
* gnu/packages/rust-apps.scm (forgejo-cli): Update to 0.5.0.
* gnu/packages/rust-crates.scm (lookup-crate-inputs): Update forgejo-cli
crates.

Change-Id: Ib6c49565cf6b5e4db559b5f2772a0420a72e121c
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-04-19 19:24:50 +03:00
Efraim Flashner 30442f49a5 gnu: Fix some spelling errors.
* gnu/packages/ocaml.scm, gnu/packages/orange.scm,
gnu/packages/package-management.scm, gnu/packages/password-utils.scm,
gnu/packages/pdf.scm, gnu/packages/perl6.scm, gnu/packages/php.scm,
gnu/packages/power.scm, gnu/packages/prometheus.scm,
gnu/packages/protobuf.scm, gnu/packages/python-check.scm,
gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm,
gnu/packages/python-science.scm, gnu/packages/python-web.scm,
gnu/packages/python-xyz.scm, gnu/packages/qt.scm,
gnu/packages/racket.scm, gnu/packages/radio.scm, gnu/packages/rdf.scm,
gnu/packages/rocm.scm, gnu/packages/rpc.scm, gnu/packages/ruby-xyz.scm,
gnu/packages/rust-apps.scm, gnu/packages/rust-crates.scm,
gnu/packages/rust.scm, gnu/packages/telephony.scm,
gnu/packages/terminals.scm: Fix some spelling errors.

Change-Id: Iac58897304e471f42ecfbaa3a750ff10ee734ca6
2026-04-19 11:42:53 +03:00
Andy Tai 2afe7fe09e gnu: time: Update to 1.10.
*  gnu/packages/time.scm (time): Update to 1.10.
* tests/guix-build.sh: Adjust accordingly.

Change-Id: Ia21a99e992f7b4b6e940756918ce7d11b9602a4f
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-04-19 10:54:06 +03:00
Efraim Flashner 2fe026b447 gnu: vim: Update to 9.2.0333.
* gnu/packages/vim.scm (vim): Update to 9.2.0333.
[arguments]: Adjust skip-or-fix-failing-tests phase to skip another
test.

Fixes: guix/guix#7941
Change-Id: I48f2b404932902d2a65c651a4e6aad1c98034c1e
2026-04-19 10:43:29 +03:00
Efraim Flashner 03f9966834 gnu: starship: Adjust synopsis, description.
* gnu/packages/shellutils.scm (starship)[description]: Rewrite to remove
marketing language.
[description]: Same.

Change-Id: Ib0c6c815b0f2af3c65de970b41aec7211a81a548
2026-04-19 10:43:10 +03:00
Foster Hangdaan 2f889ec2b5 gnu: starship: Update to 1.25.0.
* gnu/packages/shellutils.scm (starship): Update to 1.25.0.
* gnu/packages/rust-crates.scm (lookup-crate-inputs): Update starship crates.

Fixes: guix/guix#7978
Change-Id: Ib035143e89582c2967665c4b84d008bc03af4517
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-04-19 10:42:13 +03:00
Maxim Cournoyer cfd676fa24 gnu: qdigidoc: Fix icon at run time.
* gnu/packages/patches/qdigidoc-fix-icon.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/security-token.scm (qdigidoc): Apply it.

Change-Id: I1dee3c7f525eec804e83b669c253da139b8e52db
2026-04-19 16:33:09 +09:00
Efraim Flashner 5e86b3e112 gnu: storage: Install shell completions.
* gnu/packages/storage.scm (garage)[arguments]: Add a phase to generate
and install the shell completions.
[native-inputs]: When cross-compiling add this package.

Change-Id: Iaf4f90c88ee68520a749de5fe961626d5dc9b579
2026-04-19 10:17:30 +03:00
Efraim Flashner d09c3b19e7 gnu: rust-crates: Adjust indentation.
* gnu/packages/rust-crates.scm: Standardize the indentation.

Change-Id: Icf5218e4519dc081f258cb5e0caa7b45a0f83fc2
2026-04-19 10:17:30 +03:00
Foster Hangdaan 68adc69ce3 gnu: garage: Update to 2.3.0.
* gnu/packages/storage.scm (garage): Update to 2.3.0.
* gnu/packages/rust-crates.scm (lookup-crate-inputs): Update garage crates.

Change-Id: Ie3b8cec438b19f3860122d42d4132eb62f3043c4
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2026-04-19 10:17:27 +03:00
Jan Wielkiewicz b7b8497734 gnu: luanti: Update to 5.15.2. [security fixes]
Includes fixes for GHSA-22c4-238c-m5j4 and GHSA-g596-mf82-w8c3.

* gnu/packages/luanti.scm (luanti): Update to 5.15.2.

Change-Id: Iab3b05fa65be40b895b2f6fdf56d0ba5dcf0b7ac
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-19 08:24:47 +02:00
Anderson Torres 6b11be9644 gnu: emacs-flymake-flycheck: Update to 0.2-0.cbc0fc8.
* gnu/packages/emacs-xyz.scm (emacs-flymake-flycheck): Update to 0.2-0.cbc0fc8.
[source]: Use git instead of MELPA.
[#:tests?]: Set as #f.
(emacs-flymake-flycheck-superseded-version): New dummy variable.

Change-Id: I75b96526e7cd9fdfbc95c1408bd0e94759344c5c
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-19 08:24:47 +02:00
Anderson Torres 79a70405bb gnu: emacs-keyfreq: Update to 1.8-0.c695516.
* gnu/packages/emacs-xyz.scm (emacs-2048-game): Update to 1.8-0.c695516.
[source]: Use git respository instead of MELPA tarball.
[#:tests?]: Set as #f.
(emacs-keyfreq-superceded-version): New dummy variable.

Change-Id: I86aa99701b4fb3ad03a0052a2c4ab4dabda1a2ac
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-19 08:24:47 +02:00
Anderson Torres 8d06dbc72e gnu: emacs-2048-game: Use Mercurial instead of MELPA.
* gnu/packages/emacs-xyz.scm (emacs-2048-game): Update to 2023.8.8.1-0.0e7210d.
[source]: Use mercurial respository instead of MELPA tarball.
[#:tests?]: Set as #f.
(emacs-2048-game-superceded-version): New dummy variable.

Change-Id: Id03b28ff6ca3e74dea3fadfb11b5b1b105e7cd2e
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-19 08:24:47 +02:00
Ian Henderson ac7bec1187 gnu: Add gnome-shell-extension-hot-edge.
* gnu/packages/gnome-xyz.scm (gnome-shell-extension-hot-edge): New variable.

Change-Id: I23b6be8c28ec66d80c1b5b0cc430680646e6ce54
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-19 08:24:36 +02:00
Ian Henderson a1bb828da2 gnu: Add gnome-shell-extension-caffeine.
* gnu/packages/gnome-xyz.scm (gnome-shell-extension-caffeine): New variable.

Change-Id: I542a502062c386f8dda434d4135610821cf493ae
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-19 08:23:33 +02:00
moksh 6a90416017 gnu: Add emacs-jag.
* gnu/packages/emacs-xyz.scm (emacs-jag): New variable.

Change-Id: If1948d0a609500391d7b240ccde32a4cc58dcce0
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-19 08:07:28 +02:00
moksh 2fdb18979e gnu: Add emacs-swagg.
* gnu/packages/emacs-xyz.scm (emacs-swagg): New variable.

Change-Id: I0f07711cd4536500d976fc76e24a9a93bec9e660
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-19 08:07:27 +02:00
jgart d8bc7a857a gnu: pounce: Update to 3.2.
* gnu/packages/messaging.scm (pounce): Update to 3.2.

Change-Id: I2b758ce5a895c346c4275128acf36a6221e86a04
2026-04-18 23:58:44 -04:00
Sughosha 9ccbefd585 gnu: plasma: Add flatpak-kcm to propagated-inputs.
* gnu/packages/kde-plasma.scm (plasma)[propagated-inputs]: Add flatpak-kcm.

Change-Id: Ie0d9cfa5c4b96040deb385e177a1e6b6c769ee82
2026-04-19 09:08:09 +05:30
Sughosha 8538108621 gnu: plasma: Add flatpak to propagated-inputs.
* gnu/packages/kde-plasma.scm (plasma)[propagated-inputs]: Add flatpak.

Change-Id: I0d8f7877430abf5b30dbd61186fbfe799a3f0435
2026-04-19 09:07:34 +05:30
Sughosha adac45850b gnu: plasma: Enable showing thumbnails of video files.
* gnu/packages/kde-plasma.scm (plasma)[propagated-inputs]: Add ffmpegthumbs.

Change-Id: Ic8e638c3a40923f3dc86bbec40fd53875a93001c
2026-04-19 09:02:41 +05:30
Owen T. Heisler 63e73973a5 gnu: flatpak: Add librsvg for SVG icon validation.
* gnu/packages/package-management.scm (flatpak):[propagated-inputs]: Add
librsvg as (librsvg-for-system).

Merges: guix/guix!7973
Closes: https://codeberg.org/guix/guix/issues/7972
Change-Id: Ie03b580a5587711e81260a93f3cb732332c35209
Signed-off-by: Sughosha <sughosha@disroot.org>
2026-04-19 08:46:09 +05:30
Sughosha 082c705d48 gnu: kaidan: Improve package style.
* gnu/packages/kde-internet.scm (kaidan)[source]: Adjust formatting to meet the
80 characters line width convention.
[arguments]: Likewise.

Change-Id: I5202fa5b200c3f1193f38279baa4f279f31e2451
2026-04-19 08:38:31 +05:30
bdunahu a544e59205 gnu: kaidan: Add required qt6 plugins.
* gnu/packages/kde-internet.scm (kaidan)[#:phases]: Add ‘wrap-program’.
[inputs]: Add bash-minimal, gst-plugins-good-qt.

Change-Id: Idc824c4a8daaecf6e274126427da8809f30d24c2
Signed-off-by: Sughosha <sughosha@disroot.org>
2026-04-19 08:33:54 +05:30
Ian Henderson fed54175a1 gnu: Add font-open-sans.
* gnu/packages/fonts.scm (font-open-sans): New variable.

Merges guix/guix!7833
Change-Id: I541f88b3745ea61d04d061200e08d31d4fb23466
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2026-04-19 09:49:22 +08:00
jgart 6d5a20bc05 gnu: trealla: Update to 2.92.38.
* gnu/packages/prolog.scm (trealla): Update to 2.92.38.

Change-Id: I841300c8b2c0f02cd432388c41b5f8690c3a8e02
2026-04-18 19:14:27 -04:00
Sughosha 92df3d957a gnu: wl-color-picker: Update to 1.4.
* gnu/packages/xdisorg.scm (wl-color-picker): Update to 1.4.
[arguments]<#:phases>: Rename 'wrap-script' to 'wrap-program' and rewrite it.
[inputs]: Reorder; add libnotify.

Change-Id: I49d934c634ed7838b3dd494c847dd3f02b92ab89
2026-04-18 22:50:39 +05:30
David Thompson 8bb2902721 gnu: guile-bstructs: Update to 0.2.0.
* gnu/packages/guile-xyz.scm (guile-bstructs): Update to 0.2.0.

Change-Id: I5e9b15ffe8507e4ba29af0cac234b16edec71f2a
2026-04-18 08:44:30 -04:00
Peter Polidoro dc0ffec8da gnu: kicad: Update to 10.0.1.
* gnu/packages/electronics.scm (kicad): Update to 10.0.1.
[description]: Update.

Merges guix/guix!7967

Change-Id: Iaccf167967402345e3576d48cdbf098d0b5e6263
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-04-18 10:51:55 +02:00
Evgeny Pisemsky ccd22eac80 gnu: Add mopidy-mopiqtt.
* gnu/packages/music.scm (mopidy-mopiqtt): New variable.

Merges guix/guix!7789

Change-Id: Ic4b6bb74cc2b4c921be837875365e1cba7398cb8
Signed-off-by: Sughosha <sughosha@disroot.org>
2026-04-18 06:11:40 +05:30
Christopher Baines da61f4e8fb gnu: guix-build-coordinator: Update to 0-138.a52e17a.
* gnu/packages/package-management.scm (guix-build-coordinator): Update to
0-138.a52e17a.

Change-Id: I16a992ab97b9c19d2399336fef5212a40e987d5d
2026-04-17 18:51:46 +01:00
Christopher Baines 67fa713c9a gnu: nar-herder: Update to 0-53.44ca801.
* gnu/packages/package-management.scm (nar-herder): Update to 0-53.44ca801.
[inputs,propagated-inputs]: Add guile-aws.

Change-Id: I31a84cc850d315daaeb883a324fe38888f80bd86
2026-04-17 18:51:46 +01:00
Christopher Baines d8aadaecca gnu: guile-knots: Update to 0.1-34.f767eca.
* gnu/packages/guile-xyz.scm (guile-knots): Update to 0.1-34.f767eca.

Change-Id: I22abce1b6086c8a86b0c6d0738b5bc5a063cf7f2
2026-04-17 18:51:46 +01:00
Christopher Baines 84426cb20a services: bffe: Don't use line buffering.
For the output ports, as this can cause problems with fibers.

* gnu/services/guix.scm (bffe-shepherd-services): Don't use line buffered
output.

Change-Id: I93a24ea2bad2d7beac795caf515ffd7a259247a7
2026-04-17 18:51:46 +01:00
Christopher Baines 3e4c2ce48e services: guix-build-coordinator: Don't use line buffering.
For the output ports, as this can cause problems with fibers.

* gnu/services/guix.scm (make-guix-build-coordinator-start-script): Don't use
line buffered output.

Change-Id: I7b26ef252b6f6999e8a39b5d872a780a99f3852c
2026-04-17 18:51:46 +01:00
Cayetano Santos 8014907342 gnu: emacs-fj: Add tests.
* gnu/packages/emacs-xyz.scm (emacs-fj)[native-inputs]: Add
emacs-el-mock, emacs-exemplify-ert, and emacs-exemplify-eval.
[arguments]<#:test-command>: Add.
<#:tests?>: Delete.
<#:phases>: Add ’remove-cask.

Change-Id: I5dab9012ef053eb871ec299bf6d4f553d6a56d10
2026-04-17 17:38:38 +02:00
Cayetano Santos 5dd9f05628 gnu: Add emacs-exemplify-eval.
* gnu/packages/emacs-xyz.scm (emacs-exemplify-eval): New variable.

Change-Id: I704387dd9faa181f9c1bdbe36cf437e4155c854f
2026-04-17 17:36:09 +02:00
Cayetano Santos 8d585c6179 gnu: Add emacs-whisper-el.
* gnu/packages/emacs-xyz.scm (emacs-whisper-el): New variable.

Merges guix/guix!7742

Change-Id: Ib0623a832e3ac9b02359602c75c3da3349059668
2026-04-17 17:14:06 +02:00
Cayetano Santos 89a627472b gnu: Add emacs-exemplify-ert.
* gnu/packages/emacs-xyz.scm (emacs-exemplify-ert): New variable.

Merges guix/guix!7763

Change-Id: I363d87b661254e7751725d9a2db5aed7248830a3
2026-04-17 17:05:36 +02:00
moksh 98a10e4e2e gnu: emacs-mastodon: Update to 2.0.16.
* gnu/packages/emacs-xyz.scm (emacs-mastodon): Update to 2.0.16.

Merges guix/guix!7963

Change-Id: I3cb634d8e63e9bbd6ce52c81f5d330cc121991bf
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-04-17 16:36:06 +02:00
Peter Polidoro d7cf85a404 gnu: Add sqliteodbc.
* gnu/packages/databases.scm (sqliteodbc): New variable.

Merges guix/guix!7882

Change-Id: I3ed8854a32e40d488097133f0e730d14a361064c
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-04-17 16:07:24 +02:00
Maxim Cournoyer de90fd9b14 gnu: gnome-meta-core-utilities: Replace evince with papers.
* gnu/packages/gnome.scm (gnome-meta-core-utilities): Replace evince with
papers.

Change-Id: I44363e976b3a7fa1e86822138d65b26661c62566
2026-04-17 10:25:54 +09:00
Anderson Torres 8a8d8ca39e gnu: installer: Use kmscon-8.
Because kmscon-9 lacks the patch to change keyboared layout in the installer.

* gnu/system/install.scm (%installation-services)[kmscon-service-type]: Set kmscon to kmscon-8.

Change-Id: Ib12d9ec8f32042dce8ade66bf042ae32a7d05e2c
Signed-off-by: Hilton Chain <hako@ultrarare.space>
Merges: #7381
2026-04-17 03:07:05 +08:00
Anderson Torres a06400ad5c gnu: Add kmscon-8.
An API breakage occurred some place between 8.x and 9.x series of kmscon.
Because of it, our custom patch kmscon-8-runtime-keymap-switch.patch (needed
by Guix System installer) no longer applies cleanly.  Until a new patch is
developed, let's recover the older package and keep it side-by-side in Guix.

* gnu/packages/terminals.scm (kmscon-8): New variable.
Document its dependency with Guix System installer.
* gnu/packages/patches/kmscon-runtime-keymap-switch.patch: Rename to...
* gnu/packages/patches/kmscon-8-runtime-keymap-switch.patch: ...this file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.

Change-Id: I88cb9ea39b3801ea96dd663e2995597c060f41db
Signed-off-by: Hilton Chain <hako@ultrarare.space>
2026-04-17 03:07:05 +08:00
Hilton Chain ca58363a7c hash: %vcs-directories: Add .jj for Jujutsu.
* guix/hash.scm (%vcs-directories): Add ".jj".

Merges: #7872
2026-04-17 03:07:05 +08:00
Hilton Chain ace8be46a4 home: services: gpg-agent: Expose shepherd-requirement in configuration.
* gnu/home/services/gnupg.scm (home-gpg-agent-configuration)
[shepherd-requirement]: New field.
(home-gpg-agent-shepherd-services): Use it.
* doc/guix.texi (GNU Privacy Guard): Update documentation.

Merges: #7788
2026-04-17 03:07:05 +08:00
Hilton Chain f0079d20ae home: services: gpg-agent: Allow inheriting graphical session environment.
* gnu/home/services/gnupg.scm (home-gpg-agent-shepherd-services): Wrap service
constructor to allow inheriting graphical session environment.

Link: https://codeberg.org/guix/guix/issues/5899#issuecomment-12902232
2026-04-17 03:07:03 +08:00
Igorj Gorjaĉev e597af9546 gnu: elixir: Replace git with git-minimal.
* gnu/packages/elixir.scm (elixir)[inputs]: Remove git.
[native-inputs]: Add git-minimal.

Change-Id: I6a06b7ab8bf91c4082484fe4e6e9fa3c09f845fd
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-16 20:33:40 +02:00
Christopher Baines 41ab1cb9e4 gnu: guile-knots: Update to 0.1-33.ec2cdff.
* gnu/packages/guile-xyz.scm (guile-knots): Update to 0.1-33.ec2cdff.

Change-Id: I45f2fccca4af1048421ca89dbb190b9da9847d25
2026-04-16 14:31:32 +01:00
Christopher Baines 9bc1228485 gnu: Add dnsupdate.
* gnu/packages/dns.scm (dnsupdate): New variable.

Change-Id: I6643a3542225ccca5aa40b3578e439e3308f6f2b
2026-04-16 14:31:32 +01:00
Christopher Baines 745bd96b91 gnu: Add ddclient.
* gnu/packages/dns.scm (ddclient): New variable.

Change-Id: I6351903b247d1cb04f9e03e503a14bdeaafc0304
2026-04-16 14:26:42 +01:00
Nicolas Graves 357fbd56fb gnu: guile2.2-present: Improve style.
* gnu/packages/gtk.scm (guile2.2-present):
[inputs]: Drop input labels.

Change-Id: Ie749de7dc6316a0ddc095618e3e633545d683189
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-16 14:02:54 +02:00
Nicolas Graves d23f6960d8 gnu: guile2.2-rsvg: Improve style.
* gnu/packages/gtk.scm (guile2.2-rsvg)
[inputs, propagated-inputs]: Drop input labels.

Change-Id: Ibb18e4897df39ce635c63561c10487b5a2ca4ad2
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-16 14:02:54 +02:00
Nicolas Graves fa26ae8d65 gnu: guile2.2-cairo: Improve style.
* gnu/packages/gtk.scm (guile2.2-cairo)[inputs]: Drop input labels.

Change-Id: Ief46f7b191c204484f7a1a62f84ad840c1260bd2
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-16 14:02:53 +02:00
Nicolas Graves 51ec304fb7 gnu: ganv: Improve style.
* gnu/packages/gtk.scm (ganv): Run guix style.
[arguments]<#:tests>: Relocate keyword.
<#:phases>: Improve style.
[inputs]: Drop input labels, drop input labels.

Change-Id: If6d24a7bcc89ce5b5322df8bd6494552db193a65
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-16 14:02:46 +02:00
Peter Polidoro 0cd40ba2ab gnu: freecad: Update to 1.1.1.
* gnu/packages/engineering.scm (freecad): Update to 1.1.1.

Change-Id: I0b6d872a907f46979a5d102c244835d7af7f11ec
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-16 12:43:38 +02:00
Andreas Enge 857540e6cb gnu: python-geventhttpclient: Update to 2.3.9.
* gnu/packages/python-web.scm (python-geventhttpclient): Update to 2.3.9.

Change-Id: I83ff865b8ae052d24f9920b3d5c029e7c91373cc
2026-04-16 12:43:38 +02:00
Hilton Chain 0d16098802 gnu: fcitx5: Add GUIX_GTK2_IM_MODULE_FILE search path.
* gnu/packages/fcitx5.scm (fcitx5) [native-search-paths]: Add
GUIX_GTK2_IM_MODULE_FILE.

Merges guix/guix!7826
Change-Id: I1ab296cfa7b424196bd7383fd86e69c8fed0355f
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2026-04-16 18:37:11 +08:00
Sharlatan Hellseher eb2482a352 gnu: libftdi: Fix build on python-3.12.
* gnu/packages/libftdi.scm (libftdi)[native-inputs]: Remove swig-4.0;
add python-setuptools and swig.

Change-Id: Idd7c1c616191778c7176ef50007404d1628c914e
2026-04-16 10:35:42 +01:00
Sharlatan Hellseher 3ffa9e2742 gnu: fdroidserver: Update to 2.4.3.
* gnu/packages/android.scm (fdroidserver): Update to 2.4.3.
[source]: Switch to git-fetch.
[propagated-inputs]: Remove python-argcomplete, python-docker,
python-mwclient, python-pyasn1, and python-pyasn1-modules.

Change-Id: I5f184eb4df48ee160091ffa55bb1e9a0ca8c0c40
2026-04-16 10:35:10 +01:00
Sharlatan Hellseher 7a4e3229f7 gnu: sdkmanager: Adjust inputs and test backend.
* gnu/packages/android.scm (sdkmanager):
[arguments] <test-backend>: Use unittest.
[phases]{check}: Use default phase.
[inputs]:  Move from here ...
[propagated-inputs]: ... to here.

Change-Id: I6d976dbf7cee39beda89ea9719dcc1e340da66d9
2026-04-16 10:35:10 +01:00
Sharlatan Hellseher a8103c1b7c gnu: python-asyncinject: Update to 0.6.1.
* gnu/packages/python-xyz.scm (python-asyncinject): Update to 0.6.1.
[source]: Switch to git-fetch.
[native-inputs]: Remove python-wheel.

Change-Id: I097308d486aa6dc0a60f696389413dba2fd79b09
2026-04-16 10:34:50 +01:00
John Kehayias f77bbf8016 gnu: steam-devices-udev-rules: Update to 1.0.0.61-2.7dde9ec.
* gnu/packages/games.scm (steam-devices-udev-rules): Update to 1.0.0.61-2.7dde9ec.

Change-Id: If5931e836978b27d09e128cb5b581292eebcde96
2026-04-15 23:47:42 -04:00
Ian Eure c26c3d0f53 gnu: autofs-service: Fix computing Shepherd requirements.
Handling of non-NFS/SMB mounts was buggy and did not work at all.

* gnu/services/nfs.scm (autofs-configuration->requirements): Add an `else' to
prevent losing the accumulator in the fold.
(autofs-configuration->requirements): Call `delete-duplicates' on the input,
not the output.

Fixes #7927.

Change-Id: I0cccde431d0bd19dc63be8754fb6dfa35a6f8a49
2026-04-15 15:06:05 -07:00
jgart 0d11c221b8 guix: scripts: gc: Give better error reporting when attempting to vacuum.
* guix/scripts/gc.scm (%options): Error out when a non-root user tries
to vacuum the database.

Change-Id: Iee7d626c43980640aa91a3ceeb95675016932c55
Signed-off-by: jgart <jgart@dismail.de>
2026-04-15 17:56:23 -04:00
bdunahu 6abb7bc422 gnu: emacs-xelb: Patch call to xauth with store path.
This ensures login cookies used to authenticate with the X server can be found
at runtime without requiring xauth be in the user's profile.

* gnu/packages/emacs-xyz.scm (emacs-xelb)[#:phases]: Add ‘patch-xauth-path’.
[inputs]: Add xauth.

Change-Id: Ic24cb12d6103a3f6dc24c89f2dd43c1e1f7dc95c
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:11:05 +02:00
Liliana Marie Prikler 03937c8724 gnu: Add papers.
* gnu/packages/gnome.scm (papers): New variable.
* gnu/packages/rust-crates.scm (rust-ashpd-0.12.1)
(rust-float-next-after-1.0.0, rust-formatx-0.2.4, rust-geo-0.30.0)
(rust-geo-types-0.7.18, rust-geographiclib-rs-0.2.5, rust-i-float-1.7.0)
(rust-i-key-sort-0.2.0, rust-i-overlay-2.0.5, rust-i-shape-1.7.0)
(rust-i-tree-0.8.3, rust-ink-stroke-modeler-rs-0.1.0, rust-oo7-0.5.0)
(rust-robust-1.2.0): New variables.
(lookup-cargo-inputs): Add ‘papers’.
2026-04-15 23:10:35 +02:00
Liliana Marie Prikler 7ff2ca1b5c gnu: Add poppler-next.
* gnu/packages/pdf.scm (poppler-next): New variable.
2026-04-15 23:10:25 +02:00
λx.x 380efb7408 gnu: emacs-bqn-mode: Update to 2026-02-08
* gnu/packages/emacs-xyz.scm (emacs-bqn-mode): Update to 2026-02-08.

Change-Id: I6e52ba929ba962832c96422f48e8b1aed447a3cf
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:25 +02:00
Nguyễn Gia Phong 589f4cc655 gnu: Add libfossil.
* gnu/packages/version-control.scm (libfossil): New variable.
* gnu/packages/patches/libfossil-skip-amalgamation.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I6e19c074587e17446ac213386a9143d503ebba57
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:25 +02:00
Nguyễn Gia Phong 05e669ac50 guix: Implement fossil-download.
* guix/fossil-download.scm: New file.
* guix/build/fossil.scm: New file.
* Makefile.am (MODULES): Add them.
* etc/teams.scm (core)[#:scope]: Add "guix/fossil-download.scm".
(vcs)[#:scope]: Add "guix/build/fossil.scm".
* CODEOWNERS: Regenerate file.
* doc/guix.texi (origin Reference): Document fossil-fetch
and fossil-reference.
* NEWS: Add entry about fossil-fetch.

Change-Id: Ia252bcbbb417159a842d5092a937e2aad55a1656
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:25 +02:00
coopi 08341ec277 gnu: Add emacs-nerd-icons-mode-line.
* gnu/packages/emacs-xyz.scm (emacs-nerd-icons-mode-line): New variable.

Change-Id: Id3f80fe2c094b1e0e3eead99cb9e3083b062319b
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:25 +02:00
coopi b725619636 gnu: Add emacs-nerd-icons-corfu.
* gnu/packages/emacs-xyz.scm (emacs-nerd-icons-corfu): New variable.

Change-Id: I487dc25bad6d0536a670c13626c1e18f4364c147
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:24 +02:00
coopi a3f6d396cd gnu: Add emacs-nerd-icons-completion.
* gnu/packages/emacs-xyz.scm (emacs-nerd-icons-completion): New variable.

Change-Id: Ib5b07704689f8a1af6e0dec7e0370d3afde4f7d6
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:24 +02:00
coopi 7d67cacad1 gnu: Add emacs-nerd-icons-ibuffer.
* gnu/packages/emacs-xyz.scm (emacs-nerd-icons-ibuffer): New variable.

Change-Id: Ia25dd10b7d3950cefec3ad4301cfebacdd4b8c74
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:24 +02:00
coopi 333d61cf5b gnu: Add emacs-nerd-icons-ivy-rich.
* gnu/packages/emacs-xyz.scm (emacs-nerd-icons-ivy-rich): New variable.

Change-Id: I2266c559c225d1f0bb499734eb6eef4a613436e9
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:24 +02:00
coopi 21a4d649b2 gnu: Add emacs-nerd-icons-dired.
* gnu/packages/emacs-xyz.scm (emacs-nerd-icons-dired): New variable.

Change-Id: Ib8b192a07e7acbd52cb1705f237ec5a1976b3060
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:24 +02:00
coopi 5ff9ca0339 gnu: emacs-nerd-icons: Patch out font installer.
* gnu/packages/emacs-xyz.scm (emacs-nerd-icons)[#:phases]: Add
‘disable-font-installer’.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-04-15 23:10:24 +02:00
Artyom V. Poptsov c4657c774b gnu: guile-pnm: Update to 0.2.0.
* gnu/packages/guile-xyz.scm (guile-pnm): Update to 0.2.0.

Change-Id: Icc2c71565e0100f82d22f57bfed3bba8d36ba353
2026-04-16 00:00:42 +03:00
Cayetano Santos b559fd6938 gnu: Add fsviewer.
* gnu/packages/gnustep.scm (fsviewer): New variable.

Merges guix/guix!7829

Change-Id: Ie9bc5f3eaed7a507c9aa031ab96e65ddaf69e6ad
2026-04-15 16:17:15 +02:00
Andreas Enge fa38888348 gnu: libnl: Update to 3.12.0.
* gnu/packages/linux.scm (libnl): Update to 3.12.0.

Change-Id: I3bfc0e8b6e63f43addf28966abd49fd42588888c
2026-04-15 13:52:09 +02:00
André Batista 10ea4f874e gnu: ungoogled-chromium: Update to 147.0.7727.55.
Fixes various CVEs, too many to list.

* gnu/packages/chromium.scm (%preserved-third-party-files): Add
  base/third_party/nspr,
  buildtools/third_party/libc++,
  buildtools/third_party/libc++abi,
  third_party/catapult/third_party/beautifulsoup4-4.9.3,
  third_party/catapult/third_party/html5lib-1.1,
  third_party/catapult/third_party/typ,
  third_party/dawn/third_party/renderdoc,
  third_party/dawn/third_party/webgpu-headers,
  third_party/devscripts,
  third_party/devtools-frontend/src/front_end/third_party/csp_evaluator,
  third_party/devtools-frontend/src/front_end/third_party/legacy-javascript,
  third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec,
  third_party/federated_compute/chromium/fcp/confidentialcompute,
  third_party/freetype,
  third_party/fxdiv,
  third_party/hyphenation-patterns,
  third_party/icu,
  third_party/libc++,
  third_party/libpfm4,
  third_party/libpng,
  third_party/libx11,
  third_party/libxcb-keysyms,
  third_party/llvm-libc,
  third_party/neon_2_sse,
  third_party/opus,
  third_party/pdfium/third_party/lcms,
  third_party/pdfium/third_party/libopenjpeg,
  third_party/perfetto/protos/third_party/pprof,
  third_party/perfetto/protos/third_party/primes,
  third_party/perfetto/protos/third_party/simpleperf,
  third_party/pyyaml,
  third_party/sentencepiece,
  third_party/sentencepiece/src/third_party/darts_clone,
  third_party/six and
  third_party/skia/include/third_party/vulkan.
Remove:
  net/third_party/nss,
  third_party/compiler-rt/src/lib,
  third_party/libaom/source/libaom/third_party/SVT-AV1,
  third_party/skia/third_party/vulkanmemoryallocator and
  third_party/webrtc/rtc_base/third_party/sigslot.

(%chromium-version): Update to 147.0.7727.55.
(%ungoogled-origin, %debian-origin): Update hashes.
(%debian-patches): Add debianization/safe-libcxx.patch,
  disable/enterprise-tests.patch,
  disable/rustc-allow-features.patch,
  fixes/bytemuck.patch,
  fixes/libpng-testonly.patch,
  llvm-19/clang19.patch (move from bookwork),
  llvm-19/clone-traits.patch,
  llvm-19/keyfactory.patch,
  llvm-19/value-or.patch,
  llvm-22/ignore-for-ubsan.patch,
  trixie/cookie-string-view.patch and
  trixie/nodejs-main.patch.
Remove trixie/rust-no-alloc-shim.patch.

(%guix-patches): Add ungoogled-chromium-custom-compiler.patch and
ungoogled-chromium-empty-parsed-rustc-args.patch.  Remove
ungoogled-chromium-unbundle-icu-target.patch which was merged upstream.
(ungoogled-chromium-snippet): Remove icu from replace_gn_files args.  Our
icu does not have ucmndata.h, umapfile.h and putilimp.h which are required
to build now.
(ungoogled-chromium) [arguments] <#:configure-flags>: Add is_component_build,
webnn_use_tflite, fatal_linker_warnings, enable_perfetto_unittests,
skia_enable_skshapper_tests, tint_build_unittests, enable_nocompile_tests,
enable_screen_ai_browsertests flags and set them to false.  Set
use_system_icu to false.  Remove enable_glic, enable_js_type_check and
removed_rust_stdlib_libs.  The first two were removed and the last one is
not necessary any longer.  Add blink_symbol_level and v8_symbol_level and
set them to zero.
[arguments] <#:phases> {patch-stuff}: Remove compiler substitution which
is not needed anymore.  Adjust rustfmt_path to guix.
{include-pthreadpool}: New phase.
{adjust-CPLUS_INCLUDE_PATH}: Help clang find gcc's bits/c++config.h.
[inputs]: icu-77 is required now, even though we're not using it this time.

* gnu/packages/patches/ungoogled-chromium-custom-compiler.patch: Add it.
* gnu/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch: Same.
* gnu/packages/patches/ungoogled-chromium-unbundle-icu-target.patch: Remove it.
* gnu/local.mk: (Un)register the above patches.

Change-Id: I597b69b15368e9b410fa3d29342700d9ea0b0d82
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-15 13:10:02 +02:00
André Batista c5280fd612 gnu: gn: Update to 0.0-2354.6e8dcde.
* gnu/packages/build-tools.scm (gn): Update to 0.0-2354.6e8dcde.

Change-Id: Idc9f52ae9f4a758d47413922de742409d9fee4c7
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-15 13:09:55 +02:00
Efraim Flashner ed63c9e8f7 gnu: rust-crates: Sort alphabetically.
* gnu/packages/rust-crates.scm: Sort rust crates alphabetically.

Change-Id: I2d793ef07dc9aff97216be21714c3bd180935ba3
2026-04-15 13:25:53 +03:00
Efraim Flashner 297b593f62 gnu: zed: Remove a prebuilt binary.
* gnu/packages/text-editors.scm (zed)[source]: Add a snippet to remove a
bundled binary.

Change-Id: Ie4d94807c51d71d8199195225a6e019512021719
2026-04-15 13:25:53 +03:00
Cayetano Santos 07ecb050c0 gnu: coreboot.scm: Update to 26.03.
* gnu/packages/coreboot.scm (%coreboot-version): Update to 26.03.
(%coreboot-origin): Update sha256.

Merges guix/guix!7862

Change-Id: I0cafb9431afeab0cb5a3ce80c3ffaf99ab27b0f6
2026-04-15 11:52:33 +02:00
Cayetano Santos ac316e522a gnu: coreboot.scm: Use local variables.
* gnu/packages/coreboot.scm (%coreboot-version, %coreboot-origin): New
variables.
* gnu/packages/coreboot.scm (bincfg, ifdtool, intelmetool,
nvramtool)[version]: Replace by %coreboot-version.
[source]: Replace by %coreboot-source.

Merges guix/guix!7862

Change-Id: I9b586347823729680a1958524985abadfa67ab09
2026-04-15 11:52:22 +02:00
Ryan Campbell 99fdbdef6a gnu: python-pynvim: Fix test_command_error with neovim 0.12.x.
Neovim 0.12.0 changed the error message for invalid cursor positions
from "Cursor position outside buffer" to "Invalid cursor line: out of
range", causing test_command_error to fail.

This applies the upstream patch temporarily until a new pynvim release
is created.

Merges guix/guix!7755

* gnu/packages/patches/python-pynvim-fix-test-command-error.patch: New
patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/vim.scm (python-pynvim)[source]: Use it.

Change-Id: Ibff0545a60948c946c420fe7118a37d161d93a30
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-04-15 11:42:50 +02:00
Ryan Campbell 101b12a54a gnu: neovim: Update to 0.12.1.
* gnu/packages/vim.scm (neovim): Update to 0.12.1.

Merges guix/guix!7755

Change-Id: I56afc43fff966720e80d6c85003bdb15a87d339f
Signed-off-by: Cayetano Santos <csantosb@inventati.org>
2026-04-15 11:42:48 +02:00
Andreas Enge aafdf7ecf7 gnu: Remove python-pydantic-1.
* gnu/packages/python-xyz.scm (python-pydantic-1): Delete variable.

Fixes: guix/guix#7186
Change-Id: I75088c0eaa764fc6dd499801da64124eb7fbecf4
2026-04-15 11:07:31 +02:00
Ada Stevenson 0999b3268c gnu: icedove: Update to 140.9.1.
Follow-up to 6ab6e5b75d

* gnu/packages/gnuzilla.scm (%icedove-build-id, %icedove-version,
thunderbird-comm-source): Update to 140.9.1.

Change-Id: Id8f6ecb30138b6e36b3856ec795d77f8ca796df1
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2026-04-15 15:08:34 +09:00
Andy Tai e296f3f012 gnu: libmicrohttpd: Update to 1.0.3.
* gnu/packages/gnunet.scm (libmicrohttpd): Update to 1.0.3.

Change-Id: I018d6b06ebab5440cfc7a4fa919228a7d3c4e04e
Merges: https://codeberg.org/guix/guix/pulls/7676
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-15 14:07:42 +09:00
Patrick Norton 759bdcb469 gnu: fuzzel: Update to 1.14.1.
* gnu/packages/xdisorg.scm (fuzzel): 1.14.1.

Change-Id: Ib5c29af4b9bcc19013e3be2b0a698266f0a32066
Merges: https://codeberg.org/guix/guix/pulls/7675
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-15 14:05:01 +09:00
Foster Hangdaan ee985ff4d6 gnu: wesnoth: Update to 1.18.7.
* gnu/packages/games.scm (wesnoth): Update to 1.18.7.

Change-Id: I61040ae6417afa851c51799aef1f6245bf0c5dd0
Merges: https://codeberg.org/guix/guix/pulls/7721
Reviewed-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-15 13:30:48 +09:00
Danylo Kondratiev 4fdaa6e2f2 gnu: gkrellm: Update to 2.5.1.
* gnu/packages/gkrellm.scm (gkrellm): Update to 2.5.1.
  [inputs]: Drop libice.

Change-Id: Ie907b82395607dfa856000c69ea45569d4fe3266
Merges: https://codeberg.org/guix/guix/pulls/7876
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-15 13:25:55 +09:00
Danylo Kondratiev 445e61337e gnu: gkrellm: Improve style.
* gnu/packages/gkrellm.scm (gkrellm): Run guix style.
  [inputs]: Drop input labels, remove gettext-minimal.
  [native-inputs]: Add gettext-minimal.
  [source]: Set https URL scheme.
  [arguments]<#:phases>: Convert to GExps.
  [arguments]<#:make-flags>: Set CC to (cc-for-target).
  [home-page]: Set https URL scheme.

Change-Id: I854cc3cd4537dd2ed64fa34500a6b280d6573cad
Reviewed-by: Nicolas Graves <ngraves@ngraves.fr>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-15 13:25:13 +09:00
Daniel Martins d632b423d5 gnu: Add rtcqs.
* gnu/packages/audio.scm (rtcqs): New variable.

Change-Id: If0a28098773e3daa106830d69a87666d3fe14368
Merges: https://codeberg.org/guix/guix/pulls/7858
Reviewed-by: Hugo Buddelmeijer <hugo@buddelmeijer.nl>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-04-15 13:20:08 +09:00
aecepoglu 4a4ef229e6 gnu: sbcl-coalton: Update to 0.0.1-5.bf475c8.
* gnu/packages/lisp-xyz.scm (sbcl-coalton): Update to 0.0.1-5.bf475c8.

Change-Id: I92c6a057b982500ba0629ed663c5a86c0616e358
Signed-off-by: jgart <jgart@dismail.de>
2026-04-14 22:03:56 -04:00
Danny Milosavljevic 2c51b803e3 gnu: Add zed.
* gnu/packages/patches/zed-0.225.10-add-guix-container-support.patch: New file.
* gnu/packages/patches/zed-0.225.10-collapse-multiline-git-deps.patch: New
file.
* gnu/packages/patches/zed-0.225.10-disable-dlopen.patch: New file.
* gnu/packages/patches/zed-0.225.10-exclude-libwebrtc-from-audio.patch: New
file.
* gnu/packages/patches/zed-0.225.10-fix-sqlite-memory-mode.patch: New file.
* gnu/packages/patches/zed-0.225.10-fix-test-db-isolation.patch: New file.
* gnu/packages/patches/zed-0.225.10-fix-workspace-race.patch: New file.
* gnu/packages/patches/zed-0.225.10-keep-regular-file-workspaces.patch: New file.
* gnu/packages/patches/zed-0.225.10-remove-patch-crates-io.patch: New file.
* gnu/packages/patches/zed-0.225.10-use-mock-livekit-on-linux.patch: New file.
* gnu/packages/patches/rust-candle-0.9.1-add-candle-onnx-to-workspace.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Register them.
* gnu/packages/rust-sources.scm (rust-alacritty-0.25.1.9d9640d,
rust-candle-0.9.1.724d75e, rust-dap-types-0.0.1.1b461b3,
rust-gh-workflow-0.8.0.c9eac0e, rust-livekit-0.7.8.5f04705,
rust-notify-8.2.0.ce58c24, rust-pet-0.1.0.d5b5bb0,
rust-tiktoken-rs-0.9.1.2570c43, rust-zed-xim-0.4.0-zed.16f35a2): New
variables.
* gnu/packages/rust-crates.scm (lookup-cargo-inputs): Modify.
* gnu/packages/text-editors.scm (zed): New variable.

Change-Id: I16d4c5431e3398261ac4eb74483747c09cf74449
2026-04-15 03:19:10 +02:00
jgart 6690bf46c6 gnu: trealla: Update to 2.92.30.
* gnu/packages/prolog.scm (trealla): Update to 2.92.30.
[inputs]: Add libedit.

Change-Id: Ica510ab3eed3f79a5333dda8b5f2a460780467e7
2026-04-14 19:16:11 -04:00
Igorj Gorjaĉev 58266bb4ba gnu: jpm: Update to 1.2.0.
* gnu/packages/lisp.scm (jpm): Update to 1.2.0.

Change-Id: Ib8c7c9ac1e66a767b9e280761ae48140f866a443
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-14 22:58:15 +02:00
Foster Hangdaan 69f512e520 gnu: skopeo: Update to 1.22.2.
* gnu/packages/virtualization.scm (skopeo): Update to 1.22.2.

Change-Id: I7c860a205c40cd5efd329770f6262b80716b2e4d
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-14 22:38:26 +02:00
Foster Hangdaan 83e5fe437f gnu: podman: Update to 5.8.2.
* gnu/packages/containers.scm (podman): Update to 5.8.2.

Change-Id: I681067e7c2ac11f4e12c94db5898e121b6a1e0f2
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-14 22:21:25 +02:00
Nicolas Goaziou ef81d340cd gnu: dvisvgm: Deprecate in favor of texlive-dvisvgm.
* gnu/packages/tex.scm (dvisvgm): Deprecate.
* etc/teams/tex/tex-manifest.scm (%sundry-texlive-packages): Do not monitor
dvisvgm anymore.
* gnu/packages/statistics.scm (python-openturns): Use texlive-dvisvgm.

Change-Id: I1903a0bdd4e66f9f2a49d21029371e87924435ac
2026-04-14 22:17:55 +02:00
André Batista 5ce1b4a3e3 gnu: ublock-origin: Update to 1.70.0.
* gnu/packages/browser-extensions.scm (ublock-origin): Update to 1.70.0.
(ublock-main-assets): Update to 0-6.004af606e6a0e.
(ublock-prod-assets): Update to 0-6.6c15e4ef91888.

Change-Id: I730ef9d4623a9abe972d82c5700458f6c888077c
Signed-off-by: Andreas Enge <andreas@enge.fr>
2026-04-14 21:19:44 +02:00
Artyom V. Poptsov e155ef7c4b gnu: Add guile-pnm.
* gnu/packages/guile-xyz.scm (guile-pnm): New variable.

Change-Id: I0e5e2fa77c6d75567983ab61c61880bef34f3e30
2026-04-14 20:03:58 +03:00
117 changed files with 13387 additions and 1636 deletions
+2
View File
@@ -68,6 +68,7 @@ guix/discovery\.scm @guix/core
guix/docker\.scm @guix/core
guix/download\.scm @guix/core
guix/elf\.scm @guix/core
guix/fossil-download\.scm @guix/core
guix/ftp-client\.scm @guix/core
guix/gexp\.scm @guix/core
guix/git-authenticate\.scm @guix/core
@@ -484,6 +485,7 @@ gnu/services/version-control\.scm @guix/vcs
gnu/tests/version-control\.scm @guix/vcs
guix/build/bzr\.scm @guix/vcs
guix/build/cvs\.scm @guix/vcs
guix/build/fossil\.scm @guix/vcs
guix/build/git\.scm @guix/vcs
guix/build/hg\.scm @guix/vcs
guix/build/svn\.scm @guix/vcs
+2
View File
@@ -104,6 +104,7 @@ MODULES = \
guix/discovery.scm \
guix/android-repo-download.scm \
guix/bzr-download.scm \
guix/fossil-download.scm \
guix/git-download.scm \
guix/hg-download.scm \
guix/hash.scm \
@@ -236,6 +237,7 @@ MODULES = \
guix/build/asdf-build-system.scm \
guix/build/bzr.scm \
guix/build/copy-build-system.scm \
guix/build/fossil.scm \
guix/build/git.scm \
guix/build/hg.scm \
guix/build/glib-or-gtk-build-system.scm \
+3
View File
@@ -20,6 +20,9 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** New service for Fossil SCM
*** TeX Live updated to 2026.1
** Programming interfaces
*** New (guix fossil-download) module, for fetching Fossil repositories
* Changes in 1.5.0 (since 1.4.0)
** Package management
*** New rpm format for the guix pack command
+49
View File
@@ -8737,6 +8737,52 @@ The example below denotes a version of gnu-standards to fetch:
@end deftp
For Fossil repositories, the module @code{(guix fossil-download)} defines
the @code{fossil-fetch} origin method and @code{fossil-reference} data type
for support of the Fossil @abbr{SCM, software configuration management} system.
@deffn {Procedure} fossil-fetch ref hash-algo hash [name]
Return a fixed-output derivation that fetches @var{ref}, a
@code{<fossil-reference>} object. The output is expected to have recursive
hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as
the file name, or a generic name if @code{#f}.
@end deffn
@deftp {Data Type} fossil-reference
This data type represents a Fossil reference
for @code{fossil-fetch} to retrieve.
@table @asis
@item @code{uri} (type: string)
The URI of a Fossil repository to clone, in one of the following forms,
in which @code{[...]} denotes optional elements:
@table @code
@item http[s]://[userid[:password]@@]host[:port][/path]
A HTTP/HTTPS URL.
@item [file://]path/to/repo.fossil
A file URI, where the path must have an extra leading @code{/}
to use an absolute path (without the URI scheme, the repository
is opened directly without cloning).
@end table
@item @code{check-in} (type: string)
A @url{https://fossil-scm.org/home/doc/trunk/www/checkin_names.wiki,
name of the check-in} to fetch, e.g.@: its canonical hexadecimal identifier,
associated tag and/or timestamp.
@end table
The example below denotes the @code{version-3.51.1} tag
of the SQLite repository:
@lisp
(fossil-reference
(uri "https://sqlite.org/src")
(check-in "version-3.51.1"))
@end lisp
@end deftp
@node Defining Package Variants
@section Defining Package Variants
@@ -53462,6 +53508,9 @@ Maximum time a cache entry for SSH keys is valid, in seconds.
@item @code{extra-content} (default: @code{""}) (type: raw-configuration-string)
Raw content to add to the end of @file{~/.gnupg/gpg-agent.conf}.
@item @code{shepherd-requirement} (default: @code{'()}) (type: list-of-symbols)
List of services that should be started before this service.
@end table
@end deftp
+2
View File
@@ -565,6 +565,7 @@ challenges"))
"guix/docker.scm"
"guix/download.scm"
"guix/elf.scm"
"guix/fossil-download.scm"
"guix/ftp-client.scm"
"guix/gexp.scm"
"guix/git-authenticate.scm"
@@ -1214,6 +1215,7 @@ the \"texlive\" importer."
"gnu/tests/version-control.scm"
"guix/build/bzr.scm"
"guix/build/cvs.scm"
"guix/build/fossil.scm"
"guix/build/git.scm"
"guix/build/hg.scm"
"guix/build/svn.scm")))
-1
View File
@@ -26,7 +26,6 @@
(define %sundry-texlive-packages
(list bibtool
dvisvgm
rubber
texmaker
texstudio
+19 -10
View File
@@ -81,7 +81,10 @@ entry will be expired even if it has been accessed recently.")
"Maximum time a cache entry for SSH keys is valid, in seconds.")
(extra-content
(raw-configuration-string "")
"Raw content to add to the end of @file{~/.gnupg/gpg-agent.conf}."))
"Raw content to add to the end of @file{~/.gnupg/gpg-agent.conf}.")
(shepherd-requirement
(list-of-symbols '())
"List of services that should be started before this service."))
(define (home-gpg-agent-configuration-file config)
"Return the @file{gpg-agent.conf} file for @var{config}."
@@ -104,7 +107,7 @@ entry will be expired even if it has been accessed recently.")
(define (home-gpg-agent-shepherd-services config)
"Return the possibly-empty list of Shepherd services for @var{config}."
(match-record config <home-gpg-agent-configuration>
(gnupg ssh-support?)
(gnupg ssh-support? shepherd-requirement)
;; 'gpg-agent' is started on demand by GnuPG's programs, but it has to be
;; started explicitly when OpenSSH support is enabled (info "(gnupg) Agent
;; Options").
@@ -119,15 +122,21 @@ entry will be expired even if it has been accessed recently.")
#:socket-directory-permissions #o700))))
(list (shepherd-service
(provision '(gpg-agent ssh-agent))
(requirement shepherd-requirement)
(modules '((shepherd support))) ;for '%user-runtime-dir'
(start #~(make-systemd-constructor
(list #$(file-append gnupg "/bin/gpg-agent")
"--supervised" "--enable-ssh-support")
(list #$(endpoint "ssh" "S.gpg-agent.ssh")
#$(endpoint "browser" "S.gpg-agent.browser")
#$(endpoint "extra" "S.gpg-agent.extra")
;; #$(endpoint "scdaemon" "S.scdaemon")
#$(endpoint "std" "S.gpg-agent"))))
(start
#~(lambda args
((make-systemd-constructor
(list #$(file-append gnupg "/bin/gpg-agent")
"--supervised" "--enable-ssh-support")
(list #$(endpoint "ssh" "S.gpg-agent.ssh")
#$(endpoint "browser" "S.gpg-agent.browser")
#$(endpoint "extra" "S.gpg-agent.extra")
;; #$(endpoint "scdaemon" "S.scdaemon")
#$(endpoint "std" "S.gpg-agent"))
;; Inherit graphical session environment.
#:environment-variables (environ))
args)))
(stop #~(make-systemd-destructor))
(documentation "Start 'gpg-agent', the GnuPG passphrase
agent, with support for handling OpenSSH material."))))
+18 -2
View File
@@ -1698,6 +1698,7 @@ dist_patch_DATA = \
%D%/packages/patches/libcss-check-format.patch \
%D%/packages/patches/libeb-gcc-14.patch \
%D%/packages/patches/libextractor-tidy-support.patch \
%D%/packages/patches/libfossil-skip-amalgamation.patch \
%D%/packages/patches/libftdi-fix-paths-when-FTDIPP-set.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.1.1.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch \
@@ -1744,7 +1745,7 @@ dist_patch_DATA = \
%D%/packages/patches/kissfft-tflite-micro.patch \
%D%/packages/patches/kitty-fix-wayland-protocols.patch \
%D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/kmscon-runtime-keymap-switch.patch \
%D%/packages/patches/kmscon-8-runtime-keymap-switch.patch \
%D%/packages/patches/knot-remove-runtime-deps.patch \
%D%/packages/patches/kobodeluxe-paths.patch \
%D%/packages/patches/kobodeluxe-enemies-pipe-decl.patch \
@@ -2114,6 +2115,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-random2-getrandbits-test.patch \
%D%/packages/patches/python-pillow-use-zlib-1.3.patch \
%D%/packages/patches/python-pydocstyle-add-support-for-pep701.patch \
%D%/packages/patches/python-pynvim-fix-test-command-error.patch \
%D%/packages/patches/python-pypytools-python-3-fixes.patch \
%D%/packages/patches/python-pyreadstat-link-libiconv.patch \
%D%/packages/patches/python-sip-include-dirs.patch \
@@ -2256,6 +2258,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-werkzeug-tests.patch \
%D%/packages/patches/qdigidoc-bundle-config-files.patch \
%D%/packages/patches/qdigidoc-bundle-tsl-files.patch \
%D%/packages/patches/qdigidoc-fix-icon.patch \
%D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-fix-agent-paths.patch \
%D%/packages/patches/qemu-fix-test-virtio-version.patch \
@@ -2386,6 +2389,7 @@ dist_patch_DATA = \
%D%/packages/patches/rust-1.70-fix-rustix-build.patch \
%D%/packages/patches/rust-1.78-unwinding-fix.patch \
%D%/packages/patches/rust-1.81-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-candle-0.9.1-add-candle-onnx-to-workspace.patch \
%D%/packages/patches/rust-codex-0.98.0-core-remove-self-dep.patch \
%D%/packages/patches/rust-codex-0.98.0-test-shebangs.patch \
%D%/packages/patches/rust-codex-0.98.0-test-timeout.patch \
@@ -2520,10 +2524,11 @@ dist_patch_DATA = \
%D%/packages/patches/ultrastar-deluxe-no-freesans.patch \
%D%/packages/patches/unity-test-set-subdir-correctly.patch \
%D%/packages/patches/unity-test-support-int64.patch \
%D%/packages/patches/ungoogled-chromium-custom-compiler.patch \
%D%/packages/patches/ungoogled-chromium-empty-parsed-rustc-args.patch \
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
%D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \
%D%/packages/patches/ungoogled-chromium-unbundle-icu-target.patch \
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
%D%/packages/patches/unknown-horizons-python-3.9.patch \
%D%/packages/patches/unknown-horizons-python-3.10.patch \
@@ -2624,6 +2629,17 @@ dist_patch_DATA = \
%D%/packages/patches/yggdrasil-extra-config.patch \
%D%/packages/patches/ypsilon-Use-GNU-toolchain-as-default.patch \
%D%/packages/patches/zabbix-agent2-test-timezone-fix.patch \
%D%/packages/patches/zed-0.225.10-add-message-notification-action.patch \
%D%/packages/patches/zed-0.225.10-add-guix-container-support.patch \
%D%/packages/patches/zed-0.225.10-collapse-multiline-git-deps.patch \
%D%/packages/patches/zed-0.225.10-exclude-libwebrtc-from-audio.patch \
%D%/packages/patches/zed-0.225.10-disable-dlopen.patch \
%D%/packages/patches/zed-0.225.10-fix-sqlite-memory-mode.patch \
%D%/packages/patches/zed-0.225.10-fix-test-db-isolation.patch \
%D%/packages/patches/zed-0.225.10-fix-workspace-race.patch \
%D%/packages/patches/zed-0.225.10-keep-regular-file-workspaces.patch \
%D%/packages/patches/zed-0.225.10-remove-patch-crates-io.patch \
%D%/packages/patches/zed-0.225.10-use-mock-livekit-on-linux.patch \
%D%/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch \
%D%/packages/patches/zig-0.9-fix-runpath.patch \
%D%/packages/patches/zig-0.9-riscv-support.patch \
+12 -20
View File
@@ -765,7 +765,7 @@ file system.")
(sha256
(base32 "0r3xwk8xsfxvmxyw3d57sy2i9by24g0l1jl40735jiac9mypcg7n"))))
(build-system pyproject-build-system)
(inputs (list python-requests python-argcomplete python-urllib3
(propagated-inputs (list python-requests python-argcomplete python-urllib3
python-looseversion gnupg))
(native-inputs (list python-setuptools python-wheel python-requests-cache
python-defusedxml))
@@ -773,8 +773,7 @@ file system.")
(list $SSL_CERT_FILE))
(arguments
(list
#:test-flags
#~(list "-k" "test_*")
#:test-backend #~'unittest
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-tests
@@ -793,11 +792,7 @@ file system.")
(lambda _
(substitute* "sdkmanager.py"
(("gpgv")
(string-append #$(this-package-input "gnupg") "/bin/gpgv")))))
(replace 'check
(lambda* (#:key tests? test-flags #:allow-other-keys)
(when tests?
(apply invoke "python" "-m" "unittest" test-flags)))))))
(string-append #$(this-package-input "gnupg") "/bin/gpgv"))))))))
(home-page "https://gitlab.com/fdroid/sdkmanager")
(synopsis "Replacement for Android sdkmanager written in Python")
(description
@@ -1182,14 +1177,16 @@ for communicating with Xiaomi smart appliances over miIO and MIoT protocols.")
(define-public fdroidserver
(package
(name "fdroidserver")
(version "2.4.2")
(version "2.4.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fdroidserver" version))
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/fdroid/fdroidserver")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"06xybginrwi5c7bw000wz5s5hzi0aqrxskzwh8qc6wv463w2djax"))))
(base32 "1745fqxr2qfrls4wr6x9w1262b9pxmw9yvzd9b71ya2qmj74q17n"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -1200,22 +1197,17 @@ for communicating with Xiaomi smart appliances over miIO and MIoT protocols.")
(lambda _
(setenv "HOME" "/tmp"))))))
(propagated-inputs
(list python-androguard
(list python-platformdirs
python-androguard
python-apache-libcloud
python-argcomplete
python-asn1crypto
python-clint
python-defusedxml
python-docker
python-gitpython
python-mwclient
python-oscrypto
python-paramiko
python-pillow
python-platformdirs
python-puremagic
python-pyasn1
python-pyasn1-modules
python-pyyaml
python-qrcode
python-requests
+39
View File
@@ -62,6 +62,7 @@
;;; Copyright © 2026 Luis Guilherme Coelho <lgcoelho@disroot.org>
;;; Copyright © 2026 Noé Lopez <noelopez@free.fr>
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
;;; Copyright © 2026 Daniel Martins <email@danielfm.me>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3703,6 +3704,44 @@ compensation, (de)interleaving, and byte-swapping
;; original developer.
(license license:expat)))
(define-public rtcqs
(package
(name "rtcqs")
(version "0.6.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/rtcqs/rtcqs")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1kc3niyaq4m8di68832pgfb1b0m54q5gm68dwlzwwilgxi61ifzc"))))
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-gui
(lambda _
(substitute* "pyproject.toml"
(("\"FreeSimpleGUI\",?")
"")
(("rtcqs_gui = \"rtcqs\\.rtcqs_gui:main\"")
""))
(delete-file "src/rtcqs/rtcqs_gui.py")
(delete-file "src/rtcqs/rtcqs_qt_gui.py"))))))
(native-inputs (list python-setuptools))
(home-page "https://codeberg.org/rtcqs/rtcqs")
(synopsis "Linux audio real-time performance analyzer")
(description
"rtcqs analyzes a Linux system to detect possible bottlenecks that could
have a negative impact on real-time audio performance. It checks kernel
configuration, IRQ priorities, CPU governor, swappiness, and other settings
relevant to low-latency audio work.")
(license license:expat)))
(define-public rtosc
(package
(name "rtosc")
+2 -2
View File
@@ -341,7 +341,7 @@ runtime.")
("java-jgit" ,java-jgit-4.2)
("axoloti-runtime" ,axoloti-runtime)))
(native-inputs
(list ant zip ; for repacking the jar
(list ant/java7 zip ; for repacking the jar
unzip))
(description
"The Axoloti patcher offers a patcher environment similar to Pure Data
@@ -647,7 +647,7 @@ This package provides the runtime.")
("java-slf4j-api" ,java-slf4j-api)
("ksoloti-runtime" ,ksoloti-runtime)))
(native-inputs
(list ant zip ;for repacking the jar
(list ant/java7 zip ;for repacking the jar
unzip))
(description
"Ksoloti is an environment for generating and processing digital audio.
+2 -3
View File
@@ -9283,7 +9283,7 @@ VCF.")
;; [testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
#:tests? #f
#:jdk ,icedtea-8
#:ant ,ant/java8
#:ant ,ant
;; This is only used for tests.
#:make-flags
(list "-Dsamjdk.intel_deflater_so_path=lib/jni/libIntelDeflater.so")
@@ -9353,11 +9353,10 @@ VCF.")
(list java-snappy-1
java-commons-jexl-2
java-cofoja
ant/java8 ;for bzip2 support at runtime
ant ;for bzip2 support at runtime
zlib))
(native-inputs
`(("ant-apache-bcel" ,ant-apache-bcel)
("ant-junit" ,ant-junit)
("java-testng" ,java-testng)
("java-commons-bcel" ,java-commons-bcel)
("java-jcommander" ,java-jcommander)
+8 -8
View File
@@ -95,8 +95,8 @@ supported content to the Kodi media center.")
;; Arbitrary commit of branch master,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-main-assets")
(commit "011eef4a5b36a7ebf4adedc486d96b77cfa25c54")
(revision "5")
(commit "004af606e6a0efc22bc65ab1016b553441cacb71")
(revision "6")
(version (git-version "0" revision commit)))
(origin
(method git-fetch)
@@ -105,14 +105,14 @@ supported content to the Kodi media center.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0ng8a88zdvrxg30fz83gswjy27b3hfx9q11n2i715id7az7kqf9x")))))
(base32 "1bfd2d53flrkgvjcr1kj9nbxj4y9a4pcr7m3dycccdhd21x6k0ln")))))
(define ublock-prod-assets
;; Arbitrary commit of branch gh-pages,
;; Update when updating uBlockOrigin.
(let* ((name "ublock-prod-assets")
(commit "6844322800de647da0c4fe06dd6a0b212a3942e4")
(revision "5")
(commit "6c15e4ef91888c610caf73829dc78ae9549ed24a")
(revision "6")
(version (git-version "0" revision commit)))
(origin
(method git-fetch)
@@ -121,12 +121,12 @@ supported content to the Kodi media center.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "13vxq4z1wxivz5xklncxd2sj5aqkyhq919vzbbfp0fgh0imhikib")))))
(base32 "0n2h6drqh44b1zgl729bfr70n08mkm536a2vqgivw7dm5dmi8zd3")))))
(define ublock-origin
(package
(name "ublock-origin")
(version "1.66.2")
(version "1.70.0")
(home-page "https://github.com/gorhill/uBlock")
(source (origin
(method git-fetch)
@@ -136,7 +136,7 @@ supported content to the Kodi media center.")
(file-name (git-file-name name version))
(sha256
(base32
"16ph031hb8bf4rxyxvm6jr0bxmy0snza11jfrbjgfb390gax9r63"))))
"0j1m80nz86yc69c42hv5di5zza0vkycqmjaydb9jgx0abcvi19x5"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(properties '((addon-id . "uBlock0@raymondhill.net")))
+5 -4
View File
@@ -345,8 +345,8 @@ programs and other files depend.")
(license license:bsd-3)))
(define-public gn
(let ((commit "ee5b7e32b961a9da1933e9f46a018ba6cac8ef60")
(revision "2277")) ;as returned by `git describe`, used below
(let ((commit "6e8dcdebbadf4f8aa75e6a4b6e0bdf89dce1513a")
(revision "2354")) ;as returned by `git describe`, used below
(package
(name "gn")
(version (git-version "0.0" revision commit))
@@ -356,7 +356,7 @@ programs and other files depend.")
(uri (git-reference (url home-page) (commit commit)))
(sha256
(base32
"19kkvwxl66vlzlfppbq03fmi59i5g8a1yc71fsfgwqqmx4wywd6w"))
"0yz38czmbc72q1hkiv3cwxqh2i8ji2vkkvvk5ws2cjplmn2vj0x9"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -366,7 +366,8 @@ programs and other files depend.")
(lambda _
(setenv "CC" "gcc")
(setenv "CXX" "g++")
(setenv "CXXFLAGS" "-g -O2 -Wno-error=redundant-move")
(setenv "CXXFLAGS"
"-g -O2 -Wno-error=redundant-move -Wno-error=comment")
(setenv "AR" "ar")))
(replace 'configure
(lambda _
+108 -66
View File
@@ -79,11 +79,13 @@
'("base/third_party/cityhash" ;Expat
"base/third_party/double_conversion" ;BSD-3
"base/third_party/icu" ;Unicode, X11-style
"base/third_party/nspr" ;MPL-2.0
"base/third_party/superfasthash" ;BSD-3
"base/third_party/symbolize" ;BSD-3
"base/third_party/xdg_user_dirs" ;Expat
"buildtools/third_party/libc++" ;BSD
"buildtools/third_party/libc++abi" ;BSD
"net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"net/third_party/nss" ;MPL-2.0
"net/third_party/quiche" ;BSD-3
"net/third_party/uri_template" ;ASL2.0
"third_party/abseil-cpp" ;ASL2.0
@@ -104,8 +106,11 @@
"third_party/catapult" ;BSD-3
"third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
"third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
"third_party/catapult/third_party/beautifulsoup4-4.9.3" ;Expat
"third_party/catapult/third_party/html5lib-1.1" ;Expat
"third_party/catapult/third_party/polymer" ;BSD-3
"third_party/catapult/third_party/six" ;Expat
"third_party/catapult/third_party/typ" ;ASL2.0
;; XXX: This is a minified version of <https://d3js.org/>.
"third_party/catapult/tracing/third_party/d3" ;BSD-3
"third_party/catapult/tracing/third_party/gl-matrix" ;Expat
@@ -120,19 +125,12 @@
"third_party/cld_3" ;ASL2.0
"third_party/closure_compiler" ;ASL2.0
"third_party/compiler-rt" ;ASL2.0
"third_party/compiler-rt/src/lib" ;ASL2.0
"third_party/compiler-rt/src/lib/builtins" ;ASL2.0
"third_party/content_analysis_sdk" ;BSD-3
"third_party/cpuinfo" ;BSD-2
"third_party/crabbyavif" ;ASL2.0
"third_party/crabbyavif/src/sys/dav1d-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/aom-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/libgav1-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/libyuv-sys" ;ASL2.0
"third_party/crabbyavif/src/sys/ndk-sys" ;ASL2.0
"third_party/crashpad" ;ASL2.0
"third_party/crashpad/crashpad/third_party/lss" ;ASL2.0
"third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
"third_party/crashpad/crashpad/third_party/zlib" ;Zlib
"third_party/crc32c" ;BSD-3
"third_party/cros_system_api" ;BSD-3
"third_party/dav1d" ;BSD-2
@@ -140,19 +138,25 @@
;; TODO: can likely be unbundled when Vulkan is updated.
"third_party/dawn/third_party/khronos" ;ASL2.0
"third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3
"third_party/dawn/third_party/renderdoc" ;Expat
"third_party/dawn/third_party/webgpu-headers" ;BSD-3
"third_party/depot_tools" ;BSD-3
"third_party/devscripts" ;GPL2.0
"third_party/devtools-frontend" ;BSD-3
"third_party/devtools-frontend/src/front_end"
"third_party/devtools-frontend/src/front_end/third_party"
"third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
"third_party/devtools-frontend/src/front_end/third_party\
/additional_readme_paths.json" ;no explicit license; trivial
"third_party/devtools-frontend/src/front_end/third_party/json5" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
"third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/csp_evaluator" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/diff" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/json5" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/legacy-javascript" ;ASL-2.0
"third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/lit" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3
@@ -164,10 +168,12 @@
"third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/parsel" ; Expat
"third_party/devtools-frontend/src/front_end/third_party/puppeteer/third_party/rxjs" ; ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/puppeteer-replay" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party\
/vscode.web-custom-data" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/third-party-web" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/web-vitals" ;Expat
"third_party/devtools-frontend/src/third_party/i18n" ;ASL2.0
"third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
@@ -179,6 +185,7 @@
"third_party/farmhash" ;Expat
"third_party/fast_float" ;ASL2.0, Boost1.0, Expat
"third_party/fdlibm" ;non-copyleft
"third_party/federated_compute/chromium/fcp/confidentialcompute" ;ASL2.0
"third_party/federated_compute/src/fcp/base" ;ASL2.0
"third_party/federated_compute/src/fcp/confidentialcompute" ;ASL2.0
"third_party/federated_compute/src/fcp/protos/confidentialcompute" ;ASL2.0
@@ -187,7 +194,9 @@
"third_party/fft2d" ;non-copyleft
"third_party/flatbuffers" ;ASL2.0
"third_party/fp16" ;Expat
"third_party/freetype" ;GPL2.0
"third_party/fusejs" ;ASL2.0
"third_party/fxdiv" ;Expat
"third_party/gemmlowp" ;ASL2.0
"third_party/google_input_tools" ;ASL2.0
"third_party/google_input_tools/third_party/closure_library" ;ASL2.0
@@ -196,6 +205,9 @@
"third_party/harfbuzz-ng" ;Expat
"third_party/highway" ;ASL2.0
"third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
"third_party/hyphenation-patterns" ;Expat
;; FIXME: Our icu does not have some headers such as udatamem.h.
"third_party/icu" ;Unicode3.0
"third_party/ink" ;ASL2.0
"third_party/ink_stroke_modeler" ;ASL2.0
"third_party/inspector_protocol" ;BSD-3
@@ -208,12 +220,14 @@
"third_party/libaddressinput" ;ASL2.0
"third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
"third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3
"third_party/libaom/source/libaom/third_party/SVT-AV1" ;BSD-3
"third_party/libaom/source/libaom/third_party/vector" ;Expat
"third_party/libaom/source/libaom/third_party/x86inc" ;ISC
"third_party/libc++" ;Expat
"third_party/libdrm" ; Expat
"third_party/libgav1" ;ASL2.0
"third_party/libjingle_xmpp" ;BSD-3
"third_party/libpfm4" ;BSD
"third_party/libpng" ;PNG2.0
"third_party/libphonenumber" ;ASL2.0
"third_party/libsecret" ;LGPL2.1+
"third_party/libsrtp" ;BSD-3
@@ -227,11 +241,15 @@
"third_party/libvpx/source/libvpx/third_party/x86inc" ;Expat
"third_party/libwebm" ;BSD-3
"third_party/libx11" ;BSD
"third_party/libxcb-keysyms" ;BSD
"third_party/libxml/chromium" ;BSD-3
"third_party/libyuv" ;BSD-3
"third_party/libzip" ;BSD-3
"third_party/lit" ;BSD-3
"third_party/lit/v3_0" ;BSD-3
"third_party/llvm-libc" ;ASL2.0
"third_party/llvm-libc/src/shared" ;ASL2.0
"third_party/lottie" ;Expat
"third_party/lss" ;BSD-3
"third_party/lzma_sdk" ;public domain
@@ -244,6 +262,7 @@
"third_party/modp_b64" ;BSD-3
"third_party/nasm" ;BSD-2
"third_party/nearby" ;ASL2.0
"third_party/neon_2_sse" ;BSD-2
"third_party/node" ;Expat
"third_party/oak/chromium/proto" ;ASL2.0
"third_party/oak/chromium/proto/attestation" ;ASL2.0
@@ -251,14 +270,20 @@
"third_party/one_euro_filter" ;BSD-3
"third_party/openscreen" ;BSD-3
"third_party/openscreen/src/third_party/tinycbor" ;Expat
"third_party/opus" ;BSD-3
"third_party/ots" ;BSD-3
"third_party/pdfium" ;BSD-3
"third_party/pdfium/third_party/agg23" ;Expat
"third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
"third_party/pdfium/third_party/lcms" ;Expat
"third_party/pdfium/third_party/libopenjpeg" ;BDS-2
"third_party/pdfium/third_party/libtiff" ;non-copyleft
"third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
"third_party/perfetto" ;ASL2.0
"third_party/perfetto/protos/third_party/chromium" ;BSD-3
"third_party/perfetto/protos/third_party/pprof" ;ASL2.0
"third_party/perfetto/protos/third_party/primes" ;ASL2.0
"third_party/perfetto/protos/third_party/simpleperf" ;ASL2.0
"third_party/pffft" ;the "FFTPACK" license
"third_party/ply" ;BSD-3
"third_party/polymer" ;BSD-3
@@ -268,6 +293,7 @@
"third_party/protobuf/third_party/utf8_range" ; Expat
"third_party/pthreadpool" ;BSD-2
"third_party/puffin" ;Non-copyleft
"third_party/pyyaml" ;Expat
"third_party/pyjson5" ;ASL2.0
"third_party/rapidhash" ;BSD-2
"third_party/readability" ;ASL2.0
@@ -279,11 +305,14 @@
"third_party/search_engines_data" ;BSD-3
"third_party/securemessage" ;ASL2.0
"third_party/selenium-atoms" ;ASL2.0
"third_party/sentencepiece" ;ASL2.0
"third_party/sentencepiece/src/third_party/darts_clone" ;BSD-3
"third_party/shell-encryption" ;ASL2.0
"third_party/simdutf" ;Non-copyleft
"third_party/simplejson" ; Non-copyleft
"third_party/six" ;Expat
"third_party/skia" ;BSD-3
"third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat
"third_party/skia/include/third_party/vulkan" ;BSD-3
"third_party/smhasher" ;Expat, public domain
;; FIXME: the snappy "replacement" shim (see replace_gn_files.py below) does
@@ -338,7 +367,6 @@
"third_party/webrtc/modules/third_party/fft" ;Non-copyleft
"third_party/webrtc/modules/third_party/g711" ;Public domain
"third_party/webrtc/modules/third_party/g722" ;Public domain
"third_party/webrtc/rtc_base/third_party/sigslot" ;Public domain
"third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
"third_party/woff2" ;ASL2.0
"third_party/wuffs" ;ASL2.0
@@ -372,7 +400,7 @@
;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests"))
(define %chromium-version "141.0.7390.65")
(define %chromium-version "147.0.7727.55")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision (string-append "debian/" %ungoogled-revision))
@@ -384,7 +412,7 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
"1hk4rww2gccly1qv0xnswd77haj02rlza82403dxdjm8fkdfndy6"))))
"0l6v4wf16067igawjlh90f3d287mkw0cq4j5lvrxxy17y1skynzc"))))
(define %debian-origin
(origin
@@ -397,7 +425,7 @@
((_ version) version))))
(sha256
(base32
"06s3kvwb3490xb28n6r3q5n1c0ylsvchiw6s4h1rrp8jqzwjbmc6"))))
"0gqarll08i7rcs1amapciv263xvzglc8p44ikavq3xd12yyvcd98"))))
(define (origin-file origin file)
(computed-file
@@ -410,26 +438,38 @@
(define %debian-patches
(map debian-patch
'("bookworm/clang19.patch"
"bookworm/foreach.patch"
'("bookworm/foreach.patch"
"debianization/safe-libcxx.patch"
"disable/enterprise-tests.patch"
"disable/node-version-ck.patch"
"disable/rustc-allow-features.patch"
"fixes/bytemuck.patch"
"fixes/gentoo-stylesheet.patch"
"fixes/libcpp-headers.patch"
"fixes/libpng-testonly.patch"
"fixes/rust-clanglib.patch"
"llvm-19/clang19.patch"
"llvm-19/clone-traits.patch"
"llvm-19/keyfactory.patch"
"llvm-19/value-or.patch"
"llvm-22/ignore-for-ubsan.patch"
"system/openjpeg.patch"
;; Remove after rust is past
;; <https://github.com/rust-lang/rust/pull/141061>.
"trixie/rust-no-alloc-shim.patch")))
"trixie/cookie-string-view.patch"
"trixie/nodejs-main.patch")))
(define %guix-patches
(list (local-file
(assume-valid-file-name
(search-patch
"ungoogled-chromium-extension-search-path.patch")))
"ungoogled-chromium-custom-compiler.patch")))
(local-file
(assume-valid-file-name
(search-patch
"ungoogled-chromium-unbundle-icu-target.patch")))
"ungoogled-chromium-empty-parsed-rustc-args.patch")))
(local-file
(assume-valid-file-name
(search-patch
"ungoogled-chromium-extension-search-path.patch")))
(local-file
(assume-valid-file-name
(search-patch
@@ -500,9 +540,8 @@
"#if 0"))
(invoke "python" "build/linux/unbundle/replace_gn_files.py"
"--system-libraries" "flac" "fontconfig" "freetype"
"harfbuzz-ng" "icu" "libjpeg"
"libpng" "libwebp" "libxml" "libxslt" "openh264" "opus"
"zlib")))))
"harfbuzz-ng" "libjpeg" "libpng" "libwebp" "libxml"
"libxslt" "openh264" "opus" "zlib")))))
(define opus+custom
(package/inherit opus
@@ -531,7 +570,7 @@
%chromium-version "-lite.tar.xz"))
(sha256
(base32
"09iwglswnr6d45zz3zsjw7jpm1xlwwkxlz9h5nlhqxyd933a04fq"))
"1salvlw5sykx3zmsbp7cgmf7y8yy6jlgb4b4zswzsbjrprk4jnap"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
@@ -548,6 +587,7 @@
;; directory for an exhaustive list of supported flags.
;; (Note: The 'configure' phase will do that for you.)
#~(list "is_debug=false"
"is_component_build=false"
;; Use the "official" release optimizations, as opposed to
;; a developer build.
"is_official_build=true"
@@ -555,6 +595,7 @@
"use_clang_modules=false"
"use_custom_libcxx=false" ; support for this is deprecated and to be removed.
"optimize_webui=false"
"webnn_use_tflite=false"
"safe_browsing_use_unrar=false"
"chrome_pgo_phase=0"
"use_sysroot=false"
@@ -572,12 +613,10 @@
"enable_service_discovery=false"
"enable_vr=false"
"enable_enterprise_companion=false"
"enable_glic=false"
"enable_iterator_debugging=false"
"enable_hangout_services_extension=false"
"enable_widevine=false"
;; Disable type-checking for the Web UI to avoid a Java dependency.
"enable_js_type_check=false"
"fatal_linker_warnings=false"
;; Disable code using TensorFlow until it has been scrutinized
;; by the ungoogled project.
"build_with_tflite_lib=false"
@@ -589,6 +628,11 @@
"angle_has_histograms=false"
"angle_build_tests=false"
"build_angle_perftests=false"
"enable_perfetto_unittests=false"
"skia_enable_skshapper_tests=false"
"tint_build_unittests=false"
"enable_nocompile_tests=false"
"enable_screen_ai_browsertests=false"
"clang_warning_suppression_file=\"\""
@@ -597,6 +641,8 @@
"is_cfi=false"
"symbol_level=0"
"blink_symbol_level=0"
"v8_symbol_level=0"
"v8_enable_backtrace=false"
;; Define a custom toolchain that simply looks up CC, AR and
@@ -628,26 +674,10 @@
;; invokation and fails if it's just the version number.
" (f6e511eec 2024-10-15) (built from a source tarball)\"")
;; Chromium's build/rust/std/BUILD.gn has a hardcoded
;; list of stdlib rlibs (stdlib_files) that GN uses to
;; declare build outputs. GN requires static output
;; declarations, so the list must exactly match what
;; rlibs exist in the Rust sysroot. Chromium's list
;; includes unicode_width because their bundled
;; toolchain (Rust 1.89) ships it as a dependency of
;; getopts 0.2.23. Our Rust 1.93 has getopts 0.2.24
;; which dropped that dependency, so unicode_width is
;; not in our sysroot. This GN arg removes it from
;; the list. (Chromium's own use of unicode_width via
;; codespan-reporting is a separate vendored copy under
;; third_party/rust/chromium_crates_io/ and is
;; unaffected.)
"removed_rust_stdlib_libs=[\"unicode_width\"]"
;; Prefer system libraries.
"use_system_freetype=true"
"use_system_harfbuzz=true"
"use_system_icu=true"
"use_system_icu=false"
"use_system_lcms2=true"
"use_system_libffi=true"
"use_system_libjpeg=true"
@@ -713,9 +743,9 @@
;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead.
(substitute* (find-files "chrome" "\\.cc$")
(("third_party/icu/source/(common|i18n)/")
""))
;(substitute* (find-files "chrome" "\\.cc$")
; (("third_party/icu/source/(common|i18n)/")
; ""))
;; XXX: Should be unnecessary when use_system_lcms2=true.
(substitute* "third_party/pdfium/core/fxcodec/icc/icc_transform.h"
@@ -732,16 +762,19 @@
(("include \"third_party/curl")
"include \"curl"))
;; Unknown flags as of clang-19, can be removed when building with
;; newer clang.
(substitute* "build/config/compiler/BUILD.gn"
(("-gsimple-template-names") ""))
;; Clang libs are not under bindgen root directory.
(substitute* "build/rust/rust_bindgen_generator.gni"
;; Our clang libs and rustfmt are not under bindgen root directory.
(substitute* '("build/rust/rust_bindgen_generator.gni"
"build/rust/rust_bindgen.gni")
(("(_libclang_path = )rust_bindgen_root" _ libclang)
(string-append libclang "clang_base_path"))))))
(add-after 'patch-stuff 'add-absolute-references
(string-append libclang "clang_base_path"))
(("(_rustfmt_path = \")\\$\\{rust_bindgen_root\\}" _ rustfmt)
(string-append rustfmt "${rust_sysroot_absolute}"))))))
(add-after 'patch-stuff 'include-pthreadpool
;; FIXME: Somehow the build system cannot locate this header.
(lambda _
(copy-file "third_party/pthreadpool/src/include/pthreadpool.h"
"pthreadpool.h")))
(add-after 'include-pthreadpool 'add-absolute-references
(lambda* (#:key inputs #:allow-other-keys)
(let ((cups-config (search-input-file inputs "/bin/cups-config"))
(libnssckbi.so (search-input-file inputs
@@ -763,13 +796,22 @@
(add-after 'add-absolute-references 'adjust-CPLUS_INCLUDE_PATH
;; The libcxx include/c++/v1 directory is not exposed via
;; CPLUS_INCLUDE_PATH by default, causing errors like
;; "fatal error: 'format' file not found".
;; "fatal error: 'format' file not found". Also clang is
;; unable to find gcc's bits/c++config.h which is machine
;; dependent.
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(setenv "CPLUS_INCLUDE_PATH"
(string-append
(search-input-directory inputs
"/include/c++/v1")
":" (getenv "CPLUS_INCLUDE_PATH")))))
(let* ((libcxx-v1 (search-input-directory inputs
"include/c++/v1"))
(target-system #$(nix-system->gnu-triplet
(or (%current-target-system)
(%current-system))))
(target-include (string-append "include/c++/"
target-system))
(gcc-bits (search-input-directory inputs
target-include)))
(setenv "CPLUS_INCLUDE_PATH"
(string-append libcxx-v1 ":" gcc-bits ":"
(getenv "CPLUS_INCLUDE_PATH"))))))
(add-before 'configure 'prepare-build-environment
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((node (search-input-file (or native-inputs inputs)
@@ -955,7 +997,7 @@
glib
gtk+
harfbuzz
icu4c
icu4c-77
lcms
libcxx
libffi
+2 -2
View File
@@ -714,7 +714,7 @@ Its main purpose is to support the key usage by @code{docker-init}:
(define-public podman
(package
(name "podman")
(version "5.8.1")
(version "5.8.2")
(outputs '("out" "docker"))
(properties
`((output-synopsis "docker" "docker alias for podman")
@@ -727,7 +727,7 @@ Its main purpose is to support the key usage by @code{docker-init}:
(url "https://github.com/containers/podman")
(commit (string-append "v" version))))
(sha256
(base32 "1wdsdc0nj4m1v8mn95dhavi87ad0adqmld70da59gvp2abff5f0f"))
(base32 "12bmzbfyjsf0mwnam38cw9ib54wj1znh5b7lxzdyll9cvvkhqisr"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
+21 -43
View File
@@ -42,20 +42,24 @@
#:use-module (guix utils)
#:use-module (srfi srfi-26))
(define %coreboot-version "26.03")
(define %coreboot-origin
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit %coreboot-version)))
(file-name (git-file-name "coreboot" %coreboot-version))
(sha256
(base32
"0436rr0vibh35phvkxrc939njvrmnfq9xw87y1b0nlllglvq07kk"))))
(define-public bincfg
(package
(name "bincfg")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
@@ -126,17 +130,8 @@ It also comes with example files generated by bincfg.")
(define-public ifdtool
(package
(name "ifdtool")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
@@ -160,16 +155,8 @@ dump Intel Firmware Descriptor data of an image file.")
(define-public intelmetool
(package
(name "intelmetool")
(version "25.09")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
@@ -201,17 +188,8 @@ Management Engine (ME). You need to @code{sudo rmmod mei_me} and
(define-public nvramtool
(package
(name "nvramtool")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(version %coreboot-version)
(source %coreboot-origin)
(build-system gnu-build-system)
(arguments
(list
+59
View File
@@ -69,6 +69,7 @@
;;; Copyright © 2025 Simen Endsjø <contact@simendsjo.me>
;;; Copyright © 2025 bdunahu <bdunahu@operationnull.com>
;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu>
;;; Copyright © 2026 Peter Polidoro <peter@polidoro.io>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3096,6 +3097,64 @@ Driver.")
;; COPYING contains copy of lgpl2.1 - but copyright notices just say "LGPL"
(home-page "https://www.unixodbc.org")))
(define-public sqliteodbc
(package
(name "sqliteodbc")
(version "0.99991")
(source (origin
(method url-fetch)
(uri (string-append "http://www.ch-werner.de/sqliteodbc/"
name "-" version ".tar.gz"))
(sha256
(base32
"0p4avhqxnd2l49g3vpzwrmdi8wxyqzy0vswalaagmqfdsfwav52d"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no check target
#:configure-flags
#~(list "--disable-static"
(string-append "--with-sqlite3=" #$(this-package-input "sqlite"))
(string-append "--with-odbc=" #$(this-package-input "unixodbc")))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'create-lib-directory
(lambda _
(mkdir-p (string-append #$output "/lib"))))
(add-after 'install 'remove-extra-sqlite-extensions
(lambda _
;; Keep this package focused on the ODBC driver itself.
(for-each delete-file
(find-files (string-append #$output "/lib")
"^libsqlite3_mod_.*\\.(la|so)$"))))
(add-after 'install 'install-odbcinst.ini
(lambda _
(let ((dir (string-append #$output "/share/sqliteodbc")))
(mkdir-p dir)
(call-with-output-file (string-append dir "/odbcinst.ini")
(lambda (port)
(display
(string-append
"[SQLite3]\n"
"Description = SQLite3 ODBC Driver\n"
"Driver = " #$output "/lib/libsqlite3odbc.so\n"
"Setup = " #$output "/lib/libsqlite3odbc.so\n"
"Threading = 2\n")
port)))))))))
(native-search-paths
(list (search-path-specification
(variable "ODBCSYSINI")
(files '("share/sqliteodbc"))
(separator #f))))
(inputs (list sqlite unixodbc))
(home-page "http://www.ch-werner.de/sqliteodbc/")
(synopsis "ODBC driver for SQLite")
(description
"SQLiteODBC provides an ODBC driver for SQLite 3 databases. It installs
the shared library and a driver registration file so applications using
unixODBC can resolve the @code{SQLite3} driver name from a Guix profile.")
(license license:tcl/tk)))
(define-public nanodbc
(package
(name "nanodbc")
+89
View File
@@ -77,6 +77,8 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages ragel)
#:use-module (gnu packages serialization)
@@ -93,6 +95,8 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
@@ -303,6 +307,58 @@ protocol.")
(home-page "https://github.com/earlchew/cloudflare-cli")
(license license:expat))))
(define-public ddclient
(package
(name "ddclient")
(version "4.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ddclient/ddclient")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0sz4f7qx4yjg6q6ybhzilb7f0kshz46c54y3i4hq2nww2bhkc8a4"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'bootstrap 'patch-ddclient.in-shebang
(lambda _
;; This is run in the bootstrap phase, so patch before
(patch-shebang "ddclient.in")))
(add-after 'install 'wrap-program
(lambda* (#:key inputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/ddclient")
`("PERL5LIB" ":" prefix
,(map (lambda (input-name)
(string-append (assoc-ref inputs input-name)
"/lib/perl5/site_perl"))
'("perl-json")))))))))
(native-inputs
(list autoconf
automake
perl-http-daemon
perl-plack
perl-test-mockmodule
perl-test-tcp
perl-test-warnings))
(inputs
(list curl
perl
perl-json
bash-minimal))
(home-page "https://github.com/ddclient/ddclient")
(synopsis "Dynamic DNS update client")
(description
"ddclient is used to update dynamic DNS entries for accounts on many
dynamic DNS services. It supports a wide range of routers and protocols,
including Cloudflare, Namecheap, DynDNS, FreeDNS, Google Domains, and many
more.")
(license license:gpl2+)))
(define-public ldns
(package
(name "ldns")
@@ -498,6 +554,39 @@ and BOOTP/TFTP for network booting of diskless machines.")
;; Source files only say GPL2 and GPL3 are allowed.
(license (list license:gpl2 license:gpl3))))
(define-public dnsupdate
(package
(name "dnsupdate")
(version "0.4.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lopsided98/dnsupdate")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0bp6mm0yhg4hs698xdmvcfad4jqf5rgb1cab88pfzyx9w52x0ag6"))))
(build-system pyproject-build-system)
(arguments
(list #:test-backend #~'unittest
#:test-flags #~'("discover" "-p" "*_test.py")))
(native-inputs
(list python-setuptools))
(propagated-inputs
(list python-beautifulsoup4
python-netifaces
python-pyyaml
python-requests))
(home-page "https://github.com/lopsided98/dnsupdate")
(synopsis "Modern and flexible dynamic DNS client")
(description
"Dnsupdate is a dynamic DNS client that provides support for multiple DNS
services, including Afraid.org FreeDNS, Cloudflare, IETF standard DNS
updates (nsupdate), and custom HTTP-based services. It uses YAML
configuration files and supports multiple address detection methods.")
(license license:gpl3+)))
;; 'bind' is the name of a built-in Guile procedure, which is why we choose a
;; different name here.
(define-public isc-bind
+9 -7
View File
@@ -1069,7 +1069,7 @@ characterization result in a liberty library file.")
(define-public kicad
(package
(name "kicad")
(version "10.0.0")
(version "10.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1077,7 +1077,7 @@ characterization result in a liberty library file.")
(commit version)))
(sha256
(base32
"1470x1276yvd8li3w25zjg73fkpl2qp4dsx7adanafq5c4l47rmc"))
"1mnlv8fyz03pfg8pkqwdl5gjz6vsk98c6414lf3wkvrkb85ljaav"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -1185,7 +1185,9 @@ characterization result in a liberty library file.")
"Kicad is a program for the formation of printed circuit
boards and electrical circuits. The software has a number of programs that
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
electrical diagrams), gerbview (viewing Gerber files) and others.")
electrical diagrams), gerbview (viewing Gerber files) and others. To use
SQLite-backed database libraries, install the optional @code{sqliteodbc}
package.")
(license license:gpl3+)))
(define-public kicad-doc
@@ -1200,7 +1202,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version))
(sha256
(base32
"1k0ayxsy0nnv9qxkii9yrxs7jx9y3wfjpsv5yl9wql3vdg3qay69"))))
"1c0vn13rp0z12rlqhl321pk2gj9577dyky6xj3i6hb040i3v7zrr"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags (list "-DBUILD_FORMATS=html"
@@ -1232,7 +1234,7 @@ electrical diagrams), gerbview (viewing Gerber files) and others.")
(file-name (git-file-name name version))
(sha256
(base32
"0khfnln0f2zsz5hy31nw2rr0nflb2z3s9n9f7g41g03m9l3s43v2"))))
"0iz4lb33wdsw4f82a0ln8ycgaf39gjws03mvl2j1q9npwj6xl1cm"))))
(build-system cmake-build-system)
(native-inputs (list python-wrapper))
(arguments
@@ -1262,7 +1264,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
"0ymmd1rzrczpvcqzw1mld9x8xhbka0vvjy3kdqwysg4ri97f5wrm"))))
"0jqgyi1yb2zc6w56ba7xama0wnhrqwbbnf2fqvr47xihvdcvs87v"))))
(synopsis "Official KiCad footprint libraries")
(description "This package contains the official KiCad footprint libraries.")))
@@ -1279,7 +1281,7 @@ libraries.")
(file-name (git-file-name name version))
(sha256
(base32
"0k91iw661fpzb7saryjxdcdvk1kis7dhbcpzp7xzjk84i4jvxrp5"))))
"0jr70ry6inzc2fy3s300z0zlmihbq95ba1zckyd1wwbpplaj1gbl"))))
(synopsis "Official KiCad 3D model libraries")
(description "This package contains the official KiCad 3D model libraries.")))
+2 -1
View File
@@ -164,7 +164,8 @@ Mix.CLI.main()"
'("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
programs))))))))
(outputs '("out" "src"))
(inputs (list bash-minimal erlang rebar3 git))
(inputs (list bash-minimal erlang rebar3))
(native-inputs (list git-minimal))
(native-search-paths
(list (search-path-specification
(variable "GUIX_ELIXIR_LIBS")
+447 -55
View File
@@ -264,6 +264,7 @@
#:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages lsof)
#:use-module (gnu packages lua)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages maths)
#:use-module (gnu packages music)
#:use-module (gnu packages version-control)
@@ -784,7 +785,7 @@ reading the extensive documentation about BookmarkPlus on the Emacs Wiki.")
(package
(name "emacs-bqn-mode")
;; Upstream releases are tagged by date.
(version "2025-07-06")
(version "2026-02-08")
(source
(origin
(method git-fetch)
@@ -793,7 +794,7 @@ reading the extensive documentation about BookmarkPlus on the Emacs Wiki.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1b25k66nn4qa4ryhm8mzc53qvsvhgjzdngisw28cpdh109627iz3"))))
(base32 "1m9l4if3a9i6r76v370gh6azgj2lwqcnpavfv2bkvm9ad56f3pa8"))))
(build-system emacs-build-system)
(arguments
(list #:tests? #f)) ;No tests found in source.
@@ -4328,25 +4329,39 @@ perform static analysis of Perl code.")
(license license:gpl3+)))
(define-public emacs-flymake-flycheck
(package
(name "emacs-flymake-flycheck")
(version "20210404.2128")
(source
(origin
(method url-fetch)
(uri (string-append "https://melpa.org/packages/flymake-flycheck-"
version ".el"))
(sha256
(base32 "1m59ahd5gjlfwf328labwdlpcxh8ywywkwgfrlsy5jyxfc9ss4nv"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-flycheck))
(home-page "https://github.com/purcell/flymake-flycheck")
(synopsis "Use Flycheck checkers as Flymake backends")
(description
"This package provides support for running any Flycheck checker as a
(let ((commit "cbc0fc81bf369b36fe29a49d9e24708027f6da38")
(revision "0"))
(package
(name "emacs-flymake-flycheck")
(version (git-version "0.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/purcell/flymake-flycheck")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0fda1n8hhklbq6p1s2dlvgc9xd0qy7qzb8yvxq89idx1irjx0785"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ; There is only a lint-check
(propagated-inputs
(list emacs-flycheck))
(home-page "https://github.com/purcell/flymake-flycheck")
(synopsis "Use Flycheck checkers as Flymake backends")
(description
"This package provides support for running any Flycheck checker as a
Flymake diagnostic backend. The effect is that Flymake will control when the
checker runs, and Flymake will receive its errors.")
(license license:gpl3+)))
(license license:gpl3+))))
(define-public emacs-flymake-flycheck-superseded-version
(package
(inherit emacs-flymake-flycheck)
(version "20210404.2128")
(properties (list (cons 'superseded emacs-flymake-flycheck)))))
(define-public emacs-flymake-quickdef
;; This particular commit includes bug fixes on top of 1.0.0 release.
@@ -8478,23 +8493,36 @@ them whenever another command is invoked.")
(license license:gpl3+)))
(define-public emacs-keyfreq
(let ((commit "c6955162307f37c2ac631d9daf118781009f8dda")
(revision "0"))
(package
(name "emacs-keyfreq")
(version (git-version "1.8" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dacap/keyfreq")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"18iw0jwr9hmxv5vikqf28sknml0k14rvddp80s2cm6bglaz4sdc3"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ; No tests
(home-page "https://github.com/dacap/keyfreq")
(synopsis "Track Emacs command frequencies")
(description
"@code{emacs-keyfeq} tracks and shows how many times you used a command.")
(license license:gpl3+))))
(define-public emacs-keyfreq-superseded-version
(package
(name "emacs-keyfreq")
(inherit emacs-keyfreq)
(version "20160516.716")
(source
(origin
(method url-fetch)
(uri (string-append "http://melpa.org/packages/keyfreq-"
version ".el"))
(sha256
(base32
"008hd7d06qskc3mx0bbdgpgy2pwxr8185fzlyqf9qjg49y74p6g8"))))
(build-system emacs-build-system)
(home-page "https://github.com/dacap/keyfreq")
(synopsis "Track Emacs command frequencies")
(description "@code{emacs-keyfeq} tracks and shows how many times you used
a command.")
(license license:gpl3+)))
(properties (list (cons 'superseded emacs-keyfreq)))))
(define-public emacs-khalel
(package
@@ -13806,6 +13834,28 @@ structure as input representing the HTML tree you want to generate and
generates it as a string. Please see the homepage for usage examples.")
(license license:gpl3+))))
(define-public emacs-jag
(package
(name "emacs-jag")
(version "0.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/martianh/jag.el")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0hfv3hf0p7y5imrzb6rv90cjxd22ih2n529ggc7fwgd1n40zvgj8"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-string-inflection emacs-swagg))
(home-page "https://codeberg.org/martianh/jag.el")
(synopsis "Generate API client libraries in elisp using swagg.el")
(description
"This package provides utilities to use swagg.el to generate API client
libraries from Swagger specs.")
(license license:gpl3+)))
(define-public emacs-jedi
(package
(name "emacs-jedi")
@@ -15230,25 +15280,39 @@ markdown features.")
(license license:gpl3)))
(define-public emacs-2048-game
(package
(name "emacs-2048-game")
(version "20151026.1233")
(source
(origin
(method url-fetch)
(uri (string-append "https://melpa.org/packages/2048-game-"
version ".el"))
(sha256
(base32
"0gy2pvz79whpavp4jmz8h9krzn7brmvv3diixi1d4w51pcdvaldd"))))
(build-system emacs-build-system)
(home-page "https://hg.sr.ht/~zck/game-2048")
(synopsis "Implementation of the game 2048 in Emacs Lisp")
(description
"This program is an implementation of 2048 for Emacs.
;; No tagged releases. Version comes from 2048-game.el
(let ((changeset "0e7210d05e6faf53c7bdc8be2381dc0d4c8b19f3")
(revision "0"))
(package
(name "emacs-2048-game")
(version (hg-version "2023.8.8.1" revision changeset))
(source
(origin
(method hg-fetch)
(uri (hg-reference
(url "https://hg.sr.ht/~zck/game-2048")
(changeset changeset)))
(file-name (hg-file-name name version))
(sha256
(base32
"01xzmi2613d4zwnrh9iywipxx8ml76yqik90mx4mpyar19a6ypi8"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ; No tests
(home-page "https://hg.sr.ht/~zck/game-2048")
(synopsis "Implementation of the game 2048 in Emacs Lisp")
(description
"This program is an implementation of 2048 for Emacs.
The goal of this game is to create a tile with value 2048. The size of the
board and goal value can be customized.")
(license license:gpl3+)))
(license license:gpl3+))))
(define-public emacs-2048-game-superseded-version
(package
(inherit emacs-2048-game)
(version "20151026.1233")
(properties (list (cons 'superseded emacs-2048-game)))))
(define-public emacs-chess
(package
@@ -16816,6 +16880,32 @@ The following completions are currently available:
@end itemize")
(license license:gpl3+)))
(define-public emacs-swagg
(package
(name "emacs-swagg")
(version "0.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/isamert/swagg.el")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xlknc7j5vz1sv5gwr8v6vyfginflsksjyzx6qz1svibkdwp223g"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-compat
emacs-dash
emacs-s
emacs-request
emacs-yaml))
(home-page "https://github.com/isamert/swagg.el")
(synopsis "UI to interact with OpenAPI definations")
(description
"This package provides a practical Emacs UI for OpenAPI definitions. It
lets you fetch and interact with OpenAPI (formerly Swagger) definitions.")
(license license:gpl3+)))
(define-public emacs-sway
(let ((commit "84eae5e16a643eb00b0a422ded751cceb17cc8f0")
(revision "0"))
@@ -24580,6 +24670,13 @@ Meows motions.")
#:tests? #f ; no test suite
#:phases
#~(modify-phases %standard-phases
(add-before 'patch-el-files 'patch-xauth-path
;; Uses xauth directly at runtime to authenticate with the X server.
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "xcb.el"
(("xauth list")
(string-append (search-input-file inputs "/bin/xauth")
" list")))))
(add-after 'expand-load-path 'regenerate-el-files
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(substitute* "xelb-gen"
@@ -24587,6 +24684,7 @@ Meows motions.")
(invoke "make"
(format #f "PROTO_PATH=~a/share/xcb"
#$(this-package-native-input "xcb-proto"))))))))
(inputs (list xauth))
(native-inputs (list xcb-proto))
(propagated-inputs (list emacs-compat))
(home-page "https://github.com/emacs-exwm/xelb")
@@ -25694,6 +25792,52 @@ available key bindings that follow C-x (or as many as space allows given your
settings).")
(license license:gpl3+)))
(define-public emacs-whisper-el
(let ((commit "fd9bf5787a99dd31a4bdf54d2bd9821aacf84e93")
(revision "0"))
(package
(name "emacs-whisper-el")
(version "0.4.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/natrys/whisper.el")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0za55s117v7sc7cj4xlxxhkaamjlggs1g319n7fz54saa2wzmdj5"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f ;no tests
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-external-programs
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "whisper.el"
(("\\(executable-find \"ffmpeg\"\\)")
"t")
(("\"ffmpeg\"")
(string-append "\"" #$(this-package-input "ffmpeg")
"/bin/ffmpeg\""))
((",\\(whisper--find-whispercpp-main\\)")
(string-append "\"" #$(this-package-input "whisper-cpp")
"/bin/whisper-cli\"")))
(emacs-substitute-variables "whisper.el"
("whisper-install-whispercpp" 'nil)))))))
(inputs
(list ffmpeg whisper-cpp))
(home-page "https://github.com/natrys/whisper.el")
(synopsis "Speech to text interface for Emacs")
(description
"@code{emacs-whisper-el} captures audio with an input device, and
transcribes text inserted into current Emacs buffer, optionally after
translating to English from your local language. Transcription uses the
C/C++ port whisper.cpp for inference.")
(license license:gpl3+))))
;; Tagged release upstream is from before the package was orphaned.
;; The base version is extracted from the "Version" keyword in the main file
;; with "-git" suffix removed.
@@ -35412,12 +35556,199 @@ files are easily readable and they work nicely with version control systems.")
(build-system emacs-build-system)
(arguments
(list #:include #~(cons "^data\\/" %default-include)
#:tests? #f)) ; no tests
#:tests? #f ; no tests
#:phases
#~(modify-phases %standard-phases
;; The nerd-icons-install-fonts function would otherwise
;; download fonts from the network. Replace it with a stub
;; that instructs the user to install the font via Guix.
(add-after 'unpack 'disable-font-installer
(lambda _
(emacs-batch-edit-file "nerd-icons.el"
'(progn
(search-forward "(defun nerd-icons-install-fonts")
(beginning-of-line)
(kill-sexp)
(insert "\
(defun nerd-icons-install-fonts (&optional pfx)
(interactive \"P\")
(message \"To use nerd-icons fonts, install `font-nerd-symbols' using
`guix package -i font-nerd-symbols' or add it to your manifest or home config.
Remember, that you may have to run `fc-cache -rv' to refresh the font cache.\
\"))")
(basic-save-buffer))))))))
(synopsis "Library for easily using nerd font icons inside Emacs")
(description "Nerd-icons an alternative to all-the-icons. It works on both
GUI and terminal, and requires a nerd font installed on your system.")
(license license:gpl3+))))
(define-public emacs-nerd-icons-dired
;; No tags provided upstream
(let ((commit "adf9a2bb5f3f13be7a676923639337f3fcc5d8c3")
(revision "0"))
(package
(name "emacs-nerd-icons-dired")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rainstormstudio/nerd-icons-dired")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0x1xmwlfjgbk5kk4bxvgz4ykwwgiwmdbzhgsw49kpzz678a3qzrp"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ;no tests
(propagated-inputs (list emacs-nerd-icons))
(home-page "https://github.com/rainstormstudio/nerd-icons-dired")
(synopsis "Icons for Dired via Nerd Icons")
(description
"This package adds icons to Dired, using the @code{nerd-icons} package.")
(license license:gpl3+))))
(define-public emacs-nerd-icons-ivy-rich
;; Tagged release is not up-to-date, according to the "Version:" keyword in
;; main file.
(let ((commit "5006f91b49e86e232cdc1a628501b76124c41dac")
(revision "0"))
(package
(name "emacs-nerd-icons-ivy-rich")
(version (git-version "1.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/seagle0128/nerd-icons-ivy-rich")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0m62l4cl9j3ssd25rz40vgrv99bmwn6l4ig2sf8zzi0fpzm8axgh"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ;tests require Cask
(propagated-inputs
(list emacs-ivy-rich
emacs-nerd-icons))
(home-page "https://github.com/seagle0128/nerd-icons-ivy-rich")
(synopsis "Icons for Ivy via Nerd Icons")
(description
"This package adds icons to Ivy, using the @code{ivy-rich} and
@code{nerd-icons} packages.")
(license license:gpl3+))))
(define-public emacs-nerd-icons-ibuffer
(package
(name "emacs-nerd-icons-ibuffer")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/seagle0128/nerd-icons-ibuffer")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1wj6kcgvh700maj9i5pmgzc48lbj0dbxx849a8w519m4anr7b23s"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ;tests require Cask
(propagated-inputs
(list emacs-nerd-icons))
(home-page "https://github.com/seagle0128/nerd-icons-ibuffer")
(synopsis "Icons for Ibuffer via Nerd Icons")
(description
"This package adds icons to ibuffer in Emacs, using the @code{nerd-icons}
package.")
(license license:gpl3+)))
(define-public emacs-nerd-icons-completion
;; No tags provided upstream
(let ((commit "63a6b3f1eb98bb381c86a1658ac401c8967079b8")
(revision "0"))
(package
(name "emacs-nerd-icons-completion")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rainstormstudio/nerd-icons-completion")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "08p361rh5mv3ng10av1381kzl9s4msdjyca96hsgsh05qwq5pdrf"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ;no tests
(propagated-inputs (list emacs-nerd-icons))
(home-page "https://github.com/rainstormstudio/nerd-icons-completion")
(synopsis "Icons for Emacs minibuffer completion via Nerd Icons")
(description
"This package adds icons to minibuffer completion in Emacs, using the
@code{nerd-icons} package. It supports @code{vertico} and @code{marginalia}.")
(license license:gpl3+))))
(define-public emacs-nerd-icons-corfu
(package
(name "emacs-nerd-icons-corfu")
(version "1.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/LuigiPiucco/nerd-icons-corfu")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "036p45wqwrqhn5xv5sn3gsm2mb79gj6fk24zpkfa7wrv45qqgb21"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ;no tests
(propagated-inputs
(list emacs-corfu
emacs-nerd-icons))
(home-page "https://github.com/LuigiPiucco/nerd-icons-corfu")
(synopsis "Icons for Corfu via Nerd Icons")
(description
"This package adds icons to @code{corfu}, using the @code{nerd-icons}
package.")
(license license:gpl3+)))
(define-public emacs-nerd-icons-mode-line
;; No tags provided upstream
(let ((commit "23eca8e16799524889d661f4140355e81b8f929c")
(revision "0"))
(package
(name "emacs-nerd-icons-mode-line")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/grolongo/nerd-icons-mode-line")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0l2bg22cllab9wz5wxd6zhrywavqrlvv1a6y49ij63qhlsfncy6s"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f)) ;no tests
(propagated-inputs (list emacs-nerd-icons))
(home-page "https://github.com/grolongo/nerd-icons-mode-line")
(synopsis "Icons for the Emacs modeline via Nerd Icons")
(description
"This package adds icons to the modeline in Emacs, using the
@code{nerd-icons} package.")
(license license:gpl3+))))
(define-public emacs-all-the-icons
;; The latest release was on 3 June 2021.
(let ((commit "4778632b29c8c8d2b7cd9ce69535d0be01d846f9")
@@ -41089,7 +41420,7 @@ time.")
(define-public emacs-mastodon
(package
(name "emacs-mastodon")
(version "2.0.12")
(version "2.0.16")
(source
(origin
(method git-fetch)
@@ -41098,7 +41429,7 @@ time.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0q02v1vizzj1r35b7b6cw185jjibhc6izj9ih4sm6c83l9yb99yh"))))
(base32 "1z8qwnc01d9hx5m1xj3acpdzllfh4rxmypzcr3jl4ipp6dybzbx6"))))
(build-system emacs-build-system)
(arguments
(list
@@ -41211,7 +41542,17 @@ Lisp's (relatively new) EIEIO object oriented libraries.")
(sha256
(base32 "1y3k82q5iii7ddm6yj7397x2jscbcnvapd04zc5wjkqdr50cay3l"))))
(build-system emacs-build-system)
(arguments (list #:tests? #f)) ;depends on exemplify-ert
(arguments
(list
#:test-command #~(list "make" "tests")
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'remove-cask
(lambda _
(substitute* "Makefile"
(("cask ") "")))))))
(native-inputs
(list emacs-el-mock emacs-exemplify-ert emacs-exemplify-eval))
(propagated-inputs (list emacs-fedi emacs-magit emacs-tp emacs-transient))
(home-page "https://codeberg.org/martianh/fj.el")
(synopsis "Client for Forgejo instances")
@@ -44904,6 +45245,57 @@ Features:
@end itemize\n")
(license license:gpl3+)))
(define-public emacs-exemplify-ert
(package
(name "emacs-exemplify-ert")
(version "0.6.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~flandrew/exemplify-ert")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0y98pf3hq595h7vkqs1rrwhdsizi22y32mv345drvrc6xysyb7hr"))))
(build-system emacs-build-system)
(arguments
(list
#:test-command #~(list "emacs" "-Q" "--batch"
"-l" "dev/examples.el"
"-f" "ert-run-tests-batch-and-exit")))
(propagated-inputs (list emacs-dash emacs-f emacs-s))
(home-page "https://git.sr.ht/~flandrew/exemplify-ert")
(synopsis "Emacs library to implement regression tests")
(description
"This Emacs package is an extension to @code{ert}. It aims at writing
test cases in a simplified form.")
(license license:gpl3+)))
(define-public emacs-exemplify-eval
(package
(name "emacs-exemplify-eval")
(version "0.3.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~flandrew/exemplify-eval")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0f2rfgjcmpw45y0ayx8ww9d9q86y0jwkb46ixp1qd7782qxpa5lg"))))
(build-system emacs-build-system)
(arguments
(list #:tests? #f)) ;no tests
(home-page "https://git.sr.ht/~flandrew/exemplify-eval")
(synopsis "Create arrowified examples from sexps")
(description
"This Emacs package is an extension to @code{ert}, and creates
@code{emacs-exemplify-ert}like examples. It aims at writing test cases in a
simplified form.")
(license license:gpl3+)))
(define-public emacs-pcmpl-args
(package
(name "emacs-pcmpl-args")
+2 -2
View File
@@ -2730,7 +2730,7 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
(define-public freecad
(package
(name "freecad")
(version "1.1.0")
(version "1.1.1")
(source
(origin
(method git-fetch)
@@ -2740,7 +2740,7 @@ dynamics is used by FreeCAD 1.0.0 for its new Assembly workbench.")
(recursive? #t))) ;needed for the AddonManager
(file-name (git-file-name name version))
(sha256
(base32 "029ndw1dypx0xhs4fyiinf7gpk8am0vm9b24idvdsx9x7ghrqz4j"))
(base32 "05dx7ifx33705mxb0vc82j0mzzkazakgadfgq5bws30qrxp49xgg"))
(snippet
#~(begin
(use-modules (guix build utils))
+5
View File
@@ -148,6 +148,11 @@ client.")
(list (search-path-specification
(variable "FCITX_ADDON_DIRS")
(files '("lib/fcitx5")))
(search-path-specification
(variable "GUIX_GTK2_IM_MODULE_FILE")
(file-type 'regular)
(separator #f)
(files '("lib/gtk-2.0/2.10.0/immodules-gtk2.cache")))
(search-path-specification
(variable "GUIX_GTK3_IM_MODULE_FILE")
(file-type 'regular)
+33
View File
@@ -5559,6 +5559,39 @@ technical and idiosyncratic feel—perfect for headers and pull-quotes. Made to
work well together with Mona Sans.")
(license license:silofl1.1)))
(define-public font-open-sans
(package
(name "font-open-sans")
(version "3.003")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googlefonts/opensans")
(commit "bd7e37632246368c60fdcbd374dbf9bad11969b6")))
(file-name (git-file-name name version))
(sha256
(base32 "1mlnybaci1cr8z5xzxm7l2xpwfq27x9hqv649hc2ni1cjsyhpjp8"))))
(build-system font-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
;; Install the variable fonts only.
(let ((%install (assoc-ref %standard-phases 'install)))
(with-directory-excursion "fonts/variable"
(%install #:outputs outputs))))))))
(home-page "https://github.com/googlefonts/opensans")
(synopsis "Humanist sans-serif typeface by Steve Matteson")
(description
"Open Sans is an open source humanist sans-serif typeface
that was designed by Steve Matteson under commission from Google. It was
released in 2011 and is based on his earlier design called Droid Sans, which
was specifically created for Android mobile devices but with slight
modifications to its width.")
(license license:silofl1.1)))
(define-public font-peppercarrot
(package
+5 -5
View File
@@ -5521,7 +5521,7 @@ falling, themeable graphics and sounds, and replays.")
(name "wesnoth")
;; Even-numbered minor versions indicate stable versions:
;; https://wiki.wesnoth.org/ReleasingWesnoth#Version_numbering
(version "1.18.6")
(version "1.18.7")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5530,7 +5530,7 @@ falling, themeable graphics and sounds, and replays.")
(file-name (git-file-name name version))
(sha256
(base32
"0cdlczxczqgzdaqwydb9gfgi7d9jc39li72p2rb5nk1rlgfff79s"))))
"0hdrp4xm9d8kj8id2g5q0wwdwykx4a0f1cs8a7fghmv0czryfv7f"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f ;no test target
@@ -13508,8 +13508,8 @@ rules to solve permissions issues.")
(define-public steam-devices-udev-rules
;; Last release from 2019-04-10
(let ((commit "13443480a64fe8f10676606bd57da6de89f8ccb1")
(revision "1"))
(let ((commit "7dde9ecb3c386363ecd9bd0a3b77e4756d200704")
(revision "2"))
(package
(name "steam-devices-udev-rules")
(version (git-version "1.0.0.61" revision commit))
@@ -13521,7 +13521,7 @@ rules to solve permissions issues.")
(file-name (git-file-name name version))
(sha256
(base32
"0i086gmnk93q76sw1laa9br6b7zj2r6nrrw7d64y4q9wcrlxw2bi"))))
"0w0xkgi9fpvdbpl57f8fy2nwy2icm6iag39b8ifpkijlxgclx1p3"))))
(build-system copy-build-system)
(arguments
'(#:install-plan '(("./" "lib/udev/rules.d"
+21 -24
View File
@@ -19,10 +19,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gkrellm)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gtk)
#:use-module (gnu packages pkg-config)
@@ -31,32 +33,27 @@
(define-public gkrellm
(package
(name "gkrellm")
(version "2.3.11")
(version "2.5.1")
(source
(origin
(method url-fetch)
(uri (string-append "http://gkrellm.srcbox.net/releases/gkrellm-"
version ".tar.bz2"))
(sha256
(base32 "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y"))))
(method url-fetch)
(uri (string-append "https://gkrellm.srcbox.net/releases/gkrellm-"
version ".tar.bz2"))
(sha256
(base32 "0qvy2xmwmfy5f0g09yn9lr262shnx82ba04r5il2wj4qscg3r7h8"))))
(build-system gnu-build-system)
(inputs
`(("gettext" ,gettext-minimal)
("gtk+" ,gtk+-2)
("libice" ,libice)
("libsm" ,libsm)))
(native-inputs
(list pkg-config))
(inputs (list gtk+-2 libsm))
(native-inputs (list gettext-minimal pkg-config))
(arguments
`(#:tests? #f ; there is no check target
#:phases
(modify-phases %standard-phases
(delete 'configure)) ; no configure script
#:make-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "INSTALLROOT=" out)
"CC=gcc"))))
(home-page "http://gkrellm.srcbox.net/")
(list
#:tests? #f ;there is no check target
#:phases
#~(modify-phases %standard-phases
(delete 'configure)) ;no configure script
#:make-flags
#~(list (string-append "INSTALLROOT=" #$output)
(string-append "CC=" #$(cc-for-target)))))
(home-page "https://gkrellm.srcbox.net/")
(synopsis "System monitors")
(description
"GKrellM is a single process stack of system monitors which supports
+68
View File
@@ -1335,6 +1335,74 @@ animation of closing windowed applications.")
GNOME Shell, including the top panel, dash and overview.")
(license license:gpl3)))
(define-public gnome-shell-extension-caffeine
(package
(name "gnome-shell-extension-caffeine")
(version "59")
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/eonpatapon/gnome-shell-extension-caffeine")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0sv0iqfb6kjhgcg4pb59n91dyf667vax96kfhz5ik5hhx9n0z43w"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("caffeine@patapon.info"
"share/gnome-shell/extensions/caffeine@patapon.info"
#:include-regexp ("icons" "locale" "preferences" "schemas"
"\\.js(on)?$")))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'compile-schemas
(lambda _
(with-directory-excursion "caffeine@patapon.info/schemas"
(invoke "glib-compile-schemas" ".")))))))
(native-inputs (list `(,glib "bin")))
(synopsis "Disable screensaver and auto suspend in Gnome")
(description "This extension provides a quick setting toggle to enable or
disable the Gnome auto-suspend and screensaver.")
(home-page "https://github.com/eonpatapon/gnome-shell-extension-caffeine")
(license license:gpl2+)))
(define-public gnome-shell-extension-hot-edge
(package
(name "gnome-shell-extension-hot-edge")
(version "27")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jdoda/hotedge")
(commit "90e9cdd6f2a171a676a96a4e6ad0126316317e4d")))
(file-name (git-file-name name version))
(sha256
(base32 "08jqz6n04yvqa77930sghgip5qfj8i4dm8wsm5cqjc4sqm4pn9yy"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("." "share/gnome-shell/extensions/hotedge@jonathan.jdoda.ca"
#:include-regexp ("\\.css$" "\\.js(on)?$" "schemas")))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'compile-schemas
(lambda _
(with-directory-excursion "schemas"
(invoke "glib-compile-schemas" ".")))))))
(native-inputs (list `(,glib "bin")))
(synopsis "Add a hot edge to the bottom of the screen in Gnome")
(description
"Add a hot edge that activates the overview to the bottom of the screen.
This provides a better mouse-based workflow and can be an alternative to a dock.")
(home-page "https://github.com/jdoda/hotedge")
(license license:gpl2+)))
(define-public gnome-shell-extension-radio
(let ((commit "860e55b9e704eb3dde43e6bbeccec5748242498e")
(revision "0"))
+87 -1
View File
@@ -2598,6 +2598,92 @@ of Evince is to replace the multiple document viewers that exist
on the GNOME Desktop with a single simple application.")
(license license:gpl2+)))
(define-public papers
(package
(name "papers")
(version "50.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/papers/"
(version-major version) "/"
"papers-" version ".tar.xz"))
(sha256
(base32 "01dws72fb19i9jwp3r0khr7ym2ns51fifdzafb5dcr5w8vmj06rh"))))
(build-system meson-build-system)
(arguments
(list
#:glib-or-gtk? #t
#:configure-flags
#~(list (string-append "-Dc_link_args=-Wl,-rpath=" #$output "/lib"))
#:imported-modules `(,@%meson-build-system-modules
,@%cargo-build-system-modules)
#:modules `(((guix build cargo-build-system) #:prefix cargo:)
(guix build meson-build-system)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'prepare-for-build
(lambda _
(substitute* "meson.build"
(("gtk_update_icon_cache: true")
"gtk_update_icon_cache: false")
(("update_desktop_database: true")
"update_desktop_database: false"))
(substitute* "meson.build"
(("'Cargo.lock',")
""))
(delete-file "Cargo.lock")))
(add-after 'configure 'prepare-cargo-build-system
(lambda args
(for-each
(lambda (phase)
(format #t "Running cargo phase: ~a~%" phase)
(apply (assoc-ref cargo:%standard-phases phase)
#:vendor-dir "vendor"
#:cargo-target #$(cargo-triplet)
args))
'(unpack-rust-crates
configure
check-for-pregenerated-files
patch-cargo-checksums))
(setenv "RUSTFLAGS"
(string-append (or (getenv "RUSTFLAGS") "")
" -C link-arg=-Wl,-rpath,"
#$output "/lib")))))))
(native-inputs
(cons* blueprint-compiler
gettext-minimal
`(,glib "bin")
gobject-introspection
gi-docgen
itstool
pkg-config
rust
`(,rust "cargo")
(or (and=> (%current-target-system)
(compose list make-rust-sysroot))
'())))
(inputs
(cons* appstream
djvulibre
exempi
gtk
libadwaita
libarchive
libspelling
libtiff
nautilus ; for nautilus extension
poppler-next
zlib
(cargo-inputs 'papers)))
(home-page "https://apps.gnome.org/Papers")
;; TODO: drop “new” when updating to GNOME 49 or newer.
(synopsis "GNOME's new document viewer")
(description "Papers is a document viewer capable of displaying multiple
and single page document formats like PDF and DejaVu.")
(license license:gpl2+)))
(define-public gsettings-desktop-schemas
(package
(name "gsettings-desktop-schemas")
@@ -10542,7 +10628,6 @@ playing media, scanning, and much more.")
cheese
decibels
epiphany
evince
file-roller
gnome-calculator
gnome-calendar
@@ -10562,6 +10647,7 @@ playing media, scanning, and much more.")
localsearch
loupe
nautilus
papers
simple-scan
showtime
xdg-desktop-portal-gnome
+2 -2
View File
@@ -165,14 +165,14 @@ tool to extract metadata from a file and print the results.")
(define-public libmicrohttpd
(package
(name "libmicrohttpd")
(version "1.0.2")
(version "1.0.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
version ".tar.gz"))
(sha256
(base32
"1ix843yqhcl8d5gh5652pw2scx4p5n836ca80ymms5rl136lycnz"))))
"0shj6kk4xp3k45vv696bzgx4s2jzpvhp11syck1zb70rmrxba5kq"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
+28
View File
@@ -48,6 +48,34 @@
#:use-module (gnu packages xml)
#:use-module (ice-9 match))
(define-public fsviewer
(package
(name "fsviewer")
(version "0.2.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/roblillack/fsviewer")
(commit (string-append "v" version))))
(sha256
(base32
"067fvbq7b4lbnn1flmwf8lm0vq4n6qz5yz6hhab30l4gksfk51cg"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments (list #:tests? #f)) ;no tests
(inputs
(list windowmaker libxmu libxpm))
(native-inputs
(list pkg-config))
(home-page "https://github.com/roblillack/fsviewer")
(synopsis "File viewer for Window Maker")
(description "FSViewer is a NeXT FileViewer lookalike for Window
Maker supporting browser mode and list mode. This version is a fork of
FSViewer.app originally written by George Clernon (1998-99) and later
maintained by Guido Scholz (2002-07).")
(license license:gpl2)))
(define-public gnustep-make
(package
(name "gnustep-make")
+4 -4
View File
@@ -1249,13 +1249,13 @@ testing.")
(cpe-name . "firefox_esr")
(cpe-version . ,(first (string-split version #\-)))))))
(define %icedove-build-id "20260324000000") ;must be of the form YYYYMMDDhhmmss
(define %icedove-build-id "20260403000000") ;must be of the form YYYYMMDDhhmmss
;;; See <https://product-details.mozilla.org/1.0/thunderbird_versions.json>
;;; for the source of truth regarding Thunderbird releases.
;;; Please keep these version numbers in sync with icecat.
;;; Please also update thunderbird-comm-source and thunderbird-comm-l10n to
;;; the icedove version.
(define %icedove-version "140.9.0")
(define %icedove-version "140.9.1")
;; Provides the "comm" folder which is inserted into the icecat source.
;; Avoids the duplication of Icecat's source tarball. Pick the changeset that
@@ -1267,11 +1267,11 @@ testing.")
(method hg-fetch)
(uri (hg-reference
(url "https://hg.mozilla.org/releases/comm-esr140")
(changeset "8be9f2d3072c225a1e5f153745a18984c2babf8f")))
(changeset "427d792f23672fc4adbe9436ce7dddbb2bfb287a")))
(file-name (string-append "thunderbird-" %icedove-version "-checkout"))
(sha256
(base32
"04j35957x03m5x7mhh8zxa86mwjy0is2vb614sr4inkvvz4rs2hg"))
"09fj375a0zb5kgvw94f13997zhcj67a4g5ylpdbjzfql0chh572p"))
(patches (search-patches "icedove-observer-fix.patch"))))
;;; To regenerate, see the `format-locales' helper defined above.
+2 -3
View File
@@ -412,7 +412,7 @@ similar to javadoc."))))
(inherit base)
(arguments
`(;#:tests? #f;Requires spock-framework which is a circular dependency
#:ant ,ant/java8; ant is actually a dependency of this package, and we need 1.10
#:ant ,ant; ant is actually a dependency of this package, and we need 1.10
,@(substitute-keyword-arguments arguments
((#:phases phases)
`(modify-phases ,phases
@@ -431,8 +431,7 @@ similar to javadoc."))))
("java-asm-analysis" ,java-asm-analysis-8)
,@(package-inputs base)))
(native-inputs
`(("ant-junit" ,ant-junit)
("groovy-bootstrap" ,groovy-bootstrap)
`(("groovy-bootstrap" ,groovy-bootstrap)
("groovy-xml" ,groovy-xml)
("groovy-test" ,groovy-test)
("groovy-tests-bootstrap" ,groovy-tests-bootstrap)
+18 -25
View File
@@ -517,22 +517,19 @@ functions which were removed.")
"0pik2d3995z0rjcjhb4hsj5fsph3m8khg6j10k6mx4j2j727aq6l"))))
(build-system waf-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-flags
(lambda* (#:key outputs #:allow-other-keys)
;; Allow 'bin/ganv_bench' to find libganv-1.so.
(setenv "LDFLAGS"
(string-append "-Wl,-rpath="
(assoc-ref outputs "out") "/lib"))
#t)))
#:tests? #f)) ; no check target
(inputs
`(("gtk" ,gtk+-2)
("gtkmm" ,gtkmm-2)))
(list
#:tests? #f ; no check target
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'set-flags
(lambda _
;; Allow 'bin/ganv_bench' to find libganv-1.so.
(setenv "LDFLAGS"
(string-append "-Wl,-rpath=" #$output "/lib")))))))
(native-inputs
(list `(,glib "bin") ; for glib-genmarshal, etc.
pkg-config))
(inputs (list gtk+-2 gtkmm-2))
(home-page "https://drobilla.net/software/ganv/")
(synopsis "GTK+ widget for interactive graph-like environments")
(description
@@ -1460,10 +1457,9 @@ exceptions, macros, and a dynamic programming environment.")
(inherit guile-cairo)
(name "guile2.2-cairo")
(inputs
`(("guile" ,guile-2.2)
("guile-lib" ,guile2.2-lib)
,@(fold alist-delete (package-inputs guile-cairo)
'("guile" "guile-lib"))))))
(modify-inputs inputs
(delete "guile" "guile-lib")
(append guile-2.2 guile2.2-lib)))))
(define-public guile-cairo-next
;; A commit with cairo-pointer->context, missing from guile-cairo@1.11.2
@@ -1579,11 +1575,10 @@ images onto Cairo surfaces.")
(inherit guile-rsvg)
(name "guile2.2-rsvg")
(inputs
`(("guile" ,guile-2.2)
("guile-lib" ,guile2.2-lib)
,@(fold alist-delete (package-inputs guile-rsvg)
'("guile" "guile-lib"))))
(propagated-inputs `(("guile-cairo" ,guile2.2-cairo)))))
(modify-inputs inputs
(delete "guile" "guile-lib")
(append guile-2.2 guile2.2-lib)))
(propagated-inputs (list guile2.2-cairo))))
(define-public guile-present
(package
@@ -1649,9 +1644,7 @@ documents.")
(name "guile2.2-present")
(inputs (list guile-2.2))
(propagated-inputs
`(("guile-lib" ,guile2.2-lib)
("guile-cairo" ,guile2.2-cairo)
("guile-rsvg" ,guile2.2-rsvg)))))
(list guile2.2-lib guile2.2-cairo guile2.2-rsvg))))
;;;
;;; C++ bindings.
+50 -11
View File
@@ -5787,6 +5787,43 @@ reading and writing PNG data, as well as some graphic primitives and basic image
processing filters.")
(license license:gpl3+)))
(define-public guile-pnm
(package
(name "guile-pnm")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/artyom-poptsov/guile-pnm")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "06kgp1gh8hdj1j6w7i981prx93wfjpayrnjlydlzs7l5j04l4m3a"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags
#~(list "GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
(native-inputs (list autoconf
automake
pkg-config
texinfo
;; needed when cross-compiling.
guile-3.0
guile-lib
guile-smc))
(inputs (list guile-3.0 guile-lib))
(propagated-inputs (list guile-smc))
(home-page "https://github.com/artyom-poptsov/guile-pnm")
(synopsis "NetBPM (PNM) library for GNU Guile")
(description
"@code{guile-pnm} is a GNU Guile library for working with the
@url{https://en.wikipedia.org/wiki/Netpbm, NetPBM} format (also known as PNM),
including portable bitmap (PBM), portable graymap (PGM) and portable
pixel (PPM) variants.")
(license license:gpl3+)))
(define-public guile-cv
(package
(name "guile-cv")
@@ -7654,11 +7691,11 @@ is an attempt to combine both into something useful.")
(license license:asl2.0))))
(define-public guile-knots
(let ((commit "d79284b4715efc347b22d510c3e3134a0c584b17")
(revision "32"))
(let ((commit "f767eca066495e6582e89ba1b91907c0c5657878")
(revision "34"))
(package
(name "guile-knots")
(version (git-version "0" revision commit))
(version (git-version "0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7666,7 +7703,7 @@ is an attempt to combine both into something useful.")
(commit commit)))
(sha256
(base32
"0i87jc3dznw6pdib0yy49d8066c1jvwp2m01xi92amx45dkl8ixc"))
"18fqmpyrrxy8phxxm5b7d1qhhvc3rsrs243xiinkj2hn2ca1cqi8"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -7901,14 +7938,16 @@ This module implements this interface by use of Guile's dynamic FFI.")
(define-public guile-bstructs
(package
(name "guile-bstructs")
(version "0.1.0")
(version "0.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/releases"
"/guile-bstructs/guile-bstructs-" version ".tar.gz"))
(sha256
(base32 "0f847aiyzhrlvd2jmckyqrkrvi7i9mg8rmyhbh7fs1vzykcf67wb"))))
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.dthompson.us/guile-bstructs.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "18dwhcsbcjix61hy32ckjyvgmg1r9smq2krp2m1yc6sinlszh0f2"))))
(build-system gnu-build-system)
(native-inputs (list autoconf automake guile-3.0 pkg-config texinfo))
(inputs (list guile-3.0))
+1 -1
View File
@@ -75,7 +75,7 @@
(inputs
(list openblas))
(native-inputs
`(("ant" ,ant)
`(("ant" ,ant/java7)
("ruby" ,ruby) ; for configure script
("gfortran" ,gfortran)
("jdk" ,icedtea "jdk")))
+134 -166
View File
@@ -1964,8 +1964,7 @@ OpenJDK.")
(home-page "https://www.jetbrains.com/")
(license license:gpl2+)))
(define-public ant/java8
(define-public ant
(package
(name "ant")
(version "1.10.15")
@@ -1980,15 +1979,12 @@ OpenJDK.")
(snippet
'(begin
(for-each delete-file
(find-files "lib/optional" "\\.jar$"))
#t))))
(build-system gnu-build-system)
(find-files "lib/optional" "\\.jar$"))))))
(build-system ant-build-system)
(arguments
(list
#:modules '((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils))
#:tests? #f ;no "check" target
#:ant ant/java7
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-scripts
@@ -1998,11 +1994,100 @@ OpenJDK.")
(for-each delete-file
(find-files "src/script"
"(.*\\.(bat|cmd)|runant.*|antRun.*)"))))
(add-after 'unpack 'link-test-dependencies
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (file)
(symlink file
(string-append "lib/optional/"
(basename file))))
(append
(find-files (assoc-ref inputs "java-hamcrest-core")
"\\.jar$")
(find-files (assoc-ref inputs "java-hamcrest-library")
"\\.jar$")
(find-files (assoc-ref inputs "java-junit")
"\\.jar$")))))
(add-before 'build 'fix-test-failures
(lambda _
;; Failure because the directory does not exist
(substitute* "src/etc/testcases/taskdefs/exec/exec-with-redirector.xml"
(("/usr/bin") (getcwd)))
;; Failure because it cannot read root's name in the build
;; container
(delete-file "src/tests/junit/org/apache/tools/ant/types/selectors/OwnedBySelectorTest.java")
;; Cause timestamp issue when trying to rollback time by a few
;; seconds.
(for-each (lambda (file) (utime file 5000))
(find-files "src/etc/testcases/taskdefs" "" #:directories? #t))))
(delete 'bootstrap)
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir=" #$output))))
(add-after 'build 'fix-executables-paths
(lambda* (#:key inputs #:allow-other-keys)
(wrap-script (string-append #$output "/bin/ant")
`("PATH" suffix
(,(dirname (search-input-file inputs "/bin/sed"))
,(dirname (search-input-file inputs "/bin/uname"))
,(dirname (search-input-file inputs "/bin/which")))))
(patch-shebang
(string-append #$output "/bin/complete-ant-cmd.pl")
(list (dirname (search-input-file inputs "/bin/perl"))))))
(delete 'install))))
(inputs
(list coreutils-minimal
guile-3.0/pinned
java-hamcrest-core
java-hamcrest-library
java-junit
perl
sed
which))
(home-page "https://ant.apache.org")
(synopsis "Build tool for Java")
(description
"Ant is a platform-independent build tool for Java. It is similar to
make but is implemented using the Java language, requires the Java platform,
and is best suited to building Java projects. Ant uses XML to describe the
build process and its dependencies, whereas Make uses Makefile format.")
(license license:asl2.0)))
;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series
;; requires Java 8.
(define-public ant/java7
(package
(name "ant")
(version "1.9.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/ant/source/apache-ant-"
version "-src.tar.gz"))
(sha256
(base32
"1xy30f1w5gaqk6g3f0vw7ygix4rb6032qkcw42y4z8wd9jihgygd"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils))
#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-after 'unpack 'remove-scripts
;; Remove bat / cmd scripts for DOS as well as the antRun and runant
;; wrappers.
(lambda _
(for-each delete-file
(find-files "src/script"
"(.*\\.(bat|cmd)|runant.*|antRun.*)"))))
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
;; Disable tests to avoid dependency on hamcrest-core, which needs
;; Ant to build. This is necessary in addition to disabling the
@@ -2011,9 +2096,10 @@ OpenJDK.")
(substitute* "build.xml"
(("depends=\"jars,test-jar") "depends=\"jars"))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir=" #$output))))
(string-append "-Ddist.dir="
(assoc-ref outputs "out")))))
(add-after 'build 'strip-jar-timestamps ;based on ant-build-system
(lambda _
(lambda* (#:key outputs #:allow-other-keys)
(define (repack-archive jar)
(let* ((dir (mkdtemp "jar-contents.XXXXXX"))
(manifest (string-append dir "/META-INF/MANIFESTS.MF")))
@@ -2039,11 +2125,11 @@ OpenJDK.")
(apply invoke command)))))
(for-each repack-archive
(find-files
(string-append #$output "/lib")
(string-append (assoc-ref %outputs "out") "/lib")
"\\.jar$"))))
(delete 'install))))
(native-inputs
`(("jdk" ,icedtea-8 "jdk")
`(("jdk" ,icedtea-7 "jdk")
("zip" ,zip)
("unzip" ,unzip)))
(home-page "https://ant.apache.org")
@@ -2055,131 +2141,12 @@ and is best suited to building Java projects. Ant uses XML to describe the
build process and its dependencies, whereas Make uses Makefile format.")
(license license:asl2.0)))
;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series
;; requires Java 8.
(define-public ant
(package (inherit ant/java8)
(version "1.9.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/ant/source/apache-ant-"
version "-src.tar.gz"))
(sha256
(base32
"1xy30f1w5gaqk6g3f0vw7ygix4rb6032qkcw42y4z8wd9jihgygd"))))
;; XXX: we do this to avoid a rebuild. This mess will be cleaned up
;; later.
(arguments
(substitute-keyword-arguments
`(#:modules ((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils))
#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-before 'build 'define-java-environment-variables
(lambda* (#:key inputs #:allow-other-keys)
;; First, set environment variables (eases debugging on -K).
(setenv "JAVA_HOME" (assoc-ref inputs "jamvm"))
(setenv "JAVACMD" (search-input-file inputs "/bin/jamvm"))
(setenv "JAVAC" (search-input-file inputs "/bin/jikes"))
(setenv "CLASSPATH" (search-input-file inputs "/lib/rt.jar"))))
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Ant complains if this file doesn't exist.
(setenv "HOME" "/tmp")
(with-output-to-file "/tmp/.ant.properties"
(lambda _ (display "")))
;; Use jikes instead of javac for <javac ...> tags in build.xml
(setenv "ANT_OPTS" "-Dbuild.compiler=jikes")
;; jikes produces lots of warnings, but they are not very
;; interesting, so we silence them.
(setenv "$BOOTJAVAC_OPTS" "-nowarn")
;; Without these JamVM options the build may freeze.
(substitute* "bootstrap.sh"
(("^\"\\$\\{JAVACMD\\}\" " m)
,@(if (string-prefix? "armhf" (or (%current-system)
(%current-target-system)))
`((string-append m "-Xnocompact "))
`((string-append m "-Xnocompact -Xnoinlining ")))))
;; Disable tests because we are bootstrapping and thus don't have
;; any of the dependencies required to build and run the tests.
(substitute* "build.xml"
(("depends=\"jars,test-jar\"") "depends=\"jars\""))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir="
(assoc-ref outputs "out")))))
(add-after 'build 'strip-jar-timestamps ;based on ant-build-system
(lambda* (#:key outputs #:allow-other-keys)
(define (repack-archive jar)
(let* ((dir (mkdtemp "jar-contents.XXXXXX"))
(manifest (string-append dir "/META-INF/MANIFESTS.MF")))
(with-directory-excursion dir
(invoke "unzip" jar))
(delete-file jar)
;; XXX: copied from (gnu build install)
(for-each (lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0))))
(find-files dir #:directories? #t))
;; It is important that the manifest appears first.
(with-directory-excursion dir
(let* ((files (find-files "." ".*" #:directories? #t))
;; To ensure that the reference scanner can
;; detect all store references in the jars
;; we disable compression with the "-0" option.
(command (if (file-exists? manifest)
`("zip" "-0" "-X" ,jar ,manifest
,@files)
`("zip" "-0" "-X" ,jar ,@files))))
(apply invoke command)))))
(for-each repack-archive
(find-files
(string-append (assoc-ref %outputs "out") "/lib")
"\\.jar$"))))
(delete 'install)))
((#:phases phases)
`(modify-phases ,phases
(delete 'define-java-environment-variables)
(add-after 'unpack 'remove-scripts
;; Remove bat / cmd scripts for DOS as well as the antRun and runant
;; wrappers.
(lambda _
(for-each delete-file
(find-files "src/script"
"(.*\\.(bat|cmd)|runant.*|antRun.*)"))
#t))
(replace 'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
;; Disable tests to avoid dependency on hamcrest-core, which needs
;; Ant to build. This is necessary in addition to disabling the
;; "check" phase, because the dependency on "test-jar" would always
;; result in the tests to be run.
(substitute* "build.xml"
(("depends=\"jars,test-jar") "depends=\"jars"))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir="
(assoc-ref outputs "out")))))))))
(native-inputs
`(("jdk" ,icedtea-7 "jdk")
("zip" ,zip)
("unzip" ,unzip)))))
(define-public ant-apache-bcel
(package
(inherit ant/java8)
(inherit ant)
(name "ant-apache-bcel")
(arguments
(substitute-keyword-arguments (package-arguments ant/java8)
(substitute-keyword-arguments (package-arguments ant)
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'link-bcel
@@ -2200,37 +2167,11 @@ build process and its dependencies, whereas Make uses Makefile format.")
(delete-file-recursively bin)
(delete-file-recursively lib))))))))
(inputs
(modify-inputs (package-inputs ant/java8)
(modify-inputs (package-inputs ant)
(prepend java-commons-bcel)))))
(define-public ant-junit
(package
(inherit ant/java8)
(name "ant-junit")
(arguments
(substitute-keyword-arguments (package-arguments ant/java8)
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'link-junit
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (file)
(symlink file
(string-append "lib/optional/"
(basename file))))
(find-files (assoc-ref inputs "java-junit")
"\\.jar$"))))
(add-after 'build 'install
(lambda _
(let ((share (string-append #$output "/share/java"))
(bin (string-append #$output "/bin"))
(lib (string-append #$output "/lib")))
(mkdir-p share)
(install-file (string-append lib "/ant-junit.jar") share)
(delete-file-recursively bin)
(delete-file-recursively lib))))))))
(inputs
(modify-inputs (package-inputs ant/java8)
(prepend java-junit)))))
(define-deprecated-package ant-junit
ant)
(define-public libantlr3c
(package
@@ -3337,6 +3278,9 @@ is implemented.")
`(;; Tests require junit
#:tests? #f
#:jar-name "qdox.jar"
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:phases
(modify-phases %standard-phases
(replace 'unpack
@@ -3445,6 +3389,9 @@ documentation tools.")
`(;; Tests require junit, which ultimately depends on this package.
#:tests? #f
#:build-target "jar"
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:phases
(modify-phases %standard-phases
(add-before 'build 'do-not-use-bundled-asm
@@ -3543,6 +3490,9 @@ testing frameworks, mocking libraries and UI validation rules.")
(build-system ant-build-system)
(arguments
`(#:tests? #f ; Tests require junit
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:modules ((guix build ant-build-system)
(guix build java-utils)
(guix build utils)
@@ -3628,6 +3578,9 @@ testing frameworks, mocking libraries and UI validation rules.")
(native-inputs '())
(arguments
`(#:tests? #f
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:phases
(modify-phases %standard-phases
(delete 'configure)
@@ -3669,7 +3622,7 @@ testing frameworks, mocking libraries and UI validation rules.")
(define-public java-junit
(package
(name "java-junit")
(version "4.12")
(version "4.13.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3678,7 +3631,7 @@ testing frameworks, mocking libraries and UI validation rules.")
(file-name (git-file-name name version))
(sha256
(base32
"1j8avi91px1z8rjc89cfikwrvfifdmmsarwiyrcnr59ynvpz0v8h"))
"1r7k4zzscc8019np3is3bzfigw8fxd6s3259cbhzzh02q6d5p9h3"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3690,6 +3643,9 @@ testing frameworks, mocking libraries and UI validation rules.")
`(#:jar-name "junit.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
;; Explicitely use an ant version that includes the junit tasks, so
;; we can run the tests.
#:ant ,ant/java7
#:test-exclude (list "**/SimpleTest.java" "**/StackTracesTest.java"
"**/RuleChainTest.java" "**/TestWatchmanTest.java")
#:phases
@@ -3730,7 +3686,13 @@ sharing common test data, and test runners for running tests.")
`(#:jar-name "junitparams.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
#:test-exclude (list "**/SuperclassTest.java")))
#:test-exclude (list
;; Abstract class: no tests
"**/SuperclassTest.java"
;; Incompatible tests with junit 4.13.2
"**/BeforeAfterClassTest.java"
"**/FilterableTest.java"
"**/RulesTest.java")))
(inputs
(list java-junit))
(native-inputs
@@ -5199,6 +5161,9 @@ complex transformations and code analysis tools.")
(build-system ant-build-system)
(arguments
`(#:tests? #f
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
#:ant ,ant/java7
#:phases
(modify-phases %standard-phases
(delete 'unpack)
@@ -5220,6 +5185,9 @@ including java-asm.")
(properties '((hidden? . #t)))
(arguments
(substitute-keyword-arguments (package-arguments java-asm)
;; Explicitely use an ant version that includes the junit tasks, since
;; it is a dependency of junit.
((#:ant _ ant/java7) ant/java7)
((#:tests? _) #f)))
(native-inputs `())))
+22 -12
View File
@@ -37,6 +37,7 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
@@ -189,16 +190,17 @@ framework. It builds XMPP clients complying with the XMPP Compliance Suites
(package
(name "kaidan")
(version "0.15.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kde/unstable/kaidan/" version
"/kaidan-" version ".tar.xz"))
(modules '((guix build utils)))
(snippet
#~(begin
(delete-file-recursively "3rdparty")))
(sha256
(base32 "11g4lifji6gh9zmpgyx4dnmxyzzwkhhj84j2w9r4bvgqm2pxdhnd"))))
(source
(origin
(method url-fetch)
(uri (string-append "mirror://kde/unstable/kaidan/" version
"/kaidan-" version ".tar.xz"))
(modules '((guix build utils)))
(snippet
#~(begin
(delete-file-recursively "3rdparty")))
(sha256
(base32 "11g4lifji6gh9zmpgyx4dnmxyzzwkhhj84j2w9r4bvgqm2pxdhnd"))))
(build-system qt-build-system)
(arguments
(list
@@ -209,10 +211,18 @@ framework. It builds XMPP clients complying with the XMPP Compliance Suites
(add-before 'check 'set-home
(lambda _
;; Tests need write permission in $HOME.
(setenv "HOME" "/tmp"))))))
(setenv "HOME" "/tmp")))
(add-after 'install 'wrap-program
(lambda _
(let ((gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
(wrap-program (string-append #$output "/bin/kaidan")
`("GST_PLUGIN_SYSTEM_PATH" ":" prefix
(,gst-plugin-path)))))))))
(native-inputs (list extra-cmake-modules
pkg-config))
(inputs (list gstreamer
(inputs (list bash-minimal
gst-plugins-good-qt
gstreamer
icu4c
kcrash
kdsingleapplication
+3
View File
@@ -1853,6 +1853,9 @@ for xdg-desktop-portal that is using Qt/KF5.")
breeze-icons ;default mouse icon
colord
discover
ffmpegthumbs
flatpak ;for discover
flatpak-kcm ;to manage flatpak app permissions
kactivitymanagerd
kdeclarative ;required by sddm breeze theme
kde-cli-tools
+2 -1
View File
@@ -33,6 +33,7 @@
#:use-module (gnu packages libusb)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages swig)
#:use-module (gnu packages textutils))
@@ -95,7 +96,7 @@
"/html"))))))
#:tests? #f)) ; tests fail without access to USB
(native-inputs
(list doxygen graphviz pkg-config python swig-4.0))
(list doxygen graphviz pkg-config python python-setuptools swig))
(inputs
(list boost libconfuse))
(propagated-inputs
+3 -3
View File
@@ -4914,7 +4914,7 @@ transparently through a bridge.")
(define-public libnl
(package
(name "libnl")
(version "3.7.0")
(version "3.12.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -4923,7 +4923,7 @@ transparently through a bridge.")
"/libnl-" version ".tar.gz"))
(sha256
(base32
"0faryrbvp0x4s2zhg5d78vd5q4w34lrr736gpm9wcwpaxv5krr4z"))))
"066xq01y2mx0xi7bwa5y6ciw1ygla15qdlzzyvyzb8zijrqwllgw"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
@@ -4938,7 +4938,7 @@ transparently through a bridge.")
(string-join (string-split version #\.) "_")
"/libnl-doc-" version ".tar.gz"))
(sha256
(base32 "1ra8xdf06q9hlsrnc1yz67xkp4kd9sd27ff02mlixixnyyjp32sp"))))))
(base32 "18f14pdycghy6fcd27faqgh19zpam6b45s8bgsk85kb9wwzq3yd4"))))))
(outputs `("out" "doc"))
(arguments
`(#:phases
+3 -3
View File
@@ -12982,8 +12982,8 @@ score. When evaluated, the musical score is rendered to an image.")
(sbcl-package->ecl-package sbcl-cmn))
(define-public sbcl-coalton
(let ((commit "939342495f55991812c2c2767322c5e51e755216")
(revision "4"))
(let ((commit "bf475c8c53e02a2e0cb29deab4d101d25743bfca")
(revision "5"))
(package
(name "sbcl-coalton")
(version (git-version "0.0.1" revision commit))
@@ -12995,7 +12995,7 @@ score. When evaluated, the musical score is rendered to an image.")
(commit commit)))
(file-name (git-file-name "cl-coalton" version))
(sha256
(base32 "08qzj3v4fvn9h87whyqg650rpap8lva7jr94d1akv6m2z62l5q68"))))
(base32 "0zrp2s82n2mxx7knbnbsdj64zar21nnnf8iwzrqzs4g3v6xpyz9z"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-fiasco))
+3 -2
View File
@@ -33,6 +33,7 @@
;;; Copyright © 2024 Suhail Singh <suhail@bayesians.ca>
;;; Copyright © 2024 David Pflug <david@pflug.io>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2026 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -912,7 +913,7 @@ assembler, PEG) is less than 1MB.")
(define-public jpm
(package
(name "jpm")
(version "1.1.0")
(version "1.2.0")
(source
(origin
(method git-fetch)
@@ -921,7 +922,7 @@ assembler, PEG) is less than 1MB.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "05rdxigmiy7vf93s16a8n2029lq33073jccz1rjl4iisxj6piw4l"))))
(base32 "06ywq1ajvqx3lfpldwbakc21hxhb313r0196xnmrrbb6k1f8hsfx"))))
(build-system copy-build-system)
(arguments
(list
+4 -4
View File
@@ -57,7 +57,7 @@
(define-public luanti
(package
(name "luanti")
(version "5.15.1")
(version "5.15.2")
(source
(origin
(method git-fetch)
@@ -66,7 +66,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "07g41ljv117pmw6402mqznccwl1hd9jp2l8wkb4l211cbm4c6vv9"))
(base32 "1mcbsgf549y2jg9qds95wwgd1699mkk4byv9ls4lpg43bd829dhk"))
(modules '((guix build utils)
(srfi srfi-26)
(ice-9 ftw)))
@@ -488,7 +488,7 @@ with different rules and mechanics.")
(define-public luanti-mineclonia
(package
(name "luanti-mineclonia")
(version "0.120.1")
(version "0.121.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -497,7 +497,7 @@ with different rules and mechanics.")
(file-name (git-file-name name version))
(sha256
(base32
"135xllkvdravry25y1f94wqn7nxb0pnrpn7xiagh2b5vjbajhdg4"))))
"1c3x59iq04vfc0fa09z6g8davrr2vhdywppdbgyw64n7vk4f6br9"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
+2 -2
View File
@@ -3437,14 +3437,14 @@ notifications.")
(define-public pounce
(package
(name "pounce")
(version "3.1")
(version "3.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://git.causal.agency/pounce/snapshot/pounce-"
version ".tar.gz"))
(sha256
(base32 "0kk0jrfiwfaybr0i5xih3b0yd4i6v3bz866a7xal1j8wddalbwlp"))
(base32 "1i0s76mip9kfmi85bfk10p4k1kg5wkq1gm4l9gadnq9ssxnvzvjs"))
(patches (search-patches "pounce-readable-checks.patch"))))
(outputs '("out" "debug"))
(build-system gnu-build-system)
+33
View File
@@ -171,6 +171,7 @@
#:use-module (gnu packages lua)
#:use-module (gnu packages machine-learning)
#:use-module (gnu packages man)
#:use-module (gnu packages messaging)
#:use-module (gnu packages mp3)
#:use-module (gnu packages mpd)
#:use-module (gnu packages mruby-xyz)
@@ -593,6 +594,38 @@ updates via @command{mopidy local scan} while Mopidy is running, so you can
scan your media library periodically, for example from a cron job.")
(license license:asl2.0)))
(define-public mopidy-mopiqtt
(package
(name "mopidy-mopiqtt")
(version "1.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fmarzocca/mopiqtt")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1gaxxbpws9xshsbknq78h0c1k3ynvc466hkq4952pv00q203zqk4"))
;; XXX: https://github.com/fmarzocca/Mopiqtt/issues/6
(modules '((guix build utils)))
(snippet
'(begin
(substitute* "tests/test_smoke.py"
(("mqtt")
"mopiqtt"))
(substitute* "tests/conftest.py"
(("mqtt")
"mopiqtt"))))))
(build-system pyproject-build-system)
(native-inputs (list python-pytest python-setuptools))
(propagated-inputs (list mopidy python-paho-mqtt python-pykka))
(home-page "https://github.com/fmarzocca/mopiqtt")
(synopsis "MQTT interface for Mopidy")
(description
"This package provides an MQTT interface extension for Mopidy music server.")
(license license:asl2.0)))
(define-public clementine
;; Clementine has one automatic release per commit at
;; <https://github.com/clementine-player/Clementine/releases>.
+4 -98
View File
@@ -1,8 +1,4 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,98 +16,8 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages nvi)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages dbm)
#:use-module (gnu packages ncurses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix utils))
#:use-module (gnu packages text-editors)
#:use-module (guix deprecation))
(define-public nvi
(package
(name "nvi")
(version "1.81.6")
(source
(origin
(method url-fetch)
(uri ;; sites.google.coma/bostic.com/keithbostic/vi is stale.
(string-append "http://harrier.slackbuilds.org/misc/nvi-" version
".tar.bz2"))
(sha256
(base32 "0nbbs1inyrqds0ywn3ln5slv54v5zraq7lszkg8nsavv4kivhh9l"))
(patches (search-patches "nvi-assume-preserve-path.patch"
"nvi-dbpagesize-binpower.patch"
"nvi-add-function-prototypes.patch"
"nvi-db4.patch"))
(modules '((guix build utils)))
(snippet
;; Create a wrapper for the configure script, make it executable.
'(let ((conf-wrap (open-output-file "configure")))
(display "#!/bin/sh" conf-wrap)
(newline conf-wrap)
(display
"../nvi-1.81.6/dist/configure --srcdir=../nvi-1.81.6/dist $@"
conf-wrap)
(newline conf-wrap)
(close-output-port conf-wrap)
(chmod "configure" #o0755)
;; Glibc 2.30 removed the deprecated <sys/stropts.h>, so fall back
;; to the internal PTY allocation logic.
(substitute* "ex/ex_script.c"
(("#ifdef HAVE_SYS5_PTY")
"#if defined(HAVE_SYS5_PTY) && !defined(__GLIBC__)"))
#t))))
(build-system gnu-build-system)
(arguments
(list
#:out-of-source? #t
#:configure-flags
#~'("--enable-widechar"
#$@(if (%current-target-system)
'("vi_cv_sprintf_count=yes")
'()))
#:make-flags
#~(list
;; Add CFLAGS to relax gcc-14's strictness.
;; nvi's configure chokes on passing CFLAGS and ignores
;; CFLAGS set in the environment.
(string-append "CFLAGS=-g -O2"
" -Wno-error=incompatible-pointer-types"))
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'fix-configure
(lambda* (#:key inputs native-inputs #:allow-other-keys)
;; Replace outdated config.sub and config.guess:
(with-directory-excursion "dist"
(for-each
(lambda (file)
(chmod file #o755)
(install-file
(format #f "~a/share/automake-~a/~a"
(assoc-ref (or native-inputs inputs)
"automake")
#$(version-major+minor
(package-version automake))
file)
"."))
'("config.sub" "config.guess"))))))))
(inputs
(list bdb ncurses))
(native-inputs
(list automake)) ;Up to date 'config.guess' and 'config.sub'.
(synopsis "The Berkeley Vi Editor")
(description
"Vi is the original screen based text editor for Unix systems. It is
considered the standard text editor, and is available on almost all Unix
systems. Nvi is intended as a \"bug-for-bug compatible\" clone of the
original BSD vi editor. As such, it doesn't have a lot of snazzy features as
do some of the other vi clones such as elvis and vim. However, if all you
want is vi, this is the one to get.")
(home-page "https://sites.google.com/a/bostic.com/keithbostic/vi")
(license bsd-3)))
(define-deprecated/public-alias nvi
(@ (gnu packages text-editors) nvi))
+1 -1
View File
@@ -6153,7 +6153,7 @@ serializers and deserializers from type definitions.")
(build-system dune-build-system)
(propagated-inputs (list ocaml-yojson))
(properties `((upstream-name . "ppx_yojson_conv_lib")))
(synopsis "Runtime library used by ocaml PPX yojson convertor")
(synopsis "Runtime library used by ocaml PPX yojson converter")
(description "Ppx_yojson_conv_lib is the runtime library used by
ppx_yojson_conv, a ppx rewriter that can be used to convert ocaml types
to a Yojson.Safe value.")
+1 -1
View File
@@ -75,7 +75,7 @@
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "setup.py"
;; Relax hard requirment of PIP.
;; Relax hard requirement of PIP.
((".*pip>=18.0.*") ""))))
(add-before 'check 'pre-check
(lambda _
+13 -8
View File
@@ -32,6 +32,7 @@
;;; Copyright © 2025-2026 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
;;; Copyright © 2025 unwox <me@unwox.com>
;;; Copyright © 2026 Owen T. Heisler <writer@owenh.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1498,7 +1499,7 @@ manage (install/update) them for you.")
"--ignore=tests/trust/test_signature_verification.py"
"-k" (string-join
;; XXX: Issues salad: network access, can't detect Conda
;; environemnt, assertion failed; review if they may be
;; environment, assertion failed; review if they may be
;; fixed.
;;
;; test_info_all: Fails due to parallel test interference.
@@ -2133,8 +2134,8 @@ environments.")
"153bgcjqw6jp0yl0vj0k67k9c8lw82vac6b0cnacrjrcb24lcpdq")))))))
(define-public guix-build-coordinator
(let ((commit "bd3467e7b60f22089c4a3bf6d32caafbd03625f0")
(revision "137"))
(let ((commit "a52e17ae733de601ef3d4aa72b88ff7ed02aceb7")
(revision "138"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@@ -2145,7 +2146,7 @@ environments.")
(commit commit)))
(sha256
(base32
"0h9kxpijilrn9v2s8dy7sdifshri4fxvdgvxxacvvbw01fb3llmv"))
"164k3ygn69h0z6bbsqpk22psnn2b1lbpidmaixf3kaj6kfjvz7xw"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -2388,8 +2389,8 @@ in an isolated environment, in separate namespaces.")
(license license:gpl3+)))
(define-public nar-herder
(let ((commit "cc1e9052785de0a08b05f85a7c7c400d95e339e7")
(revision "52"))
(let ((commit "44ca801e2352b64e19921c72177b35b2e49a7a09")
(revision "53"))
(package
(name "nar-herder")
(version (git-version "0" revision commit))
@@ -2400,7 +2401,7 @@ in an isolated environment, in separate namespaces.")
(commit commit)))
(sha256
(base32
"0qsyvmxr5kkayvvda8f5lmamz098vcjrfgpbwd5519fcw8xbnk8q"))
"15sc9rgna1fxsns1q9q1xlrqfqc4r5lcmmddw0af2lhll75kj7v2"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -2467,6 +2468,7 @@ in an isolated environment, in separate namespaces.")
;; Guile libraries are needed here for cross-compilation.
guile-next
guile-aws
guile-json-4
guile-gcrypt
guix
@@ -2481,7 +2483,8 @@ in an isolated environment, in separate namespaces.")
(list bash-minimal
guile-next))
(propagated-inputs
(list guile-json-4
(list guile-aws
guile-json-4
guile-gcrypt
guix
guile-fibers-next
@@ -2742,6 +2745,8 @@ cp -r /tmp/locale/*/en_US.*")))
(propagated-inputs (list glib-networking
gnupg
gsettings-desktop-schemas
;; Required for flatpak-validate-icon SVG validation.
(librsvg-for-system)
;; The following are listed in Requires.private of
;; `flatpak.pc'.
curl
+1 -1
View File
@@ -1798,7 +1798,7 @@ is the community-enhanced, \"jumbo\" version of John the Ripper.")
(home-page "https://github.com/hashcat/maskprocessor")
(synopsis "High-Performance word generator")
(description "Maskprocessor is a high-performance word generator with a
per-position configureable charset.")
per-position configurable charset.")
(license (list license:expat))))
(define-public fpm2
@@ -0,0 +1,43 @@
--- a/Makefile.in
+++ b/Makefile.in
@@ -265,15 +265,11 @@
amal.flags = -nc
amal.run = TOPDIR="$(DIR.top)" $(SHELL.bash) $(bin.make-amal) --quiet
libfossil.c: $(amal.deps)
$(amal.run) $(amal.flags)
-libfossil.h: libfossil.c
-all: libfossil.c
@if ENABLE_CXX
-libfossil.hpp: libfossil.c
-libfossil.c++: libfossil.c
amal.flags += -c++
@endif
.PHONY: amal
amal: libfossil.c
@@ -287,19 +283,16 @@
fossil uv sync
@endif
@endif
install: install-headers
-install-headers: libfossil.h $(install-dir.include)
- $(INSTALL.noexec) libfossil.h $(install-dir.include)
+install-headers: include/libfossil.h $(install-dir.include)
+ $(INSTALL.noexec) $< $(install-dir.include)
@if ENABLE_CXX
-libfossil++.hpp: libfossil.h
-libfossil++.cpp: libfossil++.hpp
-all: libfossil++.cpp
install-headers: install-headers++
-install-headers++: libfossil++.hpp $(install-dir.include)
- $(INSTALL.noexec) libfossil++.hpp $(install-dir.include)
+install-headers++: include/libfossil.hpp $(install-dir.include)
+ $(INSTALL.noexec) $< $(install-dir.include)
@endif # ENABLE_CXX
clean: clean-amalgamation
clean-amalgamation:
rm -f libfossil.c libfossil.h libfossil++.cpp libfossil++.hpp
rm -f libfossil-config.h libfossil-amalgamation.zip VERSION.h
@@ -0,0 +1,29 @@
Fix test_command_error for neovim 0.12.x.
In neovim 0.12.0, the error message for an invalid cursor position changed from
"Cursor position outside buffer" to "Invalid cursor line: out of range". Update
the test to accept both messages.
Taken from upstream commit d89b62ed622976c8d6dbc7733a99dac371b01cbf.
diff --git a/test/test_vim.py b/test/test_vim.py
index 8a76f5e..26e2fce 100644
--- a/test/test_vim.py
+++ b/test/test_vim.py
@@ -1,6 +1,7 @@
"""Tests interaction with neovim via Nvim API (with child process)."""
import os
+import re
import sys
import tempfile
from pathlib import Path
@@ -50,7 +51,7 @@ def test_command_output(vim: Nvim) -> None:
def test_command_error(vim: Nvim) -> None:
with pytest.raises(vim.error) as excinfo:
vim.current.window.cursor = -1, -1
- assert excinfo.value.args == ('Cursor position outside buffer',)
+ assert re.search(r"Cursor position outside buffer|Invalid cursor line", excinfo.value.args[0])
def test_eval(vim: Nvim) -> None:
@@ -0,0 +1,14 @@
Upstream-status: https://github.com/open-eid/DigiDoc4-Client/pull/1398
diff --git a/client/Application.cpp b/client/Application.cpp
index c979020..dac13d9 100644
--- a/client/Application.cpp
+++ b/client/Application.cpp
@@ -307,6 +307,7 @@ Application::Application( int &argc, char **argv )
{
setApplicationName(QStringLiteral("qdigidoc4"));
setApplicationVersion(QStringLiteral(VERSION_STR));
+ setDesktopFileName("ee.ria.qdigidoc4");
setOrganizationDomain(QStringLiteral("ria.ee"));
setOrganizationName(QStringLiteral("RIA"));
setWindowIcon(QIcon(QStringLiteral(":/images/Icon.svg")));
@@ -0,0 +1,21 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Subject: Move candle-onnx from exclude to members so cargo package can build it.
Date: 2026-03-01
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,6 +4,7 @@
"candle-datasets",
"candle-examples",
"candle-nn",
+ "candle-onnx",
"candle-pyo3",
"candle-transformers",
"candle-wasm-examples/*",
@@ -15,7 +16,6 @@
"candle-flash-attn",
"candle-kernels",
"candle-metal-kernels",
- "candle-onnx",
]
resolver = "2"
@@ -0,0 +1,299 @@
From 7a372a6914e9d9d6f0c914a1ca8cdff592c40593 Mon Sep 17 00:00:00 2001
From: Matt Jolly <kangie@gentoo.org>
Date: Thu, 12 Mar 2026 11:57:11 +1000
Subject: [PATCH] Update compiler patch for M147 beta
Signed-off-by: Matt Jolly <kangie@gentoo.org>
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -367,9 +367,6 @@ config("compiler") {
configs += [
# See the definitions below.
- ":clang_revision",
- ":rustc_revision",
- ":compiler_cpu_abi",
":compiler_codegen",
":compiler_deterministic",
":clang_warning_suppression",
@@ -1690,43 +1687,6 @@ config("compiler_deterministic") {
}
}
- # Makes builds independent of absolute file path.
- if (is_clang && strip_absolute_paths_from_debug_symbols) {
- # If debug option is given, clang includes $cwd in debug info by default.
- # For such build, this flag generates reproducible obj files even we use
- # different build directory like "out/feature_a" and "out/feature_b" if
- # we build same files with same compile flag.
- # Other paths are already given in relative, no need to normalize them.
-
- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
- # and -fcoverage-compilation-dir=.
- cflags += [ "-ffile-compilation-dir=." ]
-
- # Convert absolute paths to relative paths. Expands to, for example:
- # -file-prefix-map /path/to/chromium/src=../..
- swiftflags += [
- "-file-prefix-map",
- rebase_path("//.", "") + "=" + rebase_path("//.", root_build_dir),
- ]
- if (!is_win) {
- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
- }
-
- if (is_win && use_lld) {
- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
- # Absolutize source file paths for PDB. Pass the real build directory
- # if the pdb contains source-level debug information and if linker
- # reproducibility is not critical.
- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
- } else {
- # Use a fake fixed base directory for paths in the pdb to make the pdb
- # output fully deterministic and independent of the build directory.
- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
- }
- }
- }
-
# Tells the compiler not to use absolute paths when passing the default
# paths to the tools it invokes. We don't want this because we don't
# really need it and it can mess up the RBE cache entries.
@@ -1759,88 +1719,6 @@ config("compiler_deterministic") {
}
}
-config("clang_revision") {
- if (is_clang && clang_base_path == default_clang_base_path &&
- current_os != "zos") {
- _perform_consistency_checks = current_toolchain == default_toolchain
- if (llvm_force_head_revision) {
- _head_revision_stamp_path = "//third_party/llvm-build/force_head_revision"
- _head_revision = ""
- if (path_exists(_head_revision_stamp_path)) {
- _head_revision = read_file(_head_revision_stamp_path, "trim string")
- }
- assert(
- _head_revision != "",
- "llvm_force_head_revision=true, but no locally built version was detected.")
- _clang_revision = _head_revision
- } else {
- _clang_revision = read_file(
- "//third_party/llvm-build/Release+Asserts/cr_build_revision",
- "trim string")
-
- # Ensure that the synced clang version matches what's in git.
- if (_perform_consistency_checks) {
- # Parse the clang version from the Python script.
- _clang_version_lines = filter_include(
- read_file("//tools/clang/scripts/update.py", "list lines"),
- [ "CLANG_*REVISION = *" ])
- _py_revision =
- string_replace(_clang_version_lines[0], "CLANG_REVISION = '", "")
- _py_revision = string_replace(_py_revision, "'", "")
- _py_subrevision =
- string_replace(_clang_version_lines[1], "CLANG_SUB_REVISION = ", "")
- _expected_clang_revision = "$_py_revision-$_py_subrevision"
-
- # TODO(agrieve): Change filter_include to _clang_revision ==
- # _expected_clang_revision once angle & webrtc use a GCS DEPS entry
- # rather than a update.py runhook.
- assert(
- filter_include([ _clang_revision ],
- [
- _expected_clang_revision,
- "$_expected_clang_revision,*",
- ]) != [],
- "clang_revision=\"$_clang_revision\" but update.py expected \"$_expected_clang_revision\". Did you forget to gclient sync?")
- }
- }
-
- if (_perform_consistency_checks) {
- # Ensure that the revision matches the version major expected by GN.
- _versions_match = filter_include([ _clang_revision ],
- [ "llvmorg-$clang_version-*" ]) != []
- assert(
- _versions_match,
- "clang_revision=\"$_clang_revision\" but clang_version=\"$clang_version\". clang_version in build/toolchain/toolchain.gni is likely outdated.")
- }
-
- if (toolchain_has_rust && _perform_consistency_checks &&
- !rust_force_head_revision) {
- # Ensure that the synced rust version matches what's in git.
- _rust_revision_lines =
- filter_include(read_file("//tools/rust/update_rust.py", "list lines"),
- [ "RUST_*REVISION = *" ])
- _py_revision =
- string_replace(_rust_revision_lines[0], "RUST_REVISION = '", "")
- _py_revision = string_replace(_py_revision, "'", "")
- _py_subrevision =
- string_replace(_rust_revision_lines[1], "RUST_SUB_REVISION = ", "")
- _expected_rust_revision = "$_py_revision-$_py_subrevision"
-
- # Ensure the rust version matches the clang version.
- assert(
- filter_include([ rustc_revision ],
- [ "*-$_expected_rust_revision-*" ]) != [],
- "rustc_revision=\"$rustc_revision\" but update_rust.py expected \"$_expected_rust_revision\". Run \"gclient sync\"?")
- }
-
- # This is here so that all files get recompiled after a clang roll and
- # when turning clang on or off. (defines are passed via the command line,
- # and build system rebuild things when their commandline changes). Nothing
- # should ever read this define.
- defines = [ "CR_CLANG_REVISION=\"$_clang_revision\"" ]
- }
-}
-
# Controls the usage of a warning suppression mapping (WSM) file to suppress
# warnings based on the path of the file they come from. It's controlled by the
# `clang_warning_suppression_file` gn argument , which points to a text file
@@ -1896,18 +1774,6 @@ config("sanitize_c_array_bounds") {
}
}
-config("rustc_revision") {
- if (rustc_revision != "") {
- # Similar to the `clang_revision` config, this is here so that all `.rs`
- # sources get recompiled after a rustc roll. Nothing should ever read this
- # cfg. This will not be set if a custom toolchain is used.
- rustflags = [
- "--cfg",
- "cr_rustc_revision=\"$rustc_revision\"",
- ]
- }
-}
-
config("compiler_arm_fpu") {
if (current_cpu == "arm" && !is_ios) {
cflags = [ "-mfpu=neon" ]
@@ -2386,11 +2252,7 @@ config("chromium_code") {
defines = [ "_HAS_NODISCARD" ]
}
} else {
- cflags = [ "-Wall" ]
- if (is_clang) {
- # Enable extra warnings for chromium_code when we control the compiler.
- cflags += [ "-Wextra" ]
- }
+ cflags = []
# In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux.
@@ -2399,32 +2261,6 @@ config("chromium_code") {
"__STDC_FORMAT_MACROS",
]
- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
- current_cpu != "ppc64" && current_cpu != "mips" &&
- current_cpu != "mips64" && current_cpu != "riscv64" &&
- current_cpu != "loong64") {
- # Non-chromium code is not guaranteed to compile cleanly with
- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
- # disabled, so only do that for Release build.
- fortify_level = "2"
-
- # ChromeOS's toolchain supports a high-quality _FORTIFY_SOURCE=3
- # implementation with a few custom glibc patches. Use that if it's
- # available.
- if (is_chromeos_device) {
- fortify_level = "3"
- }
-
- # _FORTIFY_SOURCE=3 is available in glibc 2.34+. Enable it when building
- # with the sysroot where support is guaranteed. Clang is also required since
- # the system gcc is often patched to add _FORTIFY_SOURCE=2 which would conflict
- # with our definition.
- if (use_sysroot && is_clang) {
- fortify_level = "3"
- }
- defines += [ "_FORTIFY_SOURCE=" + fortify_level ]
- }
-
if (is_apple) {
cflags_objc = [ "-Wimplicit-retain-self" ]
cflags_objcc = [ "-Wimplicit-retain-self" ]
@@ -2848,7 +2684,8 @@ config("default_stack_frames") {
# [0]: https://pinpoint-dot-chromeperf.appspot.com/job/147634a8be0000
# [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000
# [2]: https://crrev.com/c/5447532
-config("optimize") {
+config("optimize") { }
+config("xoptimize") {
if (is_win) {
# clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for
# consistency with the other platforms.
@@ -2897,7 +2734,8 @@ config("optimize") {
}
# Turn off optimizations.
-config("no_optimize") {
+config("no_optimize") { }
+config("xno_optimize") {
if (is_win) {
cflags = [
"/Od", # Disable optimization.
@@ -2932,7 +2770,8 @@ config("no_optimize") {
# Turns up the optimization level. Used to explicitly enable -O2 instead of
# -Os for select targets on platforms that use optimize_for_size. No-op
# elsewhere.
-config("optimize_max") {
+config("optimize_max") { }
+config("xoptimize_max") {
ldflags = common_optimize_on_ldflags
if (is_win) {
# Favor speed over size, /O2 must be before the common flags.
@@ -2953,7 +2792,8 @@ config("optimize_max") {
#
# TODO(crbug.com/41259697) - rework how all of these configs are related
# so that we don't need this disclaimer.
-config("optimize_speed") {
+config("optimize_speed") { }
+config("xoptimize_speed") {
ldflags = common_optimize_on_ldflags
if (is_win) {
# Favor speed over size, /O2 must be before the common flags.
@@ -2970,7 +2810,8 @@ config("optimize_speed") {
rustflags = [ "-Copt-level=3" ]
}
-config("optimize_fuzzing") {
+config("optimize_fuzzing") { }
+config("xoptimize_fuzzing") {
cflags = [ "-O1" ] + common_optimize_on_cflags
rustflags = [ "-Copt-level=1" ]
ldflags = common_optimize_on_ldflags
@@ -3115,7 +2956,8 @@ config("split_dwarf") {
}
# Full symbols.
-config("symbols") {
+config("symbols") { }
+config("xsymbols") {
rustflags = []
configs = []
if (is_win) {
@@ -3275,7 +3117,8 @@ config("symbols") {
# Minimal symbols.
# This config guarantees to hold symbol for stack trace which are shown to user
# when crash happens in unittests running on buildbot.
-config("minimal_symbols") {
+config("minimal_symbols") { }
+config("xminimal_symbols") {
configs = []
rustflags = []
if (is_win) {
@@ -3355,7 +3198,8 @@ config("minimal_symbols") {
# This configuration contains function names only. That is, the compiler is
# told to not generate debug information and the linker then just puts function
# names in the final debug information.
-config("no_symbols") {
+config("no_symbols") { }
+config("xno_symbols") {
if (is_win) {
ldflags = [ "/DEBUG" ]
--
2.52.0
@@ -0,0 +1,46 @@
From da37bd781c0371e02ffc4877c3ac1b5f2020c207 Mon Sep 17 00:00:00 2001
From: Matt Jolly <kangie@gentoo.org>
Date: Tue, 17 Feb 2026 15:45:01 +1000
Subject: [PATCH] Handle case where `parsed_rustc_args.cfg` is empty
This may occur when (for example) using the unbundle toolchain
Signed-off-by: Matt Jolly <kangie@gentoo.org>
--- a/third_party/rust/cxx/chromium_integration/run_cxxbridge.py
+++ b/third_party/rust/cxx/chromium_integration/run_cxxbridge.py
@@ -44,18 +44,20 @@ def calculate_cxxbridge_args(unrecognized_script_args, rustc_print_cfg_path):
parser.add_argument("--cfg", action="append"),
parsed_rustc_args, _other_args = parser.parse_known_args(
args=unrecognized_script_args[:rustflags_separator])
- for cfg_arg in parsed_rustc_args.cfg:
- if "=" not in cfg_arg: # `buildflag_header.gni` only supports bool flags.
- # TODO(https://crbug.com/436606652): Stop using `_BUILDFLAG_NOT_SET_`
- # prefix and instead use `--check-cfg` in `run_cxxbridge.py` to
- # detect buildflag names.
- FALSE_PREFIX = "_BUILDFLAG_NOT_SET_"
- if cfg_arg.startswith(FALSE_PREFIX):
- flagname = cfg_arg[len(FALSE_PREFIX):]
- cxxbridge_args.append(f"--cfg={flagname}=false")
- else:
- flagname = cfg_arg
- cxxbridge_args.append(f"--cfg={flagname}=true")
+ # Unbundled toolchain may not have any `--cfg` flags
+ if parsed_rustc_args.cfg:
+ for cfg_arg in parsed_rustc_args.cfg:
+ if "=" not in cfg_arg: # `buildflag_header.gni` only supports bool flags.
+ # TODO(https://crbug.com/436606652): Stop using `_BUILDFLAG_NOT_SET_`
+ # prefix and instead use `--check-cfg` in `run_cxxbridge.py` to
+ # detect buildflag names.
+ FALSE_PREFIX = "_BUILDFLAG_NOT_SET_"
+ if cfg_arg.startswith(FALSE_PREFIX):
+ flagname = cfg_arg[len(FALSE_PREFIX):]
+ cxxbridge_args.append(f"--cfg={flagname}=false")
+ else:
+ flagname = cfg_arg
+ cxxbridge_args.append(f"--cfg={flagname}=true")
with open(rustc_print_cfg_path, 'r') as file:
for line in file:
--
2.52.0
@@ -1,21 +0,0 @@
From a665875b4013eed997bd042326a038e24f3296e7 Mon Sep 17 00:00:00 2001
From: Matt Jolly <kangie@gentoo.org>
Date: Thu, 10 Oct 2024 14:36:51 +1000
Subject: [PATCH] unbundle: add missing icu target
--- a/build/linux/unbundle/icu.gn
+++ b/build/linux/unbundle/icu.gn
@@ -65,6 +65,10 @@ group("icuuc_public") {
public_deps = [ ":icuuc" ]
}
+group("icui18n_hidden_visibility") {
+ public_deps = [ ":icuuc" ]
+}
+
shim_headers("icui18n_shim") {
root_path = "source/i18n"
headers = [
--
2.46.2
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,107 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Subject: Add non-dismissing notification action hooks.
Date: 2026-03-08
License: gpl3+
MessageNotification only supports primary and secondary buttons that always
dismiss the notification after running their handlers. That is too restrictive
for flows where the user needs to inspect something first and then return to the
same prompt.
Add a generic non-dismissing `more_info_on_click` action alongside the existing
URL-based more-info button. This keeps the notification component reusable for
"inspect first, decide second" workflows without forcing every caller to build a
custom notification view.
diff --git a/crates/workspace/src/notifications.rs b/crates/workspace/src/notifications.rs
index 84f479b77e..9e210cb554 100644
--- a/crates/workspace/src/notifications.rs
+++ b/crates/workspace/src/notifications.rs
@@ -714,6 +714,7 @@ pub mod simple_message_notification {
secondary_icon_color: Option<Color>,
secondary_on_click: Option<Arc<dyn Fn(&mut Window, &mut Context<Self>)>>,
more_info_message: Option<SharedString>,
+ more_info_on_click: Option<Arc<dyn Fn(&mut Window, &mut Context<Self>)>>,
more_info_url: Option<Arc<str>>,
show_close_button: bool,
show_suppress_button: bool,
@@ -758,6 +759,7 @@ pub mod simple_message_notification {
secondary_icon_color: None,
secondary_on_click: None,
more_info_message: None,
+ more_info_on_click: None,
more_info_url: None,
show_close_button: true,
show_suppress_button: true,
@@ -843,6 +845,22 @@ pub mod simple_message_notification {
self
}
+ pub fn more_info_on_click<F>(mut self, on_click: F) -> Self
+ where
+ F: 'static + Fn(&mut Window, &mut Context<Self>),
+ {
+ self.more_info_on_click = Some(Arc::new(on_click));
+ self
+ }
+
+ pub fn more_info_on_click_arc<F>(mut self, on_click: Arc<F>) -> Self
+ where
+ F: 'static + Fn(&mut Window, &mut Context<Self>),
+ {
+ self.more_info_on_click = Some(on_click);
+ self
+ }
+
pub fn more_info_url<S>(mut self, url: S) -> Self
where
S: Into<Arc<str>>,
@@ -946,20 +964,36 @@ pub mod simple_message_notification {
}))
.child(
h_flex().w_full().justify_end().children(
- self.more_info_message
- .iter()
- .zip(self.more_info_url.iter())
- .map(|(message, url)| {
- let url = url.clone();
- Button::new(message.clone(), message.clone())
- .label_size(LabelSize::Small)
- .icon(IconName::ArrowUpRight)
- .icon_size(IconSize::Indicator)
- .icon_color(Color::Muted)
- .on_click(cx.listener(move |_, _, _, cx| {
+ self.more_info_message.iter().filter_map(|message| {
+ let more_info_on_click = self.more_info_on_click.clone();
+ let more_info_url = self.more_info_url.clone();
+
+ if more_info_on_click.is_none() && more_info_url.is_none() {
+ return None;
+ }
+
+ let mut button = Button::new(message.clone(), message.clone())
+ .label_size(LabelSize::Small)
+ .icon(IconName::ArrowUpRight)
+ .icon_size(IconSize::Indicator)
+ .icon_color(Color::Muted);
+
+ button = match (more_info_on_click, more_info_url) {
+ (Some(on_click), _) => button.on_click(cx.listener(
+ move |_, _, window, cx| {
+ (on_click)(window, cx);
+ },
+ )),
+ (None, Some(url)) => button.on_click(cx.listener(
+ move |_, _, _, cx| {
cx.open_url(&url);
- }))
- }),
+ },
+ )),
+ (None, None) => button,
+ };
+
+ Some(button)
+ }),
),
),
)
@@ -0,0 +1,65 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Subject: Collapse multi-line git dependency entries to single lines
Date: 2026-03-01
License: expat
Collapse multi-line git dependency entries to single lines so that
line-based substitute* patterns can process them.
--- a/Cargo.toml 2026-03-01 19:09:53.710020628 +0000
+++ b/Cargo.toml 2026-03-01 19:20:31.697337662 +0000
@@ -626,15 +626,7 @@
rayon = "1.8"
regex = "1.5"
# WARNING: If you change this, you must also publish a new version of zed-reqwest to crates.io
-reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662463bda39148ba154100dd44d3fba5873a4", default-features = false, features = [
- "charset",
- "http2",
- "macos-system-configuration",
- "multipart",
- "rustls-tls-native-roots",
- "socks",
- "stream",
-], package = "zed-reqwest", version = "0.12.15-zed" }
+reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662463bda39148ba154100dd44d3fba5873a4", default-features = false, features = ["charset", "http2", "macos-system-configuration", "multipart", "rustls-tls-native-roots", "socks", "stream"], package = "zed-reqwest", version = "0.12.15-zed" }
rsa = "0.9.6"
runtimelib = { version = "1.2.0", default-features = false, features = [
"async-dispatcher-runtime", "aws-lc-rs"
--- a/crates/gpui/Cargo.toml 2026-03-01 19:12:33.129039363 +0000
+++ b/crates/gpui/Cargo.toml 2026-03-01 19:20:33.133327405 +0000
@@ -167,9 +167,7 @@
cosmic-text = { version = "0.17.0", optional = true }
swash = { version = "0.2.6" }
# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.io
-font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", features = [
- "source-fontconfig-dlopen",
-], optional = true }
+font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", features = ["source-fontconfig-dlopen"], optional = true }
calloop = "0.14.3"
filedescriptor = { version = "0.8.2", optional = true }
open = { version = "5.2.0", optional = true }
@@ -207,10 +205,7 @@
"sync",
], optional = true }
# WARNING: If you change this, you must also publish a new version of zed-xim to crates.io
-xim = { git = "https://github.com/zed-industries/xim-rs.git", rev = "16f35a2c881b815a2b6cdfd6687988e84f8447d8" , features = [
- "x11rb-xcb",
- "x11rb-client",
-], package = "zed-xim", version = "0.4.0-zed", optional = true }
+xim = { git = "https://github.com/zed-industries/xim-rs.git", rev = "16f35a2c881b815a2b6cdfd6687988e84f8447d8" , features = ["x11rb-xcb", "x11rb-client"], package = "zed-xim", version = "0.4.0-zed", optional = true }
x11-clipboard = { version = "0.9.3", optional = true }
[target.'cfg(target_os = "windows")'.dependencies]
--- a/crates/livekit_client/Cargo.toml 2026-03-01 19:12:33.133661336 +0000
+++ b/crates/livekit_client/Cargo.toml 2026-03-01 19:20:33.893321975 +0000
@@ -46,9 +46,7 @@
[target.'cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))'.dependencies]
libwebrtc = { rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d", git = "https://github.com/zed-industries/livekit-rust-sdks" }
-livekit = { rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d", git = "https://github.com/zed-industries/livekit-rust-sdks", features = [
- "__rustls-tls"
-] }
+livekit = { rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d", git = "https://github.com/zed-industries/livekit-rust-sdks", features = ["__rustls-tls"] }
[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "windows"))'.dependencies]
scap.workspace = true
@@ -0,0 +1,31 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Subject: Disable dlopen for wayland-backend and fontconfig in gpui.
Date: 2026-03-01
License: ASL2.0
Remove the "dlopen" feature from wayland-backend and the
"source-fontconfig-dlopen" feature from zed-font-kit so that libwayland
and libfontconfig are linked directly rather than loaded at runtime via
dlopen. This ensures these dependencies are visible to the package
manager and avoids runtime failures when the libraries are not in the
dlopen search path.
--- a/crates/gpui/Cargo.toml 2026-03-01 21:21:38.661240897 +0000
+++ b/crates/gpui/Cargo.toml 2026-03-01 21:23:00.282205935 +0000
@@ -167,7 +167,7 @@
cosmic-text = { version = "0.17.0", optional = true }
swash = { version = "0.2.6" }
# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.io
-font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", features = ["source-fontconfig-dlopen"], optional = true }
+font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "110523127440aefb11ce0cf280ae7c5071337ec5", package = "zed-font-kit", version = "0.14.1-zed", optional = true }
calloop = "0.14.3"
filedescriptor = { version = "0.8.2", optional = true }
open = { version = "5.2.0", optional = true }
@@ -177,7 +177,6 @@
calloop-wayland-source = { version = "0.4.1", optional = true }
wayland-backend = { version = "0.3.3", features = [
"client_system",
- "dlopen",
], optional = true }
wayland-client = { version = "0.31.11", optional = true }
wayland-cursor = { version = "0.31.11", optional = true }
@@ -0,0 +1,113 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Subject: Exclude libwebrtc dependency from audio crate on Linux.
Date: 2026-03-01
The audio crate conditionally depends on libwebrtc for echo cancellation
on platforms that have it. It already cfg-guards the libwebrtc usage for
Windows-GNU and FreeBSD. Add target_os = "linux" to those cfg conditions
so libwebrtc is not required on Linux either. The rest of the audio crate
(sound playback, output streams, end_call) continues to work without it.
--- a/crates/audio/Cargo.toml 2026-03-01 21:21:38.652107544 +0000
+++ b/crates/audio/Cargo.toml 2026-03-01 21:22:20.494478427 +0000
@@ -29,5 +29,5 @@
thiserror.workspace = true
util.workspace = true
-[target.'cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))'.dependencies]
+[target.'cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd", target_os = "linux")))'.dependencies]
libwebrtc = { rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d", git = "https://github.com/zed-industries/livekit-rust-sdks" }
--- a/crates/audio/src/audio.rs 2026-03-01 21:21:38.656793329 +0000
+++ b/crates/audio/src/audio.rs 2026-03-01 21:40:18.939230433 +0000
@@ -6,7 +6,7 @@
};
use gpui::{App, AsyncApp, BackgroundExecutor, BorrowAppContext, Global};
-#[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))]
+#[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd", target_os = "linux")))]
mod non_windows_and_freebsd_deps {
pub(super) use cpal::Sample;
pub(super) use libwebrtc::native::apm;
@@ -15,7 +15,7 @@
pub(super) use std::sync::Arc;
}
-#[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))]
+#[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd", target_os = "linux")))]
use non_windows_and_freebsd_deps::*;
use rodio::{
@@ -102,7 +102,7 @@
pub struct Audio {
output_handle: Option<MixerDeviceSink>,
- #[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))]
+ #[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd", target_os = "linux")))]
pub echo_canceller: Arc<Mutex<apm::AudioProcessingModule>>,
source_cache: HashMap<Sound, Buffered<Decoder<Cursor<Vec<u8>>>>>,
replays: replays::Replays,
@@ -114,7 +114,7 @@
output_handle: Default::default(),
#[cfg(not(any(
all(target_os = "windows", target_env = "gnu"),
- target_os = "freebsd"
+ target_os = "freebsd", target_os = "linux"
)))]
echo_canceller: Arc::new(Mutex::new(apm::AudioProcessingModule::new(
true, false, false, false,
@@ -140,13 +140,13 @@
// The webrtc apm is not yet compiling for windows & freebsd
#[cfg(not(any(
any(all(target_os = "windows", target_env = "gnu")),
- target_os = "freebsd"
+ target_os = "freebsd", target_os = "linux"
)))]
let echo_canceller = Arc::clone(&self.echo_canceller);
#[cfg(not(any(
any(all(target_os = "windows", target_env = "gnu")),
- target_os = "freebsd"
+ target_os = "freebsd", target_os = "linux"
)))]
{
let source = rodio::source::Zero::new(CHANNEL_COUNT, SAMPLE_RATE)
@@ -166,10 +166,10 @@
#[cfg(any(
any(all(target_os = "windows", target_env = "gnu")),
- target_os = "freebsd"
+ target_os = "freebsd", target_os = "linux"
))]
{
- let source = rodio::source::Zero::<f32>::new(CHANNEL_COUNT, SAMPLE_RATE);
+ let source = rodio::source::Zero::new(CHANNEL_COUNT, SAMPLE_RATE);
output_handle.mixer().add(source);
}
@@ -190,7 +190,7 @@
self.replays.replays_to_tar(executor)
}
- #[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))]
+ #[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd", target_os = "linux")))]
pub fn open_microphone(voip_parts: VoipParts) -> anyhow::Result<impl Source> {
let stream = open_input_stream(voip_parts.input_audio_device)?;
let stream = stream
@@ -319,7 +319,7 @@
}
}
-#[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))]
+#[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd", target_os = "linux")))]
pub struct VoipParts {
echo_canceller: Arc<Mutex<apm::AudioProcessingModule>>,
replays: replays::Replays,
@@ -327,7 +327,7 @@
input_audio_device: Option<DeviceId>,
}
-#[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))]
+#[cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd", target_os = "linux")))]
impl VoipParts {
pub fn new(cx: &AsyncApp) -> anyhow::Result<Self> {
let (apm, replays) = cx.read_default_global::<Audio, _>(|audio, _| {
@@ -0,0 +1,320 @@
From: Danny Milosavljevic <dannym@friendly-machines.com>
Date: Fri, 6 Mar 2026 21:06:00 +0000
Subject: [PATCH] sqlez: Fix named in-memory SQLite mode
License: expat
Zed's named "in-memory" SQLite databases were being opened with
URI-looking paths such as `file:DB?mode=memory&cache=shared` but without
`SQLITE_OPEN_URI`. SQLite therefore treated those strings as literal
filenames, which leaked test databases to disk and defeated the intended
shared-memory behavior.
Fix that by opening named in-memory databases with `SQLITE_OPEN_URI` so
`mode=memory&cache=shared` is interpreted correctly, and add coverage to
ensure no literal backing files are created.
That URI fix makes shared-cache schema locking real, which in turn
exposes a second bug in `ThreadSafeConnection`: per-thread connection
initialization can race schema setup on another connection to the same
named in-memory database and fail while preparing `PRAGMA foreign_keys`.
Fix that by retrying connection initialization queries when SQLite
reports a transient schema/database lock, and add a regression test for
that case.
diff --git a/crates/sqlez/src/connection.rs b/crates/sqlez/src/connection.rs
index 53f0d4e261..3dc530757a 100644
--- a/crates/sqlez/src/connection.rs
+++ b/crates/sqlez/src/connection.rs
@@ -18,7 +18,7 @@ pub struct Connection {
unsafe impl Send for Connection {}
impl Connection {
- pub(crate) fn open(uri: &str, persistent: bool) -> Result<Self> {
+ fn open_with_flags(uri: &str, persistent: bool, flags: i32) -> Result<Self> {
let mut connection = Self {
sqlite3: ptr::null_mut(),
persistent,
@@ -26,7 +26,6 @@ impl Connection {
_sqlite: PhantomData,
};
- let flags = SQLITE_OPEN_CREATE | SQLITE_OPEN_NOMUTEX | SQLITE_OPEN_READWRITE;
unsafe {
sqlite3_open_v2(
CString::new(uri)?.as_ptr(),
@@ -44,6 +43,14 @@ impl Connection {
Ok(connection)
}
+ pub(crate) fn open(uri: &str, persistent: bool) -> Result<Self> {
+ Self::open_with_flags(
+ uri,
+ persistent,
+ SQLITE_OPEN_CREATE | SQLITE_OPEN_NOMUTEX | SQLITE_OPEN_READWRITE,
+ )
+ }
+
/// Attempts to open the database at uri. If it fails, a shared memory db will be opened
/// instead.
pub fn open_file(uri: &str) -> Self {
@@ -51,13 +58,20 @@ impl Connection {
}
pub fn open_memory(uri: Option<&str>) -> Self {
- let in_memory_path = if let Some(uri) = uri {
- format!("file:{}?mode=memory&cache=shared", uri)
+ if let Some(uri) = uri {
+ let in_memory_path = format!("file:{}?mode=memory&cache=shared", uri);
+ return Self::open_with_flags(
+ &in_memory_path,
+ false,
+ SQLITE_OPEN_CREATE
+ | SQLITE_OPEN_NOMUTEX
+ | SQLITE_OPEN_READWRITE
+ | SQLITE_OPEN_URI,
+ )
+ .expect("Could not create fallback in memory db");
} else {
- ":memory:".to_string()
- };
-
- Self::open(&in_memory_path, false).expect("Could not create fallback in memory db")
+ Self::open(":memory:", false).expect("Could not create fallback in memory db")
+ }
}
pub fn persistent(&self) -> bool {
@@ -265,9 +279,50 @@ impl Drop for Connection {
mod test {
use anyhow::Result;
use indoc::indoc;
+ use std::{
+ fs,
+ sync::atomic::{AtomicUsize, Ordering},
+ };
use crate::connection::Connection;
+ static NEXT_NAMED_MEMORY_DB_ID: AtomicUsize = AtomicUsize::new(0);
+
+ fn unique_named_memory_db(prefix: &str) -> String {
+ format!(
+ "{prefix}_{}_{}",
+ std::process::id(),
+ NEXT_NAMED_MEMORY_DB_ID.fetch_add(1, Ordering::Relaxed)
+ )
+ }
+
+ fn literal_named_memory_paths(name: &str) -> [String; 3] {
+ let main = format!("file:{name}?mode=memory&cache=shared");
+ [main.clone(), format!("{main}-wal"), format!("{main}-shm")]
+ }
+
+ struct NamedMemoryPathGuard {
+ paths: [String; 3],
+ }
+
+ impl NamedMemoryPathGuard {
+ fn new(name: &str) -> Self {
+ let paths = literal_named_memory_paths(name);
+ for path in &paths {
+ let _ = fs::remove_file(path);
+ }
+ Self { paths }
+ }
+ }
+
+ impl Drop for NamedMemoryPathGuard {
+ fn drop(&mut self) {
+ for path in &self.paths {
+ let _ = fs::remove_file(path);
+ }
+ }
+ }
+
#[test]
fn string_round_trips() -> Result<()> {
let connection = Connection::open_memory(Some("string_round_trips"));
@@ -382,6 +437,41 @@ mod test {
assert_eq!(read_blobs, vec![blob]);
}
+ #[test]
+ fn named_memory_connections_do_not_create_literal_backing_files() {
+ let name = unique_named_memory_db("named_memory_connections_do_not_create_backing_files");
+ let guard = NamedMemoryPathGuard::new(&name);
+
+ let connection1 = Connection::open_memory(Some(&name));
+ connection1
+ .exec(indoc! {"
+ CREATE TABLE shared (
+ value INTEGER
+ )"})
+ .unwrap()()
+ .unwrap();
+ connection1
+ .exec("INSERT INTO shared (value) VALUES (7)")
+ .unwrap()()
+ .unwrap();
+
+ let connection2 = Connection::open_memory(Some(&name));
+ assert_eq!(
+ connection2
+ .select_row::<i64>("SELECT value FROM shared")
+ .unwrap()()
+ .unwrap(),
+ Some(7)
+ );
+
+ for path in &guard.paths {
+ assert!(
+ fs::metadata(path).is_err(),
+ "named in-memory database unexpectedly created backing file {path}"
+ );
+ }
+ }
+
#[test]
fn multi_step_statement_works() {
let connection = Connection::open_memory(Some("multi_step_statement_works"));
diff --git a/crates/sqlez/src/thread_safe_connection.rs b/crates/sqlez/src/thread_safe_connection.rs
index 966f14a9c2..9d868fcba4 100644
--- a/crates/sqlez/src/thread_safe_connection.rs
+++ b/crates/sqlez/src/thread_safe_connection.rs
@@ -7,12 +7,15 @@ use std::{
ops::Deref,
sync::{Arc, LazyLock},
thread,
+ time::Duration,
};
use thread_local::ThreadLocal;
use crate::{connection::Connection, domain::Migrator, util::UnboundedSyncSender};
const MIGRATION_RETRIES: usize = 10;
+const CONNECTION_INITIALIZE_RETRIES: usize = 50;
+const CONNECTION_INITIALIZE_RETRY_DELAY: Duration = Duration::from_millis(1);
type QueuedWrite = Box<dyn 'static + Send + FnOnce()>;
type WriteQueue = Box<dyn 'static + Send + Sync + Fn(QueuedWrite)>;
@@ -197,21 +200,50 @@ impl ThreadSafeConnection {
Self::open_shared_memory(uri)
};
+ if let Some(initialize_query) = connection_initialize_query {
+ let mut last_error = None;
+ let initialized = (0..CONNECTION_INITIALIZE_RETRIES).any(|attempt| {
+ match connection.exec(initialize_query).and_then(|mut statement| statement()) {
+ Ok(()) => true,
+ Err(err)
+ if is_schema_lock_error(&err)
+ && attempt + 1 < CONNECTION_INITIALIZE_RETRIES =>
+ {
+ last_error = Some(err);
+ thread::sleep(CONNECTION_INITIALIZE_RETRY_DELAY);
+ false
+ }
+ Err(err) => {
+ panic!(
+ "Initialize query failed to execute: {}\n\nCaused by:\n{err:#}",
+ initialize_query
+ )
+ }
+ }
+ });
+
+ if !initialized {
+ let err = last_error.expect("connection initialization retries should record the last error");
+ panic!(
+ "Initialize query failed to execute after retries: {}\n\nCaused by:\n{err:#}",
+ initialize_query
+ );
+ }
+ }
+
// Disallow writes on the connection. The only writes allowed for thread safe connections
// are from the background thread that can serialize them.
*connection.write.get_mut() = false;
- if let Some(initialize_query) = connection_initialize_query {
- connection.exec(initialize_query).unwrap_or_else(|_| {
- panic!("Initialize query failed to execute: {}", initialize_query)
- })()
- .unwrap()
- }
-
connection
}
}
+fn is_schema_lock_error(err: &anyhow::Error) -> bool {
+ let message = format!("{err:#}");
+ message.contains("database schema is locked") || message.contains("database is locked")
+}
+
impl ThreadSafeConnection {
/// Special constructor for ThreadSafeConnection which disallows db initialization and migrations.
/// This allows construction to be infallible and not write to the db.
@@ -282,7 +314,7 @@ mod test {
use indoc::indoc;
use std::ops::Deref;
- use std::thread;
+ use std::{thread, time::Duration};
use crate::{domain::Domain, thread_safe_connection::ThreadSafeConnection};
@@ -318,38 +350,21 @@ mod test {
}
#[test]
- #[should_panic]
- fn wild_zed_lost_failure() {
- enum TestWorkspace {}
- impl Domain for TestWorkspace {
- const NAME: &str = "workspace";
-
- const MIGRATIONS: &[&str] = &["
- CREATE TABLE workspaces(
- workspace_id INTEGER PRIMARY KEY,
- dock_visible INTEGER, -- Boolean
- dock_anchor TEXT, -- Enum: 'Bottom' / 'Right' / 'Expanded'
- dock_pane INTEGER, -- NULL indicates that we don't have a dock pane yet
- timestamp TEXT DEFAULT CURRENT_TIMESTAMP NOT NULL,
- FOREIGN KEY(dock_pane) REFERENCES panes(pane_id),
- FOREIGN KEY(active_pane) REFERENCES panes(pane_id)
- ) STRICT;
-
- CREATE TABLE panes(
- pane_id INTEGER PRIMARY KEY,
- workspace_id INTEGER NOT NULL,
- active INTEGER NOT NULL, -- Boolean
- FOREIGN KEY(workspace_id) REFERENCES workspaces(workspace_id)
- ON DELETE CASCADE
- ON UPDATE CASCADE
- ) STRICT;
- "];
- }
+ fn connection_initialize_query_retries_transient_schema_lock() {
+ let name = "connection_initialize_query_retries_transient_schema_lock";
+ let locking_connection = crate::connection::Connection::open_memory(Some(name));
+ locking_connection.exec("BEGIN IMMEDIATE").unwrap()().unwrap();
+ locking_connection
+ .exec("CREATE TABLE test(col TEXT)")
+ .unwrap()()
+ .unwrap();
- let builder =
- ThreadSafeConnection::builder::<TestWorkspace>("wild_zed_lost_failure", false)
- .with_connection_initialize_query("PRAGMA FOREIGN_KEYS=true");
+ let releaser = thread::spawn(move || {
+ thread::sleep(Duration::from_millis(10));
+ locking_connection.exec("ROLLBACK").unwrap()().unwrap();
+ });
- smol::block_on(builder.build()).unwrap();
+ ThreadSafeConnection::create_connection(false, name, Some("PRAGMA FOREIGN_KEYS=true"));
+ releaser.join().unwrap();
}
}
@@ -0,0 +1,328 @@
From: Danny Milosavljevic <dannym@friendly-machines.com>
Date: Fri, 6 Mar 2026 21:22:41 +0000
Subject: [PATCH] db: Scope default test databases to the current test
License: expat
In test builds, the default database statics use fixed names such as
`DB` and `KEY_VALUE_STORE`. That makes unrelated tests in the same test
binary share the same named in-memory databases, which leaks state
across tests and makes failures depend on execution order and
concurrency.
A first attempt at isolating those statics by thread is not sufficient:
one test can legitimately use multiple threads, and splitting the test's
workspace state across separate databases breaks parent-child foreign key
relationships.
Fix this by scoping the default test databases by the current test name
instead. The `gpui::test` harness now installs the current test name on
the executing thread, the test dispatcher propagates that scope to its
realtime worker threads, and the default test statics resolve one shared
database wrapper per test scope rather than per thread.
That keeps sharing within a single test where it is intentional, while
stopping hidden cross-test state leakage.
diff --git a/crates/db/src/db.rs b/crates/db/src/db.rs
index 36f0365af9..3ff8499c1d 100644
--- a/crates/db/src/db.rs
+++ b/crates/db/src/db.rs
@@ -19,6 +19,12 @@ use std::future::Future;
use std::path::Path;
use std::sync::atomic::AtomicBool;
use std::sync::{LazyLock, atomic::Ordering};
+#[cfg(any(test, feature = "test-support"))]
+use std::collections::HashMap;
+#[cfg(any(test, feature = "test-support"))]
+use std::sync::Mutex;
+#[cfg(any(test, feature = "test-support"))]
+use std::{borrow::Cow, ops::Deref};
use util::{ResultExt, maybe};
use zed_env_vars::ZED_STATELESS;
@@ -97,7 +103,8 @@ async fn open_fallback_db<M: Migrator>() -> ThreadSafeConnection {
pub async fn open_test_db<M: Migrator>(db_name: &str) -> ThreadSafeConnection {
use sqlez::thread_safe_connection::locking_queue;
- ThreadSafeConnection::builder::<M>(db_name, false)
+ let db_name = scoped_test_db_name(db_name);
+ ThreadSafeConnection::builder::<M>(&db_name, false)
.with_db_initialization_query(DB_INITIALIZE_QUERY)
.with_connection_initialize_query(CONNECTION_INITIALIZE_QUERY)
// Serialize queued writes via a mutex and run them synchronously
@@ -107,6 +114,69 @@ pub async fn open_test_db<M: Migrator>(db_name: &str) -> ThreadSafeConnection {
.unwrap()
}
+#[cfg(any(test, feature = "test-support"))]
+fn scoped_test_db_name(db_name: &str) -> Cow<'_, str> {
+ let Some(test_name) = current_test_scope_name() else {
+ return Cow::Borrowed(db_name);
+ };
+
+ let mut scoped_name = String::with_capacity(db_name.len() + test_name.len() + 2);
+ scoped_name.push_str(db_name);
+ scoped_name.push('@');
+ for ch in test_name.chars() {
+ if ch.is_ascii_alphanumeric() || matches!(ch, '-' | '_' | '.') {
+ scoped_name.push(ch);
+ } else {
+ scoped_name.push('_');
+ }
+ }
+
+ Cow::Owned(scoped_name)
+}
+
+#[cfg(any(test, feature = "test-support"))]
+fn current_test_scope_name() -> Option<String> {
+ if let Some(test_name) = gpui::current_test_name() {
+ return Some(test_name.to_string());
+ }
+
+ let current_thread = std::thread::current();
+ if let Some(test_name) = current_thread.name() {
+ return Some(test_name.to_string());
+ }
+
+ Some(format!("thread_{:?}", current_thread.id()))
+}
+
+#[cfg(any(test, feature = "test-support"))]
+pub struct TestScopedStatic<T: Send + Sync + 'static> {
+ initializer: fn() -> T,
+ values: Mutex<HashMap<String, &'static T>>,
+}
+
+#[cfg(any(test, feature = "test-support"))]
+impl<T: Send + Sync + 'static> TestScopedStatic<T> {
+ pub fn new(initializer: fn() -> T) -> Self {
+ Self {
+ initializer,
+ values: Mutex::new(HashMap::new()),
+ }
+ }
+}
+
+#[cfg(any(test, feature = "test-support"))]
+impl<T: Send + Sync + 'static> Deref for TestScopedStatic<T> {
+ type Target = T;
+
+ fn deref(&self) -> &Self::Target {
+ let scope_name = current_test_scope_name().unwrap_or_else(|| "default".to_string());
+ let mut values = self.values.lock().unwrap();
+ *values
+ .entry(scope_name)
+ .or_insert_with(|| Box::leak(Box::new((self.initializer)())))
+ }
+}
+
/// Implements a basic DB wrapper for a given domain
///
/// Arguments:
@@ -126,16 +196,23 @@ macro_rules! static_connection {
impl $t {
#[cfg(any(test, feature = "test-support"))]
- pub async fn open_test_db(name: &'static str) -> Self {
+ pub async fn open_test_db(name: &str) -> Self {
$t($crate::open_test_db::<$t>(name).await)
}
}
#[cfg(any(test, feature = "test-support"))]
- pub static $id: std::sync::LazyLock<$t> = std::sync::LazyLock::new(|| {
- #[allow(unused_parens)]
- $t($crate::smol::block_on($crate::open_test_db::<($($d,)* $t)>(stringify!($id))))
- });
+ pub static $id: std::sync::LazyLock<$crate::TestScopedStatic<$t>> =
+ std::sync::LazyLock::new(|| {
+ fn initializer() -> $t {
+ #[allow(unused_parens)]
+ $t($crate::smol::block_on(
+ $crate::open_test_db::<($($d,)* $t)>(stringify!($id))
+ ))
+ }
+
+ $crate::TestScopedStatic::new(initializer)
+ });
#[cfg(not(any(test, feature = "test-support")))]
pub static $id: std::sync::LazyLock<$t> = std::sync::LazyLock::new(|| {
@@ -161,9 +238,10 @@ where
#[cfg(test)]
mod tests {
+ use anyhow::Result;
use std::thread;
- use sqlez::domain::Domain;
+ use sqlez::{domain::Domain, thread_safe_connection::ThreadSafeConnection};
use sqlez_macros::sql;
use crate::open_db;
@@ -295,4 +373,64 @@ mod tests {
assert!(guard.join().is_ok());
}
}
+
+ pub struct ScopedStaticDb(ThreadSafeConnection);
+
+ impl Domain for ScopedStaticDb {
+ const NAME: &str = "test_scoped_static_db";
+ const MIGRATIONS: &[&str] = &[sql!(
+ CREATE TABLE IF NOT EXISTS scoped_values(
+ value INTEGER NOT NULL
+ ) STRICT;
+ )];
+ }
+
+ crate::static_connection!(SCOPED_STATIC_DB, ScopedStaticDb, []);
+
+ impl ScopedStaticDb {
+ fn replace_value(&self, value: i64) -> Result<()> {
+ smol::block_on(self.write(move |connection| {
+ connection.exec("DELETE FROM scoped_values")?()?;
+ connection
+ .exec_bound("INSERT INTO scoped_values(value) VALUES (?)")
+ ?(value)?;
+ anyhow::Ok(())
+ }))
+ }
+
+ fn read_value(&self) -> Result<Option<i64>> {
+ self.select_row::<i64>("SELECT value FROM scoped_values").unwrap()()
+ }
+ }
+
+ #[test]
+ fn static_test_connections_are_scoped_by_test_name() {
+ gpui::with_test_name(Some("static_test_connections_are_scoped_by_test_name_a"), || {
+ assert_eq!(SCOPED_STATIC_DB.read_value().unwrap(), None);
+ SCOPED_STATIC_DB.replace_value(7).unwrap();
+ assert_eq!(SCOPED_STATIC_DB.read_value().unwrap(), Some(7));
+ });
+
+ gpui::with_test_name(Some("static_test_connections_are_scoped_by_test_name_b"), || {
+ assert_eq!(SCOPED_STATIC_DB.read_value().unwrap(), None);
+ SCOPED_STATIC_DB.replace_value(11).unwrap();
+ assert_eq!(SCOPED_STATIC_DB.read_value().unwrap(), Some(11));
+ });
+ }
+
+ #[test]
+ fn static_test_connections_share_state_across_threads_with_same_test_name() {
+ gpui::with_test_name(
+ Some("static_test_connections_share_state_across_threads_with_same_test_name"),
+ || {
+ SCOPED_STATIC_DB.replace_value(13).unwrap();
+
+ let test_name = gpui::current_test_name();
+ let thread = std::thread::spawn(move || {
+ gpui::with_test_name(test_name, || SCOPED_STATIC_DB.read_value().unwrap())
+ });
+ assert_eq!(thread.join().unwrap(), Some(13));
+ },
+ );
+ }
}
diff --git a/crates/gpui/src/platform/test/dispatcher.rs b/crates/gpui/src/platform/test/dispatcher.rs
index fc3f7f253a..0d98b082ca 100644
--- a/crates/gpui/src/platform/test/dispatcher.rs
+++ b/crates/gpui/src/platform/test/dispatcher.rs
@@ -136,8 +136,9 @@ impl PlatformDispatcher for TestDispatcher {
}
fn spawn_realtime(&self, f: Box<dyn FnOnce() + Send>) {
+ let test_name = crate::current_test_name();
std::thread::spawn(move || {
- f();
+ crate::with_test_name(test_name, f);
});
}
}
diff --git a/crates/gpui/src/test.rs b/crates/gpui/src/test.rs
index 9f8fd8b198..469affdc1c 100644
--- a/crates/gpui/src/test.rs
+++ b/crates/gpui/src/test.rs
@@ -29,11 +29,44 @@ use crate::{Entity, Subscription, TestAppContext, TestDispatcher};
use futures::StreamExt as _;
use smol::channel;
use std::{
+ cell::Cell,
env,
panic::{self, RefUnwindSafe},
pin::Pin,
};
+thread_local! {
+ static CURRENT_TEST_NAME: Cell<Option<&'static str>> = const { Cell::new(None) };
+}
+
+/// Returns the test name currently associated with this thread, if any.
+pub fn current_test_name() -> Option<&'static str> {
+ CURRENT_TEST_NAME.with(Cell::get)
+}
+
+/// Runs the closure with the given test name installed for the current thread.
+pub fn with_test_name<R>(name: Option<&'static str>, f: impl FnOnce() -> R) -> R {
+ CURRENT_TEST_NAME.with(|current_name| {
+ struct RestoreTestName<'a> {
+ current_name: &'a Cell<Option<&'static str>>,
+ previous_name: Option<&'static str>,
+ }
+
+ impl Drop for RestoreTestName<'_> {
+ fn drop(&mut self) {
+ self.current_name.set(self.previous_name);
+ }
+ }
+
+ let previous_name = current_name.replace(name);
+ let _restore = RestoreTestName {
+ current_name,
+ previous_name,
+ };
+ f()
+ })
+}
+
/// Run the given test function with the configured parameters.
/// This is intended for use with the `gpui::test` macro
/// and generally should not be used directly.
diff --git a/crates/gpui_macros/src/test.rs b/crates/gpui_macros/src/test.rs
index 490ea07fee..3abcaad3ae 100644
--- a/crates/gpui_macros/src/test.rs
+++ b/crates/gpui_macros/src/test.rs
@@ -191,10 +191,12 @@ fn generate_test_function(
&[#seeds],
#max_retries,
&mut |dispatcher, _seed| {
- let foreground_executor = gpui::ForegroundExecutor::new(std::sync::Arc::new(dispatcher.clone()));
- #cx_vars
- foreground_executor.block_test(#inner_fn_name(#inner_fn_args));
- #cx_teardowns
+ gpui::with_test_name(Some(stringify!(#outer_fn_name)), || {
+ let foreground_executor = gpui::ForegroundExecutor::new(std::sync::Arc::new(dispatcher.clone()));
+ #cx_vars
+ foreground_executor.block_test(#inner_fn_name(#inner_fn_args));
+ #cx_teardowns
+ })
},
#on_failure_fn_name
);
@@ -274,9 +276,11 @@ fn generate_test_function(
&[#seeds],
#max_retries,
&mut |dispatcher, _seed| {
- #cx_vars
- #inner_fn_name(#inner_fn_args);
- #cx_teardowns
+ gpui::with_test_name(Some(stringify!(#outer_fn_name)), || {
+ #cx_vars
+ #inner_fn_name(#inner_fn_args);
+ #cx_teardowns
+ })
},
#on_failure_fn_name,
);
@@ -0,0 +1,310 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Subject: Fix workspace persistence races during restoration.
Date: 2026-03-01
License: expat
In 0.225.10, workspace persistence has three separate ordering problems.
First, newly allocated workspace IDs could be used for item persistence before a
parent row had been inserted into the workspaces table. That made editor
persistence race with workspace creation and could fail with a foreign key
constraint error.
Second, workspace layout persistence and per-item persistence run on separate
asynchronous paths. That allowed the workspace layout to be saved with item IDs
before the background item-serialization worker had finished writing the
corresponding per-item rows. On restore, deserializers that require persisted
item state could then fail with "No entry in database for item_id ...", which
could drop restored state and break restoration features that depend on that
persisted item state, including edited-window restoration.
Third, restore-side cleanup assumed that deserialized items had already been
saved under their new runtime item IDs after being added to panes. In reality,
adding a deserialized item only enqueues that serialization work. Cleanup could
therefore delete the old persisted rows before the new rows existed, leaving the
next reopen with a pane/item layout that still referenced state that had just
been deleted.
This change fixes all three issues:
- eagerly create the parent workspaces row as soon as a new workspace ID is
allocated, before any item serializer can write child rows
- keep item persistence on the existing serialization queue, but add an
ordering barrier before saving workspace layout so the layout is never
published ahead of the item state it references
- during restore, wait for the queued serialization of newly added
deserialized items before cleaning up stale persisted item IDs, and skip
that cleanup pass if the barrier cannot be established or awaited so stale
rows are kept rather than deleting still-needed state
See also <https://github.com/zed-industries/zed/pull/50873>.
diff --git a/crates/workspace/src/persistence.rs b/crates/workspace/src/persistence.rs
index e0ad046e8d..aeb4c3ba39 100644
--- a/crates/workspace/src/persistence.rs
+++ b/crates/workspace/src/persistence.rs
@@ -2124,6 +2124,13 @@ impl WorkspaceDb {
}
}
+ query! {
+ pub(crate) async fn ensure_workspace_row(workspace_id: WorkspaceId) -> Result<()> {
+ INSERT OR IGNORE INTO workspaces(workspace_id)
+ VALUES (?1)
+ }
+ }
+
query! {
pub(crate) async fn set_window_open_status(workspace_id: WorkspaceId, bounds: SerializedWindowBounds, display: Uuid) -> Result<()> {
UPDATE workspaces
diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs
index 4141952cc7..3ea631ed6f 100644
--- a/crates/workspace/src/workspace.rs
+++ b/crates/workspace/src/workspace.rs
@@ -1175,6 +1175,11 @@ enum WorkspaceLocation {
None,
}
+enum SerializableItemMessage {
+ Item(Box<dyn SerializableItemHandle>),
+ Barrier(oneshot::Sender<()>),
+}
+
type PromptForNewPath = Box<
dyn Fn(
&mut Workspace,
@@ -1253,7 +1258,7 @@ pub struct Workspace {
on_prompt_for_open_path: Option<PromptForOpenPath>,
terminal_provider: Option<Box<dyn TerminalProvider>>,
debugger_provider: Option<Arc<dyn DebuggerProvider>>,
- serializable_items_tx: UnboundedSender<Box<dyn SerializableItemHandle>>,
+ serializable_items_tx: UnboundedSender<SerializableItemMessage>,
_items_serializer: Task<Result<()>>,
session_id: Option<String>,
scheduled_tasks: Vec<Task<()>>,
@@ -1554,7 +1559,7 @@ impl Workspace {
}
let (serializable_items_tx, serializable_items_rx) =
- mpsc::unbounded::<Box<dyn SerializableItemHandle>>();
+ mpsc::unbounded::<SerializableItemMessage>();
let _items_serializer = cx.spawn_in(window, async move |this, cx| {
Self::serialize_items(&this, serializable_items_rx, cx).await
});
@@ -1759,6 +1764,7 @@ impl Workspace {
} else {
DB.next_id().await.unwrap_or_else(|_| Default::default())
};
+ DB.ensure_workspace_row(workspace_id).await?;
let toolchains = DB.toolchains(workspace_id).await?;
@@ -6036,8 +6042,16 @@ impl Workspace {
window_id: Some(window.window_handle().window_id().as_u64()),
user_toolchains,
};
+ let item_serialization_barrier = self.item_serialization_barrier();
window.spawn(cx, async move |_| {
+ let Some(item_serialization_barrier) = item_serialization_barrier.log_err()
+ else {
+ return;
+ };
+ if item_serialization_barrier.await.log_err().is_none() {
+ return;
+ }
persistence::DB.save_workspace(serialized_workspace).await;
})
}
@@ -6108,31 +6122,49 @@ impl Workspace {
async fn serialize_items(
this: &WeakEntity<Self>,
- items_rx: UnboundedReceiver<Box<dyn SerializableItemHandle>>,
+ mut items_rx: UnboundedReceiver<SerializableItemMessage>,
cx: &mut AsyncWindowContext,
) -> Result<()> {
const CHUNK_SIZE: usize = 200;
- let mut serializable_items = items_rx.ready_chunks(CHUNK_SIZE);
+ while let Some(message) = items_rx.next().await {
+ let mut unique_items = HashMap::default();
+ let mut barrier = None;
+ let mut channel_closed = false;
- while let Some(items_received) = serializable_items.next().await {
- let unique_items =
- items_received
- .into_iter()
- .fold(HashMap::default(), |mut acc, item| {
- acc.entry(item.item_id()).or_insert(item);
- acc
- });
+ Self::push_serializable_item_message(message, &mut unique_items, &mut barrier);
- // We use into_iter() here so that the references to the items are moved into
- // the tasks and not kept alive while we're sleeping.
- for (_, item) in unique_items.into_iter() {
- if let Ok(Some(task)) = this.update_in(cx, |workspace, window, cx| {
- item.serialize(workspace, false, window, cx)
- }) {
- cx.background_spawn(async move { task.await.log_err() })
- .detach();
+ while barrier.is_none() && unique_items.len() < CHUNK_SIZE {
+ match items_rx.try_next() {
+ Ok(Some(message)) => {
+ Self::push_serializable_item_message(
+ message,
+ &mut unique_items,
+ &mut barrier,
+ );
+ }
+ Ok(None) => {
+ channel_closed = true;
+ break;
+ }
+ Err(_) => break,
+ }
+ }
+
+ let batch_succeeded = Self::serialize_item_batch(this, unique_items, cx)
+ .await
+ .log_err()
+ .is_some();
+
+ if let Some(barrier) = barrier {
+ if batch_succeeded {
+ let _ = barrier.send(());
}
+ continue;
+ }
+
+ if channel_closed {
+ break;
}
cx.background_executor()
@@ -6143,12 +6175,54 @@ impl Workspace {
Ok(())
}
+ fn push_serializable_item_message(
+ message: SerializableItemMessage,
+ unique_items: &mut HashMap<EntityId, Box<dyn SerializableItemHandle>>,
+ barrier: &mut Option<oneshot::Sender<()>>,
+ ) {
+ match message {
+ SerializableItemMessage::Item(item) => {
+ unique_items.entry(item.item_id()).or_insert(item);
+ }
+ SerializableItemMessage::Barrier(sender) => {
+ *barrier = Some(sender);
+ }
+ }
+ }
+
+ async fn serialize_item_batch(
+ this: &WeakEntity<Self>,
+ unique_items: HashMap<EntityId, Box<dyn SerializableItemHandle>>,
+ cx: &mut AsyncWindowContext,
+ ) -> Result<()> {
+ let serialize_tasks = match this.update_in(cx, move |workspace, window, cx| {
+ unique_items
+ .into_values()
+ .filter_map(|item| item.serialize(workspace, false, window, cx))
+ .collect::<Vec<_>>()
+ }) {
+ Ok(serialize_tasks) => serialize_tasks,
+ Err(_) => return Ok(()),
+ };
+
+ try_join_all(serialize_tasks).await?;
+ Ok(())
+ }
+
+ fn item_serialization_barrier(&self) -> Result<oneshot::Receiver<()>> {
+ let (sender, receiver) = oneshot::channel();
+ self.serializable_items_tx
+ .unbounded_send(SerializableItemMessage::Barrier(sender))
+ .map_err(|err| anyhow!("failed to send item serialization barrier: {err}"))?;
+ Ok(receiver)
+ }
+
pub(crate) fn enqueue_item_serialization(
&mut self,
item: Box<dyn SerializableItemHandle>,
) -> Result<()> {
self.serializable_items_tx
- .unbounded_send(item)
+ .unbounded_send(SerializableItemMessage::Item(item))
.map_err(|err| anyhow!("failed to send serializable item over channel: {err}"))
}
@@ -6252,24 +6326,42 @@ impl Workspace {
// after loading the items, we might have different items and in order to avoid
// the database filling up, we delete items that haven't been loaded now.
//
- // The items that have been loaded, have been saved after they've been added to the workspace.
- let clean_up_tasks = workspace.update_in(cx, |_, window, cx| {
- item_ids_by_kind
- .into_iter()
- .map(|(item_kind, loaded_items)| {
- SerializableItemRegistry::cleanup(
- item_kind,
- serialized_workspace.id,
- loaded_items,
- window,
- cx,
- )
- .log_err()
- })
- .collect::<Vec<_>>()
- })?;
+ // Newly deserialized items only enqueue serialization when they are added to their panes.
+ // Wait for that queued work to finish before deleting the old persisted item ids.
+ let item_serialization_barrier = workspace
+ .update_in(cx, |workspace, _, _| {
+ workspace.item_serialization_barrier().log_err()
+ })
+ .log_err()
+ .flatten();
+
+ let item_serialization_flushed = if let Some(item_serialization_barrier) =
+ item_serialization_barrier
+ {
+ item_serialization_barrier.await.log_err().is_some()
+ } else {
+ false
+ };
- futures::future::join_all(clean_up_tasks).await;
+ if item_serialization_flushed {
+ let clean_up_tasks = workspace.update_in(cx, |_, window, cx| {
+ item_ids_by_kind
+ .into_iter()
+ .map(|(item_kind, loaded_items)| {
+ SerializableItemRegistry::cleanup(
+ item_kind,
+ serialized_workspace.id,
+ loaded_items,
+ window,
+ cx,
+ )
+ .log_err()
+ })
+ .collect::<Vec<_>>()
+ })?;
+
+ futures::future::join_all(clean_up_tasks).await;
+ }
workspace
.update_in(cx, |workspace, window, cx| {
@@ -9001,6 +9093,7 @@ fn deserialize_remote_project(
} else {
persistence::DB.next_id().await?
};
+ persistence::DB.ensure_workspace_row(workspace_id).await?;
Ok((workspace_id, serialized_workspace))
})
@@ -0,0 +1,163 @@
From: Danny Milosavljevic <dannym@friendly-machines.com>
Date: Fri, 6 Mar 2026 20:20:00 +0000
Subject: [PATCH] workspace: Keep local workspaces whose roots are only regular files
License: expat
Zed persists local workspaces for standalone regular files as well as
directory-backed projects. Recent-workspace cleanup and last-session
restoration were using a helper that only kept local workspaces if all
saved paths existed and at least one of them was a directory.
That made local workspaces whose roots were only regular files look
invalid. A background recent-workspaces pass could then delete the
workspace row, which in turn cascaded to item-specific state such as
editors. In the window edited-state restore test, reopening a
standalone regular file could therefore fail because the saved editor
row had been deleted by that cleanup path.
Fix this by treating a local workspace as valid whenever all of its
saved paths still exist, whether those paths are directories or
regular files. Apply the same rule to last-session workspace
restoration, and add regression coverage for both code paths.
diff --git a/crates/workspace/src/persistence.rs b/crates/workspace/src/persistence.rs
--- a/crates/workspace/src/persistence.rs
+++ b/crates/workspace/src/persistence.rs
@@ -1783,19 +1783,13 @@ impl WorkspaceDb {
}
}
- async fn all_paths_exist_with_a_directory(paths: &[PathBuf], fs: &dyn Fs) -> bool {
- let mut any_dir = false;
+ async fn all_paths_exist(paths: &[PathBuf], fs: &dyn Fs) -> bool {
for path in paths {
- match fs.metadata(path).await.ok().flatten() {
- None => return false,
- Some(meta) => {
- if meta.is_dir {
- any_dir = true;
- }
- }
+ if fs.metadata(path).await.ok().flatten().is_none() {
+ return false;
}
}
- any_dir
+ true
}
// Returns the recent locations which are still valid on disk and deletes ones which no longer
@@ -1843,7 +1837,11 @@ impl WorkspaceDb {
// If a local workspace points to WSL, this check will cause us to wait for the
// WSL VM and file server to boot up. This can block for many seconds.
// Supported scenarios use remote workspaces.
- if !has_wsl_path && Self::all_paths_exist_with_a_directory(paths.paths(), fs).await {
+ //
+ // Local workspaces may legitimately contain only regular files (for example, a
+ // standalone file opened outside any worktree). Those should be preserved as
+ // long as all of their saved paths still exist.
+ if !has_wsl_path && Self::all_paths_exist(paths.paths(), fs).await {
result.push((id, SerializedWorkspaceLocation::Local, paths, timestamp));
} else {
delete_tasks.push(self.delete_workspace_by_id(id));
@@ -1903,7 +1901,7 @@ impl WorkspaceDb {
window_id,
});
} else {
- if Self::all_paths_exist_with_a_directory(paths.paths(), fs).await {
+ if Self::all_paths_exist(paths.paths(), fs).await {
workspaces.push(SessionWorkspace {
workspace_id,
location: SerializedWorkspaceLocation::Local,
@@ -3425,6 +3423,91 @@ mod tests {
);
}
+ #[gpui::test]
+ async fn test_recent_workspaces_on_disk_keeps_regular_file_only_workspace(
+ cx: &mut gpui::TestAppContext,
+ ) {
+ let dir = tempfile::TempDir::with_prefix("regular-file-workspace").unwrap();
+ let regular_file = dir.path().join("a");
+
+ let fs = fs::FakeFs::new(cx.executor());
+ fs.insert_tree(dir.path(), json!({"a": "hey"})).await;
+
+ let db = WorkspaceDb::open_test_db("test_recent_workspaces_keeps_regular_file_only")
+ .await;
+ let workspace = SerializedWorkspace {
+ id: WorkspaceId(1),
+ paths: PathList::new(&[regular_file.clone()]),
+ location: SerializedWorkspaceLocation::Local,
+ center_group: Default::default(),
+ window_bounds: Default::default(),
+ display: Default::default(),
+ docks: Default::default(),
+ centered_layout: false,
+ breakpoints: Default::default(),
+ session_id: None,
+ window_id: Some(1),
+ user_toolchains: Default::default(),
+ };
+
+ db.save_workspace(workspace.clone()).await;
+
+ let recent = db.recent_workspaces_on_disk(fs.as_ref()).await.unwrap();
+ assert_eq!(
+ recent,
+ vec![(
+ workspace.id,
+ SerializedWorkspaceLocation::Local,
+ workspace.paths.clone(),
+ recent[0].3,
+ )]
+ );
+ assert_eq!(db.workspace_for_roots(&[regular_file]).unwrap().id, workspace.id);
+ }
+
+ #[gpui::test]
+ async fn test_last_session_workspace_locations_keeps_regular_file_only_workspace(
+ cx: &mut gpui::TestAppContext,
+ ) {
+ let dir = tempfile::TempDir::with_prefix("regular-file-workspace-session").unwrap();
+ let regular_file = dir.path().join("a");
+
+ let fs = fs::FakeFs::new(cx.executor());
+ fs.insert_tree(dir.path(), json!({"a": "hey"})).await;
+
+ let db = WorkspaceDb::open_test_db("test_last_session_keeps_regular_file_only").await;
+ let workspace = SerializedWorkspace {
+ id: WorkspaceId(1),
+ paths: PathList::new(&[regular_file.clone()]),
+ location: SerializedWorkspaceLocation::Local,
+ center_group: Default::default(),
+ window_bounds: Default::default(),
+ display: Default::default(),
+ docks: Default::default(),
+ centered_layout: false,
+ breakpoints: Default::default(),
+ session_id: Some("one-session".to_owned()),
+ window_id: Some(7),
+ user_toolchains: Default::default(),
+ };
+
+ db.save_workspace(workspace.clone()).await;
+
+ let locations = db
+ .last_session_workspace_locations("one-session", None, fs.as_ref())
+ .await
+ .unwrap();
+ assert_eq!(
+ locations,
+ vec![SessionWorkspace {
+ workspace_id: workspace.id,
+ location: SerializedWorkspaceLocation::Local,
+ paths: workspace.paths,
+ window_id: Some(WindowId::from(7u64)),
+ }]
+ );
+ }
+
#[gpui::test]
async fn test_get_or_create_ssh_project() {
let db = WorkspaceDb::open_test_db("test_get_or_create_ssh_project").await;
@@ -0,0 +1,24 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Subject: Remove the [patch.crates-io] section from Cargo.toml.
Date: 2026-03-01
License: expat
These overrides redirect crates-io dependencies to git sources, which cannot be
fetched in an offline build. With vendored sources the overrides are unnecessary.
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -804,13 +804,6 @@
"Win32_Media",
]
-[patch.crates-io]
-async-task = { git = "https://github.com/smol-rs/async-task.git", rev = "b4486cd71e4e94fbda54ce6302444de14f4d190e" }
-notify = { git = "https://github.com/zed-industries/notify.git", rev = "ce58c24cad542c28e04ced02e20325a4ec28a31d" }
-notify-types = { git = "https://github.com/zed-industries/notify.git", rev = "ce58c24cad542c28e04ced02e20325a4ec28a31d" }
-windows-capture = { git = "https://github.com/zed-industries/windows-capture.git", rev = "f0d6c1b6691db75461b732f6d5ff56eed002eeb9" }
-calloop = { git = "https://github.com/zed-industries/calloop" }
-
[profile.dev]
split-debuginfo = "unpacked"
incremental = true
@@ -0,0 +1,75 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Subject: Use mock livekit client on Linux to avoid libwebrtc dependency.
Date: 2026-03-01
License: GPL3+
libwebrtc is not packaged in Guix and is difficult to build from source.
Zed already has a mock_client fallback for FreeBSD and Windows-GNU which
lack libwebrtc. Add target_os = "linux" to those cfg conditions so Linux
also uses mock_client, and exclude the libwebrtc/livekit dependencies from
Cargo.toml on Linux. This disables voice/video calls but allows the rest
of Zed to build.
--- a/crates/livekit_client/Cargo.toml 2026-03-01 21:21:38.647599342 +0000
+++ b/crates/livekit_client/Cargo.toml 2026-03-01 21:22:19.846482866 +0000
@@ -44,7 +44,7 @@
ui.workspace = true
util.workspace = true
-[target.'cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd")))'.dependencies]
+[target.'cfg(not(any(all(target_os = "windows", target_env = "gnu"), target_os = "freebsd", target_os = "linux")))'.dependencies]
libwebrtc = { rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d", git = "https://github.com/zed-industries/livekit-rust-sdks" }
livekit = { rev = "5f04705ac3f356350ae31534ffbc476abc9ea83d", git = "https://github.com/zed-industries/livekit-rust-sdks", features = ["__rustls-tls"] }
--- a/crates/livekit_client/src/lib.rs 2026-03-01 21:21:44.752291052 +0000
+++ b/crates/livekit_client/src/lib.rs 2026-03-01 21:22:37.234363786 +0000
@@ -15,7 +15,8 @@
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu"),
- target_os = "freebsd"
+ target_os = "freebsd",
+ target_os = "linux"
))
))]
mod livekit_client;
@@ -25,7 +26,8 @@
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu"),
- target_os = "freebsd"
+ target_os = "freebsd",
+ target_os = "linux"
))
))]
pub use livekit_client::*;
@@ -36,7 +38,8 @@
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu"),
- target_os = "freebsd"
+ target_os = "freebsd",
+ target_os = "linux"
)
))]
mod mock_client;
@@ -46,7 +49,8 @@
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu"),
- target_os = "freebsd"
+ target_os = "freebsd",
+ target_os = "linux"
)
))]
pub mod test;
@@ -56,7 +60,8 @@
test,
feature = "test-support",
all(target_os = "windows", target_env = "gnu"),
- target_os = "freebsd"
+ target_os = "freebsd",
+ target_os = "linux"
)
))]
pub use mock_client::*;
+29 -1
View File
@@ -472,6 +472,34 @@ Poppler gives access to the following binary programs:
(license license:gpl2+)
(home-page "https://poppler.freedesktop.org/")))
(define-public poppler-next
(package
(inherit poppler)
(name "poppler-next")
(version "26.04.0")
(source (origin
(method url-fetch)
(uri (string-append "https://poppler.freedesktop.org/poppler-"
version ".tar.xz"))
(sha256
(base32
"14q69q6ipy3m4ywdhlr48qlscwzrv8jcns3g2306pyaa25im35dh"))))
(arguments (substitute-keyword-arguments arguments
((#:configure-flags flags)
#~(cons*
"-DENABLE_GPGME=OFF"
"-DENABLE_QT5=OFF"
"-DENABLE_QT6=OFF"
#$flags))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'install 'sanitize-pkg-config-files
(lambda _
(substitute* (find-files #$output "\\.pc$")
(("^Requires.private:.*" all)
(string-append "# " all)))))))))
(inputs (modify-inputs inputs (prepend curl)))))
(define-public poppler-data
(package
(name "poppler-data")
@@ -1864,7 +1892,7 @@ presentation. The input files processed by pdfpc are PDF documents.")
(license license:gpl3+)))
(define-public paps
;; Fails to build in lastest release.
;; Fails to build in latest release.
(let ((commit "199b478ca3884df4c0786948aae09c7928c6498f")
(revision "0"))
(package
+1 -1
View File
@@ -510,7 +510,7 @@ of the same class using @code{JSON::Unmarshal}.")
@code{JSON::Unmarshal} in order to save duplication, it is intended to store a
separate JSON name for an attribute where the name of the JSON attribute might be
changed, either for aesthetic reasons or the name is not a valid Perl identifier.
It will of course also be needed in classes thar are going to use
It will of course also be needed in classes that are going to use
@code{JSON::Marshal} or @code{JSON::Unmarshal} for serialization/deserialization.")
(license license:artistic2.0)))
+1 -1
View File
@@ -311,7 +311,7 @@
;; This test fails on most architectures.
"sapi/cli/tests/upload_2G.phpt"))
;; Accomodate two extra openssl errors flanking the expected one:
;; Accommodate two extra openssl errors flanking the expected one:
;; random number generator:RAND_{load,write}_file:Cannot open file
;; This is due to an invalid $HOME, but changing it in the test
;; still prints the first one & changing it globally is overkill.
+1 -1
View File
@@ -91,7 +91,7 @@
"--with-nologin=/run/apcupsd"
"--with-pwrfail-dir=/run/apcupsd"
;; Configure requires these, but we do not use the genenerated
;; Configure requires these, but we do not use the generated
;; apcupsd.conf, so in order to reduce dependencies of the package,
;; provide fake values.
(string-append "ac_cv_path_SHUTDOWN=/nope")
+5 -3
View File
@@ -4,7 +4,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021, 2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2024-2025 jgart <jgart@dismail.de>
;;; Copyright © 2024-2026 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -39,6 +39,7 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages game-development)
#:use-module (gnu packages image)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages maths)
@@ -236,7 +237,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.92.29")
(version "2.92.41")
(source
(origin
(method git-fetch)
@@ -245,12 +246,13 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "1032pza07dzyrsjrbh355h3cyrkwsg2vbzwwaaxcvfirjhn8zdam"))
(base32 "0ial37h0i9zjxgxvkai2vmaafn4djprliw0nzppnhwwy3jbcd14p"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
(list curl
gsl
libedit
libffi
openssl
raylib
+1 -1
View File
@@ -446,7 +446,7 @@ Prometheus metrics.")
#:import-path "github.com/prometheus/common"
#:test-subdirs
#~(list
;; Skipp, as it requires
;; Skip, as it requires
;; <github.com/prometheus/client_golang/prometheus>, which introduces
;; cycle.
;; "./config/..."
+1 -1
View File
@@ -524,7 +524,7 @@ from protobuf specification files.")
(lambda _
(copy-file "extra/poetry/pyproject.toml" "pyproject.toml")
(delete-file "build.py")
;; Mimick extra/poetry/poetry_build.sh.
;; Mimic extra/poetry/poetry_build.sh.
(mkdir "nanopb")
(copy-recursively "generator" "nanopb/generator")
(invoke "touch" "nanopb/__init__.py"
+4 -4
View File
@@ -1807,7 +1807,7 @@ HTTP @code{multipart/form-data} parsers and generators.")
(list
#:test-flags
#~(list "--numprocesses" (number->string (parallel-job-count))
;; It tries to download hatchling and install aditional test
;; It tries to download hatchling and install additional test
;; dependencies.
"--ignore=mypy/test/testpep561.py")
#:phases
@@ -3032,7 +3032,7 @@ sub-package.")
(define-public python-pytest-fixture-config
;; TODO: Master branch has removed all Python 2 support such Six, consider
;; to update and drop python-six from closure in the next update cyle.
;; to update and drop python-six from closure in the next update cycle.
(package
(name "python-pytest-fixture-config")
(version "1.8.0")
@@ -3121,7 +3121,7 @@ compliance.")
(home-page "https://github.com/dropbox/pytest-flakefinder")
(synopsis "Pytest plugin for finding flaky tests")
(description "This package provides a Pytest plugin to run tests multiple
times and detect flakyness.")
times and detect flakiness.")
(license license:asl2.0)))
(define-public python-pytest-flask
@@ -3706,7 +3706,7 @@ interaction, like key presses and mouse clicks.")
;; tests: 23 passed, 13 deselected
#:test-flags
#~(list "-p" "no:randomly"
;; Skip tests requireing python-factory-boy, python-faker,
;; Skip tests requiring python-factory-boy, python-faker,
;; python-numpy, and python-pytest-xdist to reduce closure size.
"-k" (string-join
(list "not test_entrypoint_injection"
+1 -1
View File
@@ -974,7 +974,7 @@ provides handling of symlinks, and exception management.")
(sha256
(base32 "0rj182i2d7d2bz067zrk39s19j09xsxkzprl82fqql8ji9c5fwd0"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;TODO: Tests requrie extra packaging
(arguments (list #:tests? #f)) ;TODO: Tests require extra packaging
(native-inputs
(list ;; python-big-o
;; python-coherent-licensed
+2 -2
View File
@@ -263,7 +263,7 @@ Python interface around SSH networking concepts.")
(build-system pyproject-build-system)
(arguments
(list
;; Test failes with error: AssertionError: KeyboardInterrupt not raised.
;; Test fails with error: AssertionError: KeyboardInterrupt not raised.
#:test-flags #~(list "-k" "not test_multithreading_with_interrupts")))
(native-inputs
(list openssl
@@ -1840,7 +1840,7 @@ interacting with a U2F device over USB.")
(synopsis "Stateless OpenPGP Command-Line Interface")
(description
"The Stateless OpenPGP Command-Line Interface (or sop) is a
specification that encourages OpenPGP implementors to provide a common,
specification that encourages OpenPGP implementers to provide a common,
relatively simple command-line API for purposes of object security.
This Python module helps implementers build such a CLI from any implementation
+9 -9
View File
@@ -1862,7 +1862,7 @@ density maps, both for interactive and non-interactive use.")
(home-page "https://github.com/jararias/mpsplines")
(synopsis "Mean preserving interpolation with splines")
(description
"Thi package implements a functionality for mean-preserving
"This package implements a functionality for mean-preserving
interpolation of 1D data (for example, time series) with splines.")
(license license:bsd-3))))
@@ -2067,7 +2067,7 @@ indices of @code{ndarrays}.")
;; AttributeError: 'Series' object has no
;; attribute 'iteritems'
" and not test_kde_plot_df"
;; Test is not determenistic and fails with
;; Test is not deterministic and fails with
;; assertion not equal for DF array.
" and not test_summary_df"))
#:phases
@@ -3421,7 +3421,7 @@ cross-validation.")
"--numprocesses" (number->string (min 4 (parallel-job-count)))
"--pyargs" "scipy"
"-k" (string-join
;; Network access is requied.
;; Network access is required.
(list "not test_ascent"
"test_electrocardiogram"
"test_existence_all"
@@ -3468,7 +3468,7 @@ cross-validation.")
(lambda* (#:key test-flags tests? #:allow-other-keys)
(when tests?
;; Step out of the source directory to avoid interference.
;; See: <.github/workflows/linux.yml> for any other posible
;; See: <.github/workflows/linux.yml> for any other possible
;; tests setup.
(with-directory-excursion "/tmp"
(setenv "HOME" "/tmp")
@@ -3818,7 +3818,7 @@ depends on @code{scipy.sparse} for some computations.")
"--deselect=tdda/test_tdda.py::TestPandasDataFrames::test_types_match")
#:phases
#~(modify-phases %standard-phases
;; "datetime.UTC" is not availalbe in Python 3.10 but in
;; "datetime.UTC" is not available in Python 3.10 but in
;; 3.11 it's present
;; <https://docs.python.org/3/library/datetime.html#datetime.UTC>.
(add-after 'unpack 'fix-Python3.11-datetime.UTC
@@ -4263,7 +4263,7 @@ idea of the remaining amount of computation to be done.")
"--ignore=tests/pyspark"
;; E ModuleNotFoundError: No module named 'sphinx'
"--ignore=tests/pandas/test_docs_setting_column_widths.py"
;; Nework access is required.
;; Network access is required.
"--ignore=tests/fastapi/test_app.py"
;; TypeError: __class__ assignment: 'GeoDataFrame' object layout
;; differs from 'DataFrame'
@@ -4271,7 +4271,7 @@ idea of the remaining amount of computation to be done.")
(list "not test_schema_model[data0-True]"
"test_schema_from_dataframe[data1-True]"
"test_schema_no_geometry"
;; The most of the tests from this goup XFAIL or fail.
;; The most of the tests from this group XFAIL or fail.
"test_pandas_stubs_false_positives")
" and not "))))
(native-inputs
@@ -4797,7 +4797,7 @@ readable.")
(arguments
(list
;; TODO: Require vaex.server and others, which require vaex-core;
;; implement bootsrapping.
;; implement bootstrapping.
#:tests? #f
#:phases
#~(modify-phases %standard-phases
@@ -5223,7 +5223,7 @@ objects.")
python-numba
python-numpy
python-scipy
;; [optinal]
;; [optional]
;; python-jaxlib
;; python-jax
#;python-llvmlite))
+13 -13
View File
@@ -870,7 +870,7 @@ caching server.")
(home-page "https://github.com/ImagingDataCommons/dicomweb-client")
(synopsis "Python client for DICOMweb RESTful services")
(description
"@code{dicomweb_client} provides client intefaces for DICOMweb RESTful
"@code{dicomweb_client} provides client interfaces for DICOMweb RESTful
services QIDO-RS, WADO-RS and STOW-RS to search, retrieve and store
DICOM objects over the web, respectively.")
(license license:expat)))
@@ -1322,7 +1322,7 @@ Rate limits can be configured at different levels such as:
(synopsis "Google Drive Public File/Folder Downloader")
(description
"This package implements a functionality to download large files
recursivly from Google Drive with option to filter them by file
recursively from Google Drive with option to filter them by file
formats (PDF/XML/CSV).")
(license license:expat)))
@@ -2653,7 +2653,7 @@ comes with a SOCKS proxy client.")
(version "0.7.0")
(source
(origin
(method git-fetch) ;no tests in PyPI archvie
(method git-fetch) ;no tests in PyPI archive
(uri (git-reference
(url "https://github.com/vxgmichel/aiostream")
(commit (string-append "v" version))))
@@ -3441,7 +3441,7 @@ classes
(build-system pyproject-build-system)
(arguments
(list
;; XXX: The last commit's tests are uncompatible with the more recent
;; XXX: The last commit's tests are incompatible with the more recent
;; version of python-falcon.
#:tests? #f))
(native-inputs
@@ -4150,7 +4150,7 @@ Python HTTP implementation.")
(define-public python-slixmpp
(package
(name "python-slixmpp")
(version "1.8.6") ; XXX: The latest version which does not requrie Rust
(version "1.8.6") ; XXX: The latest version which does not require Rust
(source
(origin
(method git-fetch)
@@ -4393,7 +4393,7 @@ storage.")
(base32 "0vqlhk0hgbsfkh7ybmby93xhlx8dq6pr5blf356ka3z2c41b9rdj"))))
(build-system pyproject-build-system)
(arguments
'(#:tests? #f)) ;tests depent on dated pytest-expect
'(#:tests? #f)) ;tests depend on dated pytest-expect
(native-inputs
(list python-setuptools))
(propagated-inputs
@@ -4744,7 +4744,7 @@ the Trio framework}.")
(define-public python-txacme
;; 0.9.3 tag was placed in 2020 and there a lot of changes providing
;; compatibility wit twisted, use the latest commit from trunk branch.
;; compatibility with twisted, use the latest commit from trunk branch.
;;
;;See: <https://github.com/twisted/txacme/issues/165>.
(let ((commit "ac18f92f6dde971a6b38f2ecfae44665815db583")
@@ -7883,7 +7883,7 @@ basic TCP/IP protocols.")
(define-public python-geventhttpclient
(package
(name "python-geventhttpclient")
(version "2.3.3")
(version "2.3.9")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7893,7 +7893,7 @@ basic TCP/IP protocols.")
(file-name (git-file-name name version))
(sha256
(base32
"1ya0i0fbx054mfx5d1k75fcf64xzp7vva8lkwwzan41xbnc56nyj"))))
"1diq6n9sr92rsqbpxlbhbn1d22hrlzp6swykz9bfzh7sxpywa6j8"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -8631,7 +8631,7 @@ this it tries to be opinion-free and very extendable.")
(version "1.1.4")
(source
(origin
(method git-fetch) ;no tests in PyPI archvie
(method git-fetch) ;no tests in PyPI archive
(uri (git-reference
(url "https://github.com/Yelp/ephemeral-port-reserve")
(commit (string-append "v" version))))
@@ -10778,7 +10778,7 @@ request/response web apps to larger, grown applications.")
(license license:repoze)))
(define-public python-pyramid-chameleon
;; PyPI lacks a fresh release, use the latest commit assosiated with
;; PyPI lacks a fresh release, use the latest commit associated with
;; unrleased version, see:
;; <https://github.com/Pylons/pyramid_chameleon/issues/27>
(let ((commit "956c77ba37120c430e871c834d3cd4ed5ac8dccf")
@@ -10887,7 +10887,7 @@ Pyramid web framework.")
(license license:repoze)))
(define-public python-pyramid-mako
;; 1.1.0 was released in 2019, there a lot of compatability changes on
;; 1.1.0 was released in 2019, there a lot of compatibility changes on
;; master, us the latest commit for now.
(let ((commit "1a6f4c00c7134530d2975f34d904b64a41b28b21")
(revision "0"))
@@ -13486,7 +13486,7 @@ services until one succeeds.")
(name "python-whitenoise")
(version "6.9.0")
(source (origin
(method git-fetch) ; PyPI missing test failes
(method git-fetch) ; PyPI missing test fails
(uri (git-reference
(url "https://github.com/evansd/whitenoise")
(commit version)))
+43 -65
View File
@@ -461,7 +461,7 @@ user.")
(home-page "https://github.com/fastapi/annotated-doc")
(synopsis "Annotated for some Python objects")
(description
"This package implements a funtionality for document parameters, class
"This package implements a functionality for document parameters, class
attributes, return types, and variables inline, with
Annotated.")
(license license:expat)))
@@ -704,7 +704,7 @@ line drawing algorithm}.")
python-matplotlib python-pygments python-rich))
(home-page "https://github.com/catppuccin/python")
(synopsis "Pastel palette for Python libraries")
(description "Catppuccin for Python is a soothing pastel pallete for Python
(description "Catppuccin for Python is a soothing pastel palette for Python
libraries. It aims to be the middle ground between low and high contrast
themes. It also includes themes for IPython, Matplotlib, Pygments and Rich.")
(license license:expat)))
@@ -1154,7 +1154,7 @@ implemented in pure Python, and most of them are also implemented in C.")
(home-page "https://github.com/domdfcoding/domdf_python_tools")
(synopsis "Helpful functions for Python")
(description
"This package provide helpfull functions for Python's testing and
"This package provide helpful functions for Python's testing and
packaging tasks.")
(license license:expat)))
@@ -5560,7 +5560,7 @@ concepts.")
(license license:bsd-3)))
(define-public python-hdf5storage
;; XXX: Use the latest commit containing compatability with Pytest and Python
;; XXX: Use the latest commit containing compatibility with Pytest and Python
;; 3.11, see: <https://github.com/frejanordsiek/hdf5storage/issues/135>.
;;
;; This package probably is sun setting, consider to remove when stops
@@ -5618,7 +5618,7 @@ untrusted sources, pickling is avoided in this package.")
(substitute* "test_prctl.py"
;; actual suffix used in cpython build output dir name
(("sys.version\\[0:3\\]") "sys.implementation.cache_tag")
;; test_no_new_privs assumes existance of /bin/ping, but
;; test_no_new_privs assumes existence of /bin/ping, but
;; can never run anyway due to it requiring setuid ping.
;; just short circuit it instead.
(("os.stat\\('/bin/ping'\\)\\.st_mode") "0")))))))
@@ -6270,7 +6270,7 @@ other machines, such as over the network.")
(base32 "1xwqp37ii9kql49agmkipawjbndwxg6y8sxax1wc4l6kkaxvk9ap"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;requir dated inputs
(list #:tests? #f)) ;require dated inputs
(native-inputs
(list python-setuptools-scm))
(propagated-inputs
@@ -6854,7 +6854,7 @@ files are easily readable and they work nicely with version control systems.")
"0hi5rl17rj9gay7yw7ikrkyp5qhyw5bzp4ig1sj6ahzclsia8y1h"))))
(build-system pyproject-build-system)
(arguments
;; It requres additional modules for integration tests.
;; It requires additional modules for integration tests.
(list #:test-flags #~(list "--ignore=tests/modules/")))
(native-inputs
(list python-pytest
@@ -9974,8 +9974,8 @@ naturally be used also by other projects.")
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; TODO: Some acceptance faile and took near 30min to
;; complete: 6765 tests, 6745 passed, 20 failed; findout how
;; TODO: Some acceptance failed and took near 30min to
;; complete: 6765 tests, 6745 passed, 20 failed; find out how
;; to skip failing ones.
(format #t "Running unit tests...~%")
(invoke "utest/run.py")))))))
@@ -10497,33 +10497,6 @@ which can produce feeds in RSS 2.0, RSS 0.91, and Atom formats.")
errors when data is invalid.")
(license license:expat)))
(define-public python-pydantic-1
(package
(inherit python-pydantic)
(name "python-pydantic")
(version "1.10.19")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/samuelcolvin/pydantic")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0swcpfq1y0h5dcj82idls8k5la4xh4c0vz47y7jci2qass8gjffc"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
;; One test fails with not equal assertion.
#~(list "--deselect=tests/test_validators.py::test_assert_raises_validation_error")))
(native-inputs
(list python-pytest
python-pytest-mock
python-setuptools))
(propagated-inputs
(list python-typing-extensions))))
;; It may be removed after 2026-01-05.
(define-deprecated/public-alias python-pydantic-2 python-pydantic)
@@ -13609,7 +13582,7 @@ that requires its specific capabilities.")
(license license:bsd-3)))
(define-public python-ffmpeg-python
;; The latest release (0.2.0) is old and its test suite crashs on Python 3.10.
;; The latest release (0.2.0) is old and its test suite crashes on Python 3.10.
(package
(name "python-ffmpeg-python")
(properties '((commit . "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6")
@@ -13670,7 +13643,7 @@ arguments. It handles arbitrarily large (directed-acyclic) signal graphs.")
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ;XXX: tests requrie network access to get FFmpeg data
#:tests? #f ;XXX: tests require network access to get FFmpeg data
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'hardcode-ffmpeg
@@ -13757,7 +13730,7 @@ data, and scientific formats.")
(synopsis "Generate pseudorandom numbers by using algebra")
(description
"The @code{pyudorandom} module lets you iterate over a list
in a non-succsessive, yet deterministic way based on interger modulo.
in a non-succsessive, yet deterministic way based on integer modulo.
It comes in handy when you want to mix up the items, but don't need
any guarantees of randomness. It might be slow on small data,
but shall be significantly faster than @code{random.shuffle}
@@ -16721,9 +16694,9 @@ markdown_py is also provided to convert Markdown files to HTML.")
(lambda _
(chdir "test"))))))
(native-inputs
(list ;; python-pygments ;optinal, tests fail when added
;; python-wavedrom ;optinal, not packaged
;; python-latex2mathml ;optinal, not packaged
(list ;; python-pygments ;optional, tests fail when added
;; python-wavedrom ;optional, not packaged
;; python-latex2mathml ;optional, not packaged
python-setuptools))
(home-page "https://github.com/trentm/python-markdown2")
(synopsis "Fast and complete Python implementation of Markdown")
@@ -17038,7 +17011,7 @@ It has a flexible system of @samp{authorizers} able to manage both
(propagated-inputs
(list python-appdirs
python-pytz
python-six)) ;still hard itegrated
python-six)) ;still hard integrated
(home-page "https://github.com/PyFilesystem/pyfilesystem2/")
(synopsis "File system abstraction layer for Python")
(description
@@ -17758,7 +17731,7 @@ implementations of ASN.1-based codecs and protocols.")
#:test-flags
#~(list "-k" (string-join
;; Tests fail with error: IndexError: string index out of
;; range. It may be some incompatability wit pyparsing,
;; range. It may be some incompatibility with pyparsing,
;; see <https://github.com/eerimoq/asn1tools/issues/167>.
(list "not test_c_source"
"test_command_line_generate_c_source_oer"
@@ -19418,7 +19391,7 @@ explicit subcommand name.")
(sha256
(base32 "03ay7j57mfh4sa8vh9qwid1ggwdc0lasyw3ycsmgv5r6z2j63an7"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;no tests in PyPI archvie
(arguments (list #:tests? #f)) ;no tests in PyPI archive
(native-inputs
(list python-hatch-vcs
python-hatchling))
@@ -21622,7 +21595,7 @@ and makes it easier to build concurrent applications.")
(sha256
(base32 "18qx113g9bi1ac4indd5phma82zcdq601lxncp3vjn43m2mc3iq0"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;XXX: not tests in PyPI archvie, there are in Git
(arguments (list #:tests? #f)) ;XXX: not tests in PyPI archive, there are in Git
(native-inputs
(list python-setuptools
python-wheel))
@@ -23082,16 +23055,21 @@ completes.")
(define-public python-asyncinject
(package
(name "python-asyncinject")
(version "0.6")
(version "0.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asyncinject" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/simonw/asyncinject")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0x57idiy19lzyn32klgm06r223z8gr2aqqk91gysbshq7jg8g3pf"))))
(base32 "127ahb32x2qqjk17a667adrvrl63ima8khifq6dfm0q3vlfslxnn"))))
(build-system pyproject-build-system)
(native-inputs (list python-pytest python-pytest-asyncio
python-setuptools python-wheel))
(native-inputs
(list python-pytest
python-pytest-asyncio
python-setuptools))
(home-page "https://github.com/simonw/asyncinject")
(synopsis
"Run async workflows using pytest-fixtures-style dependency injection")
@@ -23993,7 +23971,7 @@ protocols written in pure Python.")
#~(list "-k" "not test__version__from_git__shallow")
#:phases
#~(modify-phases %standard-phases
;; These steps are taked from NixOS package definition:
;; These steps are taken from NixOS package definition:
;; nixpkgs/pkgs/development/python-modules/dunamai/default.nix
(add-before 'check 'pre-check
(lambda _
@@ -25575,7 +25553,7 @@ created by running @code{python setup.py develop}).")
(license license:expat)))
;; XXX: This project was archived by the owner on Oct 4, 2023. It is now
;; read-only. Consider to remvoe when nothing depends on it.
;; read-only. Consider to remove when nothing depends on it.
(define-public python-ratelimiter
;; From https://github.com/RazerM/ratelimiter/pull/11
(let ((commit "59a0827c434706d62b89e16a220e4ae12e618858")
@@ -25740,7 +25718,7 @@ Git.")
(base32 "1h3nbg1nlshzrqy7vz4q4g9wbz85dqkn6385p0ad7kjj48ww9avx"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;tests rquire Cargo
(list #:tests? #f)) ;tests require Cargo
(propagated-inputs
(list python-semantic-version
python-setuptools))
@@ -27393,7 +27371,7 @@ validation testing and application logic.")
(license license:expat)))
;; Make sure to upgrade python-llvmlite in (gnu packages llvm) together with
;; python-numba. They have a very unflexible relationship.
;; python-numba. They have a very inflexible relationship.
(define-public python-numba
(package
(name "python-numba")
@@ -27858,7 +27836,7 @@ values. Partd excels at shuffling operations.")
#:test-flags
#~(list "--ignore=fsspec/implementations/tests/test_github.py"
"-k" (string-join
;; Test requirs nentwork access
;; Test requires nentwork access
(list "not test_async_cat_file_ranges"
"test_gist_public_all_files"
"test_gist_public_missing_file"
@@ -32252,7 +32230,7 @@ syllables, and sentences.")
(list python-chardet
python-cssselect
python-lxml
python-lxml-html-clean)) ;XXX: it sould be part of python-lxml lib
python-lxml-html-clean)) ;XXX: it should be part of python-lxml lib
(home-page "http://github.com/buriy/python-readability")
(synopsis "HTML to text parser")
(description
@@ -33704,7 +33682,7 @@ It implements advanced Python dictionaries with dot notation access.")
python-wheel))
(home-page "https://python-fields.readthedocs.io/")
(synopsis "Python container class boilerplate killer")
(description "Avoid repetetive boilerplate code in Python classes.")
(description "Avoid repetitive boilerplate code in Python classes.")
(license license:bsd-3))))
(define-public python-aspectlib
@@ -34863,7 +34841,7 @@ parsing.")
(define-public python-flatten-json
;; The latest version was not tagged on GitHub, PyPI provides no tests, use
;; the commit assosiated with 0.1.14 version.
;; the commit associated with 0.1.14 version.
(let ((commit "900c4feebcfcd831ddb6143c4b246024ecf911ec")
(revision "0"))
(package
@@ -35349,7 +35327,7 @@ colors.")
#~(modify-phases %standard-phases
;; This package requires python-packaging~=23.1 which is not yet
;; updated to. As per pyproject.toml, it is required to provide
;; a nice version_info opbject.
;; a nice version_info object.
;; TODO: After updating python-packaging, fix this.
(delete 'sanity-check))))
(propagated-inputs (list python-importlib-metadata python-packaging))
@@ -36820,7 +36798,7 @@ as possible in order to be comprehensible and easily extensible.")
(define-public python-tables
(package
(name "python-tables")
;; XXX: Compatability fix for numexpr 2.13.0, see:
;; XXX: Compatibility fix for numexpr 2.13.0, see:
;; <https://github.com/PyTables/PyTables/pull/1256>.
(properties '((commit . "aad9079c80ce3ae7f385d00af760d171dcc10535")
(revision . "0")))
@@ -37747,7 +37725,7 @@ to TIFF, BigTIFF, and ImageJ hyperstack compatible files.")
(license license:expat)))
(define-public python-timeout-decorator
;; TODO: Remove when python-requests-caches releses a fresh version dropping
;; TODO: Remove when python-requests-caches releases a fresh version dropping
;; it, see, <https://github.com/requests-cache/requests-cache/pull/1111>.
(package
(name "python-timeout-decorator")
@@ -39667,7 +39645,7 @@ features useful for text console applications.")
python-urwid) ;may be removed after 2025-11-12
(define-public python-urwid-for-zulip-term
;; zulip-term@0.7.0 requires exact 2.1.2 version otherewise some tests fail
;; zulip-term@0.7.0 requires exact 2.1.2 version otherwise some tests fail
;; to pass, remove when no longer required.
(hidden-package
(package
@@ -40001,7 +39979,7 @@ store, forked from redis-py.")
"16z10sm78jd7ca3jbkgc3q5i8a8q7y1h21q1li21yy3rlhbhrrns"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f)) ;no tests in PyPI archvie
(list #:tests? #f)) ;no tests in PyPI archive
(native-inputs
(list python-setuptools))
(home-page "https://github.com/habnabit/vcversioner")
+3 -3
View File
@@ -4366,7 +4366,7 @@ linux/libcurl_wrapper.h"
(substitute* "src/3rdparty/chromium/device/udev_linux/udev1_loader.cc"
(("libudev.so.1")
(search-input-file inputs "lib/libudev.so.1")))
;; Patch the location of the X11 keywoard layouts.
;; Patch the location of the X11 keyboard layouts.
(substitute* "src/3rdparty/chromium/ui/events/ozone/layout/xkb\
/xkb_keyboard_layout_engine.cc"
(("/usr/share/X11/xkb")
@@ -5028,7 +5028,7 @@ top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.")
(("--cov-report=term-missing") "")
(("--cov-report=xml") "")))))))
;; XXX: Do not include, even supported: Qt5, PySide2 PySide6, only test
;; agains Qt6 to reduce closure size..
;; against Qt6 to reduce closure size..
(native-inputs
(list python-pyqt-6
python-pytest
@@ -5085,7 +5085,7 @@ bindings (PySide, PySide2, PyQt4 and PyQt5).")
@item Multi-handle slider for float values
@item Spinbox with arbitrarily large integers
@item Magnitude combined with unit dropdown
@item Label that willl elide text
@item Label that will elide text
@item Searchable ComboBox populated from Enum
@item Searchable List
@item Searchable Tree
+3 -3
View File
@@ -103,7 +103,7 @@
;; development.)
;;
;; The top-level 'Makefile' is more like a directory of scripts: it has
;; convienience targets for developing Racket, and it cooperates with the
;; convenience targets for developing Racket, and it cooperates with the
;; 'distro-build' package to assemble custom Racket distributions. (Again,
;; the makefile just delegates to Zuo.) It is not part of Racket source
;; distributions: the root of a source distribution is basically 'racket/src'
@@ -178,7 +178,7 @@
;; README file applies to all such subsystems:
;;
;; The Racket version must be practically the same as the current Racket
;; verson, although it can be the Racket BC implementation (instead of
;; version, although it can be the Racket BC implementation (instead of
;; the Racket CS implementation).
;;
;; Unlike Chez Scheme boot files, the files generated in "schemified"
@@ -197,7 +197,7 @@
;; Zuo is notably *not* a problem for bootstrapping. The implementation is a
;; single hand-written C file designed to build with just `cc -o zuo zuo.c`,
;; even with very old or limited compilers. (We use the Autoconf support for
;; convienience.) As of Zuo 1.8, Zuo has tagged releases in its own repository
;; convenience.) As of Zuo 1.8, Zuo has tagged releases in its own repository
;; independent of the Racket release cycle.
;;
;; CODE:
+1 -1
View File
@@ -2013,7 +2013,7 @@ operators.")
;; kernel specific headers.
"-DBUILD_DRIVERS_LIMEPCIE=false"
;; Specify the udev rules installation path into
;; the ouput profile.
;; the output profile.
(string-append "-DUDEV_RULES_INSTALL_PATH="
#$output "/lib/udev/rules.d")
;; Do not reload udev rules after build.
+1 -1
View File
@@ -256,7 +256,7 @@ Turtle/N3 and read them in SPARQL XML, RDF/XML and Turtle/N3.")
(license license:lgpl2.1+))) ; or any choice of gpl2+ or asl2.0
(define-public redland
;; XXX: No tags for the last release, altough it's clear from
;; XXX: No tags for the last release, although it's clear from
;; Github and logs a new release has been made.
(let ((commit "3ec9bda623107f9b1c86c0a3f261ffd3f8a40965")
(revision "0"))
+2 -2
View File
@@ -242,7 +242,7 @@ and in-process/in-memory compilation.")
(list rocm-comgr rocminfo))
(synopsis "ROCm HIP Runtime")
(description "HIP language runtime, allowing execution of HIP kernels
on AMD harware, with library support for in-process/in-memory
on AMD hardware, with library support for in-process/in-memory
compilation (hipclr) of HIP kernel code, and its execution on AMD hardware.")
(license license:expat)))
@@ -425,7 +425,7 @@ particular CPU vendor or architecture.")
(("find_program\\(LD_LLD_PATH ld\\.lld\\)")
"#find_program(LD_LLD_PATH ld.lld)"))))
;; This is just cosmetic and removes superfluous rpath entries
;; involving a nonexistant relative llvm/lib path.
;; involving a nonexistent relative llvm/lib path.
;; XXX: RUNPATH checks are okay with $ORIGIN, but it looks like
;; other packages are removing it altogether -- what to do?
(add-after 'unpack 'remove-dubious-rpath
+1 -1
View File
@@ -268,7 +268,7 @@ HTTP/2-based RPC framework gRPC.")
(build-system pyproject-build-system)
(arguments
(list
#:tests? #f ;XXX: no tests in PyPI, try to bulid from Git
#:tests? #f ;XXX: no tests in PyPI, try to build from Git
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'configure
+4 -4
View File
@@ -812,7 +812,7 @@ configured correctly.
Serverspec tests your servers actual state by executing command locally, via
SSH, via WinRM, via Docker API and so on. So you dont need to install any
agent softwares on your servers and can use any configuration management
agent software on your servers and can use any configuration management
tools, Puppet, Ansible, CFEngine, Itamae and so on.
But the true aim of Serverspec is to help refactoring infrastructure code.")
@@ -2888,7 +2888,7 @@ extensions.")
#~(modify-phases %standard-phases
;; tests: 393 runs, 42523 assertions, 0 failures, 0 errors, 20 skips
;;
;; TODO: Impliment #:test-flags in ruby-build-system and figure out
;; TODO: Implement #:test-flags in ruby-build-system and figure out
;; how to skip tests more elegant.
(add-after 'unpack 'skip-failing-tests
(lambda _
@@ -9477,7 +9477,7 @@ variable length integers (varint) in Ruby Protocol Buffers.")
(native-inputs (list ruby-rspec ruby-rspec-block-is-expected))
(synopsis "Improved @code{Version} module for Ruby")
(description "VersionGem aims to provide introspection of a @code{Version}
module based on a @code{Version::VERSION} constant string wile not interfering
module based on a @code{Version::VERSION} constant string while not interfering
with gemspec parsing where the @code{VERSION} string is traditionally used.")
(home-page "https://gitlab.com/oauth-xx/version_gem")
(license license:expat)))
@@ -11902,7 +11902,7 @@ part of the Prawn PDF generator.")
;; zombie process reaping (see:
;; https://issues.guix.gnu.org/30948).
;; Many of these tests seem to only fail on the 'cli' portion
;; due to something causing them to hang indefinately
;; due to something causing them to hang indefinitely
(skip-tests "test/test_plugin.rb"
"test_plugin")
(skip-tests "test/test_plugin_systemd.rb"
+3 -3
View File
@@ -1399,7 +1399,7 @@ defaults for 80% of the use cases.")
(define-public forgejo-cli
(package
(name "forgejo-cli")
(version "0.4.1")
(version "0.5.0")
(source
(origin
(method git-fetch)
@@ -1408,7 +1408,7 @@ defaults for 80% of the use cases.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1279cvdbgvl8yaqrxm8mg1swqn623xdfqjx13s9clrxp923zjrmm"))))
(base32 "1x3v56my22lckrpkcnpmf90vrn8m45ysdn0k12dfssldr8cjxapa"))))
(build-system cargo-build-system)
(arguments
(list
@@ -2863,7 +2863,7 @@ touchscreen devices.")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-cc
;; Tests assume `cc' is avaliable in PATH, but Guix does not
;; Tests assume `cc' is available in PATH, but Guix does not
;; provide that with the `gcc' or `clang' packages.
(lambda _
(substitute* '("tests/integration/build_description_tests.rs"
+5515 -784
View File
File diff suppressed because it is too large Load Diff
+551
View File
@@ -59,6 +59,128 @@
(base32
"1yhs9lj9gnzbvimv0y5f1a4my0slbvygkcjjkaxd4wkkyfvfbkxy")))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
(define-public rust-alacritty-0.25.1.9d9640d
(hidden-package
(package
(name "rust-alacritty")
(version "0.25.1")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/zed-industries/alacritty")
(commit "9d9640d4e56d67a09d049f9c0a300aae08d4f61e")))
(file-name
(git-file-name "rust-alacritty" "0.25.1.9d9640d"))
(sha256
(base32 "16g4jdbwdhqihc2x403fdaxf6m9gcj44cm53dyk68b3wl7chh29s"))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("alacritty_terminal")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")))
(inputs (cargo-inputs 'rust-alacritty-0.25.1.9d9640d))
(home-page "https://github.com/zed-industries/alacritty")
(synopsis "Terminal emulator library")
(description
"This package provides a terminal emulator library.")
(license license:asl2.0))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
(define-public rust-candle-0.9.1.724d75e
(hidden-package
(package
(name "rust-candle")
(version "0.9.1")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/zed-industries/candle")
(commit "724d75eb3deebefe83f2a7381a45d4fac6eda383")))
(file-name
(git-file-name "rust-candle" "0.9.1.724d75e"))
(sha256
(base32 "1n9g84g0ikldw42f0j3ad975vjvx6ildwqh8dw3zi3rps518hx14"))
(patches
(search-patches
"rust-candle-0.9.1-add-candle-onnx-to-workspace.patch"))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("candle-core"
"candle-nn"
"candle-onnx")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")))
(inputs (cargo-inputs 'rust-candle-0.9.1.724d75e))
(home-page "https://github.com/huggingface/candle")
(synopsis "Minimalist ML framework for Rust")
(description
"This package provides a minimalist ML framework for Rust.")
(license (list license:asl2.0 license:expat)))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
(define-public rust-dap-types-0.0.1.1b461b3
(hidden-package
(package
(name "rust-dap-types")
(version "0.0.1")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/zed-industries/dap-types")
(commit "1b461b310481d01e02b2603c16d7144b926339f8")))
(file-name
(git-file-name "rust-dap-types" "0.0.1.1b461b3"))
(sha256
(base32 "0snc05ia4jvykajavsvyxcyn24s2jxbw7k9wmby23r1aqxf31i0z"))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("dap-types")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")))
(inputs (cargo-inputs 'rust-dap-types-0.0.1.1b461b3))
(home-page "https://github.com/zed-industries/dap-types")
(synopsis "Rust types for the Debug Adapter Protocol")
(description
"This package provides Rust types for the Debug Adapter Protocol.")
(license (list license:asl2.0 license:expat)))))
(define-public rust-deunicode-1
(hidden-package
(package
@@ -102,6 +224,46 @@
transliterating them. It supports Emoji and Chinese.")
(license license:bsd-3))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
(define-public rust-gh-workflow-0.8.0.c9eac0e
(hidden-package
(package
(name "rust-gh-workflow")
(version "0.8.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/zed-industries/gh-workflow")
(commit "c9eac0ed361583e1072860d96776fa52775b82ac")))
(file-name
(git-file-name "rust-gh-workflow" "0.8.0.c9eac0e"))
(sha256
(base32 "172bn9b16f7qj3mn0h8r8bwiiiw2awgqlzj5n6f2gjcgk5nmh1hp"))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("gh-workflow-macros"
"gh-workflow")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")))
(inputs (cargo-inputs 'rust-gh-workflow-0.8.0.c9eac0e))
(home-page "https://github.com/tailcallhq/gh-workflow")
(synopsis "Type-safe GitHub Actions workflow generation")
(description
"This package provides type-safe GitHub Actions workflow generation.")
(license license:expat))))
(define-public rust-hypher-0.1
(hidden-package
(package
@@ -145,6 +307,191 @@ transliterating them. It supports Emoji and Chinese.")
(description "@code{hypher} is a Rust library for syllabification.")
(license (list license:expat license:asl2.0)))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
;;
;; Only livekit-protocol, livekit-runtime, and livekit-api are
;; packaged. The libwebrtc, webrtc-sys, and livekit crates are
;; disabled on Linux by our zed-use-mock-livekit-on-linux patch
;; (which adds target_os = "linux" to the cfg gate), but their
;; Cargo.toml files must remain for workspace resolution; their
;; source is replaced with empty stubs. The snippet also deletes
;; unused workspace members (livekit-ffi, soxr-sys, yuv-sys,
;; imgproc, examples) and the 1.6 MiB generated livekit.serde.rs
;; (guarded by a nonexistent "serde" feature, so never compiled).
;;
;; TODO: Regenerate livekit-protocol/src/livekit.rs (5650 lines)
;; from the .proto source in the livekit-protocol/protocol
;; submodule (github.com/livekit/protocol) using prost-build and
;; pbjson-build as native-inputs, then delete the shipped copy.
(define-public rust-livekit-0.7.8.5f04705
(hidden-package
(package
(name "rust-livekit")
(version "0.7.8")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/zed-industries/livekit-rust-sdks")
(commit "5f04705ac3f356350ae31534ffbc476abc9ea83d")))
(file-name
(git-file-name "rust-livekit" "0.7.8.5f04705"))
(sha256
(base32 "1irnw9dax0nl8rl7jxdxs5vw6hg166jj4gf1s5cza6igvmrkl6y9"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file-recursively
'(".github" "examples" "imgproc"
"livekit-ffi" "soxr-sys" "yuv-sys"
;; Keep Cargo.toml for workspace resolution
;; but replace source with stubs.
"libwebrtc/src"
"livekit/src"
"webrtc-sys/src"
"webrtc-sys/include"
"webrtc-sys/libwebrtc"))
(for-each (lambda (f)
(mkdir-p (dirname f))
(call-with-output-file f (const #t)))
'("libwebrtc/src/lib.rs"
"livekit/src/lib.rs"
"webrtc-sys/src/lib.rs"))
(delete-file
"livekit-protocol/src/livekit.serde.rs")
(substitute* "Cargo.toml"
(("\"livekit-ffi\",") "")
(("\"soxr-sys\",") "")
(("\"yuv-sys\",") "")
(("\"imgproc\",") ""))))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("livekit-protocol"
"livekit-runtime"
"livekit-api"
"webrtc-sys-build"
"webrtc-sys"
"libwebrtc"
"livekit")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")
#:phases
#~(modify-phases %standard-phases
(replace 'package
(lambda* (#:key source (cargo-package-crates '())
(cargo-package-flags '("--no-metadata" "--no-verify"))
(vendor-dir "guix-vendor")
#:allow-other-keys)
(use-modules (ice-9 ftw))
;; Same as the standard package phase, but deletes
;; cargo's target/package/tmp-crate/ scratch directory
;; between the packaging loop and the repacking step.
;; Cargo copies .crate files there during packaging and
;; does not clean up. The repacking step's recursive
;; find-files picks them up, and scandir confuses the
;; tmp-crate directory with an extracted crate when
;; names sort after "tmp-crate" alphabetically.
(when (file-exists? "Cargo.toml.orig")
(delete-file "Cargo.toml.orig"))
(for-each
(lambda (pkg)
(apply invoke "cargo" "package" "--offline"
"--package" pkg cargo-package-flags)
(for-each
(lambda (crate)
(invoke "tar" "xzf" crate "-C" vendor-dir))
(find-files "target/package" "\\.crate$"))
((assoc-ref %standard-phases 'patch-cargo-checksums)
#:vendor-dir vendor-dir))
cargo-package-crates)
;; Delete cargo's scratch directory.
(when (file-exists? "target/package/tmp-crate")
(delete-file-recursively "target/package/tmp-crate"))
;; Repack crates with deterministic timestamps.
(with-directory-excursion "target/package"
(for-each
(lambda (crate)
(invoke "tar" "xf" crate)
(delete-file crate)
(let ((dir
(car (scandir
"."
(lambda (file)
(and (not (member file '("." "..")))
(not (string-suffix?
".crate" file))))))))
(for-each
(lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0))))
(find-files dir #:directories? #t))
(apply invoke "tar" "czf"
(string-append dir ".crate")
"--sort=name" "--mtime=@0"
"--owner=root:0" "--group=root:0"
(find-files dir #:directories? #t))
(delete-file-recursively dir)))
(find-files "." "\\.crate$"))))))))
(inputs (cargo-inputs 'rust-livekit-0.7.8.5f04705))
(home-page "https://github.com/livekit/rust-sdks")
(synopsis "LiveKit real-time communication SDK for Rust")
(description
"This package provides a LiveKit real-time communication SDK for Rust.")
(license license:asl2.0))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
(define-public rust-notify-8.2.0.ce58c24
(hidden-package
(package
(name "rust-notify")
(version "8.2.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/zed-industries/notify.git")
(commit "ce58c24cad542c28e04ced02e20325a4ec28a31d")))
(file-name
(git-file-name "rust-notify" "8.2.0.ce58c24"))
(sha256
(base32 "09zn3ll1vlsblgrdacyw3zx58xzdxlab8ba7h22bbb57n76dmkl0"))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("notify-types"
"notify")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")))
(inputs (cargo-inputs 'rust-notify-8.2.0.ce58c24))
(home-page "https://github.com/notify-rs/notify")
(synopsis "Cross-platform filesystem notification library")
(description
"This package provides a cross-platform filesystem notification library
for Rust.")
(license (list license:asl2.0 license:expat)))))
(define-public rust-pcre2-utf32-0.2
(hidden-package
(package
@@ -227,6 +574,77 @@ UTF-32 support.")
"0zgqklzmyk893n82zq8d0is57npvy9lsfpqb83h1bbx9c42fl35p"))))
(inputs (cargo-inputs 'rust-pipewire-0.8.0.93138d0))))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
(define-public rust-pet-0.1.0.d5b5bb0
(hidden-package
(package
(name "rust-pet")
(version "0.1.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/microsoft/python-environment-tools.git")
(commit "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16")))
(file-name
(git-file-name "rust-pet" "0.1.0.d5b5bb0"))
(sha256
(base32 "01djr1761l7c889v9lng7igjqxiz208r2vrwij661cn2fy5xcm5f"))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("pet-fs"
"pet-core"
"pet-python-utils"
"pet-jsonrpc"
"pet-reporter"
"pet-conda"
"pet-virtualenv"
"pet-virtualenvwrapper"
"pet-env-var-path"
"pet-global-virtualenvs"
"pet-homebrew"
"pet-linux-global-python"
"pet-mac-commandlinetools"
"pet-mac-python-org"
"pet-mac-xcode"
"pet-pipenv"
"pet-pixi"
"pet-poetry"
"pet-pyenv"
"pet-telemetry"
"pet-uv"
"pet-venv"
"pet-windows-store"
"pet-windows-registry"
"pet")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-versions
(lambda _
(let ((version #$(package-version this-package)))
(substitute* (find-files "." "^Cargo[.]toml$")
(("^(pet-[a-z-]*) = [{] path = \"([^\"]*)\" [}]" x pkg path)
(string-append pkg " = { version = \"" version "\", path = \"" path "\" }")))))))))
(inputs (cargo-inputs 'rust-pet-0.1.0.d5b5bb0))
(home-page "https://github.com/microsoft/python-environment-tools")
(synopsis "Python environment tools")
(description
"This package provides Python environment tools.")
(license license:expat))))
(define-public rust-pubgrub-0.3.0.b70cf70
(let ((commit "b70cf707aa43f21b32f3a61b8a0889b15032d5c4")
(revision "0"))
@@ -677,6 +1095,47 @@ intelligence.")
(inputs (cons oniguruma
(cargo-inputs 'rust-syntect-5.3))))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
(define-public rust-tiktoken-rs-0.9.1.2570c43
(hidden-package
(package
(name "rust-tiktoken-rs")
(version "0.9.1")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/zed-industries/tiktoken-rs")
(commit "2570c4387a8505fb8f1d3f3557454b474f1e8271")))
(file-name
(git-file-name "rust-tiktoken-rs" "0.9.1.2570c43"))
(sha256
(base32 "0yki1whx16xqgsrnr6gjsxakj6qzyvz958g6c9h15xp154kw6573"))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("tiktoken-rs")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")))
(inputs (cargo-inputs 'rust-tiktoken-rs-0.9.1.2570c43))
(home-page "https://github.com/zurawiki/tiktoken-rs")
(synopsis "Rust library for OpenAI's BPE tokenizer")
(description
"This package provides Rust bindings for OpenAI's @acronym{BPE, byte
pair encoding} tokenizer, used to count and manage tokens for OpenAI
language models.")
(license license:expat))))
(define-public rust-tikv-jemallocator-for-polars
(let ((commit "c7991e5bb6b3e9f79db6b0f48dcda67c5c3d2936")
(revision "0"))
@@ -960,3 +1419,95 @@ and runtime for AI-assisted coding.")
(description "Glycin is a sandbox image decoder for image viewers and
thumbnails to display untrusted content safely.")
(license (list license:mpl2.0 license:lgpl2.1+))))
;; Workspace dependency of zed.
;;
;; Cargo side: Cargo unifies dependency versions across zed's
;; workspace, including this package's transitive dependencies,
;; and records them in zed's Cargo.lock.
;;
;; Guix side: zed's cargo-inputs entry (generated from zed's
;; Cargo.lock) already contains all of this package's transitive
;; dependencies, so this package reuses zed's cargo-inputs.
(define-public rust-zed-xim-0.4.0-zed.16f35a2
(hidden-package
(package
(name "rust-zed-xim")
(version "0.4.0-zed")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/zed-industries/xim-rs.git")
(commit "16f35a2c881b815a2b6cdfd6687988e84f8447d8")))
(file-name
(git-file-name "rust-zed-xim" "0.4.0-zed.16f35a2"))
(sha256
(base32 "14cyxxdgjpbkf8ny4c46cfqjinavi2cyxzwfngldlls97m5zh555"))))
(build-system cargo-build-system)
(arguments
(list #:skip-build? #t
#:install-source? #t
#:cargo-package-crates ''("xim-ctext"
"xim-parser"
"zed-xim")
#:cargo-package-flags ''("--no-metadata" "--no-verify"
"--exclude-lockfile")
#:phases
#~(modify-phases %standard-phases
(replace 'package
(lambda* (#:key source (cargo-package-crates '())
(cargo-package-flags '("--no-metadata" "--no-verify"))
(vendor-dir "guix-vendor")
#:allow-other-keys)
(use-modules (ice-9 ftw))
;; Same as the standard package phase, but deletes
;; cargo's target/package/tmp-crate/ scratch directory
;; between the packaging loop and the repacking step.
(when (file-exists? "Cargo.toml.orig")
(delete-file "Cargo.toml.orig"))
(for-each
(lambda (pkg)
(apply invoke "cargo" "package" "--offline"
"--package" pkg cargo-package-flags)
(for-each
(lambda (crate)
(invoke "tar" "xzf" crate "-C" vendor-dir))
(find-files "target/package" "\\.crate$"))
((assoc-ref %standard-phases 'patch-cargo-checksums)
#:vendor-dir vendor-dir))
cargo-package-crates)
(when (file-exists? "target/package/tmp-crate")
(delete-file-recursively "target/package/tmp-crate"))
(with-directory-excursion "target/package"
(for-each
(lambda (crate)
(invoke "tar" "xf" crate)
(delete-file crate)
(let ((dir
(car (scandir
"."
(lambda (file)
(and (not (member file '("." "..")))
(not (string-suffix?
".crate" file))))))))
(for-each
(lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0))))
(find-files dir #:directories? #t))
(apply invoke "tar" "czf"
(string-append dir ".crate")
"--sort=name" "--mtime=@0"
"--owner=root:0" "--group=root:0"
(find-files dir #:directories? #t))
(delete-file-recursively dir)))
(find-files "." "\\.crate$"))))))))
(inputs (cargo-inputs 'rust-zed-xim-0.4.0-zed.16f35a2))
(home-page "https://github.com/XDeme1/xim-rs")
(synopsis "X input method client and server")
(description
"This package provides a library for @code{xim}, the X input method.")
(license license:expat))))
+1 -1
View File
@@ -132,7 +132,7 @@
(replace "rustc-bootstrap" base-rust)
(replace "cargo-bootstrap" (list base-rust "cargo"))))))
;;; Note: mrustc's only purpose is to be able to bootstap Rust; it's designed
;;; Note: mrustc's only purpose is to be able to bootstrap Rust; it's designed
;;; to be used in source form.
(define %mrustc-commit "06b87d1af49d2db3bd850fdee8888055dd540dd1")
(define %mrustc-source
+2 -1
View File
@@ -1273,7 +1273,8 @@ contactless (RFID) and contact USB chipcard readers.")
(sha256
(base32 "1by4jnr3sx4s8sxv1iw8ja9iln3aw6k583kdl3r92cbcdfasm7xj"))
(patches (search-patches "qdigidoc-bundle-config-files.patch"
"qdigidoc-bundle-tsl-files.patch"))))
"qdigidoc-bundle-tsl-files.patch"
"qdigidoc-fix-icon.patch"))))
(build-system qt-build-system)
(arguments
(list
+8 -16
View File
@@ -511,14 +511,14 @@ POSIX Shell}, @url{https://www.gnu.org/software/bash/, Bash}, and
(define-public starship
(package
(name "starship")
(version "1.24.2")
(version "1.25.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "starship" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0q57nb66fww6c8kwfyl5dpv9c2gr721nbbqcpsrh9c6wd6c26339"))))
(base32 "0l0104a7f0ad636fzhybssjl76c5axkx241qq0f7f051kg34l5nj"))))
(build-system cargo-build-system)
(arguments
(list
@@ -573,22 +573,14 @@ POSIX Shell}, @url{https://www.gnu.org/software/bash/, Bash}, and
'())
(list git-minimal)))
(home-page "https://starship.rs")
(synopsis
"The minimal, blazing-fast, and infinitely customizable prompt for any shell!")
(synopsis "Fast and customizable shell prompt")
(description
"This package provides The minimal, blazing-fast, and infinitely customizable
prompt for any shell!
"Starship is a shell prompt that is fast and configurable, and works on
most common shells. It shows information from various sources in a way easy to
grasp at a glance, including but not limited to: the hostname/username/cwd trio,
git, project language and runtime.
@itemize
@item Fast: it's fast - *really really* fast :rocket:
@item Customizable: configure every aspect of your prompt
@item Universal: works on any shell, on any operating system
@item Intelligent: shows relevant information at a glance
@item Feature rich: support for all your favorite tools
@item Easy: quick to install - start using it in minutes
@end itemize
Note: users must have a nerd font installed and enabled in their terminal")
Note: Users must have a nerd font installed and enabled in their terminal.")
(license license:isc)))
(define-public envstore
+2 -2
View File
@@ -1465,12 +1465,12 @@ inference for statistical models.")
"|"))))))))
(native-inputs
(list bison
dvisvgm
flex
python-numpydoc
python-sphinx
;; python-sphinx-gallery ;; Currently broken
swig-4.0))
swig-4.0
texlive-dvisvgm))
(inputs
(list openblas ; the only required dependency
;; The dependencies below are all optional.
+31 -6
View File
@@ -536,7 +536,7 @@ applications.")
(define-public garage
(package
(name "garage")
(version "2.2.0")
(version "2.3.0")
(source
(origin
(method git-fetch)
@@ -545,7 +545,7 @@ applications.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0nqda782by02ybqv44lpjagn3aqsgpaszvqbicg9iz3lymj8g9ai"))
(base32 "12zigcvnv662lk31gh30hg37ljnclkgmrfxaivivyp50a5lxr88a"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "doc")))))
@@ -566,6 +566,10 @@ applications.")
"syslog"
"telemetry-otlp")
#:install-source? #f
#:modules
'((guix build cargo-build-system)
(guix build utils)
(ice-9 match))
#:phases
#~(modify-phases %standard-phases
;; The 'check phase doesn't honor #:features
@@ -592,10 +596,31 @@ applications.")
"--features" (string-join features)))
(if (null? cargo-install-paths)
'(".")
cargo-install-paths)))))))
(native-inputs (list nss-certs-for-test
pkg-config
protobuf))
cargo-install-paths))))
(add-after 'install 'install-completions
(lambda* (#:key native-inputs #:allow-other-keys)
(for-each
(match-lambda
((shell . path)
(mkdir-p (in-vicinity #$output (dirname path)))
(let ((binary
(if #$(%current-target-system)
(search-input-file native-inputs "bin/garage")
(in-vicinity #$output "bin/garage"))))
(with-output-to-file (in-vicinity #$output path)
(lambda _
(invoke binary "completions" shell))))))
'(("bash" . "share/bash-completion/completions/garage")
("elvish" . "share/elvish/lib/garage")
("fish" . "share/fish/vendor_completions.d/garage.fish")
("zsh" . "share/zsh/site-functions/_garage"))))))))
(native-inputs
(append (if (%current-target-system)
(list this-package)
'())
(list nss-certs-for-test
pkg-config
protobuf)))
(inputs
(cons* libsodium
lmdb
+1 -1
View File
@@ -822,7 +822,7 @@ your calls and messages.")
(substitute* "self-test.mak"
;; Fails with: pjlib-util-test-x86_64-unknown-linux-gnu:
;; ../src/pjlib-util-test/resolver_test.c:1501: action2_1:
;; Assertio n `pj_strcmp2(&pkt->q[0].name, "_sip._udp."
;; Assertion `pj_strcmp2(&pkt->q[0].name, "_sip._udp."
;; "domain2.com")==0' failed.
((" pjlib_util_test ") ""))
(substitute* "pjsip/src/test/test.h"
+63
View File
@@ -405,6 +405,69 @@ multi-seat support, a replacement for @command{mingetty}, and more.")
(supported-systems (filter (cut string-suffix? "-linux" <>)
%supported-systems))))
;;; INFO: kmscon-8 is a dependency of Guix System installer. When upgrading,
;;; remember to test it; you can fire a VM by following the procedure below:
;;;
;;; 1. Manually change `(gnu system install)' module so that in procedure
;;; `%installation-services' the key `guix-for-system' refers to `guix'
;;; instead of `(current-guix)'.
;;; With this temporary change, you will need neither to rebuild guix
;;; nor to have commit rights.
;;;
;;; 2. Execute `./pre-inst-env guix system vm gnu/system/install.scm' in the
;;; development environment.
;;;
(define-public kmscon-8
(let ((commit "db868619fbb785f184f38c729cd4842012ef4478")
(revision "2"))
(package
(inherit kmscon)
(name "kmscon")
(version (git-version "8" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kmscon/kmscon")
(commit commit)))
(sha256
(base32
"0rj3icrfm584pq3916div0chd9h3gxwd1qgw7inf5x508yvgrgxl"))
(file-name (git-file-name name version))
(patches
;; INFO: This Guix-specific patch is useful for making keyboard
;; selection in Guix System installer work as intended.
;; TODO: port it to 9.x series.
(search-patches "kmscon-8-runtime-keymap-switch.patch"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'remove-systemd
;; Use elogind instead of systemd.
(lambda _
(substitute* "configure"
(("libsystemd-daemon libsystemd-login")
"libelogind"))
(substitute* "src/uterm_systemd.c"
(("#include <systemd/sd-login.h>")
"#include <elogind/sd-login.h>")
;; We don't have this header.
(("#include <systemd/sd-daemon\\.h>")
"")
;; Replace the call to 'sd_booted' by the truth value.
(("sd_booted\\(\\)")
"1")))))))
(native-inputs
(list autoconf
automake
libtool
pkg-config
;; to generate the man page
docbook-xsl
libxslt)))))
(define-public libtermkey
(package
(name "libtermkey")

Some files were not shown because too many files have changed in this diff Show More