forked from tribes/guix
Compare commits
151 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 91bda669ab | |||
| f384e4f25a | |||
| 86330b7344 | |||
| d3a0108415 | |||
| 1a7e8d47e3 | |||
| 927469313c | |||
| 5043ec49c5 | |||
| 5660474bfa | |||
| 5bef6564ba | |||
| c781426226 | |||
| 3699c4a4fe | |||
| d1011b548f | |||
| 3814cc1da9 | |||
| 746add3f1b | |||
| 2fbb82a8a5 | |||
| 45cf15b751 | |||
| 30442f49a5 | |||
| 2afe7fe09e | |||
| 2fe026b447 | |||
| 03f9966834 | |||
| 2f889ec2b5 | |||
| cfd676fa24 | |||
| 5e86b3e112 | |||
| d09c3b19e7 | |||
| 68adc69ce3 | |||
| b7b8497734 | |||
| 6b11be9644 | |||
| 79a70405bb | |||
| 8d06dbc72e | |||
| ac7bec1187 | |||
| a1bb828da2 | |||
| 6a90416017 | |||
| 2fdb18979e | |||
| d8bc7a857a | |||
| 9ccbefd585 | |||
| 8538108621 | |||
| adac45850b | |||
| 63e73973a5 | |||
| 082c705d48 | |||
| a544e59205 | |||
| fed54175a1 | |||
| 6d5a20bc05 | |||
| 92df3d957a | |||
| 8bb2902721 | |||
| dc0ffec8da | |||
| ccd22eac80 | |||
| da61f4e8fb | |||
| 67fa713c9a | |||
| d8aadaecca | |||
| 84426cb20a | |||
| 3e4c2ce48e | |||
| 8014907342 | |||
| 5dd9f05628 | |||
| 8d585c6179 | |||
| 89a627472b | |||
| 98a10e4e2e | |||
| d7cf85a404 | |||
| de90fd9b14 | |||
| 8a8d8ca39e | |||
| a06400ad5c | |||
| ca58363a7c | |||
| ace8be46a4 | |||
| f0079d20ae | |||
| e597af9546 | |||
| 41ab1cb9e4 | |||
| 9bc1228485 | |||
| 745bd96b91 | |||
| 357fbd56fb | |||
| d23f6960d8 | |||
| fa26ae8d65 | |||
| 51ec304fb7 | |||
| 0cd40ba2ab | |||
| 857540e6cb | |||
| 0d16098802 | |||
| eb2482a352 | |||
| 3ffa9e2742 | |||
| 7a4e3229f7 | |||
| a8103c1b7c | |||
| f77bbf8016 | |||
| c26c3d0f53 | |||
| 0d11c221b8 | |||
| 6abb7bc422 | |||
| 03937c8724 | |||
| 7ff2ca1b5c | |||
| 380efb7408 | |||
| 589f4cc655 | |||
| 05e669ac50 | |||
| 08341ec277 | |||
| b725619636 | |||
| a3f6d396cd | |||
| 7d67cacad1 | |||
| 333d61cf5b | |||
| 21a4d649b2 | |||
| 5ff9ca0339 | |||
| c4657c774b | |||
| b559fd6938 | |||
| fa38888348 | |||
| 10ea4f874e | |||
| c5280fd612 | |||
| ed63c9e8f7 | |||
| 297b593f62 | |||
| 07ecb050c0 | |||
| ac316e522a | |||
| 99fdbdef6a | |||
| 101b12a54a | |||
| aafdf7ecf7 | |||
| 0999b3268c | |||
| e296f3f012 | |||
| 759bdcb469 | |||
| ee985ff4d6 | |||
| 4fdaa6e2f2 | |||
| 445e61337e | |||
| d632b423d5 | |||
| 4a4ef229e6 | |||
| 2c51b803e3 | |||
| 6690bf46c6 | |||
| 58266bb4ba | |||
| 69f512e520 | |||
| 83e5fe437f | |||
| ef81d340cd | |||
| 5ce1b4a3e3 | |||
| e155ef7c4b | |||
| 09a4a0fce4 | |||
| d841bf2ec2 | |||
| fe7badf33e | |||
| e0fd8f335c | |||
| 343d7553f0 | |||
| dca6d32c62 | |||
| 4719c0781c | |||
| e3a096758c | |||
| bd16834557 | |||
| d1c04ded76 | |||
| 39d7eadd40 | |||
| 891e434c6b | |||
| 0b409bae2c | |||
| 15c7094492 | |||
| c1ca168e05 | |||
| 8e9f2feeef | |||
| 66c2b3f46d | |||
| 5578b6daf2 | |||
| 5d80f53024 | |||
| 7927aebb9e | |||
| a3c93d47fa | |||
| f6b79709c3 | |||
| 1b9b62e0c5 | |||
| 1a76acd4c2 | |||
| 0bb446efff | |||
| 6ab6e5b75d | |||
| 40fc279123 | |||
| 36f773a1f2 | |||
| 08222e17eb |
@@ -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
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")))
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
|
||||
(define %sundry-texlive-packages
|
||||
(list bibtool
|
||||
dvisvgm
|
||||
rubber
|
||||
texmaker
|
||||
texstudio
|
||||
|
||||
+19
-10
@@ -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
@@ -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 \
|
||||
|
||||
@@ -370,7 +370,7 @@ This package includes the following programs:
|
||||
libjpeg-turbo
|
||||
perl
|
||||
python
|
||||
v4l-utils-minimal))
|
||||
v4l-utils))
|
||||
(propagated-inputs
|
||||
;; These are in 'requires' field of .pc files.
|
||||
(list glib gtk+))
|
||||
|
||||
+12
-20
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")))
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -108,9 +108,7 @@
|
||||
(lambda _
|
||||
(invoke "cmake" "--install" "."))))))
|
||||
(inputs
|
||||
`(("libconfig" ,libconfig)
|
||||
("libedit" ,libedit)
|
||||
("zlib" ,zlib)))
|
||||
`(("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("lld-wrapper" ,(make-lld-wrapper lld-17 #:lld-as-ld? #t))
|
||||
("llvm" ,llvm-17)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.")))
|
||||
|
||||
|
||||
@@ -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
@@ -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 @@ Meow’s 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 @@ Meow’s 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")
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -6749,7 +6749,7 @@ in-window at 640x480 resolution or fullscreen.")
|
||||
(define-public warzone2100
|
||||
(package
|
||||
(name "warzone2100")
|
||||
(version "4.6.1")
|
||||
(version "4.6.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/warzone2100/releases/"
|
||||
@@ -6765,7 +6765,7 @@ in-window at 640x480 resolution or fullscreen.")
|
||||
"inih" "re2" "utf8proc" "utfcpp")))))
|
||||
(sha256
|
||||
(base32
|
||||
"02x5ihkpfkpjxwvh00d8yqzd796af7d684nk96hzhhq28qw5bb16"))))
|
||||
"0fmiy0pm56yy69c0nhynjdiaslwlfg8cdvfl5s78g5pzdi1y47s3"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments (list #:configure-flags #~'("-GNinja"
|
||||
"-DWZ_DISTRIBUTOR=Guix"
|
||||
@@ -6802,7 +6802,7 @@ in-window at 640x480 resolution or fullscreen.")
|
||||
opusfile
|
||||
physfs
|
||||
re2
|
||||
sdl2
|
||||
sdl3
|
||||
sqlite
|
||||
utf8proc
|
||||
utfcpp
|
||||
@@ -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"
|
||||
|
||||
@@ -2936,7 +2936,7 @@ to the OSM opening hours specification.")
|
||||
(define-public josm
|
||||
(package
|
||||
(name "josm")
|
||||
(version "19539")
|
||||
(version "19555")
|
||||
(source (origin
|
||||
(method svn-fetch)
|
||||
(uri (svn-reference
|
||||
@@ -2945,7 +2945,7 @@ to the OSM opening hours specification.")
|
||||
(recursive? #f)))
|
||||
(sha256
|
||||
(base32
|
||||
"05kslpvdwl4fldjzl6m2kmqvbmjv5yvipfavg01l30ywhw2c7v7v"))
|
||||
"0kpshdj8kf9ag7h1qqrh9jqc6c9iv8v369mk60a8g7cbzf0xpblw"))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
|
||||
+21
-24
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -605,9 +605,9 @@ in the case of Firefox, it is browser/locales/all-locales."
|
||||
"zh-TW"))
|
||||
|
||||
;;; Please keep these versions in sync with icedove.
|
||||
(define %icecat-base-version "140.9.0")
|
||||
(define %icecat-base-version "140.9.1")
|
||||
(define %icecat-version (string-append %icecat-base-version "-gnu1"))
|
||||
(define %icecat-build-id "20260324000000") ;must be of the form YYYYMMDDhhmmss
|
||||
(define %icecat-build-id "20260414000000") ;must be of the form YYYYMMDDhhmmss
|
||||
|
||||
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
|
||||
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
|
||||
@@ -627,9 +627,9 @@ in the case of Firefox, it is browser/locales/all-locales."
|
||||
"firefox-" upstream-firefox-version ".source.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b79x61w51fjf12p5sr9pipg4b3fjdnbsg0j20fdai3jq6jb4wmr"))))
|
||||
"1hld2kbzvrmr7pqq0r5hw639xl8kw29lm2hsbn0m4kxang1fdlj5"))))
|
||||
|
||||
(gnuzilla-commit "10a8be3fcf725ed01ffb7279ec27c2fba55dd2d2")
|
||||
(gnuzilla-commit "f3595923458a5255f61a3853bd83bb5f004dc3bc")
|
||||
(gnuzilla-source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -640,7 +640,7 @@ in the case of Firefox, it is browser/locales/all-locales."
|
||||
(string-take gnuzilla-commit 8)))
|
||||
(sha256
|
||||
(base32
|
||||
"076s3zpq0cj24a2pjarb57k1xv9z45xazps8rgypzw8yc4pxi9rj"))))
|
||||
"03kc08cvmdv3sxihf5hfhw2k91mg1y6f46b3x47p7q98phgk03cv"))))
|
||||
|
||||
;; 'search-patch' returns either a valid file name or #f, so wrap it
|
||||
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
|
||||
@@ -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.
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
;;; Copyright © 2025 Jared Klingenberger <jkling@noreply.codeberg.org>
|
||||
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
|
||||
;;; Copyright © 2026 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2026 Evgeny Pisemsky <mail@pisemsky.site>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -386,6 +387,7 @@ devices.")
|
||||
;; - cloud.google.com/go/kms
|
||||
;; - cloud.google.com/go/longrunning
|
||||
;; - cloud.google.com/go/monitoring
|
||||
;; - cloud.google.com/go/security
|
||||
;; - cloud.google.com/go/storage
|
||||
(for-each delete-file-recursively
|
||||
(list "auth"
|
||||
@@ -394,6 +396,7 @@ devices.")
|
||||
"kms"
|
||||
"longrunning"
|
||||
"monitoring"
|
||||
"security"
|
||||
"storage"))))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
@@ -783,6 +786,51 @@ its service definition.")
|
||||
"This package provides a Go Client Library for Cloud Monitoring API.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-cloud-google-com-go-security
|
||||
(package
|
||||
(name "go-cloud-google-com-go-security")
|
||||
(version "1.21.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/googleapis/google-cloud-go")
|
||||
(commit (go-version->git-ref version #:subdir "security"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1pn77lf1d22sqpkia9zccdhdihlqc48lls6y9npc2wrp4lman2kv"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet #~(begin
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "." "security")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:skip-build? #t
|
||||
#:import-path "cloud.google.com/go/security"
|
||||
#:unpack-path "cloud.google.com/go"))
|
||||
(propagated-inputs
|
||||
(list go-cloud-google-com-go-iam
|
||||
go-cloud-google-com-go-longrunning
|
||||
go-github-com-googleapis-gax-go-v2
|
||||
go-google-golang-org-api
|
||||
go-google-golang-org-genproto
|
||||
go-google-golang-org-genproto-googleapis-api
|
||||
go-google-golang-org-grpc
|
||||
go-google-golang-org-protobuf))
|
||||
(home-page "https://cloud.google.com/go")
|
||||
(synopsis "Google Cloud Certificate Authority API")
|
||||
(description
|
||||
"This package provides a Go Client Library for Certificate Authority API.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-cloud-google-com-go-storage
|
||||
(package
|
||||
(name "go-cloud-google-com-go-storage")
|
||||
@@ -10214,6 +10262,54 @@ Call}.")
|
||||
(propagated-inputs
|
||||
(list go-golang-org-x-net))))
|
||||
|
||||
(define-public go-github-com-jellydator-ttlcache-v3
|
||||
(package
|
||||
(name "go-github-com-jellydator-ttlcache-v3")
|
||||
(version "3.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jellydator/ttlcache")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0c7k99d0km5vplfikb58j2wbriy3mzzrrfrc0d85x50km0y4g4ln"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:import-path "github.com/jellydator/ttlcache/v3"
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remove-examples-and-benchmarks
|
||||
(lambda* (#:key tests? import-path #:allow-other-keys)
|
||||
(with-directory-excursion (string-append "src/" import-path)
|
||||
(delete-file-recursively "bench")
|
||||
(delete-file-recursively "examples")))))))
|
||||
(native-inputs
|
||||
(list go-github-com-stretchr-testify
|
||||
go-go-uber-org-goleak))
|
||||
(propagated-inputs
|
||||
(list go-golang-org-x-sync))
|
||||
(home-page "https://github.com/jellydator/ttlcache")
|
||||
(synopsis "In-memory cache with item expiration and generics")
|
||||
(description
|
||||
"TTLCache is an in-memory cache with item expiration and generics which
|
||||
provides the following features:
|
||||
|
||||
@itemize
|
||||
@item simple API
|
||||
@item type parameters
|
||||
@item item expiration and automatic deletion
|
||||
@item automatic expiration time extension on each Get call
|
||||
@item loader interface that may be used to load/lazily initialize missing
|
||||
citem items
|
||||
@item thread safety
|
||||
@item event handlers (insertion, update, and eviction)
|
||||
@item metrics
|
||||
@end itemize")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public go-github-com-jeremija-gosubmit
|
||||
(package
|
||||
(name "go-github-com-jeremija-gosubmit")
|
||||
@@ -10515,6 +10611,33 @@ jsoniter and variable type declarations (if any). jsoniter interfaces gives
|
||||
https://github.com/flynn/noise crypto protocols.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public go-github-com-juju-ratelimit
|
||||
(package
|
||||
(name "go-github-com-juju-ratelimit")
|
||||
(version "1.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/juju/ratelimit")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1qbjcm4y53awkqmpxb1nm9c1xdylc44vph4mn30qjb5wrcqy7c1r"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:import-path "github.com/juju/ratelimit"))
|
||||
(native-inputs
|
||||
(list go-gopkg-in-check-v1))
|
||||
(home-page "https://github.com/juju/ratelimit")
|
||||
(synopsis "Efficient token bucket implementation")
|
||||
(description
|
||||
"The ratelimit package provides an efficient
|
||||
@url{http://en.wikipedia.org/wiki/Token_bucket, token bucket} implementation
|
||||
that can be used to limit the rate of arbitrary things.")
|
||||
(license license:lgpl3)))
|
||||
|
||||
(define-public go-github-com-julienschmidt-httprouter
|
||||
(package
|
||||
(name "go-github-com-julienschmidt-httprouter")
|
||||
@@ -15975,6 +16098,512 @@ support.")
|
||||
kinds of referrer URLs (search, social, ...).")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public go-github-com-sigstore-rekor
|
||||
(package
|
||||
(name "go-github-com-sigstore-rekor")
|
||||
(version "1.4.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigstore/rekor")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1g2xma0fzy7a4nv7bj04pj9vqg4hbbz3j3jxkir0sxql5ragj36d"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:skip-build? #t
|
||||
#:import-path "github.com/sigstore/rekor"
|
||||
;; XXX: Remove when all inputs are packaged.
|
||||
#:test-subdirs
|
||||
#~(list "pkg/events/newentry"
|
||||
"pkg/indexstorage/mysql"
|
||||
"pkg/pki/minisign"
|
||||
"pkg/pki/pgp"
|
||||
"pkg/pki/ssh"
|
||||
"pkg/pki/tuf"
|
||||
"pkg/pki/x509"
|
||||
"pkg/pubsub/gcp"
|
||||
"pkg/util")))
|
||||
(native-inputs
|
||||
(list go-github-com-asaskevich-govalidator
|
||||
go-github-com-data-dog-go-sqlmock
|
||||
go-github-com-golang-mock
|
||||
go-github-com-google-go-cmp
|
||||
go-github-com-spf13-cobra
|
||||
go-github-com-spf13-pflag
|
||||
go-github-com-spf13-viper
|
||||
go-github-com-stretchr-testify
|
||||
go-go-uber-org-goleak
|
||||
go-sigs-k8s-io-release-utils))
|
||||
(propagated-inputs
|
||||
(list go-cloud-google-com-go-iam
|
||||
go-github-com-asaskevich-govalidator
|
||||
go-github-com-blang-semver
|
||||
go-github-com-cyberphone-json-canonicalization
|
||||
go-github-com-go-chi-chi-v5
|
||||
go-github-com-go-openapi-errors
|
||||
go-github-com-go-openapi-loads
|
||||
go-github-com-go-openapi-runtime
|
||||
go-github-com-go-openapi-spec
|
||||
go-github-com-go-openapi-strfmt
|
||||
go-github-com-go-openapi-swag
|
||||
go-github-com-go-openapi-swag-conv
|
||||
go-github-com-go-openapi-validate
|
||||
go-github-com-go-sql-driver-mysql
|
||||
go-github-com-go-viper-mapstructure-v2
|
||||
go-github-com-google-trillian
|
||||
go-github-com-grpc-ecosystem-go-grpc-middleware
|
||||
go-github-com-hashicorp-go-cleanhttp
|
||||
go-github-com-hashicorp-go-retryablehttp
|
||||
go-github-com-in-toto-in-toto-golang
|
||||
go-github-com-jedisct1-go-minisign
|
||||
go-github-com-jmoiron-sqlx
|
||||
go-github-com-prometheus-client-golang
|
||||
go-github-com-redis-go-redis-v9
|
||||
go-github-com-rs-cors
|
||||
go-github-com-secure-systems-lab-go-securesystemslib
|
||||
go-github-com-sigstore-protobuf-specs
|
||||
go-github-com-sigstore-sigstore
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-aws
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-azure
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-gcp
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault
|
||||
go-github-com-theupdateframework-go-tuf
|
||||
go-github-com-tink-crypto-tink-go-awskms-v2
|
||||
go-github-com-tink-crypto-tink-go-gcpkms-v2
|
||||
go-github-com-tink-crypto-tink-go-v2
|
||||
go-github-com-transparency-dev-merkle
|
||||
go-github-com-veraison-go-cose
|
||||
go-go-uber-org-zap
|
||||
go-golang-org-x-crypto
|
||||
go-golang-org-x-mod
|
||||
go-golang-org-x-net
|
||||
go-golang-org-x-sync
|
||||
go-google-golang-org-api
|
||||
go-google-golang-org-genproto-googleapis-rpc
|
||||
go-google-golang-org-grpc
|
||||
go-google-golang-org-protobuf
|
||||
go-gopkg-in-ini-v1
|
||||
go-gopkg-in-yaml-v2
|
||||
go-sigs-k8s-io-yaml
|
||||
|
||||
;; TODO: Complete packaging.
|
||||
;; go-cloud-google-com-go-profiler
|
||||
;; go-cloud-google-com-go-pubsub
|
||||
;; go-cloud-google-com-go-pubsub-v2
|
||||
;; go-github-com-adamkorcz-go-fuzz-headers-1
|
||||
;; go-github-com-cavaliercoder-go-rpm
|
||||
;; go-github-com-go-redis-redismock-v9
|
||||
;; go-github-com-google-rpmpack
|
||||
;; go-github-com-sassoftware-relic
|
||||
;; go-github-com-sassoftware-relic-v7
|
||||
;; go-go-step-sm-crypto
|
||||
#;go-gocloud-dev))
|
||||
(home-page "https://github.com/sigstore/rekor")
|
||||
(synopsis "Sigstore transparency log")
|
||||
(description
|
||||
"Rekor provides an immutable tamper-resistant ledger of metadata generated
|
||||
within a software project's supply chain. It enables software maintainers
|
||||
and consumers to transparently record signed metadata to a ledger.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-sigstore-rekor-tiles-v2
|
||||
(package
|
||||
(name "go-github-com-sigstore-rekor-tiles-v2")
|
||||
(version "2.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigstore/rekor-tiles")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0z9is3mf31abzwappwp05z1pzci6f25z1ax27qgghmdisxmd3c6k"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:skip-build? #t
|
||||
#:import-path "github.com/sigstore/rekor-tiles/v2"
|
||||
;; XXX: Remove when all inputs are packaged.
|
||||
#:test-subdirs
|
||||
#~(list "internal/algorithmregistry"
|
||||
"internal/safeint"
|
||||
"pkg/client/write"
|
||||
"pkg/types/dsse"
|
||||
"pkg/types/hashedrekord"
|
||||
"pkg/types/verifier"
|
||||
"pkg/verifier/certificate"
|
||||
"pkg/verifier/publickey"
|
||||
"pkg/verify")))
|
||||
(native-inputs
|
||||
(list go-github-com-go-test-deep
|
||||
go-github-com-spf13-cobra
|
||||
go-github-com-spf13-viper
|
||||
go-github-com-stretchr-testify
|
||||
go-sigs-k8s-io-release-utils))
|
||||
(propagated-inputs
|
||||
(list go-cloud-google-com-go-storage
|
||||
go-github-com-aws-aws-sdk-go-v2
|
||||
go-github-com-aws-aws-sdk-go-v2-config
|
||||
go-github-com-aws-aws-sdk-go-v2-credentials
|
||||
go-github-com-aws-aws-sdk-go-v2-service-s3
|
||||
go-github-com-aws-smithy-go
|
||||
go-github-com-cyberphone-json-canonicalization
|
||||
go-github-com-grpc-ecosystem-go-grpc-middleware
|
||||
go-github-com-grpc-ecosystem-go-grpc-middleware-providers-prometheus
|
||||
go-github-com-grpc-ecosystem-go-grpc-middleware-v2
|
||||
go-github-com-grpc-ecosystem-grpc-gateway-v2
|
||||
go-github-com-prometheus-client-golang
|
||||
go-github-com-secure-systems-lab-go-securesystemslib
|
||||
go-github-com-sigstore-protobuf-specs
|
||||
go-github-com-sigstore-sigstore
|
||||
;; go-github-com-sigstore-sigstore-go ;cycles
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-aws
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-gcp
|
||||
go-github-com-tink-crypto-tink-go-awskms-v2
|
||||
go-github-com-tink-crypto-tink-go-gcpkms-v2
|
||||
go-github-com-tink-crypto-tink-go-v2
|
||||
go-github-com-transparency-dev-formats
|
||||
go-github-com-transparency-dev-merkle
|
||||
go-go-opentelemetry-io-otel
|
||||
go-go-opentelemetry-io-otel-exporters-prometheus
|
||||
go-go-opentelemetry-io-otel-sdk-metric
|
||||
go-golang-org-x-exp
|
||||
go-golang-org-x-mod
|
||||
go-golang-org-x-sync
|
||||
go-google-golang-org-api
|
||||
go-google-golang-org-genproto-googleapis-api
|
||||
go-google-golang-org-grpc
|
||||
go-google-golang-org-protobuf
|
||||
go-k8s-io-klog-v2
|
||||
|
||||
;; TODO: Complete packaging.
|
||||
;; go-cloud-google-com-go-spanner
|
||||
;; go-github-com-chainguard-dev-clog
|
||||
;; go-github-com-transparency-dev-tessera
|
||||
#;go-go-step-sm-crypto))
|
||||
(home-page "https://github.com/sigstore/rekor-tiles")
|
||||
(synopsis "Tile-based transparency log for Sigstore")
|
||||
(description
|
||||
"This package provides a tile-based implementation of a transparency log
|
||||
for the Sigstore ecosystem, supporting efficient verification of log entries.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-sigstore-sigstore-go
|
||||
(package
|
||||
(name "go-github-com-sigstore-sigstore-go")
|
||||
(version "1.1.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigstore/sigstore-go")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0jr8jj4wibzxawn3dzv1j4cxmbh2b5g356mh2bqq9d0p78idf7k3"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:skip-build? #t
|
||||
#:import-path "github.com/sigstore/sigstore-go"
|
||||
#:embed-files #~(list ".*\\.json")
|
||||
#:test-subdirs
|
||||
#~(list "pkg/bundle"
|
||||
"pkg/fulcio/certificate"
|
||||
"pkg/tlog"
|
||||
"pkg/tuf")))
|
||||
(native-inputs
|
||||
(list go-github-com-stretchr-testify))
|
||||
(propagated-inputs
|
||||
(list go-github-com-cyberphone-json-canonicalization
|
||||
go-github-com-digitorus-timestamp
|
||||
go-github-com-go-openapi-runtime
|
||||
go-github-com-go-openapi-strfmt
|
||||
go-github-com-go-openapi-swag-conv
|
||||
go-github-com-google-certificate-transparency-go
|
||||
go-github-com-in-toto-attestation
|
||||
go-github-com-in-toto-in-toto-golang
|
||||
go-github-com-secure-systems-lab-go-securesystemslib
|
||||
go-github-com-sigstore-protobuf-specs
|
||||
go-github-com-sigstore-rekor
|
||||
go-github-com-sigstore-rekor-tiles-v2
|
||||
go-github-com-sigstore-sigstore
|
||||
go-github-com-sigstore-timestamp-authority-v2
|
||||
go-github-com-theupdateframework-go-tuf-v2
|
||||
go-golang-org-x-crypto
|
||||
go-golang-org-x-mod
|
||||
go-google-golang-org-protobuf))
|
||||
(home-page "https://github.com/sigstore/sigstore-go")
|
||||
(synopsis "Go client library for Sigstore")
|
||||
(description
|
||||
"This package provides a Go client library for Sigstore, enabling
|
||||
verification of signatures and attestations produced by Sigstore tools.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-sigstore-sigstore-pkg-signature-kms-aws
|
||||
(package
|
||||
(name "go-github-com-sigstore-sigstore-pkg-signature-kms-aws")
|
||||
(version "1.10.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigstore/sigstore")
|
||||
(commit (go-version->git-ref version
|
||||
#:subdir
|
||||
"pkg/signature/kms/aws"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "." "pkg")
|
||||
(delete-all-but "pkg" "signature")
|
||||
(delete-all-but "pkg/signature" "kms")
|
||||
(delete-all-but "pkg/signature/kms" "aws")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:import-path "github.com/sigstore/sigstore/pkg/signature/kms/aws"
|
||||
#:unpack-path "github.com/sigstore/sigstore"))
|
||||
(native-inputs
|
||||
(list go-github-com-stretchr-testify))
|
||||
(propagated-inputs
|
||||
(list go-github-com-aws-aws-sdk-go-v2
|
||||
go-github-com-aws-aws-sdk-go-v2-config
|
||||
go-github-com-aws-aws-sdk-go-v2-service-kms
|
||||
go-github-com-jellydator-ttlcache-v3
|
||||
go-github-com-sigstore-sigstore))
|
||||
(home-page "https://github.com/sigstore/sigstore")
|
||||
(synopsis "Utilities related to AWS KMS")
|
||||
(description
|
||||
"Package aws implement the interface with Amazon AWS KMS service.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-sigstore-sigstore-pkg-signature-kms-azure
|
||||
(package
|
||||
(name "go-github-com-sigstore-sigstore-pkg-signature-kms-azure")
|
||||
(version "1.10.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigstore/sigstore")
|
||||
(commit (go-version->git-ref version
|
||||
#:subdir
|
||||
"pkg/signature/kms/azure"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "." "pkg")
|
||||
(delete-all-but "pkg" "signature")
|
||||
(delete-all-but "pkg/signature" "kms")
|
||||
(delete-all-but "pkg/signature/kms" "azure")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:import-path "github.com/sigstore/sigstore/pkg/signature/kms/azure"
|
||||
#:unpack-path "github.com/sigstore/sigstore"))
|
||||
(propagated-inputs
|
||||
(list go-github-com-azure-azure-sdk-for-go-sdk-azcore
|
||||
go-github-com-azure-azure-sdk-for-go-sdk-azidentity
|
||||
go-github-com-azure-azure-sdk-for-go-sdk-security-keyvault-azkeys
|
||||
go-github-com-go-jose-go-jose-v4
|
||||
go-github-com-google-go-cmp
|
||||
go-github-com-jellydator-ttlcache-v3
|
||||
go-github-com-sigstore-sigstore
|
||||
go-golang-org-x-crypto))
|
||||
(home-page "https://github.com/sigstore/sigstore")
|
||||
(synopsis "Utilities related to Microsoft Azure KMS")
|
||||
(description
|
||||
"Package azure implement the interface with Microsoft Azure KMS
|
||||
service.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-sigstore-sigstore-pkg-signature-kms-gcp
|
||||
(package
|
||||
(name "go-github-com-sigstore-sigstore-pkg-signature-kms-gcp")
|
||||
(version "1.10.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigstore/sigstore")
|
||||
(commit (go-version->git-ref version
|
||||
#:subdir
|
||||
"pkg/signature/kms/gcp"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "." "pkg")
|
||||
(delete-all-but "pkg" "signature")
|
||||
(delete-all-but "pkg/signature" "kms")
|
||||
(delete-all-but "pkg/signature/kms" "gcp")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:import-path "github.com/sigstore/sigstore/pkg/signature/kms/gcp"
|
||||
#:unpack-path "github.com/sigstore/sigstore"))
|
||||
(propagated-inputs
|
||||
(list go-cloud-google-com-go-kms
|
||||
go-github-com-jellydator-ttlcache-v3
|
||||
go-github-com-sigstore-sigstore
|
||||
go-golang-org-x-oauth2
|
||||
go-google-golang-org-api
|
||||
go-google-golang-org-protobuf))
|
||||
(home-page "https://github.com/sigstore/sigstore")
|
||||
(synopsis "Utilities related to Google Cloud Platform KMS")
|
||||
(description
|
||||
"Package gcp implement the interface with Google Cloud KMS service.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault
|
||||
(package
|
||||
(name "go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault")
|
||||
(version "1.10.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigstore/sigstore")
|
||||
(commit (go-version->git-ref version
|
||||
#:subdir
|
||||
"pkg/signature/kms/hashivault"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "." "pkg")
|
||||
(delete-all-but "pkg" "signature")
|
||||
(delete-all-but "pkg/signature" "kms")
|
||||
(delete-all-but "pkg/signature/kms" "hashivault")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:import-path "github.com/sigstore/sigstore/pkg/signature/kms/hashivault"
|
||||
#:unpack-path "github.com/sigstore/sigstore"))
|
||||
(native-inputs
|
||||
(list go-github-com-stretchr-testify))
|
||||
(propagated-inputs
|
||||
(list go-github-com-hashicorp-vault-api
|
||||
go-github-com-jellydator-ttlcache-v3
|
||||
go-github-com-mitchellh-go-homedir
|
||||
go-github-com-sigstore-sigstore))
|
||||
(home-page "https://github.com/sigstore/sigstore")
|
||||
(synopsis "Utilities related to Hashivault KMS")
|
||||
(description
|
||||
"Package hashivault implement the interface with
|
||||
@url{https://www.hashicorp.com/en/products/vault HashiCorp Vault} KMS
|
||||
service.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-sigstore-timestamp-authority-v2
|
||||
(package
|
||||
(name "go-github-com-sigstore-timestamp-authority-v2")
|
||||
(version "2.0.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sigstore/timestamp-authority")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1pgdxwkyrl10ayhw02n72r02q362gxg7110l9h9isiyqwbrmw2lp"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:skip-build? #t
|
||||
#:import-path "github.com/sigstore/timestamp-authority/v2"
|
||||
#:embed-files #~(list ".*\\.json")
|
||||
#:test-subdirs #~(list "pkg/client" "pkg/x509")))
|
||||
(native-inputs
|
||||
(list go-github-com-go-playground-validator-v10
|
||||
go-github-com-google-go-cmp
|
||||
go-github-com-prometheus-client-golang
|
||||
go-github-com-sigstore-sigstore
|
||||
go-github-com-spf13-cobra
|
||||
go-github-com-spf13-pflag
|
||||
go-github-com-spf13-viper
|
||||
go-github-com-tink-crypto-tink-go-v2
|
||||
go-sigs-k8s-io-release-utils))
|
||||
(propagated-inputs
|
||||
(list go-cloud-google-com-go-security
|
||||
go-github-com-beevik-ntp
|
||||
go-github-com-digitorus-pkcs7
|
||||
go-github-com-digitorus-timestamp
|
||||
go-github-com-go-chi-chi
|
||||
go-github-com-go-openapi-errors
|
||||
go-github-com-go-openapi-loads
|
||||
go-github-com-go-openapi-runtime
|
||||
go-github-com-go-openapi-spec
|
||||
go-github-com-go-openapi-strfmt
|
||||
go-github-com-go-openapi-swag
|
||||
go-github-com-pkg-errors
|
||||
go-github-com-rs-cors
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-aws
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-azure
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-gcp
|
||||
go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault
|
||||
go-github-com-tink-crypto-tink-go-awskms-v2
|
||||
go-github-com-tink-crypto-tink-go-gcpkms-v2
|
||||
go-github-com-tink-crypto-tink-go-hcvault-v2
|
||||
go-github-com-urfave-negroni
|
||||
;; go-go-step-sm-crypto ;not packaged yet in Guix
|
||||
go-sigs-k8s-io-yaml))
|
||||
(home-page "https://github.com/sigstore/timestamp-authority")
|
||||
(synopsis "RFC 3161 timestamp verification for Sigstore")
|
||||
(description
|
||||
"This package provides timestamp verification functionality for the
|
||||
Sigstore ecosystem, implementing RFC 3161 timestamp response validation.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-shurcool-githubv4
|
||||
(package
|
||||
(name "go-github-com-shurcool-githubv4")
|
||||
@@ -17007,6 +17636,90 @@ Features:
|
||||
@end itemize")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public go-github-com-tink-crypto-tink-go-awskms-v2
|
||||
(package
|
||||
(name "go-github-com-tink-crypto-tink-go-awskms-v2")
|
||||
(version "2.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tink-crypto/tink-go-awskms")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0crsky461yyvl04g0gbsz9gh2zmlmgd5li5qk4k7zvmj103gmwlr"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:skip-build? #t
|
||||
#:import-path "github.com/tink-crypto/tink-go-awskms/v2"))
|
||||
(propagated-inputs
|
||||
(list go-github-com-aws-aws-sdk-go
|
||||
go-github-com-tink-crypto-tink-go-v2))
|
||||
(home-page "https://github.com/tink-crypto/tink-go-awskms")
|
||||
(synopsis "Tink Go AWS KMS extension")
|
||||
(description
|
||||
"This is an extension to the @url{https://github.com/tink-crypto/tink-go,
|
||||
Tink Go} library that provides support for AWS KMS.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-tink-crypto-tink-go-gcpkms-v2
|
||||
(package
|
||||
(name "go-github-com-tink-crypto-tink-go-gcpkms-v2")
|
||||
(version "2.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tink-crypto/tink-go-gcpkms")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0hf31f26lmpg81k64flsvcx83ngkhazkkf792i5qkq14q4ndsdhw"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:skip-build? #t
|
||||
#:import-path "github.com/tink-crypto/tink-go-gcpkms/v2"))
|
||||
(propagated-inputs
|
||||
(list go-github-com-tink-crypto-tink-go-v2
|
||||
go-google-golang-org-api))
|
||||
(home-page "https://github.com/tink-crypto/tink-go-gcpkms")
|
||||
(synopsis "Tink Go Google Cloud KMS extension")
|
||||
(description
|
||||
"This is an extension to the @url{https://github.com/tink-crypto/tink-go,
|
||||
Tink Go} library that provides support for Google Cloud KMS.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-tink-crypto-tink-go-hcvault-v2
|
||||
(package
|
||||
(name "go-github-com-tink-crypto-tink-go-hcvault-v2")
|
||||
(version "2.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/tink-crypto/tink-go-hcvault")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1ifwxrsyynkss652wnn2ivhfj8n84m8rz7fjpi8gcx2cppmx9zrv"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:skip-build? #t
|
||||
#:import-path "github.com/tink-crypto/tink-go-hcvault/v2"))
|
||||
(propagated-inputs
|
||||
(list go-github-com-hashicorp-vault-api
|
||||
go-github-com-tink-crypto-tink-go-v2))
|
||||
(home-page "https://github.com/tink-crypto/tink-go-hcvault")
|
||||
(synopsis "Tink Go HashiCorp Vault extension")
|
||||
(description
|
||||
"This is an extension to the @url{https://github.com/tink-crypto/tink-go,
|
||||
Tink Go} library that provides support for HashiCorp Vault.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public go-github-com-tj-go-elastic
|
||||
(package
|
||||
(name "go-github-com-tj-go-elastic")
|
||||
@@ -21769,6 +22482,7 @@ feature set and features are added on as the need arises.")
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:go go-1.25
|
||||
#:build-flags #~(list (string-append "-ldflags="
|
||||
"-X main.lyrebirdVersion="
|
||||
#$version " -s -w"))
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
;;; Copyright © 2025 Aleksandr Lebedev <alex.lebedev2003@icloud.com>
|
||||
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
|
||||
;;; Copyright © 2026 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2026 Evgeny Pisemsky <mail@pisemsky.site>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
||||
@@ -1022,56 +1022,6 @@ in the style of communicating sequential processes (@dfn{CSP}).")
|
||||
(map (lambda (suffix) (string-append "armv9" suffix "-a"))
|
||||
'("" ".1" ".2" ".3" ".4" ".5"))))
|
||||
|
||||
(define-public go-1.23
|
||||
(package
|
||||
(inherit go-1.22)
|
||||
(name "go")
|
||||
(version "1.23.12")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/golang/go")
|
||||
(commit (string-append "go" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0nxcp8wikn93zxipm829dyyagwys13yhf452ai357wzbdzqihm7x"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments go-1.22)
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'disable-more-tests
|
||||
(lambda _
|
||||
#$@(cond
|
||||
((target-aarch64?)
|
||||
;; https://go-review.googlesource.com/c/go/+/151303
|
||||
;; This test is known buggy on aarch64 and is enabled and
|
||||
;; disabled upstream with some regularity.
|
||||
#~((substitute* "src/plugin/plugin_test.go"
|
||||
(("package plugin_test")
|
||||
(string-append "// +build !linux linux,!arm64\n\n"
|
||||
"package plugin_test")))))
|
||||
((target-arm32?)
|
||||
;; This test fails when run on aarch64-linux.
|
||||
#~((substitute* "src/cmd/link/internal/ld/elf_test.go"
|
||||
(("TestElfBindNow.*" all)
|
||||
(string-append
|
||||
all
|
||||
" if runtime.GOARCH == \"arm\" {\n"
|
||||
" t.Skipf(\"skipping; flaky on armhf\")\n"
|
||||
" }\n")))))
|
||||
(else (list #t)))))))))
|
||||
(properties
|
||||
`((compiler-cpu-architectures
|
||||
("aarch64" ,@%go-1.23-arm64-micro-architectures)
|
||||
("armhf" ,@%go-1.17-arm-micro-architectures)
|
||||
("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures)
|
||||
("x86_64" ,@%go-1.18-x86_64-micro-architectures))))
|
||||
(native-inputs
|
||||
;; setarch was added to the tsan test suite in 1.23.12
|
||||
`(("go" ,util-linux)
|
||||
,@(package-native-inputs go-1.22)))))
|
||||
|
||||
(define-public go-1.24
|
||||
(package
|
||||
(inherit go-1.22)
|
||||
@@ -1239,7 +1189,6 @@ in the style of communicating sequential processes (@dfn{CSP}).")
|
||||
(define-public go-std-1.20 (make-go-std go-1.20))
|
||||
(define-public go-std-1.21 (make-go-std go-1.21))
|
||||
(define-public go-std-1.22 (make-go-std go-1.22))
|
||||
(define-public go-std-1.23 (make-go-std go-1.23))
|
||||
(define-public go-std-1.24 (make-go-std go-1.24))
|
||||
(define-public go-std-1.25 (make-go-std go-1.25))
|
||||
(define-public go-std-1.26 (make-go-std go-1.26))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
libxv
|
||||
mesa
|
||||
sdl
|
||||
v4l-utils-minimal))
|
||||
v4l-utils))
|
||||
(synopsis "1394-Based Digital Camera Control Library")
|
||||
(description "LibDC1394 is a library that provides functionality to control
|
||||
any camera that conforms to the 1394-Based Digital Camera Specification written
|
||||
@@ -721,7 +721,7 @@ for the GStreamer multimedia library.")
|
||||
speex
|
||||
taglib
|
||||
twolame
|
||||
v4l-utils-minimal
|
||||
v4l-utils
|
||||
wavpack
|
||||
zlib))
|
||||
(propagated-inputs
|
||||
@@ -942,7 +942,7 @@ model to base your own plug-in on, here it is.")
|
||||
tinyalsa
|
||||
transcode
|
||||
usrsctp
|
||||
v4l-utils-minimal
|
||||
v4l-utils
|
||||
vo-aacenc
|
||||
vo-amrwbenc
|
||||
vulkan-headers
|
||||
|
||||
+18
-25
@@ -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
@@ -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))
|
||||
|
||||
@@ -669,7 +669,7 @@ and WebP.")
|
||||
(define-public mcomix
|
||||
(package
|
||||
(name "mcomix")
|
||||
(version "3.1.0")
|
||||
(version "3.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -677,7 +677,7 @@ and WebP.")
|
||||
"mcomix-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09y4nhlcqvvhz0wscx4zpqxmyhiwh8wrjnhk52awxhzvgyx6wa7r"))))
|
||||
"1y6fps1fbzjc4sdm381432zvrq97iadbz4yyxxsfnzf0ggnsl2m1"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -720,8 +720,14 @@ and WebP.")
|
||||
(wrap-program prog
|
||||
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
|
||||
(native-inputs (list python-setuptools))
|
||||
(inputs
|
||||
(list bash-minimal p7zip python python-pillow python-pygobject python-pycairo gtk+))
|
||||
(inputs (list bash-minimal
|
||||
gobject-introspection
|
||||
gtk+
|
||||
p7zip
|
||||
python
|
||||
python-pillow
|
||||
python-pycairo
|
||||
python-pygobject))
|
||||
(home-page "https://sourceforge.net/p/mcomix/wiki/Home/")
|
||||
(synopsis "Image viewer for comics")
|
||||
(description "MComix is a customizable image viewer that specializes as
|
||||
|
||||
@@ -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
@@ -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 `())))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -5000,7 +5000,6 @@ configuration and monitoring interfaces.")
|
||||
(with-directory-excursion "./python" (python-inst ,python))
|
||||
#t))))))))
|
||||
|
||||
(define-public libnl-python2 (libnl-python-package "python2"))
|
||||
(define-public libnl-python3 (libnl-python-package "python3"))
|
||||
|
||||
(define-public iw
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2690,23 +2690,6 @@ validating international phone numbers.")
|
||||
(home-page "https://github.com/google/libphonenumber")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public libphonenumber-8.11
|
||||
(package/inherit libphonenumber
|
||||
(name (package-name libphonenumber))
|
||||
(version "8.11.5")
|
||||
(source (origin
|
||||
(inherit (package-source libphonenumber))
|
||||
(uri (git-reference
|
||||
(url "https://github.com/google/libphonenumber")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1y4ivhy3kwgggrr3g521zaf97334aan0yqpzzryss80k326q5rhf"))))
|
||||
(inputs
|
||||
(modify-inputs inputs
|
||||
(delete "abseil-cpp" "icedtea")))))
|
||||
|
||||
(define-public chatty
|
||||
(package
|
||||
(name "chatty")
|
||||
@@ -3454,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)
|
||||
|
||||
@@ -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
@@ -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))
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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 _
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -37,7 +37,7 @@ diff -ru a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
|
||||
-add_subdirectory(fmt EXCLUDE_FROM_ALL)
|
||||
-set_property(TARGET fmt PROPERTY FOLDER "3rdparty")
|
||||
-# Define a custom inline namespace for the fmt used by WZ, to prevent ODR violations if static linking to any libraries that themselves embed (a different version of) fmt
|
||||
-target_compile_definitions(fmt PUBLIC "FMT_BEGIN_NAMESPACE=namespace fmt { inline namespace v11_wz2100 {")
|
||||
-target_compile_definitions(fmt PUBLIC "FMT_BEGIN_NAMESPACE=namespace fmt { inline namespace v12_wz2100 {")
|
||||
-target_compile_definitions(fmt PUBLIC "FMT_END_NAMESPACE=}}")
|
||||
-
|
||||
+pkg_check_modules(FMT REQUIRED fmt)
|
||||
@@ -238,12 +238,12 @@ diff -ru a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
diff -ru a/lib/framework/wzstring.cpp b/lib/framework/wzstring.cpp
|
||||
--- a/lib/framework/wzstring.cpp 2025-09-16 11:41:32.000000000 -0500
|
||||
+++ b/lib/framework/wzstring.cpp 2025-09-18 13:37:23.686668245 -0500
|
||||
@@ -24,8 +24,8 @@
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <limits>
|
||||
--- a/lib/framework/wzstring.cpp
|
||||
+++ b/lib/framework/wzstring.cpp
|
||||
@@ -29,8 +29,8 @@
|
||||
// "By default, Visual Studio always returns the value 199711L for the __cplusplus preprocessor macro."
|
||||
#define UTF_CPP_CPLUSPLUS 201703L
|
||||
#endif
|
||||
-#include <utfcpp/source/utf8.h>
|
||||
-#include <utf8proc/utf8proc.h>
|
||||
+#include <utf8cpp/utf8.h>
|
||||
|
||||
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
@@ -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
|
||||
|
||||
@@ -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)))
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/..."
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
-85
@@ -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))
|
||||
@@ -21675,26 +21648,6 @@ programming errors.")
|
||||
into aligned columns.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-chai
|
||||
(package
|
||||
(name "python-chai")
|
||||
(version "1.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "chai" version))
|
||||
(sha256
|
||||
(base32 "1k6n6zbgrrs83crp6mr3yqj9zlv40b8rpisyrliwsq7naml2p3gz"))
|
||||
(patches (search-patches "python-chai-drop-python2.patch"))))
|
||||
(build-system pyproject-build-system)
|
||||
(native-inputs (list python-pytest python-setuptools))
|
||||
(home-page "https://github.com/agoragames/chai")
|
||||
(synopsis "Mocking framework for Python")
|
||||
(description
|
||||
"Chai provides an api for mocking, stubbing and spying your python
|
||||
objects, patterned after the Mocha library for Ruby.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-pysol-cards
|
||||
(package
|
||||
(name "python-pysol-cards")
|
||||
@@ -23102,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")
|
||||
@@ -24013,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 _
|
||||
@@ -25595,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")
|
||||
@@ -25760,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))
|
||||
@@ -27413,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")
|
||||
@@ -27878,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"
|
||||
@@ -32272,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
|
||||
@@ -33724,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
|
||||
@@ -34883,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
|
||||
@@ -35369,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))
|
||||
@@ -36840,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")))
|
||||
@@ -37767,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")
|
||||
@@ -39687,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
|
||||
@@ -40021,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
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 don’t 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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user