forked from tribes/guix
Compare commits
146 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a15d5a0bf4 | |||
| bd9291ee8e | |||
| 9798583386 | |||
| ab0ca88517 | |||
| 964574452f | |||
| bc7babdca4 | |||
| 7db4de8f48 | |||
| 1089c208c0 | |||
| e99e394628 | |||
| 820fdf9549 | |||
| d45d75301c | |||
| e030447ebd | |||
| 621afc1dc7 | |||
| 92363d6ab0 | |||
| dd7f6b1c92 | |||
| 896898342d | |||
| 39f1fb3ad1 | |||
| 7964bbdf12 | |||
| 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 | |||
| 3b4e41a01b | |||
| af0379d6c4 | |||
| 727b300e04 | |||
| 1d6eb98dd6 | |||
| 65011d15fd | |||
| a816cf8965 | |||
| 5672a9e280 | |||
| 92de7e0cae | |||
| 5fe112e4fa | |||
| b7992ceef5 | |||
| 3b57556870 | |||
| e270914ffe | |||
| 62e144930a | |||
| 8632cc58e4 | |||
| cf94cd3e4e | |||
| f6365c6b3e | |||
| a8c0685d98 | |||
| 8d0df614e1 | |||
| 91b71c2b5f | |||
| 9cdd36e7ed | |||
| 4a835a41dd | |||
| a4eb13568e | |||
| 441dcb81c3 | |||
| 7d6d1663c4 | |||
| 9829ea548c | |||
| fae4042d23 | |||
| ef105f1316 | |||
| 0fbe363fb8 | |||
| 450849da26 | |||
| 2434428c28 | |||
| 2d7f403979 | |||
| 3ec160f69b | |||
| 7674b45fbf | |||
| 8d3cb0bfa1 | |||
| 33555b672b | |||
| 630b50d46b | |||
| 7b07f8063f | |||
| fa060a6d95 | |||
| 864ec1d9d0 | |||
| 1b0879169d | |||
| e34642e764 | |||
| 40651d41da | |||
| 7cf91385c5 | |||
| 4ec4ff0148 | |||
| 2d21820519 | |||
| f2ed23fcf4 | |||
| 466686033e | |||
| 461f61dafa | |||
| f61fc47913 | |||
| b79aea3544 | |||
| 6ee49c693f | |||
| 85834b7219 | |||
| a5a578b027 | |||
| 7791daea29 | |||
| 3d22340ff4 | |||
| 0b8e838208 | |||
| 2abfd1370f | |||
| bd03432cb8 | |||
| 8fe2277507 | |||
| 1045f12f00 | |||
| c41e1bffa1 | |||
| ba516ec82e | |||
| 7d74bb3ee4 | |||
| f00a19b0af | |||
| 5fa6ada0e8 | |||
| 3c2d5297f0 | |||
| 53e746150f | |||
| ff4aa1fd77 | |||
| 7e93e39db7 | |||
| 7c439d1258 | |||
| f8fa16af89 | |||
| 489b5ab929 | |||
| 84347d9ff3 | |||
| afed309937 | |||
| d4afa4f3a1 | |||
| 45c979eeca | |||
| 66abefe050 | |||
| bebf93a029 | |||
| fc884c09de | |||
| 365ff68f3c | |||
| dc2e36600b | |||
| 7c3c6cf9c3 | |||
| 4e78e6a842 | |||
| e61b99dfb1 |
@@ -18,6 +18,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
|
||||
** Distribution
|
||||
*** GNOME updated to version 48
|
||||
*** New service for Fossil SCM
|
||||
*** TeX Live updated to 2026.1
|
||||
|
||||
* Changes in 1.5.0 (since 1.4.0)
|
||||
** Package management
|
||||
|
||||
@@ -51663,6 +51663,63 @@ phone-number = 0
|
||||
is-married = true
|
||||
@end example
|
||||
|
||||
@subsubsection Serializing to environment variables
|
||||
@cindex environment variables, serialization of configuration records
|
||||
|
||||
There are services which expect their configuration as environment variables.
|
||||
The @code{(gnu services configuration environment-variables)} module provides
|
||||
facilities to serialize configuration records from
|
||||
@code{(gnu services configuration)} to list of pairs representing environment
|
||||
variables.
|
||||
|
||||
For example this configuration record:
|
||||
|
||||
@lisp
|
||||
(define-configuration/no-serialization server
|
||||
(ssh-port
|
||||
(number 22)
|
||||
"The public SSH port of the server.")
|
||||
(fqdn
|
||||
(maybe-string)
|
||||
"The fully qualified domain name of the server.")
|
||||
(active?
|
||||
(boolean #f)
|
||||
"Whether or not the server should be activated."))
|
||||
|
||||
(define my-server
|
||||
(server
|
||||
(ssh-port 20022)
|
||||
(active? #t)))
|
||||
@end lisp
|
||||
|
||||
with this call:
|
||||
|
||||
@lisp
|
||||
(serialize-environment-variables my-server server-fields
|
||||
#:true-value "1"
|
||||
#:false-value "0")
|
||||
@end lisp
|
||||
|
||||
would yield:
|
||||
|
||||
@lisp
|
||||
'(("SSH_PORT" . "20022")
|
||||
("ACTIVE" . "1"))
|
||||
@end lisp
|
||||
|
||||
@anchor{serialize-environment-variables-procedure}
|
||||
@deffn {Procedure} serialize-environment-variables @var{config} @var{fields} @
|
||||
[@var{selection} #f] [@var{negate?} #f] [#:prefix #f] @
|
||||
[#:true-value "true"] [#:false-value "false"]
|
||||
Serializes the fields whose name is included in SELECTION from CONFIG, a
|
||||
configuration from @code{(gnu services configuration)}, and FIELDS, the
|
||||
list of its field records, to a list of pairs. When NEGATE? is #t all services
|
||||
not included in SELECTION will be serialized. Each pair represents an
|
||||
environment variable. The first element of each pair is the variable name, the
|
||||
second is the value. When PREFIX is a string it is prepended to the variable
|
||||
name. TRUE-VALUE and FALSE-VALUE will be used as a representation for
|
||||
respectfully @code{#t} and @code{#f}.
|
||||
@end deffn
|
||||
|
||||
@c *********************************************************************
|
||||
@cindex troubleshooting, Guix System
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
|
||||
(define %sundry-texlive-packages
|
||||
(list bibtool
|
||||
dvisvgm
|
||||
rubber
|
||||
texmaker
|
||||
texstudio
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
# Copyright © 2022 Alex Griffin <a@ajgrf.com>
|
||||
# Copyright © 2022 ( <paren@disroot.org>
|
||||
# Copyright © 2022, 2026 jgart <jgart@dismail.de>
|
||||
# Copyright © 2022-2023, 2025-2026 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
# Copyright © 2023-2025 Zheng Junjie <z572@z572.online>
|
||||
# Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
|
||||
# Copyright © 2023 Andy Tai <atai@atai.org>
|
||||
@@ -216,6 +217,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/convmv.scm \
|
||||
%D%/packages/codex.scm \
|
||||
%D%/packages/coq.scm \
|
||||
%D%/packages/coreboot.scm \
|
||||
%D%/packages/cpio.scm \
|
||||
%D%/packages/cpp.scm \
|
||||
%D%/packages/cppi.scm \
|
||||
@@ -738,6 +740,8 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/services/cgit.scm \
|
||||
%D%/services/ci.scm \
|
||||
%D%/services/configuration.scm \
|
||||
%D%/services/configuration/environment-variables.scm \
|
||||
%D%/services/configuration/utils.scm \
|
||||
%D%/services/containers.scm \
|
||||
%D%/services/cuirass.scm \
|
||||
%D%/services/cups.scm \
|
||||
@@ -1035,6 +1039,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/azr3.patch \
|
||||
%D%/packages/patches/azr3-remove-lash.patch \
|
||||
%D%/packages/patches/barony-fix-textures.patch \
|
||||
%D%/packages/patches/bam-python3-compat.patch \
|
||||
%D%/packages/patches/bash-completion-directories.patch \
|
||||
%D%/packages/patches/bash-linux-pgrp-pipe.patch \
|
||||
%D%/packages/patches/basis-universal-unbundle-libs.patch \
|
||||
@@ -1978,6 +1983,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/nheko-0-12-1-fix-rendering-replies.patch \
|
||||
%D%/packages/patches/nix-dont-build-html-doc.diff \
|
||||
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
|
||||
%D%/packages/patches/neovim-tree-sitter-grammar-path.patch \
|
||||
%D%/packages/patches/network-manager-plugin-ownership.patch \
|
||||
%D%/packages/patches/network-manager-plugin-path.patch \
|
||||
%D%/packages/patches/newlib-getentropy.patch \
|
||||
@@ -2380,6 +2386,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 \
|
||||
@@ -2618,6 +2625,17 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/yggdrasil-extra-config.patch \
|
||||
%D%/packages/patches/ypsilon-Use-GNU-toolchain-as-default.patch \
|
||||
%D%/packages/patches/zabbix-agent2-test-timezone-fix.patch \
|
||||
%D%/packages/patches/zed-0.225.10-add-message-notification-action.patch \
|
||||
%D%/packages/patches/zed-0.225.10-add-guix-container-support.patch \
|
||||
%D%/packages/patches/zed-0.225.10-collapse-multiline-git-deps.patch \
|
||||
%D%/packages/patches/zed-0.225.10-exclude-libwebrtc-from-audio.patch \
|
||||
%D%/packages/patches/zed-0.225.10-disable-dlopen.patch \
|
||||
%D%/packages/patches/zed-0.225.10-fix-sqlite-memory-mode.patch \
|
||||
%D%/packages/patches/zed-0.225.10-fix-test-db-isolation.patch \
|
||||
%D%/packages/patches/zed-0.225.10-fix-workspace-race.patch \
|
||||
%D%/packages/patches/zed-0.225.10-keep-regular-file-workspaces.patch \
|
||||
%D%/packages/patches/zed-0.225.10-remove-patch-crates-io.patch \
|
||||
%D%/packages/patches/zed-0.225.10-use-mock-livekit-on-linux.patch \
|
||||
%D%/packages/patches/zig-0.9-build-respect-PKG_CONFIG-env-var.patch \
|
||||
%D%/packages/patches/zig-0.9-fix-runpath.patch \
|
||||
%D%/packages/patches/zig-0.9-riscv-support.patch \
|
||||
|
||||
+12
-160
@@ -1,9 +1,4 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019, 2021 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2026 Anderson Torres <anderson.torres.8519@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@@ -22,163 +17,20 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages adns)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils))
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (guix deprecation))
|
||||
|
||||
(define-public adns
|
||||
(package
|
||||
(name "adns")
|
||||
(version "1.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "git://git.chiark.greenend.org.uk/~ianmdlvl/adns.git")
|
||||
(commit (string-append "adns-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ln3l5j7wb1xazrzl76p9xar52p6l2k1cwy7jazxw1acl71k9h5n"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; INFO: Tests expect real name resolution to work.
|
||||
#:tests? #f
|
||||
#:configure-flags
|
||||
#~(list
|
||||
;; Make sure the programs under bin/ find libadns.so.
|
||||
(string-append "LDFLAGS=-Wl,-rpath -Wl,"
|
||||
#$output:out
|
||||
"/lib"))))
|
||||
(native-inputs
|
||||
(list m4))
|
||||
(home-page "https://www.gnu.org/software/adns/")
|
||||
(synopsis "Asynchronous DNS client library and utilities")
|
||||
(description
|
||||
"GNU adns is a C library that provides easy-to-use @acronym{DNS, Domain
|
||||
Name System} resolution functionality. The library is asynchronous, allowing
|
||||
several concurrent calls. The package also includes several command-line
|
||||
utilities for use in scripts.")
|
||||
(license license:gpl3+)))
|
||||
(define-deprecated/public-alias adns
|
||||
(@ (gnu packages dns) adns))
|
||||
|
||||
(define-public c-ares
|
||||
(package
|
||||
(name "c-ares")
|
||||
(version "1.34.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/c-ares/c-ares/releases/download/v"
|
||||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0br2msk3bpl5myhjp9vr5j2scpspvbg2fpnz69dcrr4ycpnxnf7s"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'check 'filter-live-tests
|
||||
(lambda _
|
||||
;; Filter tests that require internet access.
|
||||
(setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*")))
|
||||
#$@(if (system-hurd?)
|
||||
#~((add-after 'unpack 'skip-tests
|
||||
(lambda _
|
||||
(substitute* "test/ares-test-main.cc"
|
||||
(("(^| )main *\\(.*" all)
|
||||
(string-append all " exit (77);\n")))))
|
||||
(add-after 'filter-live-tests 'filter-hurd-tests
|
||||
(lambda _
|
||||
(setenv "GTEST_FILTER"
|
||||
(string-append
|
||||
(getenv "GTEST_FILTER")
|
||||
":.*Basic/2"
|
||||
":.*CancelImmediate/2"
|
||||
":.*CancelImmediateGetHostByAddr/2"
|
||||
":.*CancelLater/1"
|
||||
":.*FamilyUnspecified/2"
|
||||
":.*FamilyV6/2"
|
||||
":.*GetAddrInfoParallelLookups/1"
|
||||
":.*GetHostByAddrDestroy/2"
|
||||
":.*GetHostByNameCNAMENoData/2"
|
||||
":.*GetHostByNameDestroyAbsolute/2"
|
||||
":.*GetHostByNameDestroyRelative/2"
|
||||
":.*GetHostByNameParallelLookups/1"
|
||||
":.*HostAlias/2"
|
||||
":.*HostAliasMissing/2"
|
||||
":.*HostAliasMissingFile/2"
|
||||
":.*NotImplResponse/2"
|
||||
":.*RefusedResponse/2"
|
||||
":.*Resend/1"
|
||||
":.*RetryWithoutEDNS/2"
|
||||
":.*SearchDomains/2"
|
||||
":.*SearchDomainsBare/2"
|
||||
":.*SearchDomainsServFailOnAAAA/2"
|
||||
":.*SearchDomainsWithResentReply/1"
|
||||
":.*SearchHighNdots/2"
|
||||
":.*SearchNoDataThenFail/2"
|
||||
":.*SearchNoDataThenNoDataBare/2"
|
||||
":.*SearchNoDataThenSuccess/2"
|
||||
":.*ServFailResponse/2"
|
||||
":.*SimpleQuery/2"
|
||||
":.*SockCallback/2"
|
||||
":.*SockConfigureCallback/2"
|
||||
":.*SortListV4/2"
|
||||
":.*SortListV6/2"
|
||||
":.*ThirdServer/2"
|
||||
":.*TruncationRetry/1"
|
||||
":.*UnspecifiedFamilyCname6A4/2"
|
||||
":.*UnspecifiedFamilyV4/2"
|
||||
":.*UnspecifiedFamilyV6/2")))))
|
||||
#~()))))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(home-page "https://c-ares.haxx.se/")
|
||||
(synopsis "C library for asynchronous DNS requests")
|
||||
(description
|
||||
"C-ares is a C library that performs DNS requests and name resolution
|
||||
asynchronously. It is intended for applications which need to perform DNS
|
||||
queries without blocking, or need to perform multiple DNS queries in parallel.
|
||||
The primary examples of such applications are servers which communicate with
|
||||
multiple clients and programs with graphical user interfaces.")
|
||||
(license (license:x11-style "https://c-ares.haxx.se/license.html"))))
|
||||
(define-deprecated/public-alias c-ares
|
||||
(@ (gnu packages dns) c-ares))
|
||||
|
||||
(define-public c-ares-for-node-lts
|
||||
(hidden-package c-ares))
|
||||
(define-deprecated/public-alias c-ares-for-node-lts
|
||||
(@ (gnu packages dns) c-ares-for-node-lts))
|
||||
|
||||
(define-public c-ares-for-node-bootstrap
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit c-ares)
|
||||
(version "1.18.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://c-ares.haxx.se/download/c-ares-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kxviskwsaa7dcgscvssxa8ps88pdq7kq4z93gxvz7sam2l54z8s")))))))
|
||||
(define-deprecated/public-alias c-ares-for-node-bootstrap
|
||||
(@ (gnu packages dns) c-ares-for-node-bootstrap))
|
||||
|
||||
;; gRPC requires a c-ares built with CMake in order to get the .cmake modules.
|
||||
;; We can not build c-ares itself with CMake because that would introduce a
|
||||
;; circular dependency through nghttp2.
|
||||
;; XXX: It would be nice if we could extract the modules somehow and make them
|
||||
;; work with the "normal" c-ares package instead of building a whole new library.
|
||||
(define-public c-ares/cmake
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit c-ares)
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(;; XXX: Tests require name resolution (the normal variant runs no tests).
|
||||
#:tests? #f)))))
|
||||
(define-deprecated/public-alias c-ares/cmake
|
||||
(@ (gnu packages dns) c-ares/cmake))
|
||||
|
||||
@@ -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+))
|
||||
|
||||
@@ -33,9 +33,8 @@
|
||||
;; The URI does not appear to be easily guessable. For
|
||||
;; example, you cannot download version "9100g" simply
|
||||
;; by replacing "9100h" in the URI.
|
||||
(uri (list (string-append "https://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
|
||||
"distfiles/31/anthy-9100h.tar.gz")
|
||||
"https://osdn.dl.osdn.net/anthy/37536/anthy-9100h.tar.gz"))
|
||||
(uri (string-append "https://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
|
||||
"distfiles/31/anthy-9100h.tar.gz"))
|
||||
(sha256
|
||||
(base32 "0ism4zibcsa5nl77wwi12vdsfjys3waxcphn1p5s7d0qy1sz0mnj"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
(define-public aspell
|
||||
(package
|
||||
(name "aspell")
|
||||
(version "0.60.8.1")
|
||||
(version "0.60.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -60,7 +60,7 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"06yjhwlgpcvbrl5g83qjrpzjwjx7hka5lhsfc3x5gm229nri5nnn"))
|
||||
"06b9szgm9cj1zh58r7sbl5fbi3vi9fs7b1as4ir8y176x9ilizjp"))
|
||||
(patches (search-patches "aspell-default-dict-dir.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
||||
@@ -1877,18 +1877,9 @@ R. Seaman's protocol}
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0n2jzlpwvjgj8ydg7hsqxnvy8s9pdi5z96id0231kgi87pyfkh7s"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "thirdparty" "thirdparty.cmake")))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
|
||||
+40
-1
@@ -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.
|
||||
;;;
|
||||
@@ -3438,7 +3439,7 @@ from being able to mix multiple JACK audio streams.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "08ji4lg24flzi6g3yaavfq8hz3kr98q2ripk5m4qk9z172qxbbc9"))))
|
||||
(base32 "0fvnvr74q5khxlj5sylfnkblydmwgdbvj04mhdqw0zzmfqwignhd"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -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")
|
||||
|
||||
+17
-17
@@ -98,24 +98,24 @@
|
||||
(cut patch-shebang <> path)
|
||||
(find-files (string-append #$output "/etc/avahi"))))))))
|
||||
(inputs
|
||||
`(("bash-minimal" ,bash-minimal)
|
||||
("dbus" ,dbus)
|
||||
("expat" ,expat)
|
||||
("gdbm" ,gdbm)
|
||||
("glib" ,glib)
|
||||
;; Do not use libcap when cross-compiling since it's not quite
|
||||
;; cross-compilable; and use it only for supported systems.
|
||||
,@(if (and (not (%current-target-system))
|
||||
(member (%current-system)
|
||||
(package-supported-systems libcap)))
|
||||
`(("libcap" ,libcap)) ;to enable chroot support in avahi-daemon
|
||||
'())
|
||||
("libdaemon" ,libdaemon)
|
||||
("libevent" ,libevent)))
|
||||
(cons* bash-minimal
|
||||
dbus
|
||||
expat
|
||||
gdbm
|
||||
glib
|
||||
libdaemon
|
||||
libevent
|
||||
;; Do not use libcap when cross-compiling since it's not quite
|
||||
;; cross-compilable; and use it only for supported systems.
|
||||
(if (and (not (%current-target-system))
|
||||
(member (%current-system)
|
||||
(package-supported-systems libcap)))
|
||||
(list libcap) ;to enable chroot support in avahi-daemon
|
||||
(list))))
|
||||
(native-inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
("glib" ,glib "bin")
|
||||
("pkg-config" ,pkg-config)))
|
||||
(list gettext-minimal
|
||||
(list glib "bin")
|
||||
pkg-config))
|
||||
(synopsis "Implementation of mDNS/DNS-SD protocols")
|
||||
(description
|
||||
"Avahi is a system which facilitates service discovery on a local
|
||||
|
||||
@@ -944,7 +944,20 @@ configurable through a set of options.")
|
||||
#~(list (string-append
|
||||
"CC=" #$(this-package-input "openmpi") "/bin/mpicc")
|
||||
(string-append
|
||||
"CXX=" #$(this-package-input "openmpi") "/bin/mpicxx"))))
|
||||
"CXX=" #$(this-package-input "openmpi") "/bin/mpicxx"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
;; OSU installs its binaries to /libexec. Have a symlink in /bin to
|
||||
;; improve user experience.
|
||||
(add-after 'install 'symlink-binaries-in-bin
|
||||
(lambda _
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(for-each (lambda (file)
|
||||
(symlink file
|
||||
(string-append #$output "/bin/"
|
||||
(basename file))))
|
||||
(find-files (string-append #$output
|
||||
"/libexec"))))))))
|
||||
(home-page "https://mvapich.cse.ohio-state.edu/benchmarks/")
|
||||
(synopsis "Benchmarking suite from the MVAPICH project")
|
||||
(description
|
||||
|
||||
@@ -18335,44 +18335,6 @@ following the assay and produces a file detailing peaks of significant
|
||||
enrichment.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public mantis
|
||||
;; This is an arbitrary commit as a year has passed since 0.1 was tagged.
|
||||
(let ((commit "b6979a269172a45201c8366680d8b889f889432b")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "mantis")
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/splatlab/mantis")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0dq8a785hnaxx5kq757m5czs8xpcjpcph1inq2nm8h6zfvqyj8xs"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; there are none
|
||||
#:configure-flags (list "-DNH=ON"))) ; do not use SSE4.2 instructions
|
||||
(inputs
|
||||
(list sdsl-lite openssl zlib))
|
||||
(native-inputs
|
||||
(list gcc-7))
|
||||
(home-page "https://github.com/splatlab/mantis")
|
||||
(synopsis "Large-scale sequence-search index data structure")
|
||||
(description "Mantis is a space-efficient data structure that can be
|
||||
used to index thousands of raw-read genomics experiments and facilitate
|
||||
large-scale sequence searches on those experiments. Mantis uses counting
|
||||
quotient filters instead of Bloom filters, enabling rapid index builds and
|
||||
queries, small indexes, and exact results, i.e., no false positives or
|
||||
negatives. Furthermore, Mantis is also a colored de Bruijn graph
|
||||
representation, so it supports fast graph traversal and other topological
|
||||
analyses in addition to large-scale sequence-level searches.")
|
||||
;; uses __uint128_t and inline assembly
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(license license:bsd-3))))
|
||||
|
||||
(define-public sjcount
|
||||
;; There is no tag for version 3.2, nor is there a release archive.
|
||||
(let ((commit "292d3917cadb3f6834c81e509c30e61cd7ead6e5")
|
||||
|
||||
+33
-33
@@ -41,32 +41,16 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages bittorrent)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#: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 build-system qt)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module ((guix licenses) #:prefix l:)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
@@ -76,8 +60,9 @@
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages nettle)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages nettle)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
@@ -86,15 +71,30 @@
|
||||
#:use-module (gnu packages python-crypto)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg))
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cmake)
|
||||
#: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 build-system qt)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public transmission
|
||||
(package
|
||||
@@ -194,7 +194,7 @@ DHT, µTP, PEX and Magnet Links.")
|
||||
;; or any future license endorsed by Mnemosyne LLC.
|
||||
;;
|
||||
;; A few files files carry an MIT/X11 license header.
|
||||
(license (list l:gpl2 l:gpl3))))
|
||||
(license (list license:gpl2 license:gpl3))))
|
||||
|
||||
(define-public transmission-remote-gtk
|
||||
(package
|
||||
@@ -224,7 +224,7 @@ DHT, µTP, PEX and Magnet Links.")
|
||||
(description "transmission-remote-gtk is a GTK client for remote management
|
||||
of the Transmission BitTorrent client, using its HTTP RPC protocol.")
|
||||
(home-page "https://github.com/transmission-remote-gtk/transmission-remote-gtk")
|
||||
(license l:gpl2+)))
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public stig
|
||||
(package
|
||||
@@ -267,7 +267,7 @@ of the Transmission BitTorrent client, using its HTTP RPC protocol.")
|
||||
"Stig is a @acronym{TUI, Text User Interface} and @acronym{CLI, Command
|
||||
Line Interface} client for the BitTorrent client Transmission.")
|
||||
(home-page "https://github.com/rndusr/stig")
|
||||
(license l:gpl3)))
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public libtorrent
|
||||
(package
|
||||
@@ -291,7 +291,7 @@ Line Interface} client for the BitTorrent client Transmission.")
|
||||
with the BitTorrent client rtorrent. It is written in C++ with emphasis on
|
||||
speed and efficiency.")
|
||||
(home-page "https://github.com/rakshasa/libtorrent")
|
||||
(license l:gpl2+)))
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public rtorrent
|
||||
(package
|
||||
@@ -320,7 +320,7 @@ speed and efficiency.")
|
||||
full encryption, DHT, PEX, and Magnet Links. It can also be controlled via
|
||||
XML-RPC over SCGI.")
|
||||
(home-page "https://github.com/rakshasa/rtorrent")
|
||||
(license l:gpl2+)))
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public tremc
|
||||
(let ((commit "d8deaa5ac25bb45a2ca3a930309d6ecc74836a54")
|
||||
@@ -354,7 +354,7 @@ XML-RPC over SCGI.")
|
||||
(description "Tremc is a console client, with a curses interface, for the
|
||||
Transmission BitTorrent daemon.")
|
||||
(home-page "https://github.com/tremc/tremc")
|
||||
(license l:gpl3+))))
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public aria2
|
||||
(package
|
||||
@@ -419,7 +419,7 @@ download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
|
||||
Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
|
||||
(properties
|
||||
'((release-monitoring-url . "https://github.com/aria2/aria2/releases")))
|
||||
(license l:gpl2+)))
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public uget
|
||||
(package
|
||||
@@ -453,7 +453,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
|
||||
"uGet is portable download manager with GTK+ interface supporting
|
||||
HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection
|
||||
downloads, download scheduling, download rate limiting.")
|
||||
(license l:lgpl2.1+)))
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public mktorrent
|
||||
(package
|
||||
@@ -488,8 +488,8 @@ files and whole directories. It can add multiple trackers and web seed URLs,
|
||||
and set the @code{private} flag to disallow advertisement through the
|
||||
distributed hash table (@dfn{DHT}) and Peer Exchange. Hashing is multi-threaded
|
||||
and will take advantage of multiple processor cores where possible.")
|
||||
(license (list l:public-domain ; sha1.*, used to build without OpenSSL
|
||||
l:gpl2+)))) ; with permission to link with OpenSSL
|
||||
(license (list license:public-domain ; sha1.*, used to build without OpenSSL
|
||||
license:gpl2+)))) ; with permission to link with OpenSSL
|
||||
|
||||
(define-public libtorrent-rasterbar
|
||||
(package
|
||||
@@ -541,7 +541,7 @@ and will take advantage of multiple processor cores where possible.")
|
||||
"libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation
|
||||
focusing on efficiency and scalability. It runs on embedded devices as well as
|
||||
desktops.")
|
||||
(license l:bsd-2)))
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public qbittorrent
|
||||
(package
|
||||
@@ -585,7 +585,7 @@ libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
|
||||
It aims to be a good alternative to all other BitTorrent clients out there.
|
||||
qBittorrent is fast, stable and provides unicode support as well as many
|
||||
features.")
|
||||
(license l:gpl2+)))
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public qbittorrent-no-x
|
||||
(let ((base qbittorrent))
|
||||
@@ -727,4 +727,4 @@ Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange
|
||||
speed limits. Deluge heavily utilises the libtorrent library. It is
|
||||
designed to run as both a normal standalone desktop application and as a
|
||||
client-server.")
|
||||
(license l:gpl3+)))
|
||||
(license license:gpl3+)))
|
||||
|
||||
@@ -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")))
|
||||
|
||||
@@ -44,37 +44,17 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages build-tools)
|
||||
#:use-module (ice-9 optargs)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system guile)
|
||||
#:use-module (guix build-system hare)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix search-paths)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages code)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages cppi)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages guile)
|
||||
@@ -105,7 +85,27 @@
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages unicode)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages xml))
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system guile)
|
||||
#:use-module (guix build-system hare)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix search-paths)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 optargs))
|
||||
|
||||
(define-public acr
|
||||
(package
|
||||
@@ -196,7 +196,8 @@ according to the system capabilities and the user-selected options.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6"))))
|
||||
"13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6"))
|
||||
(patches (search-patches "bam-python3-compat.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags `(,(string-append "CC=" ,(cc-for-target))
|
||||
@@ -207,7 +208,7 @@ according to the system capabilities and the user-selected options.")
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
(native-inputs
|
||||
`(("python" ,python-2)))
|
||||
(list python-minimal-wrapper))
|
||||
(inputs
|
||||
(list lua))
|
||||
(home-page "https://matricks.github.io/bam/")
|
||||
|
||||
+26
-21
@@ -595,7 +595,11 @@ capacity is user-selectable.")
|
||||
version "/DVDStyler-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0n3mfjsazvlzk9hl23q3iz7bmxjq7b5lx0ab8nbk1jgl763k9cqb"))))
|
||||
"0n3mfjsazvlzk9hl23q3iz7bmxjq7b5lx0ab8nbk1jgl763k9cqb"))
|
||||
(snippet
|
||||
#~(begin (delete-file "src/dvdvml.c")
|
||||
(delete-file "src/dvdvmy.c")
|
||||
(delete-file "src/dvdvmy.h")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
@@ -625,27 +629,28 @@ capacity is user-selectable.")
|
||||
#t)))
|
||||
#:tests? #f)) ; No tests.
|
||||
(inputs ; TODO package bundled wxvillalib
|
||||
`(("wxwidgets" ,wxwidgets)
|
||||
("wssvg" ,wxsvg)
|
||||
("bash" ,bash-minimal) ; for wrap-program
|
||||
("dbus" ,dbus)
|
||||
("cdrtools" ,cdrtools)
|
||||
("dvd+rw-tools" ,dvd+rw-tools)
|
||||
("dvdauthor" ,dvdauthor)
|
||||
("eudev" ,eudev)
|
||||
("fontconfig" ,fontconfig)
|
||||
("libexif" ,libexif)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("ffmpeg" ,ffmpeg-4)))
|
||||
(list bash-minimal ; for wrap-program
|
||||
cdrtools
|
||||
dbus
|
||||
dvd+rw-tools
|
||||
dvdauthor
|
||||
eudev
|
||||
ffmpeg-4
|
||||
fontconfig
|
||||
libexif
|
||||
libjpeg-turbo
|
||||
wxsvg
|
||||
wxwidgets))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("flex" ,flex)
|
||||
("python" ,python-2)
|
||||
("xmlto" ,xmlto)
|
||||
("gettext" ,gettext-minimal)
|
||||
("docbook-xml" ,docbook-xml)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("zip" ,zip)))
|
||||
(list bison
|
||||
docbook-xml
|
||||
docbook-xsl
|
||||
flex
|
||||
gettext-minimal
|
||||
pkg-config
|
||||
python-minimal-wrapper
|
||||
xmlto
|
||||
zip))
|
||||
(synopsis "DVD authoring application")
|
||||
(description "DVDStyler is a DVD authoring application which allows users
|
||||
to burn video files in many formats to DVD discs, complete with individually
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
|
||||
;;; Copyright © 2026 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages coreboot)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-26))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
#~(list
|
||||
(string-append "CC=" #$(cc-for-target)))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure script
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "util/bincfg")))
|
||||
(add-after 'build 'build-binaries
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(for-each
|
||||
(lambda (target result)
|
||||
(apply invoke "make" (string-append "gen-" target) make-flags)
|
||||
(rename-file result
|
||||
(string-append target ".bin")))
|
||||
(list
|
||||
;; generate GbE for X200
|
||||
"gbe-ich9m"
|
||||
;; generate GbE for X220/x230
|
||||
"gbe-82579LM"
|
||||
;; generate IFD for X200
|
||||
"ifd-x200")
|
||||
(list
|
||||
"flashregion_3_gbe.bin"
|
||||
"flashregion_3_gbe.bin"
|
||||
"flashregion_0_fd.bin"))))
|
||||
;; The Makefile has no install target.
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((bin (string-append #$output "/bin"))
|
||||
(lib (string-append #$output "/lib/bincfg"))
|
||||
(data (string-append #$output "/share/bincfg")))
|
||||
;; Install the program
|
||||
(install-file "bincfg" bin)
|
||||
;; And its data
|
||||
(for-each
|
||||
(lambda (path)
|
||||
(install-file path data))
|
||||
(append (find-files "." ".*\\.set")
|
||||
(find-files "." ".*\\.spec")))
|
||||
;; And the files generated with the data
|
||||
(for-each
|
||||
(lambda (path)
|
||||
(install-file path lib))
|
||||
(find-files "." ".*\\.bin"))))))))
|
||||
(native-inputs (list bison flex))
|
||||
(home-page "https://coreboot.org")
|
||||
(synopsis "Encoder/decoder for binary formats described in text files")
|
||||
(description "
|
||||
The bincfg program comes with specifications files for the following binary
|
||||
formats:
|
||||
@itemize
|
||||
@item Various DDR3 and DDR4 SPD
|
||||
@item Configuration data for the Intel 82579LM Gigabit Ethernet PHY
|
||||
@item Configuration data for the Intel Gigabit Ethernet controller present in
|
||||
the Intel ICH9-M chipset.
|
||||
@item Intel Firmware Descriptor data for the Lenovo ThinkPad X200
|
||||
@item Configuration data for the ITE IT8718F SuperIO
|
||||
@end itemize
|
||||
It also comes with example files generated by bincfg.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
"INSTALL=install"
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "util/ifdtool")))
|
||||
(delete 'configure)) ; no configure script
|
||||
#:tests? #f)) ; no test suite
|
||||
(home-page "https://doc.coreboot.org/util/ifdtool/")
|
||||
(synopsis "Intel Firmware Descriptor dumper")
|
||||
(description "This package provides @command{ifdtool}, a program to
|
||||
dump Intel Firmware Descriptor data of an image file.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;no test suite
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
"INSTALL=install"
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "util/intelmetool")))
|
||||
(delete 'configure) ;no configure script
|
||||
(delete 'check))))
|
||||
(inputs (list pciutils zlib))
|
||||
(home-page
|
||||
"https://github.com/coreboot/coreboot/tree/main/util/intelmetool/")
|
||||
(synopsis "Intel Management Engine tools")
|
||||
(description "This package provides tools for working with Intel
|
||||
Management Engine (ME). You need to @code{sudo rmmod mei_me} and
|
||||
@code{sudo rmmod mei} before using this tool. Also pass
|
||||
@code{iomem=relaxed} to the Linux kernel command line.")
|
||||
(license license:gpl2)
|
||||
|
||||
;; This is obviously an Intel thing, plus it requires <cpuid.h>.
|
||||
(supported-systems '("x86_64-linux" "i686-linux"))))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
"INSTALL=install"
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "util/nvramtool")))
|
||||
(delete 'configure)))) ; no configure script
|
||||
(home-page "https://coreboot.org")
|
||||
(synopsis "Command line tool that can edit Coreboot settings")
|
||||
(description "@command{nvramtool} can see and/or modify Coreboot settings
|
||||
like the serial port speed, log level, etc. It requires Coreboot to be compiled
|
||||
with CONFIG_USE_OPTION_TABLE and some options require the iomem=relaxed kernel
|
||||
command line to work. Features:
|
||||
@itemize
|
||||
@item If Coreboot was compiled without CONFIG_STATIC_OPTION_TABLE, it can change
|
||||
its settings, which are applied after a reboot.
|
||||
@item It can modify Coreboot images default settings with
|
||||
@command{nvramtool -C coreboot.rom [...]}.
|
||||
@item It has various options related to the file format used to store these
|
||||
settings.
|
||||
@item It can also read/write the CMOS memory where the Coreboot settings can be
|
||||
located.
|
||||
@end itemize")
|
||||
;; Some files are "GPL-2.0-only or BSD-3-Clause", other are GPL-2.0-only
|
||||
;; and anyway there is. There is also a license declaration in
|
||||
;; cli/nvramtool.8 that applies to "This program" which uses the GPLv2.
|
||||
(license license:gpl2)))
|
||||
+12
-12
@@ -20,18 +20,6 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages debian)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages backup)
|
||||
#:use-module (gnu packages base)
|
||||
@@ -40,6 +28,7 @@
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages dbm)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages guile)
|
||||
@@ -53,6 +42,17 @@
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages wget)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26))
|
||||
|
||||
|
||||
@@ -1096,17 +1096,9 @@ to aid in debugging.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256 (base32 "0ppx8r9isc772y0ahpgl8g5b3yxka7ffqzlcsa920aib5nj39lrg"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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))))
|
||||
(substitute* "pyproject.toml"
|
||||
;; Python is linked with GNU readline on all Guix targets.
|
||||
((".*gnureadline.*") "")
|
||||
|
||||
@@ -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)
|
||||
|
||||
+174
-14
@@ -1,12 +1,13 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015-2018, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2016 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2016, 2019-2021 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
|
||||
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
|
||||
;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
@@ -21,9 +22,11 @@
|
||||
;;; Copyright © 2021, 2024 Zheng Junjie <873216071@qq.com>
|
||||
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
|
||||
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
|
||||
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se>
|
||||
;;; Copyright © 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;; Copyright © 2026 Anderson Torres <anderson.torres.8519@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -46,12 +49,12 @@
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages datastructures)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
@@ -65,6 +68,7 @@
|
||||
#:use-module (gnu packages libidn)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages nettle)
|
||||
#:use-module (gnu packages networking)
|
||||
@@ -84,17 +88,173 @@
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#: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 meson)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public adns
|
||||
(package
|
||||
(name "adns")
|
||||
(version "1.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "git://git.chiark.greenend.org.uk/~ianmdlvl/adns.git")
|
||||
(commit (string-append "adns-" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0ln3l5j7wb1xazrzl76p9xar52p6l2k1cwy7jazxw1acl71k9h5n"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; INFO: Tests expect real name resolution to work.
|
||||
#:tests? #f
|
||||
#:configure-flags
|
||||
#~(list
|
||||
;; Make sure the programs under bin/ find libadns.so.
|
||||
(string-append "LDFLAGS=-Wl,-rpath -Wl,"
|
||||
#$output:out
|
||||
"/lib"))))
|
||||
(native-inputs
|
||||
(list m4))
|
||||
(home-page "https://www.gnu.org/software/adns/")
|
||||
(synopsis "Asynchronous DNS client library and utilities")
|
||||
(description
|
||||
"GNU adns is a C library that provides easy-to-use @acronym{DNS, Domain
|
||||
Name System} resolution functionality. The library is asynchronous, allowing
|
||||
several concurrent calls. The package also includes several command-line
|
||||
utilities for use in scripts.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public c-ares
|
||||
(package
|
||||
(name "c-ares")
|
||||
(version "1.34.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/c-ares/c-ares/releases/download/v"
|
||||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0br2msk3bpl5myhjp9vr5j2scpspvbg2fpnz69dcrr4ycpnxnf7s"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'check 'filter-live-tests
|
||||
(lambda _
|
||||
;; Filter tests that require internet access.
|
||||
(setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*")))
|
||||
#$@(if (system-hurd?)
|
||||
#~((add-after 'unpack 'skip-tests
|
||||
(lambda _
|
||||
(substitute* "test/ares-test-main.cc"
|
||||
(("(^| )main *\\(.*" all)
|
||||
(string-append all " exit (77);\n")))))
|
||||
(add-after 'filter-live-tests 'filter-hurd-tests
|
||||
(lambda _
|
||||
(setenv "GTEST_FILTER"
|
||||
(string-append
|
||||
(getenv "GTEST_FILTER")
|
||||
":.*Basic/2"
|
||||
":.*CancelImmediate/2"
|
||||
":.*CancelImmediateGetHostByAddr/2"
|
||||
":.*CancelLater/1"
|
||||
":.*FamilyUnspecified/2"
|
||||
":.*FamilyV6/2"
|
||||
":.*GetAddrInfoParallelLookups/1"
|
||||
":.*GetHostByAddrDestroy/2"
|
||||
":.*GetHostByNameCNAMENoData/2"
|
||||
":.*GetHostByNameDestroyAbsolute/2"
|
||||
":.*GetHostByNameDestroyRelative/2"
|
||||
":.*GetHostByNameParallelLookups/1"
|
||||
":.*HostAlias/2"
|
||||
":.*HostAliasMissing/2"
|
||||
":.*HostAliasMissingFile/2"
|
||||
":.*NotImplResponse/2"
|
||||
":.*RefusedResponse/2"
|
||||
":.*Resend/1"
|
||||
":.*RetryWithoutEDNS/2"
|
||||
":.*SearchDomains/2"
|
||||
":.*SearchDomainsBare/2"
|
||||
":.*SearchDomainsServFailOnAAAA/2"
|
||||
":.*SearchDomainsWithResentReply/1"
|
||||
":.*SearchHighNdots/2"
|
||||
":.*SearchNoDataThenFail/2"
|
||||
":.*SearchNoDataThenNoDataBare/2"
|
||||
":.*SearchNoDataThenSuccess/2"
|
||||
":.*ServFailResponse/2"
|
||||
":.*SimpleQuery/2"
|
||||
":.*SockCallback/2"
|
||||
":.*SockConfigureCallback/2"
|
||||
":.*SortListV4/2"
|
||||
":.*SortListV6/2"
|
||||
":.*ThirdServer/2"
|
||||
":.*TruncationRetry/1"
|
||||
":.*UnspecifiedFamilyCname6A4/2"
|
||||
":.*UnspecifiedFamilyV4/2"
|
||||
":.*UnspecifiedFamilyV6/2")))))
|
||||
#~()))))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(home-page "https://c-ares.haxx.se/")
|
||||
(synopsis "C library for asynchronous DNS requests")
|
||||
(description
|
||||
"C-ares is a C library that performs DNS requests and name resolution
|
||||
asynchronously. It is intended for applications which need to perform DNS
|
||||
queries without blocking, or need to perform multiple DNS queries in parallel.
|
||||
The primary examples of such applications are servers which communicate with
|
||||
multiple clients and programs with graphical user interfaces.")
|
||||
(license (license:x11-style "https://c-ares.haxx.se/license.html"))))
|
||||
|
||||
(define-public c-ares-for-node-lts
|
||||
(hidden-package c-ares))
|
||||
|
||||
(define-public c-ares-for-node-bootstrap
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit c-ares)
|
||||
(version "1.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://c-ares.haxx.se/download/c-ares-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kxviskwsaa7dcgscvssxa8ps88pdq7kq4z93gxvz7sam2l54z8s")))))))
|
||||
|
||||
;; INFO: gRPC requires a c-ares built with CMake in order to get the .cmake
|
||||
;; modules. We can not build c-ares itself with CMake because that would
|
||||
;; introduce a circular dependency through nghttp2.
|
||||
;;
|
||||
;; TODO: It would be nice if we could extract the modules somehow and make
|
||||
;; them work with the "normal" c-ares package instead of building a whole new
|
||||
;; library.
|
||||
(define-public c-ares/cmake
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit c-ares)
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; INFO: Tests require name resolution (the normal variant runs no
|
||||
;; tests).
|
||||
#:tests? #f)))))
|
||||
|
||||
(define-public cloudflare-cli
|
||||
(let ((commit "2d986d3ec1b0e3158c4bd40e8918947cb74aa392")
|
||||
|
||||
@@ -1586,31 +1586,21 @@ exploration and optimization.")
|
||||
(commit version)
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "libs"
|
||||
"delaunay-triangulation"
|
||||
"dxflib"
|
||||
;; "fontobene-qt"
|
||||
;; "googletest"
|
||||
;; "hoedown"
|
||||
"librepcb"
|
||||
;; "muparser"
|
||||
"optional"
|
||||
"parseagle"
|
||||
;; "polyclipping"
|
||||
;; "quazip"
|
||||
"type_safe")))
|
||||
#~(delete-all-but "libs"
|
||||
"delaunay-triangulation"
|
||||
"dxflib"
|
||||
;; "fontobene-qt"
|
||||
;; "googletest"
|
||||
;; "hoedown"
|
||||
"librepcb"
|
||||
;; "muparser"
|
||||
"optional"
|
||||
"parseagle"
|
||||
;; "polyclipping"
|
||||
;; "quazip"
|
||||
"type_safe"))
|
||||
(sha256
|
||||
(base32 "1g3k2g2p5yy7zk971bg7qh4k38p30aydp27c5bfb02gn7djknz7w"))))
|
||||
(build-system cmake-build-system)
|
||||
@@ -2166,18 +2156,9 @@ layout of a circuit corresponds to the desired netlists.")
|
||||
;; no longer have their original upstream.
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26))
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "3rdparty"
|
||||
;; The following sources have all been patched, so
|
||||
;; cannot easily be unbundled.
|
||||
@@ -3792,7 +3773,7 @@ to enforce it.")
|
||||
(define-public python-vunit
|
||||
(package
|
||||
(name "python-vunit")
|
||||
(version "5.0.0-dev.9") ;v4.7.0 dates back from 2 years ago.
|
||||
(version "5.0.0-dev.10") ;v4.7.0 dates back from 2 years ago.
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -3801,7 +3782,7 @@ to enforce it.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1j9rvlshzi4mdy7wah1j8ri63drkjb47xly22q40wvl2xp2ghqgs"))))
|
||||
(base32 "1gr9ghwgqly9zf0sf15ai20sac520rs84b9i5qjxdqpj26ayyl1q"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
+62
-20
@@ -2809,6 +2809,56 @@ versions of a topic branch.")
|
||||
diffs.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public emacs-majutsu
|
||||
(package
|
||||
(name "emacs-majutsu")
|
||||
(version "0.6.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/0WD0/majutsu")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1b840z3p10jyh8d6kmj7syad7308qr9p09gsci4gmha0iw3adnx5"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; XXX: Test fails with `void-function transient--set-layout' when using
|
||||
;; wrapped ert-runner.
|
||||
#:test-command
|
||||
#~'(".ert-runner-real")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-references
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(emacs-substitute-variables "majutsu-jj.el"
|
||||
("majutsu-jj-executable"
|
||||
(search-input-file inputs "bin/jj")))))
|
||||
(add-after 'install 'install-docs
|
||||
(lambda _
|
||||
(with-directory-excursion "docs"
|
||||
(invoke "make" "majutsu.info")
|
||||
(install-file "majutsu.info"
|
||||
(in-vicinity #$output "share/info"))))))))
|
||||
(native-inputs
|
||||
;; Use unwrapped ert-runner in test, adding its inputs here.
|
||||
(modify-inputs (package-inputs emacs-ert-runner)
|
||||
(delete "bash-minimal")
|
||||
(prepend emacs-ert-runner texinfo)))
|
||||
(inputs (list jujutsu))
|
||||
(propagated-inputs (list emacs-magit))
|
||||
(home-page "https://github.com/0WD0/majutsu")
|
||||
(synopsis "Emacs interface for Jujutsu version control system")
|
||||
(description
|
||||
"Majutsu provides a @code{emacs-magit}-style interface for
|
||||
@code{jujutsu}, offering an efficient way to interact with Jujutsu repositories
|
||||
from within Emacs.")
|
||||
(license
|
||||
(list license:gpl3+
|
||||
license:expat))))
|
||||
|
||||
(define-public emacs-conflict-buttons
|
||||
;; No releases
|
||||
(let ((commit "22af851d6a0cdd226ef7ba0db54fa096c8ddf235")
|
||||
@@ -15875,18 +15925,9 @@ placed at the margin of the minibuffer for your completion candidates.")
|
||||
(url "https://github.com/Fuco1/smartparens")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Taken from nextpnr package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred
|
||||
(negate (cut member <> (append '("." "..") preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each delete-file items))))
|
||||
;; Only activate basic tests.
|
||||
(delete-all-but "test"
|
||||
"test-helper.el"
|
||||
@@ -22379,7 +22420,7 @@ are common in Chromium-derived projects.")
|
||||
(define-public emacs-gnosis
|
||||
(package
|
||||
(name "emacs-gnosis")
|
||||
(version "0.8.0")
|
||||
(version "0.10.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -22388,7 +22429,7 @@ are common in Chromium-derived projects.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "003pmd0ahpcss5ydk3wbx5j45225ypa85zrgljz5qajijiybvxpi"))))
|
||||
(base32 "0kpzc2jw51sklz15v0d0vzm5ck05n3d90l02la4nxn8r85jb1f53"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -22401,20 +22442,21 @@ are common in Chromium-derived projects.")
|
||||
(lambda _
|
||||
(setenv "HOME"
|
||||
(getenv "TMPDIR"))
|
||||
(mkdir-p (string-append (getenv "HOME") "/.emacs.d"))))
|
||||
(mkdir-p (string-append
|
||||
(getenv "HOME")
|
||||
"/.emacs.d"))))
|
||||
(add-before 'install 'make-info
|
||||
(lambda _
|
||||
(invoke "make" "doc" "GUIX_SHELL="))))))
|
||||
(native-inputs (list texinfo))
|
||||
(propagated-inputs (list emacs-compat emacs-emacsql emacs-org-gnosis
|
||||
emacs-transient))
|
||||
(propagated-inputs (list emacs-transient))
|
||||
(home-page "https://thanosapollo.org/projects/gnosis/")
|
||||
(synopsis "Spaced repetition system for GNU Emacs")
|
||||
(synopsis "Personal knowledge system for GNU Emacs")
|
||||
(description
|
||||
"Gnosis is a spaced repetition system for note-taking and self-testing
|
||||
where notes are formatted as Question/Answer/Explanation. Notes are reviewed
|
||||
at spaced intervals based on the success or failure in recalling the answer to
|
||||
each question.")
|
||||
"Gnosis is a personal knowledge system for GNU Emacs that
|
||||
integrates note-taking with spaced repetition. It combines
|
||||
Zettelkasten-style linked notes with self-testing review,
|
||||
all stored in a single SQLite database.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-drag-stuff
|
||||
|
||||
@@ -1902,7 +1902,7 @@ PicoBlaze; and Zilog Z80 families, plus many of their variants.")
|
||||
(inputs
|
||||
(list readline ucsim))
|
||||
(native-inputs
|
||||
(list bison boost flex python-2 texinfo zlib))
|
||||
(list bison boost flex python-minimal-wrapper texinfo zlib))
|
||||
(home-page "https://sdcc.sourceforge.net/")
|
||||
(synopsis "C compiler suite for 8-bit microcontrollers")
|
||||
(description "SDCC is a retargetable, optimizing Standard C compiler suite
|
||||
|
||||
@@ -460,13 +460,6 @@ It aims to support Nintendo DSi and 3DS as well.")
|
||||
(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))))
|
||||
|
||||
;; Clean up the source from bundled libraries we don't need.
|
||||
(delete-all-but "Externals"
|
||||
;; XXX: The build system is currently hard-coded
|
||||
@@ -656,14 +649,6 @@ turbo speed, networked multiplayer, and graphical enhancements.")
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
|
||||
;; Clean up the source from bundled libraries we don't need.
|
||||
(delete-all-but "Externals"
|
||||
;; XXX: The build system is currently hard-coded
|
||||
@@ -1079,17 +1064,9 @@ The following systems are supported:
|
||||
(sha256
|
||||
(base32
|
||||
"0dfsz4dsh49dc9xx9rjhfzfkg4h91i2ksgp2inlr9yhgldw9q8h3"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "src/third-party"
|
||||
"blip_buf"
|
||||
"inih")))))
|
||||
@@ -2319,42 +2296,9 @@ physical device and the RetroPad virtual controller.")
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
(define (delete-all-but . preserve)
|
||||
;; Walk the file tree and delete everything except the paths
|
||||
;; listed in PRESERVE. Directories listed PRESERVE will cause
|
||||
;; their whole contents to be preserved.
|
||||
(let ((preserve (map (compose (cut string-trim-right <> #\/)
|
||||
(cut string-append "./" <>))
|
||||
preserve)))
|
||||
(file-system-fold
|
||||
(lambda (path stat result) ;enter
|
||||
(or (any (lambda (x)
|
||||
(or (string-prefix? path x)
|
||||
(string-prefix? x path)))
|
||||
preserve)
|
||||
(begin
|
||||
(delete-file-recursively path)
|
||||
#f)))
|
||||
(lambda (path stat result) ;leaf (file)
|
||||
(unless (any (cut string-prefix? <> path) preserve)
|
||||
(delete-file path)))
|
||||
(const #t) ;down (directory)
|
||||
(const #t) ;up (directory)
|
||||
(lambda (path stat result) ;skip
|
||||
(when (file-exists? path)
|
||||
(error "could not enter unreadable directory" path)))
|
||||
(lambda (path stat errno result) ;error
|
||||
(error "error processing" path (strerror errno)))
|
||||
0
|
||||
".")))
|
||||
|
||||
;; This is an allow-list of the shaders explicitly licensed as
|
||||
;; free software.
|
||||
(delete-all-but
|
||||
(delete-all-but "."
|
||||
"anamorphic/shaders/anamorphic.slang" ;expat
|
||||
"anamorphic/anamorphic.slangp"
|
||||
"annotated_passthru.slang" ;public license
|
||||
@@ -3011,16 +2955,7 @@ GLSL (@file{.slang}) shaders for use with RetroArch.")
|
||||
(commit (string-append "v" version))))
|
||||
(snippet
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26))
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(use-modules (guix build utils))
|
||||
;; Remove as much bundled sources as possible, shaving off about
|
||||
;; 65 MiB.
|
||||
(delete-all-but "deps"
|
||||
@@ -3827,24 +3762,14 @@ de-interlacing patches for use with PCSX2.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0nr53cjifqwnz3icxsj01yd3aw1vfsfxga4zz5zi8aqr175mvq27"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
(substitute* "cmake/Pcsx2Utils.cmake"
|
||||
(("(PCSX2_GIT_REV \")Unknown" _ prefix)
|
||||
(string-append prefix #$version "-guix")))
|
||||
(delete-file "3rdparty/include/Packet32.h") ;"not open source"
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but
|
||||
"3rdparty"
|
||||
(delete-all-but "3rdparty"
|
||||
;; asl2.0 and cc0
|
||||
"glad" ;Is tailored.
|
||||
;; bsd-3
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2016, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||
@@ -84,7 +84,6 @@
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages mtools)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
@@ -524,162 +523,6 @@ Loke and Heimdall communicate via the custom Samsung-developed protocol typicall
|
||||
referred to as the \"Odin 3 protocol\".")
|
||||
(license license:expat)))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
"INSTALL=install"
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "util/ifdtool")))
|
||||
(delete 'configure)) ; no configure script
|
||||
#:tests? #f)) ; no test suite
|
||||
(home-page "https://doc.coreboot.org/util/ifdtool/")
|
||||
(synopsis "Intel Firmware Descriptor dumper")
|
||||
(description "This package provides @command{ifdtool}, a program to
|
||||
dump Intel Firmware Descriptor data of an image file.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
#~(list
|
||||
(string-append "CC=" #$(cc-for-target)))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure script
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "util/bincfg")))
|
||||
(add-after 'build 'build-binaries
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(for-each
|
||||
(lambda (target result)
|
||||
(apply invoke "make" (string-append "gen-" target) make-flags)
|
||||
(rename-file result
|
||||
(string-append target ".bin")))
|
||||
(list
|
||||
;; generate GbE for X200
|
||||
"gbe-ich9m"
|
||||
;; generate GbE for X220/x230
|
||||
"gbe-82579LM"
|
||||
;; generate IFD for X200
|
||||
"ifd-x200")
|
||||
(list
|
||||
"flashregion_3_gbe.bin"
|
||||
"flashregion_3_gbe.bin"
|
||||
"flashregion_0_fd.bin"))))
|
||||
;; The Makefile has no install target.
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((bin (string-append #$output "/bin"))
|
||||
(lib (string-append #$output "/lib/bincfg"))
|
||||
(data (string-append #$output "/share/bincfg")))
|
||||
;; Install the program
|
||||
(install-file "bincfg" bin)
|
||||
;; And its data
|
||||
(for-each
|
||||
(lambda (path)
|
||||
(install-file path data))
|
||||
(append (find-files "." ".*\\.set")
|
||||
(find-files "." ".*\\.spec")))
|
||||
;; And the files generated with the data
|
||||
(for-each
|
||||
(lambda (path)
|
||||
(install-file path lib))
|
||||
(find-files "." ".*\\.bin"))))))))
|
||||
(native-inputs (list bison flex))
|
||||
(home-page "https://coreboot.org")
|
||||
(synopsis "Encoder/decoder for binary formats described in text files")
|
||||
(description "
|
||||
The bincfg program comes with specifications files for the following binary
|
||||
formats:
|
||||
@itemize
|
||||
@item Various DDR3 and DDR4 SPD
|
||||
@item Configuration data for the Intel 82579LM Gigabit Ethernet PHY
|
||||
@item Configuration data for the Intel Gigabit Ethernet controller present in
|
||||
the Intel ICH9-M chipset.
|
||||
@item Intel Firmware Descriptor data for the Lenovo ThinkPad X200
|
||||
@item Configuration data for the ITE IT8718F SuperIO
|
||||
@end itemize
|
||||
It also comes with example files generated by bincfg.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;no test suite
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
"INSTALL=install"
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "util/intelmetool")))
|
||||
(delete 'configure) ;no configure script
|
||||
(delete 'check))))
|
||||
(inputs (list pciutils zlib))
|
||||
(home-page
|
||||
"https://github.com/coreboot/coreboot/tree/main/util/intelmetool/")
|
||||
(synopsis "Intel Management Engine tools")
|
||||
(description "This package provides tools for working with Intel
|
||||
Management Engine (ME). You need to @code{sudo rmmod mei_me} and
|
||||
@code{sudo rmmod mei} before using this tool. Also pass
|
||||
@code{iomem=relaxed} to the Linux kernel command line.")
|
||||
(license license:gpl2)
|
||||
|
||||
;; This is obviously an Intel thing, plus it requires <cpuid.h>.
|
||||
(supported-systems '("x86_64-linux" "i686-linux"))))
|
||||
|
||||
(define-public me-cleaner
|
||||
(package
|
||||
(name "me-cleaner")
|
||||
|
||||
@@ -792,16 +792,16 @@ the freedesktop.org XDG Base Directory specification.")
|
||||
(define-public elogind
|
||||
(package
|
||||
(name "elogind")
|
||||
(version "255.17")
|
||||
(version "255.22")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/elogind/elogind")
|
||||
(commit (string-append "v" version))))
|
||||
(commit (string-append "V" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0cb6p559281dzh24is91v6d4v4kz45yhyizibi4sfql9nign865h"))))
|
||||
"0hnzks8f0jl2hkf954pqky5490zacqaipz20k38qvzl5g8i1if5l"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
||||
@@ -1182,17 +1182,9 @@ It is capable of creating games for SCUMM version 6 and partially version 7.")
|
||||
(sha256
|
||||
(base32
|
||||
"12f1d45995qf5sazjmmfdydllcd6alhqs1s4xwv3jiq1fw66hcy9"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <> (cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
(delete-all-but "extlibs/headers"
|
||||
"glad"))))) ;pre-generated headers
|
||||
(build-system cmake-build-system)
|
||||
|
||||
+144
-44
@@ -97,6 +97,7 @@
|
||||
;;; Copyright © 2025 Aiden Isik <aidenisik+git@member.fsf.org>
|
||||
;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org>
|
||||
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
|
||||
;;; Copyright © 2026 Nikita Alkhovik <forgoty13@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -114,40 +115,32 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages games)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix svn-download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu packages)
|
||||
#:autoload (gnu packages pascal) (fpc)
|
||||
#:use-module (gnu packages acl)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages assembly)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages backup)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages assembly)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages code)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages emulators)
|
||||
#:use-module (gnu packages flex)
|
||||
@@ -202,8 +195,8 @@
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages messaging)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages music)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages music)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages netpbm)
|
||||
#:use-module (gnu packages networking)
|
||||
@@ -212,7 +205,6 @@
|
||||
#:use-module (gnu packages oneapi)
|
||||
#:use-module (gnu packages opencl)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:autoload (gnu packages pascal) (fpc)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages perl-check)
|
||||
#:use-module (gnu packages perl-compression)
|
||||
@@ -230,9 +222,9 @@
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages regex)
|
||||
#:use-module (gnu packages ruby-xyz)
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages squirrel)
|
||||
#:use-module (gnu packages swig)
|
||||
@@ -249,22 +241,31 @@
|
||||
#:use-module (gnu packages wget)
|
||||
#:use-module (gnu packages wxwidgets)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system haskell)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix build-system scons)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix svn-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module ((srfi srfi-1) #:hide (zip))
|
||||
#:use-module (srfi srfi-26))
|
||||
|
||||
@@ -483,7 +484,7 @@ mouse and joystick control, and original music.")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.sr.ht/~drummyfish/Anarch")
|
||||
(url "https://gitlab.com/drummyfish/anarch")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
@@ -4276,11 +4277,11 @@ interface or via an external visual interface such as GNU XBoard.")
|
||||
(("TestIOTouchDragAnywhere (test_integration)" all _) _))))
|
||||
(add-before 'bootstrap 'autoreconf
|
||||
(lambda _
|
||||
;; automake is out of date in the source
|
||||
;; autoreconf updates the automake scripts
|
||||
(invoke "autoreconf")
|
||||
;; Build fails when autom4te.cache exists.
|
||||
(delete-file-recursively "autom4te.cache")
|
||||
;; automake is out of date in the source
|
||||
;; autoreconf updates the automake scripts
|
||||
(invoke "autoreconf")
|
||||
;; Build fails when autom4te.cache exists.
|
||||
(delete-file-recursively "autom4te.cache")
|
||||
#t))
|
||||
(add-after 'install 'delete-freedinkedit-desktop
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
@@ -4610,6 +4611,105 @@ for common mesh file formats, and collision detection.")
|
||||
(home-page "https://irrlicht.sourceforge.io/")
|
||||
(license license:zlib)))
|
||||
|
||||
(define-public pegasus-frontend
|
||||
(let ((commit "c3462e68bf3a178420b44f356998255f8d82a113")
|
||||
(revision "weekly_2024w38"))
|
||||
(package
|
||||
(name "pegasus-frontend")
|
||||
(version (git-version "0.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/mmatyas/pegasus-frontend")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32 "1p350nlbif33mw5cbqxwli5yf47dxpransxlj2wp8xvh4w1rb3jx"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system qt-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:qtbase qtbase-5
|
||||
#:make-flags
|
||||
#~(list (string-append "INSTALL_DESKTOPDIR="
|
||||
#$output "/share/applications")
|
||||
(string-append "INSTALL_ICONDIR="
|
||||
#$output "/share/icons/hicolor"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'copy-modules
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(copy-recursively #$(this-package-native-input
|
||||
"SortFilterProxyModel")
|
||||
"./thirdparty/SortFilterProxyModel")
|
||||
(copy-recursively #$(this-package-native-input
|
||||
"pegasus-theme-grid")
|
||||
"./src/themes/pegasus-theme-grid")
|
||||
(copy-recursively #$(this-package-native-input
|
||||
"pegasus-frontend-translations") "./lang")))
|
||||
(add-before 'check 'prepare-test-env
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(setenv "QT_QPA_PLATFORM" "offscreen")
|
||||
(setenv "QT_QUICK_BACKEND" "software"))))
|
||||
(add-after 'qt-wrap 'gst-wrap
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(wrap-program (string-append #$output "/bin/pegasus-fe")
|
||||
`("GST_PLUGIN_PATH" suffix
|
||||
,(search-path-as-list '("lib/gstreamer-1.0")
|
||||
(map cdr inputs)))))))))
|
||||
(inputs (list sdl2
|
||||
bash-minimal
|
||||
qtbase-5
|
||||
qtsvg-5
|
||||
qtdeclarative-5
|
||||
qtgraphicaleffects
|
||||
qtmultimedia-5
|
||||
qtgamepad-5
|
||||
gst-plugins-base
|
||||
gst-plugins-bad
|
||||
gst-plugins-good))
|
||||
(native-inputs (list qttools-5
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url
|
||||
"https://github.com/mmatyas/pegasus-frontend-translations")
|
||||
(commit
|
||||
"46c7cecec745bdd4c61bfc7ecb967156ad208642")))
|
||||
(file-name "pegasus-frontend-translations")
|
||||
(sha256 (base32
|
||||
"0rvlx199wdrjxr8pgibga556zf4njq4w2n31fdirqgb631rgyqxd")))
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url
|
||||
"https://github.com/mmatyas/pegasus-theme-grid")
|
||||
(commit
|
||||
"5951db6f2a4fe0db6a4fd6f00da1f280cadfa536")))
|
||||
(file-name "pegasus-theme-grid")
|
||||
(sha256 (base32
|
||||
"1nfnq6lppdm9ni6jk48l1i7hk90m8w2p13swl5nr4zwczln8dbz1")))
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url
|
||||
"https://github.com/mmatyas/SortFilterProxyModel")
|
||||
(commit
|
||||
"2061f8136ba372fd06c1928a610258b7d88cb144")))
|
||||
(file-name "SortFilterProxyModel")
|
||||
(sha256 (base32
|
||||
"16va8fcf7v6kfm8r9zym0516qrk4vlsy5wmpd3r3002wpz8q39h2")))))
|
||||
(synopsis
|
||||
"Graphical frontend for launching and managing game collection")
|
||||
(description
|
||||
"Pegasus is a graphical frontend for browsing your game library and
|
||||
launching all kinds of games from the same place. It's focusing on
|
||||
customizability, cross platform support (including embedded)
|
||||
and high performance.")
|
||||
(home-page "https://pegasus-frontend.org")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public mars
|
||||
;; No official release since 2013: use the latest commit.
|
||||
(let ((commit "84664cda094efe6e49d9b1550e4f4f98c33eefa2")
|
||||
@@ -5421,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
|
||||
@@ -5430,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
|
||||
@@ -6649,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/"
|
||||
@@ -6665,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"
|
||||
@@ -6702,7 +6802,7 @@ in-window at 640x480 resolution or fullscreen.")
|
||||
opusfile
|
||||
physfs
|
||||
re2
|
||||
sdl2
|
||||
sdl3
|
||||
sqlite
|
||||
utf8proc
|
||||
utfcpp
|
||||
@@ -9143,7 +9243,7 @@ elements to achieve a simple goal in the most complex way possible.")
|
||||
(define-public the-powder-toy
|
||||
(package
|
||||
(name "the-powder-toy")
|
||||
(version "99.3.384")
|
||||
(version "99.5.394")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -9152,7 +9252,7 @@ elements to achieve a simple goal in the most complex way possible.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0l067j0bbzvr0i2prxrgb0af4xdpl648x741jgnyp4bjzdbm61x7"))
|
||||
(base32 "0wd0sg3lpl9xafyj76syvpdjh574cxjmxaf9kssfjjxs20y3hjn8"))
|
||||
(snippet
|
||||
#~(begin (use-modules (guix build utils))
|
||||
(substitute* "meson.build"
|
||||
@@ -10143,7 +10243,7 @@ your score gets higher, you level up and the blocks fall faster.")
|
||||
"-DES_USE_SYSTEM_LIBRARIES=1")
|
||||
#:make-flags #~(list (string-append "PREFIX=" #$output))
|
||||
#:build-type "Release"
|
||||
#:tests? (not (target-x86-32?))
|
||||
#:tests? (not (target-x86-32?))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-paths
|
||||
@@ -11127,7 +11227,7 @@ levels to unlock.")
|
||||
(define-public simgear
|
||||
(package
|
||||
(name "simgear")
|
||||
(version "2024.1.4")
|
||||
(version "2024.1.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -11139,7 +11239,7 @@ levels to unlock.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1k855yxq06gv42f83c3k9hrsz05xxj6vi1c60227zm0dx3jkb4jq"))
|
||||
(base32 "1ygdc8xkrj7qzm9zklibb1v5w3jp718707zmiwl8fn63sxanbqsq"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -11191,7 +11291,7 @@ and also provides the base for the FlightGear Flight Simulator.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0xlpry1g5xci4qmj37rjk4sdhg9zada0vw6a047gsm7cq5p7pkxk"))
|
||||
(base32 "0hpfvacnba2kcyjwm01lkrqkz0gccvljjil8b0ai42l38hxn5r5h"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -11275,12 +11375,12 @@ and also provides the base for the FlightGear Flight Simulator.")
|
||||
("flightgear-data"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/flightgear/release-"
|
||||
(uri (string-append "https://mirrors.ibiblio.org/flightgear/ftp/release-"
|
||||
(version-major+minor version) "/"
|
||||
"FlightGear-" version "-data.txz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pgwxpm5cdm0y6klrmpqspmhmqsfxshz4jljw2kd4wy18fqzd1s6"))))))
|
||||
"0d81yz9jqmg2jzw5rm769pl1j18pvh2mjkx61l13kw76ja8p6159"))))))
|
||||
(home-page "https://www.flightgear.org/")
|
||||
(synopsis "Flight simulator")
|
||||
(description "The goal of the FlightGear project is to create a
|
||||
@@ -12184,7 +12284,7 @@ for using any UCI engine and also to connect UCI engines to Lichess and IRC.")
|
||||
(base32 "1kkcnpkzgybm7rqg7nafd7sqd5m4alns6l4j5zcf3p41jdc9s3iv"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(inputs (list automake autoconf pkg-config intltool
|
||||
gettext-minimal libtool glib gtk+-2 boost))
|
||||
gettext-minimal libtool glib gtk+-2 boost))
|
||||
(arguments (list #:tests? #f)) ; No tests in source.
|
||||
(home-page "http://nine-mens-morris.net/downloads.html")
|
||||
(synopsis "Implementation of the board game Nine Men's Morris")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages ebook)
|
||||
#:use-module (gnu packages enchant)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
@@ -681,7 +682,7 @@ and a high score table.")
|
||||
(define-public komikku
|
||||
(package
|
||||
(name "komikku")
|
||||
(version "1.99.0")
|
||||
(version "50.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -691,7 +692,7 @@ and a high score table.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1did8rh3aw6d3g1myavsma986rwashw09g3m442lv8fzmdiw18r4"))))
|
||||
"0q858zvpqy32nb2lxdfy1k6fgal46kp634534fg983192fyk1pqp"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -740,8 +741,10 @@ and a high score table.")
|
||||
python-cloudscraper
|
||||
python-colorthief
|
||||
python-dateparser
|
||||
python-ebooklib
|
||||
python-emoji
|
||||
python-keyring
|
||||
python-jxlpy
|
||||
python-lxml
|
||||
python-magic
|
||||
python-natsort
|
||||
@@ -777,7 +780,7 @@ developed with the aim of being used with the Librem 5 phone.")
|
||||
(define-public komikku-servers
|
||||
(package
|
||||
(name "komikku-servers")
|
||||
(version "1.99.0")
|
||||
(version "50.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -787,7 +790,7 @@ developed with the aim of being used with the Librem 5 phone.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1did8rh3aw6d3g1myavsma986rwashw09g3m442lv8fzmdiw18r4"))))
|
||||
"0q858zvpqy32nb2lxdfy1k6fgal46kp634534fg983192fyk1pqp"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
+34
-31
@@ -11258,20 +11258,20 @@ basically a text box in which notes can be written.")
|
||||
(define-public gucharmap
|
||||
(let ((unicode-files
|
||||
'(("Blocks.txt"
|
||||
"041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
|
||||
"05fbpc7miqpv7yic5xkm74ybzxkaf5r58ww21a1iwxqr3apyzvf0")
|
||||
("DerivedAge.txt"
|
||||
"04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
|
||||
"160r7wwidj3c2jl4cw3am0c5d0l7qndis9xx38h0y8fwidvdzv7q")
|
||||
("NamesList.txt"
|
||||
"0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
|
||||
"1x1smmn2kmy8clf6ny2njln75i888lidckc6ssyp2gdhgasdrkhd")
|
||||
("Scripts.txt"
|
||||
"18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
|
||||
"1grmn3bd4m0rcmz544h94kimlj3gf1f343s8177ddrxfmg9m0plz")
|
||||
("UnicodeData.txt"
|
||||
"07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
|
||||
"0327jqfw2hyq8x986cfhwrp717r2jl7ydjjwvzp7biarrcfzq7if")
|
||||
("Unihan.zip"
|
||||
"1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
|
||||
"0pjbyf77lbaxdhwidvpgp81cw13lfhlaw1ynn9vsmkssahmqp97p"))))
|
||||
(package
|
||||
(name "gucharmap")
|
||||
(version "12.0.1")
|
||||
(version "17.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -11280,16 +11280,19 @@ basically a text box in which notes can be written.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
"0sfixlmk7qajcvls6kv2hfczmjafjcr54aczwcdfmp5jjll4m17r"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:modules ((ice-9 match)
|
||||
(guix build glib-or-gtk-build-system)
|
||||
(guix build meson-build-system)
|
||||
(guix build utils))
|
||||
#:glib-or-gtk? #t
|
||||
#:configure-flags
|
||||
(list
|
||||
"CFLAGS=-g -O2 -Wno-error=incompatible-pointer-types"
|
||||
"--with-unicode-data=../unicode-data")
|
||||
"-Ducd_path=../unicode-data"
|
||||
"-Dvapi=false"
|
||||
;; gtk-doc fails because it didn't generate a devhelp2 file
|
||||
"-Ddocs=false")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'prepare-unicode-data
|
||||
@@ -11302,26 +11305,26 @@ basically a text box in which notes can be written.")
|
||||
',unicode-files))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("desktop-file-utils" ,desktop-file-utils)
|
||||
("glib:bin" ,glib "bin") ; for glib-compile-resources.
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("pkg-config" ,pkg-config)
|
||||
,@(map (match-lambda
|
||||
((file hash)
|
||||
`(,file
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.unicode.org/Public/12.0.0/ucd/"
|
||||
file))
|
||||
(sha256 (base32 hash))))))
|
||||
unicode-files)
|
||||
("unzip" ,unzip)))
|
||||
(cons* desktop-file-utils
|
||||
(list glib "bin")
|
||||
gobject-introspection
|
||||
intltool
|
||||
itstool
|
||||
pkg-config
|
||||
python
|
||||
unzip
|
||||
(map (match-lambda
|
||||
((file hash)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://www.unicode.org/Public/17.0.0/ucd/"
|
||||
file))
|
||||
(sha256 (base32 hash)))))
|
||||
unicode-files)))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("xmllint" ,libxml2)))
|
||||
(list gtk+
|
||||
libxml2))
|
||||
(home-page "https://wiki.gnome.org/Apps/Gucharmap")
|
||||
(synopsis "Unicode character picker and font browser")
|
||||
(description
|
||||
|
||||
@@ -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
|
||||
|
||||
+24
-24
@@ -43,34 +43,33 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages gnupg)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages enlightenment)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages openldap)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages perl-check)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages pth)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages security-token)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages swig)
|
||||
@@ -78,23 +77,24 @@
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages tor)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public libgpg-error
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -192,17 +192,9 @@ definitions in Go programs.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0c1rxbj3v3m0fqb8q96xlbawxm9scyx6vvr8pddkiwp7zkx4ajym"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "cmd" "godoc")
|
||||
(delete-all-but "." "cmd")))))
|
||||
(build-system go-build-system)
|
||||
|
||||
@@ -1535,17 +1535,9 @@ Go programming language.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0sjvngpahkb5x573i855fjlb1fdmr6n269nmb5xxnbabjb27mnvg"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "go" "expect")
|
||||
(delete-all-but "." "go")))))
|
||||
(build-system go-build-system)
|
||||
@@ -1575,17 +1567,9 @@ Go source code (including go.mod and go.work files) as test expectations.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0sjvngpahkb5x573i855fjlb1fdmr6n269nmb5xxnbabjb27mnvg"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "go" "packages")
|
||||
(delete-all-but "go/packages" "packagestest")
|
||||
(delete-all-but "." "go")))))
|
||||
@@ -1618,18 +1602,9 @@ tools on.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1blk22apy424j9v58lfy4pxnrgh93yqchqhxsnf78dmx4vx5yi9r"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "." "godoc")))))
|
||||
#~(begin (delete-all-but "." "godoc")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
+739
-524
File diff suppressed because it is too large
Load Diff
+25
-163
@@ -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.
|
||||
;;;
|
||||
@@ -1236,26 +1237,8 @@ may be interactive or produce standard formats such as SVG or PDF.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1np11if704xzyhsx9mqhz7djx23g6wnz62r1v9ra6xaz91yfic0n"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(define (directory? x)
|
||||
(and=> (stat x #f)
|
||||
(compose (cut eq? 'directory <>) stat:type)))
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred
|
||||
(negate (cut member <> (append '("." "..") preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (lambda (item)
|
||||
(if (directory? item)
|
||||
(delete-file-recursively item)
|
||||
(delete-file item)))
|
||||
items))))
|
||||
(delete-all-but "." "generate")))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet #~(delete-all-but "." "generate"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -4816,18 +4799,9 @@ and multi-selects with a focus on user experience and aesthetics.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "083zj3yqb48li8w389iabi1b1zklbw7cwam2grvvglcqrrsj3bsf"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "." "ansi")))))
|
||||
#~(begin (delete-all-but "." "ansi")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -4864,14 +4838,7 @@ ECMA-48} specs.")
|
||||
(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 "." "cellbuf")))))
|
||||
#~(begin (delete-all-but "." "cellbuf")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -4929,18 +4896,8 @@ ECMA-48} specs.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "088786ak8jsgvssbb5y16z066vfq9f6078sjc7iv766knfr2i0x2"))
|
||||
(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 "." "errors")))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet #~(delete-all-but "." "errors"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -5092,18 +5049,9 @@ package provides an API for comparing Golden files.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1shw55110fnn4xz80wmgr18czmiil6z1j064m90iw8c7j9llfzn5"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "." "term")))))
|
||||
#~(begin (delete-all-but "." "term")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -5191,21 +5139,8 @@ package provides an API for comparing Golden files.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0blpb8vpl7sc6pb43h0730wdcwrkvnhly6qhik6wljrzn2nqz5g2"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
;; Consider implementing it as a reusable procedure in
|
||||
;; guix/build/utils or guix/build-system/go.
|
||||
(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 "." "xpty")))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet #~(delete-all-but "." "xpty"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -6243,21 +6178,8 @@ packages.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0afaljkkd388f6igr3f2vjnd14yr8h20fcfzglw8j5q1q7a1cvik"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
;; Consider implementing it as a reusable procedure in
|
||||
;; guix/build/utils or guix/build-system/go.
|
||||
(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")))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet #~(delete-all-but "." "pkg"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -15179,18 +15101,9 @@ Twisted's manhole library} .")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0xj782ghf0iv8r2xxmg2vrh72b02h216y4yfyi60y9z0691lrsip"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "." "tools")))))
|
||||
#~(begin (delete-all-but "." "tools")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -18794,18 +18707,9 @@ publish–subscribe pattern}.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0an8ypp8v9gfxbbb71mpimb1g9labl4v7lgazcphysn6c5smgmiw"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "." "atomicwriter")))))
|
||||
#~(begin (delete-all-but "." "atomicwriter")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -18860,18 +18764,9 @@ https://github.com/syndtr/gocapability.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1nh1disclgydvq7k10awzks6k8kw9cjj3q19f83ksi4b76p5l475"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "." "mount")))))
|
||||
#~(begin (delete-all-but "." "mount")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -29614,21 +29509,8 @@ when they'd prefer a more familiar, loosely typed API.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "05i15278swdmpif3p6g18sy0sn7rnfdl3m2rj5p30cnyb0j29vig"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
;; Consider implementing it as a reusable procedure in
|
||||
;; guix/build/utils or guix/build-system/go.
|
||||
(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 "." "exp")))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet #~(delete-all-but "." "exp"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -31027,18 +30909,9 @@ code.")
|
||||
(name "go-modernc-org-ccgo-v4")
|
||||
(source (origin
|
||||
(inherit (package-source go-modernc-org-ccgo-v3))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(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 "." "v4")))))
|
||||
#~(begin (delete-all-but "." "v4")))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments
|
||||
(package-arguments go-modernc-org-ccgo-v3)
|
||||
@@ -31994,20 +31867,9 @@ unmarshaling functions based on @code{encoding/json} @code{Unmarshal()}.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "12n8ij4gisah5mvxcgq263iic61gjpxdj3ml03826zckzn7wlv46"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
;; Consider implementing it as a reusable procedure in
|
||||
;; guix/build/utils or guix/build-system/go.
|
||||
(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 "." "cmd")
|
||||
(delete-all-but "cmd" "config")))))
|
||||
(build-system go-build-system)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -47,13 +47,13 @@
|
||||
(define-public groff
|
||||
(package
|
||||
(name "groff")
|
||||
(version "1.22.4")
|
||||
(version "1.24.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/groff/groff-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"14q2mldnr1vx0l9lqp9v2f6iww24gj28iyh4j2211hyynx67p3p7"))))
|
||||
"0w3mf9jb5j1gbw1160lr5498q4ayl5i3jpf5g8721l1yzzcbr6z7"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ;12MiB of PS, PDF, HTML, and examples
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.1.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 "1yvsni4hll20g99zq4wl734f9i8gpjr1sqsnk3a93k2dd7b6ymac"))))
|
||||
(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")
|
||||
|
||||
@@ -601,24 +601,16 @@ different data arrays similar to those available in the numdiff software.")
|
||||
(file-name (git-file-name name version))
|
||||
(snippet
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26))
|
||||
(use-modules (guix build utils))
|
||||
;; Delete any bundled .jar files.
|
||||
(for-each delete-file (find-files "." "\\.jar$"))
|
||||
(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 "3rdparty"
|
||||
"fastcv" ;TODO: Unbundle these
|
||||
"libspng"
|
||||
"libtim-vx"
|
||||
"orbbecsdk"
|
||||
"quirc"
|
||||
"zlib-ng")))
|
||||
"fastcv" ;TODO: Unbundle these
|
||||
"libspng"
|
||||
"libtim-vx"
|
||||
"orbbecsdk"
|
||||
"quirc"
|
||||
"zlib-ng")))
|
||||
(sha256
|
||||
(base32
|
||||
"15w4fqjqv5k1yw70jbjsnlgiky39mqpy05rvmm2fbyjrif4kbgkl"))))
|
||||
|
||||
@@ -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
|
||||
|
||||
+2
-14
@@ -1362,21 +1362,9 @@ code prior to it getting merged into @code{go-cid}.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "00lwizzdfdx6kynxddal3all6q9dhwqanpkw0d0vxlwik4nkvxa5"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
;; Consider to implement it as re-usable procedure in
|
||||
;; guix/build/utils or guix/build-system/go.
|
||||
(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 "." "ipfs")))))
|
||||
#~(begin (delete-all-but "." "ipfs")))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
(define-public jemalloc
|
||||
(package
|
||||
(name "jemalloc")
|
||||
(version "5.3.0")
|
||||
(version "5.3.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -44,7 +44,7 @@
|
||||
version "/jemalloc-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1apyxjd1ixy4g8xkr61p0ny8jiz8vyv1j0k4nxqkxpqrf4g2vf1d"))))
|
||||
"14kgf0hs864hp5xxqfqh37l1d8wwg57h7wv28rffs8ig4f0bq9iq"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
@@ -125,14 +125,14 @@
|
||||
;; ex:
|
||||
;; tar xf /gnu/store/...-firefox-123.4.source.tar.xz -O \
|
||||
;; firefox-123.4/browser/locales/l10n-changesets.json | grep revision
|
||||
(let ((commit "d1394212aed0ce0063c0f818aa236e7d4f955ac9"))
|
||||
(let ((commit "0245ffb160688061f0e0c67ea488bcdfdacbeca4"))
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/mozilla-l10n/firefox-l10n.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "firefox-l10n" commit))
|
||||
(sha256 (base32 "16s515xf0i7a7acv0m1bbgflbdx9a87b1dcg7q3yswym8x1bhvaj")))))
|
||||
(sha256 (base32 "0y8xdxql04yys0wj685v4yp3kmx1ivnndg6z11vam8vszh0j7ak6")))))
|
||||
|
||||
(define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n)
|
||||
(let* ((ff-src (firefox-source-origin
|
||||
@@ -244,17 +244,17 @@
|
||||
;; It's used for cache validation and therefore can lead to strange bugs.
|
||||
;; ex: date '+%Y%m%d%H%M%S'
|
||||
;; or: (format-time-string "%Y%m%d%H%M%S")
|
||||
(define %librewolf-build-id "20260326135749")
|
||||
(define %librewolf-build-id "20260409162101")
|
||||
|
||||
(define-public librewolf
|
||||
(package
|
||||
(name "librewolf")
|
||||
(version "149.0-1")
|
||||
(version "149.0.2-2")
|
||||
(source
|
||||
(make-librewolf-source
|
||||
#:version version
|
||||
#:firefox-hash "12jb930qhqhpzjpn5smms7g4n6y40zvxcrg8w42696wxk7pgsqdq"
|
||||
#:librewolf-hash "0igv0fr0vl2nf5rlgnidfz2a3gh55bsqwcray0jg7x2kl6qnkzwm"
|
||||
#:firefox-hash "1kkhg3lgyakinn5ankxrlxbf39wi61mqbhwrj1l4q5l7y0n1m4va"
|
||||
#:librewolf-hash "1bai8g2kc9snck2f724al29q6r57vkj3d7v58rf0mgzpqzvwnw5f"
|
||||
#:l10n firefox-l10n))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
||||
+92
-136
@@ -87,6 +87,7 @@
|
||||
;;; Copyright © 2025 John Kehayias <john.kehayias@protonmail.com>
|
||||
;;; Copyright © 2025 Arjan Adriaanse <arjan@adriaan.se>
|
||||
;;; Copyright © 2026 Justin Veilleux <terramorpha@cock.li>
|
||||
;;; Copyright © 2025 Dariqq <dariqq@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -104,9 +105,7 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages linux)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages acl)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages apparmor)
|
||||
@@ -120,19 +119,20 @@
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages calendar)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpio)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages cryptsetup)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages datastructures)
|
||||
#:use-module (gnu packages dbm)
|
||||
#:use-module (gnu packages disk)
|
||||
#:use-module (gnu packages dlang)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages dlang)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages flex)
|
||||
@@ -147,6 +147,7 @@
|
||||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages gstreamer)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
@@ -154,8 +155,8 @@
|
||||
#:use-module (gnu packages haskell-xyz)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages kde-frameworks)
|
||||
#:use-module (gnu packages libedit)
|
||||
#:use-module (gnu packages kde-graphics)
|
||||
#:use-module (gnu packages libedit)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libunwind)
|
||||
#:use-module (gnu packages libusb)
|
||||
@@ -172,8 +173,8 @@
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages onc-rpc)
|
||||
#:use-module (gnu packages oneapi)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pciutils)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages polkit)
|
||||
#:use-module (gnu packages popt)
|
||||
@@ -192,9 +193,12 @@
|
||||
#:use-module (gnu packages rust-sources)
|
||||
#:use-module (gnu packages samba)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages selinux)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages slang)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages tls)
|
||||
@@ -203,39 +207,36 @@
|
||||
#:use-module (gnu packages vim)
|
||||
#:use-module (gnu packages vulkan)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages selinux)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module (guix platform)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system linux-module)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix build-system linux-module)
|
||||
#:use-module (guix deprecation) ;for libcap/next
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix platform)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix deprecation) ;for libcap/next
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-2)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 regex)
|
||||
#:export (customize-linux
|
||||
make-defconfig))
|
||||
|
||||
@@ -531,7 +532,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
;; The current "stable" kernels. That is, the most recently released major
|
||||
;; versions that are still supported upstream.
|
||||
|
||||
(define-public linux-libre-6.19-version "6.19.11")
|
||||
(define-public linux-libre-6.19-version "6.19.12")
|
||||
(define-public linux-libre-6.19-gnu-revision "gnu")
|
||||
(define deblob-scripts-6.19
|
||||
(linux-libre-deblob-scripts
|
||||
@@ -541,12 +542,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "05jpciyypvmy6byaxjl49b1fvzxcnlhknf0xabrdj5152iznrzkh")))
|
||||
(define-public linux-libre-6.19-pristine-source
|
||||
(let ((version linux-libre-6.19-version)
|
||||
(hash (base32 "16ymkc5r3hw05z7l7ih3qw406qlszz1l7b4g5yz0hv15ddxrs0r0")))
|
||||
(hash (base32 "1md8b270pdyk9d8cq0qyr8qmymcijmj3gc39nn394wpr0l94yp6f")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-6.19)))
|
||||
|
||||
(define-public linux-libre-6.18-version "6.18.21")
|
||||
(define-public linux-libre-6.18-version "6.18.22")
|
||||
(define-public linux-libre-6.18-gnu-revision "gnu")
|
||||
(define deblob-scripts-6.18
|
||||
(linux-libre-deblob-scripts
|
||||
@@ -556,7 +557,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "0qlih8w8wg4v5cwbmd34rbhb6mjgbx69i9rx3s2vxw7h42q9l0ai")))
|
||||
(define-public linux-libre-6.18-pristine-source
|
||||
(let ((version linux-libre-6.18-version)
|
||||
(hash (base32 "0ks735y6jq4yy3jaicjsj4dn4n3kk2skf9dqh9dyifipn57j2f0w")))
|
||||
(hash (base32 "0nazlm6j5blyd4qgl0z6xc3qk00vz3cfvx5mqv18awv5ygx94g52")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-6.18)))
|
||||
@@ -565,7 +566,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
;; Here are the support timelines:
|
||||
;; <https://www.kernel.org/category/releases.html>
|
||||
|
||||
(define-public linux-libre-6.12-version "6.12.80")
|
||||
(define-public linux-libre-6.12-version "6.12.81")
|
||||
(define-public linux-libre-6.12-gnu-revision "gnu")
|
||||
(define deblob-scripts-6.12
|
||||
(linux-libre-deblob-scripts
|
||||
@@ -575,12 +576,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "1x48hpmvajz7v5wn1vdd7l5r14mq4ngzh5npz3pj81z4f1g61i0a")))
|
||||
(define-public linux-libre-6.12-pristine-source
|
||||
(let ((version linux-libre-6.12-version)
|
||||
(hash (base32 "0lrylj87bb8ky29pbplpncrfhmgqqbq3d49iqgdwv7p7jvc929f9")))
|
||||
(hash (base32 "0iw84bqdbh9dlaqd1bqgldg50riw2b5is7ipqnbp0sll8cv9rc62")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-6.12)))
|
||||
|
||||
(define-public linux-libre-6.6-version "6.6.130")
|
||||
(define-public linux-libre-6.6-version "6.6.134")
|
||||
(define-public linux-libre-6.6-gnu-revision "gnu")
|
||||
(define deblob-scripts-6.6
|
||||
(linux-libre-deblob-scripts
|
||||
@@ -590,12 +591,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "0xp9b2vkrb0g0rn4i33b59rhp4sgh1dbwzk28vwz7kwac6l5rcpi")))
|
||||
(define-public linux-libre-6.6-pristine-source
|
||||
(let ((version linux-libre-6.6-version)
|
||||
(hash (base32 "139480lyi3if8pd2j3yld5a01lk7113kbcn2kxpzyk29p5kslq14")))
|
||||
(hash (base32 "1grp1wqgzjsk6xyl0nvd2hxlxjj0wgz04x544zkz8srp6rxnjy33")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-6.6)))
|
||||
|
||||
(define-public linux-libre-6.1-version "6.1.167")
|
||||
(define-public linux-libre-6.1-version "6.1.168")
|
||||
(define-public linux-libre-6.1-gnu-revision "gnu")
|
||||
(define deblob-scripts-6.1
|
||||
(linux-libre-deblob-scripts
|
||||
@@ -605,7 +606,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
||||
(base32 "1w5pfws6l39dpc3lzazs1n6r4m96f6rdf6vb2scy5fhmrd933ldc")))
|
||||
(define-public linux-libre-6.1-pristine-source
|
||||
(let ((version linux-libre-6.1-version)
|
||||
(hash (base32 "1jwqwp2fg3wdsh9w663rbnbv1rvsvksv1pj4bzns8swp0wy0a618")))
|
||||
(hash (base32 "0vkp75sfnjvfqxjh6gqcx24h2m6qj6xkwlw6b118cja43vjnz1g0")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-6.1)))
|
||||
@@ -945,7 +946,11 @@ ARCH and optionally VARIANT, or #f if there is no such configuration."
|
||||
;; Disable the EFI pstore storage backend to avoid causing
|
||||
;; unrecoverable failures on some EFI systems:
|
||||
;; https://lists.gnu.org/archive/html/help-guix/2025-01/msg00173.html
|
||||
("CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE" . #t)))
|
||||
("CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE" . #t)
|
||||
;; Provide modules for wireguard and netfilter support
|
||||
("CONFIG_WIREGUARD" . m)
|
||||
("CONFIG_IP_NF_FILTER" . m)
|
||||
("CONFIG_NETFILTER_XT_MATCH_ADDRTYPE" . m)))
|
||||
|
||||
(define (config->string options)
|
||||
(string-join (map (match-lambda
|
||||
@@ -1290,8 +1295,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
|
||||
#:extra-version "arm-generic"
|
||||
#:extra-options
|
||||
(append
|
||||
`(;; needed to fix the RTC on rockchip platforms
|
||||
("CONFIG_RTC_DRV_RK808" . #t))
|
||||
(default-extra-linux-options linux-libre-5.10-version))))
|
||||
|
||||
(define-public linux-libre-arm-omap2plus
|
||||
@@ -1302,6 +1305,31 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
|
||||
#:defconfig "omap2plus_defconfig"
|
||||
#:extra-version "arm-omap2plus"))
|
||||
|
||||
(define pinebook-extra-modules
|
||||
`(;; Pinebook display, battery, charger and usb
|
||||
("CONFIG_DRM_ANALOGIX_ANX6345" . m)
|
||||
("CONFIG_CHARGER_AXP20X" . m)
|
||||
("CONFIG_INPUT_AXP20X_PEK" . m)
|
||||
("CONFIG_CHARGER_AXP20X" . m)
|
||||
("CONFIG_BATTERY_AXP20X" . m)
|
||||
("CONFIG_PINCTRL_AXP209" . m)
|
||||
("CONFIG_AXP20X_POWER" . m)
|
||||
("CONFIG_AXP20X_ADC" . m)
|
||||
;; Pinebook PRO battery and sound support
|
||||
("CONFIG_BATTERY_CW2015" . m)
|
||||
("CONFIG_CHARGER_GPIO" . m)
|
||||
("CONFIG_SND_SOC_ES8316" . m)))
|
||||
|
||||
(define arm64-generic-extra-modules
|
||||
(append
|
||||
pinebook-extra-modules
|
||||
`(;; Provide support for ath9k wireless
|
||||
("CONFIG_ATH9K_HTC" . m)
|
||||
;; Support Orange Pi R1 Plus LTS ethernet PHY.
|
||||
("CONFIG_MOTORCOMM_PHY" . m)
|
||||
;; needed to fix the RTC on rockchip platforms
|
||||
("CONFIG_RTC_DRV_RK808" . #t))))
|
||||
|
||||
(define-public linux-libre-arm64-generic
|
||||
(make-linux-libre* linux-libre-version
|
||||
linux-libre-gnu-revision
|
||||
@@ -1311,25 +1339,7 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
|
||||
#:extra-version "arm64-generic"
|
||||
#:extra-options
|
||||
(append
|
||||
`(;; Provide support for ath9k wireless
|
||||
("CONFIG_ATH9K_HTC" . m)
|
||||
;; Support Orange Pi R1 Plus LTS ethernet PHY.
|
||||
("CONFIG_MOTORCOMM_PHY" . m)
|
||||
;; needed to fix the RTC on rockchip platforms
|
||||
("CONFIG_RTC_DRV_RK808" . #t)
|
||||
;; Pinebook display, battery, charger and usb
|
||||
("CONFIG_DRM_ANALOGIX_ANX6345" . m)
|
||||
("CONFIG_CHARGER_AXP20X" . m)
|
||||
("CONFIG_INPUT_AXP20X_PEK" . m)
|
||||
("CONFIG_CHARGER_AXP20X" . m)
|
||||
("CONFIG_BATTERY_AXP20X" . m)
|
||||
("CONFIG_PINCTRL_AXP209" . m)
|
||||
("CONFIG_AXP20X_POWER" . m)
|
||||
("CONFIG_AXP20X_ADC" . m)
|
||||
;; Pinebook PRO battery and sound support
|
||||
("CONFIG_BATTERY_CW2015" . m)
|
||||
("CONFIG_CHARGER_GPIO" . m)
|
||||
("CONFIG_SND_SOC_ES8316" . m))
|
||||
arm64-generic-extra-modules
|
||||
(default-extra-linux-options linux-libre-version))))
|
||||
|
||||
(define-public linux-libre-lts-arm64-generic
|
||||
@@ -1347,25 +1357,7 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
|
||||
#:extra-version "arm64-generic"
|
||||
#:extra-options
|
||||
(append
|
||||
`( ;; Provide support for ath9k wireless
|
||||
("CONFIG_ATH9K_HTC" . m)
|
||||
;; Support Orange Pi R1 Plus LTS ethernet PHY.
|
||||
("CONFIG_MOTORCOMM_PHY" . m)
|
||||
;; needed to fix the RTC on rockchip platforms
|
||||
("CONFIG_RTC_DRV_RK808" . #t)
|
||||
;; Pinebook display, battery, charger and usb
|
||||
("CONFIG_DRM_ANALOGIX_ANX6345" . m)
|
||||
("CONFIG_CHARGER_AXP20X" . m)
|
||||
("CONFIG_INPUT_AXP20X_PEK" . m)
|
||||
("CONFIG_CHARGER_AXP20X" . m)
|
||||
("CONFIG_BATTERY_AXP20X" . m)
|
||||
("CONFIG_PINCTRL_AXP209" . m)
|
||||
("CONFIG_AXP20X_POWER" . m)
|
||||
("CONFIG_AXP20X_ADC" . m)
|
||||
;; Pinebook PRO battery and sound support
|
||||
("CONFIG_BATTERY_CW2015" . m)
|
||||
("CONFIG_CHARGER_GPIO" . m)
|
||||
("CONFIG_SND_SOC_ES8316" . m))
|
||||
arm64-generic-extra-modules
|
||||
(default-extra-linux-options linux-libre-lts-version)))))
|
||||
|
||||
(define-public linux-libre-arm64-generic-5.10
|
||||
@@ -1377,21 +1369,7 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
|
||||
#:extra-version "arm64-generic"
|
||||
#:extra-options
|
||||
(append
|
||||
`(;; needed to fix the RTC on rockchip platforms
|
||||
("CONFIG_RTC_DRV_RK808" . #t)
|
||||
;; Pinebook display, battery, charger and usb
|
||||
("CONFIG_DRM_ANALOGIX_ANX6345" . m)
|
||||
("CONFIG_CHARGER_AXP20X" . m)
|
||||
("CONFIG_INPUT_AXP20X_PEK" . m)
|
||||
("CONFIG_CHARGER_AXP20X" . m)
|
||||
("CONFIG_BATTERY_AXP20X" . m)
|
||||
("CONFIG_PINCTRL_AXP209" . m)
|
||||
("CONFIG_AXP20X_POWER" . m)
|
||||
("CONFIG_AXP20X_ADC" . m)
|
||||
;; Pinebook PRO battery and sound support
|
||||
("CONFIG_BATTERY_CW2015" . m)
|
||||
("CONFIG_CHARGER_GPIO" . m)
|
||||
("CONFIG_SND_SOC_ES8316" . m))
|
||||
arm64-generic-extra-modules
|
||||
(default-extra-linux-options linux-libre-5.10-version))))
|
||||
|
||||
(define-public linux-libre-arm64-honeycomb
|
||||
@@ -1453,9 +1431,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
|
||||
;; Fixes https://codeberg.org/guix/guix/issues/101
|
||||
("CONFIG_KEY_DH_OPERATIONS" . #true)
|
||||
|
||||
;; For connecting to ci.guix.gnu.org over VPN.
|
||||
("CONFIG_WIREGUARD" . m)
|
||||
|
||||
;; restool support
|
||||
("CONFIG_FSL_MC_UAPI_SUPPORT" . #t)
|
||||
("CONFIG_FSL_MC_BUS" . #t)
|
||||
@@ -1774,8 +1749,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
|
||||
("CONFIG_USB_ETH_RNDIS" . m)
|
||||
("CONFIG_USB_ETH_EEM" . m)
|
||||
("CONFIG_USB_G_NCM" . m)
|
||||
;; Provide support for wireguard
|
||||
("CONFIG_WIREGUARD" . m)
|
||||
;; Provide support for ath9k wireless
|
||||
("CONFIG_ATH9K" . m)
|
||||
("CONFIG_ATH9K_HTC" . m))
|
||||
@@ -2088,8 +2061,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
|
||||
("CONFIG_USB_ETH_RNDIS" . m)
|
||||
("CONFIG_USB_ETH_EEM" . m)
|
||||
("CONFIG_USB_G_NCM" . m)
|
||||
;; Provide support for wireguard
|
||||
("CONFIG_WIREGUARD" . m)
|
||||
;; Provide support for ath9k wireless
|
||||
("CONFIG_ATH9K" . m)
|
||||
("CONFIG_ATH9K_HTC" . m))
|
||||
@@ -2423,8 +2394,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
|
||||
("CONFIG_USB_ETH_RNDIS" . m)
|
||||
("CONFIG_USB_ETH_EEM" . m)
|
||||
("CONFIG_USB_G_NCM" . m)
|
||||
;; Provide support for wireguard
|
||||
("CONFIG_WIREGUARD" . m)
|
||||
;; Provide support for ath9k wireless
|
||||
("CONFIG_ATH9K" . m)
|
||||
("CONFIG_ATH9K_HTC" . m))
|
||||
@@ -3234,57 +3203,45 @@ accepted as a quirk (ie AMD Vega 10).")
|
||||
(define-public linux-pam
|
||||
(package
|
||||
(name "linux-pam")
|
||||
(version "1.5.2")
|
||||
(version "1.7.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/linux-pam/linux-pam/releases/download/v"
|
||||
version "/Linux-PAM-" version ".tar.xz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/linux-pam/linux-pam")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kgrsj2scv5mx6w925h9hxf11jnqqs9z8s22aw94b90xm4qp3v74"))
|
||||
"1z5apric696zsci28c7651spvdll0zrpfm9z574gcjf45mp22gmi"))
|
||||
(patches (search-patches "linux-pam-unix_chkpwd.patch"
|
||||
"linux-pam-no-setfsuid.patch"))))
|
||||
|
||||
(build-system gnu-build-system)
|
||||
(build-system meson-build-system)
|
||||
(outputs '("out" "doc")) ;; 0.8 MiB of html
|
||||
(inputs (list libxcrypt))
|
||||
(native-inputs
|
||||
(list flex
|
||||
;; TODO: optional dependencies
|
||||
;; ("cracklib" ,cracklib)
|
||||
))
|
||||
(list gettext-minimal
|
||||
flex bison
|
||||
;; manpages
|
||||
libxslt
|
||||
libxml2
|
||||
docbook-xml
|
||||
docbook-xsl))
|
||||
(arguments
|
||||
(list
|
||||
;; Most users, such as `shadow', expect the headers to be under
|
||||
;; `security'.
|
||||
#:configure-flags #~(list (string-append "--includedir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/include/security")
|
||||
;; explicit libdir for pkgconfig files
|
||||
;; drop with 1.5.3, which fixes
|
||||
;; https://github.com/linux-pam/linux-pam/issues/466
|
||||
(string-append "--libdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib")
|
||||
|
||||
;; XXX: <rpc/rpc.h> is missing from glibc when
|
||||
;; cross-compiling, so we have to disable NIS
|
||||
;; support altogether.
|
||||
#$@(if (%current-target-system)
|
||||
#~("--disable-nis")
|
||||
#~()))
|
||||
|
||||
#:phases (if (target-hurd?)
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'skip-pam-limits
|
||||
(lambda _
|
||||
;; 'pam_limits.c' uses <sys/prctl.h>, which is
|
||||
;; Linux-specific. Skip it on GNU/Hurd.
|
||||
(substitute* "modules/Makefile.in"
|
||||
(("pam_limits") "")))))
|
||||
#~%standard-phases)
|
||||
|
||||
#:configure-flags
|
||||
#~(list
|
||||
;; lastlog is deprecated since 1.5.3
|
||||
"-Dpam_lastlog=enabled"
|
||||
(string-append "-Dvendordir=" #$output "/share/pam")
|
||||
(string-append "-Ddocbook-rng="
|
||||
#$(let ((docbook-xml (this-package-native-input
|
||||
"docbook-xml")))
|
||||
(file-append docbook-xml
|
||||
"/xml/docbook/"
|
||||
(package-version docbook-xml)
|
||||
"/rng/docbookxi.rng")))
|
||||
(string-append "-Dhtmldir=" #$output:doc "/share/doc/" #$name "/html"))
|
||||
;; XXX: Tests won't run in chroot, presumably because /etc/pam.d
|
||||
;; isn't available.
|
||||
#:tests? #f))
|
||||
@@ -5032,7 +4989,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))
|
||||
@@ -27700,49 +27700,6 @@ adaptations.")
|
||||
(define-public ecl-radiance
|
||||
(sbcl-package->ecl-package sbcl-radiance))
|
||||
|
||||
(define-public sbcl-radiance-contribs
|
||||
(let ((commit "710b3e1f9971e48368d52eea0b407f2e8f510981")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-radiance-contribs")
|
||||
(version (git-version "1.0.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://codeberg.org/shirakumo/radiance-contribs")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "radiance-contribs" version))
|
||||
(sha256
|
||||
(base32 "08ivnd7a6vfciqna680qpx6zj6vw9xcbrzq29iz3x7x9sp1pqgq3"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(arguments
|
||||
;; TODO: Include more contribs.
|
||||
`(#:asd-systems '("r-clip"
|
||||
"i-log4cl"
|
||||
"i-sqlite"
|
||||
"r-data-model"
|
||||
"r-simple-rate"
|
||||
"r-welcome")))
|
||||
(inputs
|
||||
(list sbcl-radiance
|
||||
sbcl-cffi
|
||||
sbcl-clip
|
||||
sbcl-cl-sqlite
|
||||
sbcl-log4cl))
|
||||
(home-page "https://shirakumo.github.io/radiance/")
|
||||
(synopsis "Standard implementations and drivers for the radiance interfaces")
|
||||
(description
|
||||
"This is a collection of useful helper modules and standard
|
||||
implementations for Radiance interfaces.")
|
||||
(license license:zlib))))
|
||||
|
||||
(define-public cl-radiance-contribs
|
||||
(sbcl-package->cl-source-package sbcl-radiance-contribs))
|
||||
|
||||
(define-public ecl-radiance-contribs
|
||||
(sbcl-package->ecl-package sbcl-radiance-contribs))
|
||||
|
||||
(define-public sbcl-random-sample
|
||||
(let ((commit "46b70374ed796b84ea003e83c1db97b0caf97e22")
|
||||
(revision "0"))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -51,24 +51,6 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages machine-learning)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix svn-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system ocaml)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system r)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages assembly)
|
||||
#:use-module (gnu packages audio)
|
||||
@@ -89,6 +71,7 @@
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages dejagnu)
|
||||
#:use-module (gnu packages digest)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
@@ -154,6 +137,23 @@
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system ocaml)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system r)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix svn-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public dlpack
|
||||
@@ -4666,7 +4666,7 @@ different backends")
|
||||
(define-public koboldcpp
|
||||
(package
|
||||
(name "koboldcpp")
|
||||
(version "1.110")
|
||||
(version "1.111.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4682,7 +4682,7 @@ different backends")
|
||||
(delete-file-recursively "lib")
|
||||
(for-each delete-file (find-files "." "\\.(dll|exe|bat)$"))))
|
||||
(sha256
|
||||
(base32 "1lfdfsk227qgk44sq10qa93cl5s221djnpj82wg6b38dg7yy0b62"))))
|
||||
(base32 "0mlq0p14p5vhc0pknkjidcw885mr0c92881lp629n44qxdf7dx8i"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
+12
-21
@@ -68,6 +68,7 @@
|
||||
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
|
||||
;;; Copyright © 2026 Sergey Trofimov <sarg@sarg.org.ru>
|
||||
;;; Copyright © 2026 Nguyễn Gia Phong <cnx@loang.net>
|
||||
;;; Copyright © 2026 Herman Rimm <herman@rimm.ee>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -779,20 +780,10 @@ operating systems.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1sg6ifabci7xyp3zds1w906vx6jsmyjlfr6bqld7m7hj07by9ndd"))
|
||||
(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 "autosetup"
|
||||
"mutt-gettext.tcl"
|
||||
"mutt-iconv.tcl")))))
|
||||
(modules '((guix build utils)))
|
||||
(snippet #~(delete-all-but "autosetup"
|
||||
"mutt-gettext.tcl"
|
||||
"mutt-iconv.tcl"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list cyrus-sasl
|
||||
@@ -4744,7 +4735,7 @@ on RFC 3501 and original @code{imaplib} module.")
|
||||
(define-public rspamd
|
||||
(package
|
||||
(name "rspamd")
|
||||
(version "3.12.1")
|
||||
(version "3.14.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4752,7 +4743,7 @@ on RFC 3501 and original @code{imaplib} module.")
|
||||
(url "https://github.com/rspamd/rspamd")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "0li75dqqy0irrvv2jddmll2adf15cywif982ijj034hldg9162bc"))
|
||||
(base32 "1yh3933ak7qzzys6yzixrs8pmmsh16ny23im958h8rqg0xrq3mcy"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
@@ -4783,11 +4774,11 @@ on RFC 3501 and original @code{imaplib} module.")
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(synopsis "Spam filtering system")
|
||||
(description "Rspamd is an advanced spam filtering system that
|
||||
allows evaluation of messages by a number of rules including regular
|
||||
expressions, statistical analysis and custom services such as URL
|
||||
black lists. Each message is analysed by Rspamd and given a spam
|
||||
score.")
|
||||
(description
|
||||
"Rspamd is a spam filter that evaluates email messages by a number
|
||||
of rules including: regular expressions, statistical analysis, and URL
|
||||
blacklists. Rspamd gives each message a spam score, e.g., for further
|
||||
processing by an MTA.")
|
||||
(home-page "https://www.rspamd.com/")
|
||||
(license license:asl2.0)))
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ specific format when needed.")
|
||||
(delete 'configure)) ; no configure script
|
||||
#:test-target "test"))
|
||||
(native-inputs
|
||||
`(("python" ,python-2)
|
||||
`(("python" ,python-minimal-wrapper)
|
||||
("tidy" ,tidy-html)))
|
||||
(synopsis "Markdown processing library")
|
||||
(description "Hoedown is a standards compliant, fast, secure markdown
|
||||
|
||||
@@ -487,8 +487,9 @@ programming languages.")
|
||||
""))))
|
||||
;; The 'check phase requires test programs build using 'build-tests'.
|
||||
(add-before 'check 'build-tests
|
||||
(lambda _
|
||||
(invoke "cmake" "--build" "." "--target" "build-tests"))))))
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "cmake" "--build" "." "--target" "build-tests")))))))
|
||||
(inputs (list cadical-2.1
|
||||
cln
|
||||
cryptominisat
|
||||
@@ -8805,7 +8806,7 @@ and comparisons are supported.")
|
||||
"1fwlgbcdxz30dzsqw3y1b6ic1rhzfadghj7cq7yxsj14npgnwzga"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
(list pkg-config python-2)) ;for tests; syntax incompatible with Python 3
|
||||
(list pkg-config python-minimal-wrapper))
|
||||
(inputs
|
||||
(list openblas suitesparse))
|
||||
(arguments
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -531,6 +531,47 @@ MPRIS 2 support.")
|
||||
(home-page "https://github.com/eonpatapon/mpDris2")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public mpdris2-rs
|
||||
(package
|
||||
(name "mpdris2-rs")
|
||||
(version "1.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/szclsya/mpdris2-rs")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "023m4g1kgr2q2vllaij7nlxd5gp3vklvbhf5drymgqz3pcmslb52"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-source? #f
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'install-systemd-unit
|
||||
(lambda _
|
||||
(let ((unit-dir (in-vicinity #$output "lib/systemd/user/")))
|
||||
(substitute* "misc/mpdris2-rs.service"
|
||||
(("/usr/local/bin/mpdris2-rs")
|
||||
(in-vicinity #$output "bin/mpdris2-rs")))
|
||||
(install-file "misc/mpdris2-rs.service" unit-dir)))))))
|
||||
(inputs (cargo-inputs 'mpdris2-rs))
|
||||
(home-page "https://github.com/szclsya/mpdris2-rs")
|
||||
(synopsis "Exposing MPRIS V2.2 D-Bus interface for mpd")
|
||||
(description
|
||||
"A lightweight implementation of MPD to D-Bus bridge, which exposes MPD
|
||||
player and playlist information onto MPRIS2 interface so other programs can use
|
||||
this generic interface to retrieve MPD's playback state.
|
||||
|
||||
Distinctively, mpdris2-rs uses MPD protocol's native
|
||||
@command{readpicture}/@command{albumart} methods to fetch album arts. This
|
||||
means mpdris2-rs won't need any access to your local filesystem (apart from
|
||||
your @env{XDG_RUNTIME_DIR} for temporarily storing fetched albumarts) and can
|
||||
provide album arts even with remote MPD servers and Internet radios.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public cantata
|
||||
(package
|
||||
(name "cantata")
|
||||
|
||||
+1
-10
@@ -428,18 +428,9 @@ software vendors, application developers and computer science researchers.")
|
||||
(uri (string-append "https://www.open-mpi.org/software/ompi/v"
|
||||
(version-major+minor version)
|
||||
"/downloads/openmpi-" version ".tar.bz2"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred (negate (cut member <>
|
||||
(cons* "." ".." preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each (cut delete-file-recursively <>) items))))
|
||||
;; Delete as many bundled libraries as permitted by the build
|
||||
;; system.
|
||||
(delete-all-but "3rd-party" "treematch" "Makefile.in" "Makefile.am")
|
||||
|
||||
+24
-24
@@ -89,33 +89,13 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages networking)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages aidc)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages assembly)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages autogen)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages assembly)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bison)
|
||||
@@ -131,6 +111,7 @@
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages dejagnu)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages elf)
|
||||
@@ -154,21 +135,21 @@
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages kde-frameworks)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages libbsd)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libidn)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages logging)
|
||||
#:use-module (gnu packages lxqt)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages lxqt)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages nettle)
|
||||
#:use-module (gnu packages openldap)
|
||||
#:use-module (gnu packages onc-rpc)
|
||||
#:use-module (gnu packages openldap)
|
||||
#:use-module (gnu packages password-utils)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages perl)
|
||||
@@ -204,6 +185,25 @@
|
||||
#:use-module (gnu packages wxwidgets)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public usrsctp
|
||||
|
||||
+11
-11
@@ -31,20 +31,10 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages node)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module ((guix build utils) #:select (alist-replace))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system node)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages libevent)
|
||||
@@ -55,6 +45,16 @@
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module ((guix build utils) #:select (alist-replace))
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system node)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26))
|
||||
|
||||
@@ -165,11 +165,7 @@ from the protocol files.")
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-static")))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("gettext" ,gettext-minimal)
|
||||
("libtool" ,libtool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(list autoconf automake gettext-minimal libtool pkg-config))
|
||||
(inputs
|
||||
(list libtirpc))
|
||||
(synopsis "Public client interface for NIS(YP) and NIS+")
|
||||
|
||||
@@ -2620,14 +2620,14 @@ the boot loader configuration.")
|
||||
(define-public flatpak
|
||||
(package
|
||||
(name "flatpak")
|
||||
(version "1.16.5")
|
||||
(version "1.16.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/flatpak/flatpak/releases/download/"
|
||||
version "/flatpak-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0mn1rf1q0r8bhqkm84f1vj3lvl63ccalnc4p98k6qxj92rcfj853"))
|
||||
(base32 "1hzfb337cyg5h4k3rh30jjzccfwazm3gx9lj9prh5dj4zvryfqqy"))
|
||||
(patches
|
||||
(search-patches "flatpak-fix-fonts-icons.patch"
|
||||
"flatpak-fix-icon-validation.patch"
|
||||
|
||||
@@ -0,0 +1,291 @@
|
||||
This patch is taken from the upstream repository
|
||||
|
||||
From b937572d157e660af98e224523ffb3fe5810ed2c Mon Sep 17 00:00:00 2001
|
||||
Message-ID: <b937572d157e660af98e224523ffb3fe5810ed2c.1776087342.git.efraim@flashner.co.il>
|
||||
From: Felix Geyer <debfx@fobos.de>
|
||||
Date: Fri, 30 Aug 2019 19:08:35 +0200
|
||||
Subject: [PATCH] Port scripts to Python 3
|
||||
|
||||
Compatibility with Python 2 is preserved.
|
||||
---
|
||||
scripts/gendocs.py | 2 +-
|
||||
scripts/test.py | 67 +++++++++++++++++++++++-----------------------
|
||||
scripts/tinydoc.py | 23 ++++++++--------
|
||||
3 files changed, 47 insertions(+), 45 deletions(-)
|
||||
|
||||
diff --git a/scripts/gendocs.py b/scripts/gendocs.py
|
||||
index c9f206e..ba872c4 100644
|
||||
--- a/scripts/gendocs.py
|
||||
+++ b/scripts/gendocs.py
|
||||
@@ -29,6 +29,6 @@ root.nodes += [ParseTextFile(Node("License"), "license.txt", True)]
|
||||
|
||||
# render files
|
||||
for o in outputs:
|
||||
- o.file = file(o.output_name(), "w")
|
||||
+ o.file = open(o.output_name(), "w")
|
||||
o.render(root)
|
||||
o.file.close()
|
||||
diff --git a/scripts/test.py b/scripts/test.py
|
||||
index accc26c..bbc9c7d 100755
|
||||
--- a/scripts/test.py
|
||||
+++ b/scripts/test.py
|
||||
@@ -1,5 +1,6 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
+from __future__ import print_function
|
||||
import os, sys, shutil, subprocess
|
||||
|
||||
extra_bam_flags = ""
|
||||
@@ -36,8 +37,8 @@ def copytree(src, dst):
|
||||
copytree(srcname, dstname)
|
||||
else:
|
||||
shutil.copy2(srcname, dstname)
|
||||
- except (IOError, os.error), why:
|
||||
- print "Can't copy %s to %s: %s" % (`srcname`, `dstname`, str(why))
|
||||
+ except (IOError, os.error) as why:
|
||||
+ print("Can't copy '%s' to '%s': %s" % (srcname, dstname, str(why)))
|
||||
|
||||
|
||||
def run_bam(testname, flags):
|
||||
@@ -45,7 +46,7 @@ def run_bam(testname, flags):
|
||||
olddir = os.getcwd()
|
||||
os.chdir(output_path+"/"+testname)
|
||||
|
||||
- p = subprocess.Popen(bam+" "+flags, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT)
|
||||
+ p = subprocess.Popen(bam+" "+flags, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT, universal_newlines=True)
|
||||
report = p.stdout.readlines()
|
||||
p.wait()
|
||||
ret = p.returncode
|
||||
@@ -64,8 +65,8 @@ def test(name, moreflags="", should_fail=0):
|
||||
os.chdir(output_path+"/"+name)
|
||||
cmdline = bam+" -t -v "+extra_bam_flags+" " + moreflags
|
||||
|
||||
- print name + ":",
|
||||
- p = subprocess.Popen(cmdline, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT)
|
||||
+ print(name + ":", end=" ")
|
||||
+ p = subprocess.Popen(cmdline, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT, universal_newlines=True)
|
||||
report = p.stdout.readlines()
|
||||
p.wait()
|
||||
ret = p.returncode
|
||||
@@ -73,50 +74,50 @@ def test(name, moreflags="", should_fail=0):
|
||||
os.chdir(olddir)
|
||||
|
||||
if (should_fail and not ret) or (not should_fail and ret):
|
||||
- print " FAILED!"
|
||||
+ print(" FAILED!")
|
||||
for l in report:
|
||||
- print "\t", l,
|
||||
+ print("\t", l, end=" ")
|
||||
failed_tests += [name + "(returned %d)" % ret]
|
||||
else:
|
||||
- print " ok"
|
||||
+ print(" ok")
|
||||
|
||||
def difftest(name, flags1, flags2):
|
||||
global failed_tests
|
||||
if len(tests) and not name in tests:
|
||||
return
|
||||
testname = "difftest: %s '%s' vs '%s': "%(name, flags1, flags2)
|
||||
- print testname,
|
||||
+ print(testname, end=" ")
|
||||
ret1, report1 = run_bam(name, flags1)
|
||||
ret2, report2 = run_bam(name, flags2)
|
||||
|
||||
if ret1:
|
||||
- print "FAILED! '%s' returned %d" %(flags1, ret1)
|
||||
+ print("FAILED! '%s' returned %d" %(flags1, ret1))
|
||||
failed_tests += [testname]
|
||||
return
|
||||
|
||||
if ret2:
|
||||
- print "FAILED! '%s' returned %d" %(flags2, ret2)
|
||||
+ print("FAILED! '%s' returned %d" %(flags2, ret2))
|
||||
failed_tests += [testname]
|
||||
return
|
||||
|
||||
if len(report1) != len(report2):
|
||||
- print "FAILED! %d lines vs %d lines" % (len(report1), len(report2))
|
||||
+ print("FAILED! %d lines vs %d lines" % (len(report1), len(report2)))
|
||||
failed_tests += [testname]
|
||||
return
|
||||
|
||||
failed = 0
|
||||
- for i in xrange(0, len(report1)):
|
||||
+ for i in range(0, len(report1)):
|
||||
if report1[i] != report2[i]:
|
||||
if not failed:
|
||||
- print "FAILED!"
|
||||
- print "1:", report1[i].strip()
|
||||
- print "2:", report2[i].strip()
|
||||
+ print("FAILED!")
|
||||
+ print("1:", report1[i].strip())
|
||||
+ print("2:", report2[i].strip())
|
||||
failed += 1
|
||||
|
||||
if failed:
|
||||
failed_tests += [testname]
|
||||
else:
|
||||
- print "ok"
|
||||
+ print("ok")
|
||||
|
||||
def unittests():
|
||||
global failed_tests
|
||||
@@ -129,7 +130,7 @@ def unittests():
|
||||
|
||||
tests = []
|
||||
state = 0
|
||||
- for line in file('src/base.lua'):
|
||||
+ for line in open('src/base.lua'):
|
||||
if state == 0:
|
||||
if "@UNITTESTS" in line:
|
||||
state = 1
|
||||
@@ -157,16 +158,16 @@ def unittests():
|
||||
os.chdir(output_path+"/unit")
|
||||
|
||||
for test in tests:
|
||||
- f = file("bam.lua", "w")
|
||||
+ f = open("bam.lua", "w")
|
||||
if test.catch != None:
|
||||
- print >>f, "print(\"CATCH:\", %s)"%(test.line)
|
||||
+ print("print(\"CATCH:\", %s)"%(test.line), file=f)
|
||||
else:
|
||||
- print >>f, test.line
|
||||
- print >>f, 'DefaultTarget(PseudoTarget("Test"))'
|
||||
+ print(test.line, file=f)
|
||||
+ print('DefaultTarget(PseudoTarget("Test"))', file=f)
|
||||
f.close()
|
||||
|
||||
- print "%s:"%(test.line),
|
||||
- p = subprocess.Popen(bam + " --dry", stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT)
|
||||
+ print("%s:"%(test.line), end=" ")
|
||||
+ p = subprocess.Popen(bam + " --dry", stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT, universal_newlines=True)
|
||||
report = p.stdout.readlines()
|
||||
p.wait()
|
||||
ret = p.returncode
|
||||
@@ -174,7 +175,7 @@ def unittests():
|
||||
failed = False
|
||||
if ret != test.err:
|
||||
failed = True
|
||||
- print "FAILED! error %d != %d" % (test.err, ret)
|
||||
+ print("FAILED! error %d != %d" % (test.err, ret))
|
||||
|
||||
if test.catch != None:
|
||||
found = False
|
||||
@@ -185,7 +186,7 @@ def unittests():
|
||||
if catched == test.catch:
|
||||
found = True
|
||||
else:
|
||||
- print "FAILED! catch '%s' != '%s'" % (test.catch, catched)
|
||||
+ print("FAILED! catch '%s' != '%s'" % (test.catch, catched))
|
||||
|
||||
if not found:
|
||||
failed = True
|
||||
@@ -198,16 +199,16 @@ def unittests():
|
||||
|
||||
if not found:
|
||||
failed = True
|
||||
- print "FAILED! could not find '%s' in output" % (test.find)
|
||||
+ print("FAILED! could not find '%s' in output" % (test.find))
|
||||
if failed or verbose:
|
||||
if failed:
|
||||
failed_tests += [test.line]
|
||||
else:
|
||||
- print "",
|
||||
+ print("", end=" ")
|
||||
for l in report:
|
||||
- print "\t", l.rstrip()
|
||||
+ print("\t", l.rstrip())
|
||||
else:
|
||||
- print "ok"
|
||||
+ print("ok")
|
||||
|
||||
|
||||
os.chdir(olddir)
|
||||
@@ -246,11 +247,11 @@ test("multipleoutput")
|
||||
test("missingoutput", "", 1)
|
||||
|
||||
if len(failed_tests):
|
||||
- print "FAILED TESTS:"
|
||||
+ print("FAILED TESTS:")
|
||||
for t in failed_tests:
|
||||
- print "\t"+t
|
||||
+ print("\t"+t)
|
||||
sys.exit(1)
|
||||
else:
|
||||
- print "ALL TESTS PASSED!"
|
||||
+ print("ALL TESTS PASSED!")
|
||||
sys.exit(0)
|
||||
|
||||
diff --git a/scripts/tinydoc.py b/scripts/tinydoc.py
|
||||
index 536a74f..6557cf8 100644
|
||||
--- a/scripts/tinydoc.py
|
||||
+++ b/scripts/tinydoc.py
|
||||
@@ -1,4 +1,5 @@
|
||||
|
||||
+from __future__ import print_function
|
||||
import re, time
|
||||
|
||||
class Node:
|
||||
@@ -47,20 +48,20 @@ class Output:
|
||||
|
||||
def render_node_index(self, cur):
|
||||
if len(cur.index):
|
||||
- print >>self.file, self.index_node_begin(cur)
|
||||
+ print(self.index_node_begin(cur), file=self.file)
|
||||
for node in cur.nodes:
|
||||
self.render_node_index(node)
|
||||
if len(cur.index):
|
||||
- print >>self.file, self.index_node_end(cur)
|
||||
+ print(self.index_node_end(cur), file=self.file)
|
||||
def render_node(self, cur):
|
||||
if len(cur.index):
|
||||
- print >>self.file, self.format_header(cur)
|
||||
- print >>self.file, self.format_body(cur)
|
||||
+ print(self.format_header(cur), file=self.file)
|
||||
+ print(self.format_body(cur), file=self.file)
|
||||
for node in cur.nodes:
|
||||
self.render_node(node)
|
||||
|
||||
def index_nodes(self, cur, index=""):
|
||||
- for i in xrange(0, len(cur.nodes)):
|
||||
+ for i in range(0, len(cur.nodes)):
|
||||
if len(index):
|
||||
cur.nodes[i].index = index + "." + str(i+1)
|
||||
else:
|
||||
@@ -73,14 +74,14 @@ class Output:
|
||||
|
||||
def render(self, rootnode):
|
||||
self.index_nodes(rootnode)
|
||||
- print >>self.file, self.render_begin()
|
||||
+ print(self.render_begin(), file=self.file)
|
||||
|
||||
- print >>self.file, self.index_begin()
|
||||
+ print(self.index_begin(), file=self.file)
|
||||
self.render_node_index(rootnode)
|
||||
- print >>self.file, self.index_end()
|
||||
+ print(self.index_end(), file=self.file)
|
||||
|
||||
self.render_node(rootnode)
|
||||
- print >>self.file, self.render_end()
|
||||
+ print(self.render_end(), file=self.file)
|
||||
|
||||
class HTMLOutput(Output):
|
||||
def render_begin(self):
|
||||
@@ -225,7 +226,7 @@ class HTMLOutput(Output):
|
||||
|
||||
def ParseTextFile(rootnode, filename, addbr=False):
|
||||
group = rootnode
|
||||
- for line in file(filename):
|
||||
+ for line in open(filename):
|
||||
if group_tag in line:
|
||||
group_name = line.split(group_tag)[-1].split(end_tag)[0].strip()
|
||||
group = Node(group_name)
|
||||
@@ -244,7 +245,7 @@ def ParseFile(rootnode, filename):
|
||||
# 2 = outputting function decl
|
||||
state = 0
|
||||
group = rootnode
|
||||
- for line in file(filename):
|
||||
+ for line in open(filename):
|
||||
if state == 0:
|
||||
if group_tag in line:
|
||||
group_name = line.split(group_tag)[-1].split(end_tag)[0].strip()
|
||||
@@ -2,8 +2,14 @@ unix_chkpwd is designed to have a suid bit, but it's not possible to set it
|
||||
for files in the store. This patch tells unix_pam.so to look for
|
||||
unix_chkpwd in setuid program directory on Guix System.
|
||||
|
||||
--- a/modules/pam_unix/Makefile.in
|
||||
+++ b/modules/pam_unix/Makefile.in
|
||||
@@ -651,1 +651,1 @@
|
||||
- -DCHKPWD_HELPER=\"$(sbindir)/unix_chkpwd\" \
|
||||
+ -DCHKPWD_HELPER=\"/run/setuid-programs/unix_chkpwd\" \
|
||||
--- a/modules/module-meson.build
|
||||
+++ b/modules/module-meson.build
|
||||
@@ -114,7 +114,7 @@ if module == 'pam_unix'
|
||||
if enable_nis
|
||||
pam_module_src += ['yppasswd_xdr.c']
|
||||
endif
|
||||
- pam_module_c_args += ['-DCHKPWD_HELPER="@0@"'.format(sbindir / 'unix_chkpwd'),
|
||||
+ pam_module_c_args += ['-DCHKPWD_HELPER="@0@"'.format('/run/privileged/bin' / 'unix_chkpwd'),
|
||||
'-DUPDATE_HELPER="@0@"'.format(sbindir / 'unix_update')]
|
||||
pam_module_deps += [libcrypt, libselinux, libtirpc, libnsl]
|
||||
endif
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
This patch makes neovim look for tree-sitter parsers in the directories
|
||||
specified by TREE_SITTER_GRAMMAR_PATH. Thereby, making it compatible
|
||||
with the tree-sitter setup used by other Guix packages. e.g. emacs.
|
||||
|
||||
diff --git a/runtime/lua/vim/treesitter/language.lua b/runtime/lua/vim/treesitter/language.lua
|
||||
index f70f99421c..480e7bb77a 100644
|
||||
--- a/runtime/lua/vim/treesitter/language.lua
|
||||
+++ b/runtime/lua/vim/treesitter/language.lua
|
||||
@@ -126,12 +126,19 @@ function M.add(lang, opts)
|
||||
return nil, string.format('Invalid language name "%s"', lang)
|
||||
end
|
||||
|
||||
- local fname = 'parser/' .. lang .. '.*'
|
||||
- local paths = api.nvim_get_runtime_file(fname, false)
|
||||
- if #paths == 0 then
|
||||
- return nil, string.format('No parser for language "%s"', lang)
|
||||
+ local paths = vim.split(os.getenv('TREE_SITTER_GRAMMAR_PATH') or '', ':')
|
||||
+ for _, elem in ipairs(paths) do
|
||||
+ local fname = elem .. '/' .. 'libtree-sitter-' .. lang .. '*'
|
||||
+ local paths = vim.fn.glob(fname, false, true)
|
||||
+ if #paths > 0 then
|
||||
+ path = paths[1]
|
||||
+ break
|
||||
+ end
|
||||
end
|
||||
- path = paths[1]
|
||||
+ end
|
||||
+
|
||||
+ if path == nil then
|
||||
+ return nil, string.format('No parser for language "%s"', lang)
|
||||
end
|
||||
|
||||
local res = loadparser(path, lang, symbol_name)
|
||||
@@ -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"
|
||||
@@ -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::*;
|
||||
@@ -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.25")
|
||||
(version "2.92.30")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -245,12 +246,13 @@ it.")
|
||||
(url "https://github.com/trealla-prolog/trealla")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "1asp09g225971fq8n96xh688mk3xrvdj5pd6hvvqc1y1hgimyyr7"))
|
||||
(base32 "1vbjv2nf3c2npf349i9y0zknc2g0hizksv0yhgscdpwzvzfp6n9m"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list curl
|
||||
gsl
|
||||
libedit
|
||||
libffi
|
||||
openssl
|
||||
raylib
|
||||
|
||||
@@ -108,24 +108,9 @@ data in motion, or as a file format for data at rest.")
|
||||
(uri (git-reference
|
||||
(url "https://github.com/protocolbuffers/protobuf/")
|
||||
(commit (string-append "v" version))))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; XXX: 'delete-all-but' is copied from the turbovnc package.
|
||||
(define (delete-all-but directory . preserve)
|
||||
(define (directory? x)
|
||||
(and=> (stat x #f)
|
||||
(compose (cut eq? 'directory <>) stat:type)))
|
||||
(with-directory-excursion directory
|
||||
(let* ((pred
|
||||
(negate (cut member <> (append '("." "..") preserve))))
|
||||
(items (scandir "." pred)))
|
||||
(for-each delete-file-recursively items))))
|
||||
;; "utf8_range" development now takes place in main protobuf
|
||||
;; repository.
|
||||
(delete-all-but "third_party" "utf8_range")))
|
||||
(modules '((guix build utils)))
|
||||
;; "utf8_range" development now takes place in main protobuf repository.
|
||||
(snippet #~(delete-all-but "third_party" "utf8_range"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1rdxm75bqwjj4qd3hz4vlydra6bw5dq391kwln2q0pjfx9gbrjhk"))))
|
||||
|
||||
+13
-13
@@ -106,28 +106,16 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages python-web)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages django)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnupg)
|
||||
@@ -140,6 +128,7 @@
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages lsof)
|
||||
#:use-module (gnu packages node)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages openstack)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
@@ -165,6 +154,17 @@
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public python-aiocoap
|
||||
|
||||
+33
-70
@@ -197,9 +197,6 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages python-xyz)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages attr)
|
||||
#:use-module (gnu packages autotools)
|
||||
@@ -210,11 +207,10 @@
|
||||
#:use-module (gnu packages bioinformatics)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages databases)
|
||||
@@ -223,6 +219,7 @@
|
||||
#:use-module (gnu packages digest)
|
||||
#:use-module (gnu packages django)
|
||||
#:use-module (gnu packages djvu)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages duckdb)
|
||||
#:use-module (gnu packages elf)
|
||||
@@ -271,6 +268,7 @@
|
||||
#:use-module (gnu packages networking)
|
||||
#:use-module (gnu packages ninja)
|
||||
#:use-module (gnu packages node)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages openstack)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages pdf)
|
||||
@@ -309,10 +307,10 @@
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages wxwidgets)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
@@ -322,9 +320,11 @@
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix hg-download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix hg-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
@@ -13218,6 +13218,30 @@ and a plugin for Pillow.")
|
||||
(sha256
|
||||
(base32 "16mkap63d14f69105b3bm8pi64fvpdznncgn48vhgls0jf977m31"))))))
|
||||
|
||||
(define-public python-jxlpy
|
||||
(package
|
||||
(name "python-jxlpy")
|
||||
(version "0.9.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/olokelo/jxlpy")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1d1jrvpyvp8rix8kfmi962hl73mj0f7mib0xzk04va4kzc9p726s"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments (list #:tests? #f)) ; no tests, just examples
|
||||
(inputs (list libjxl))
|
||||
(propagated-inputs (list python-cython))
|
||||
(native-inputs (list python-cython python-setuptools))
|
||||
(home-page "https://github.com/olokelo/jxlpy")
|
||||
(synopsis "JPEG XL integration in Python")
|
||||
(description "This package provides Cython-based Python bindings for
|
||||
libjxl, as well as a pillow plugin.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pixelmatch
|
||||
(package
|
||||
(name "python-pixelmatch")
|
||||
@@ -21651,26 +21675,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")
|
||||
@@ -40298,47 +40302,6 @@ e.g. filters, callbacks and errbacks can all be promises.")
|
||||
(sha256
|
||||
(base32 "1gj57xqgrg53yfn9ypikgky01hvazxdyl556kwsc7b7avyxm9dbv")))))))
|
||||
|
||||
;; XXX: No new release since 2021, no updates on default branch since 2023, no
|
||||
;; users in Guix; consider to remove if it keeps failing to build.
|
||||
(define-public python-virtualenv-clone
|
||||
(package
|
||||
(name "python-virtualenv-clone")
|
||||
(version "0.5.7")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/edwardgeorge/virtualenv-clone")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0p0d1y3axvjfnxlgwjx2374gikc8bmc82g0m7yashihbikh7pcxa"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-flags
|
||||
#~(list "-k" (string-join
|
||||
;; UnicodeDecodeError: 'utf-8' codec can't decode byte
|
||||
;; 0xba in position 10: invalid start byte
|
||||
(list "not test_clone_contents"
|
||||
;; AssertionError: All versions were skipped.
|
||||
"test_clone_syspath"
|
||||
"test_clone_version"
|
||||
"test_virtualenv_syspath"
|
||||
"test_virtualenv_versions")
|
||||
" and not "))))
|
||||
(native-inputs
|
||||
(list python-pytest
|
||||
python-setuptools
|
||||
python-tomli
|
||||
python-virtualenv
|
||||
python-wheel))
|
||||
(home-page "https://github.com/edwardgeorge/virtualenv-clone")
|
||||
(synopsis "Clone a non-relocatable virtualenv cleanly")
|
||||
(description
|
||||
"Clone non-relocatable virtualenvs without breaking site-packages.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-vncdotool
|
||||
(package
|
||||
(name "python-vncdotool")
|
||||
|
||||
+11
-11
@@ -24,23 +24,13 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages rpc)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages protobuf)
|
||||
@@ -50,6 +40,16 @@
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages regex)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#: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)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
;; XXX: Starting from version 1.47.5, opencensus-proto is required.
|
||||
|
||||
@@ -263,6 +263,77 @@ capable of sustaining any number of domain names in a bunch of original
|
||||
alternative zones.")
|
||||
(license license:agpl3+)))
|
||||
|
||||
(define-public ast-grep
|
||||
(package
|
||||
(name "ast-grep")
|
||||
(version "0.42.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ast-grep/ast-grep")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1h6335dq768vn7gfyhi90j1ljawpsf7wzgqzysgbwrwnk6h67mad"))
|
||||
(snippet
|
||||
#~(begin (use-modules (guix build utils))
|
||||
(delete-file-recursively "fixtures")))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-source? #f
|
||||
#:cargo-install-paths ''("crates/cli")
|
||||
#:cargo-test-flags
|
||||
''("--"
|
||||
;; These tests require the bundled shared libraries.
|
||||
"--skip=test::test_load_parser"
|
||||
"--skip=test::test_register_lang")
|
||||
#:modules '((guix build cargo-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 match))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'install-completions
|
||||
(lambda* (#:key native-inputs #:allow-other-keys)
|
||||
(for-each
|
||||
(match-lambda
|
||||
((shell . path)
|
||||
(mkdir-p (in-vicinity #$output (dirname path)))
|
||||
(let ((binary
|
||||
(if #$(%current-target-system)
|
||||
(search-input-file native-inputs "bin/ast-grep")
|
||||
(in-vicinity #$output "bin/ast-grep"))))
|
||||
(with-output-to-file (in-vicinity #$output path)
|
||||
(lambda _
|
||||
(invoke binary "completions" shell))))))
|
||||
'(("bash" . "share/bash-completion/completions/ast-grep")
|
||||
("elvish" . "share/elvish/lib/ast-grep")
|
||||
("fish" . "share/fish/vendor_completions.d/ast-grep.fish")
|
||||
("zsh" . "share/zsh/site-functions/_ast-grep")))))
|
||||
(add-after 'install 'wrap-sg
|
||||
(lambda _
|
||||
;; sg needs ast-grep to be in its PATH.
|
||||
(wrap-program (in-vicinity #$output "bin/sg")
|
||||
`("PATH" ":" prefix
|
||||
(,(dirname (in-vicinity #$output "bin/ast-grep"))))))))))
|
||||
(native-inputs
|
||||
(if (%current-target-system)
|
||||
(list this-package)
|
||||
'()))
|
||||
(inputs (cons* bash-minimal (cargo-inputs 'ast-grep)))
|
||||
(home-page "https://github.com/ast-grep/ast-grep")
|
||||
(synopsis "CLI tool for code structural search, lint, and rewriting")
|
||||
(description
|
||||
"@code{ast-grep} is an abstract syntax tree based tool to search code by
|
||||
pattern code. Think of it as your old-friend grep, but matching AST nodes
|
||||
instead of text. Write patterns as if you are writing ordinary code. It will
|
||||
match all code that has the same syntactical structure. You can use @code{$}
|
||||
and upper case letters as a wildcard, e.g. @code{$MATCH}, to match any single
|
||||
AST node. Think of it as regular expression dot @code{.}, except it is not
|
||||
textual.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public bat
|
||||
(package
|
||||
(name "bat")
|
||||
@@ -1893,7 +1964,7 @@ JSON viewer and jq filter editor.")
|
||||
(define-public jujutsu
|
||||
(package
|
||||
(name "jujutsu")
|
||||
(version "0.39.0")
|
||||
(version "0.40.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -1902,7 +1973,7 @@ JSON viewer and jq filter editor.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0c0n56b5y6wmyvcc18nhrfsmcavjlh2zwv9224lrcs6h602a5jdd"))))
|
||||
(base32 "0wdl6jqvv3bhdij65gsn0lpycw2qg2i5p1rc2wi42fdhghsfq6iw"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
+6349
-1413
File diff suppressed because it is too large
Load Diff
@@ -59,6 +59,128 @@
|
||||
(base32
|
||||
"1yhs9lj9gnzbvimv0y5f1a4my0slbvygkcjjkaxd4wkkyfvfbkxy")))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
(define-public rust-alacritty-0.25.1.9d9640d
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-alacritty")
|
||||
(version "0.25.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/zed-industries/alacritty")
|
||||
(commit "9d9640d4e56d67a09d049f9c0a300aae08d4f61e")))
|
||||
(file-name
|
||||
(git-file-name "rust-alacritty" "0.25.1.9d9640d"))
|
||||
(sha256
|
||||
(base32 "16g4jdbwdhqihc2x403fdaxf6m9gcj44cm53dyk68b3wl7chh29s"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("alacritty_terminal")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")))
|
||||
(inputs (cargo-inputs 'rust-alacritty-0.25.1.9d9640d))
|
||||
(home-page "https://github.com/zed-industries/alacritty")
|
||||
(synopsis "Terminal emulator library")
|
||||
(description
|
||||
"This package provides a terminal emulator library.")
|
||||
(license license:asl2.0))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
(define-public rust-candle-0.9.1.724d75e
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-candle")
|
||||
(version "0.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/zed-industries/candle")
|
||||
(commit "724d75eb3deebefe83f2a7381a45d4fac6eda383")))
|
||||
(file-name
|
||||
(git-file-name "rust-candle" "0.9.1.724d75e"))
|
||||
(sha256
|
||||
(base32 "1n9g84g0ikldw42f0j3ad975vjvx6ildwqh8dw3zi3rps518hx14"))
|
||||
(patches
|
||||
(search-patches
|
||||
"rust-candle-0.9.1-add-candle-onnx-to-workspace.patch"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("candle-core"
|
||||
"candle-nn"
|
||||
"candle-onnx")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")))
|
||||
(inputs (cargo-inputs 'rust-candle-0.9.1.724d75e))
|
||||
(home-page "https://github.com/huggingface/candle")
|
||||
(synopsis "Minimalist ML framework for Rust")
|
||||
(description
|
||||
"This package provides a minimalist ML framework for Rust.")
|
||||
(license (list license:asl2.0 license:expat)))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
(define-public rust-dap-types-0.0.1.1b461b3
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-dap-types")
|
||||
(version "0.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/zed-industries/dap-types")
|
||||
(commit "1b461b310481d01e02b2603c16d7144b926339f8")))
|
||||
(file-name
|
||||
(git-file-name "rust-dap-types" "0.0.1.1b461b3"))
|
||||
(sha256
|
||||
(base32 "0snc05ia4jvykajavsvyxcyn24s2jxbw7k9wmby23r1aqxf31i0z"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("dap-types")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")))
|
||||
(inputs (cargo-inputs 'rust-dap-types-0.0.1.1b461b3))
|
||||
(home-page "https://github.com/zed-industries/dap-types")
|
||||
(synopsis "Rust types for the Debug Adapter Protocol")
|
||||
(description
|
||||
"This package provides Rust types for the Debug Adapter Protocol.")
|
||||
(license (list license:asl2.0 license:expat)))))
|
||||
|
||||
(define-public rust-deunicode-1
|
||||
(hidden-package
|
||||
(package
|
||||
@@ -102,6 +224,46 @@
|
||||
transliterating them. It supports Emoji and Chinese.")
|
||||
(license license:bsd-3))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
(define-public rust-gh-workflow-0.8.0.c9eac0e
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-gh-workflow")
|
||||
(version "0.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/zed-industries/gh-workflow")
|
||||
(commit "c9eac0ed361583e1072860d96776fa52775b82ac")))
|
||||
(file-name
|
||||
(git-file-name "rust-gh-workflow" "0.8.0.c9eac0e"))
|
||||
(sha256
|
||||
(base32 "172bn9b16f7qj3mn0h8r8bwiiiw2awgqlzj5n6f2gjcgk5nmh1hp"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("gh-workflow-macros"
|
||||
"gh-workflow")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")))
|
||||
(inputs (cargo-inputs 'rust-gh-workflow-0.8.0.c9eac0e))
|
||||
(home-page "https://github.com/tailcallhq/gh-workflow")
|
||||
(synopsis "Type-safe GitHub Actions workflow generation")
|
||||
(description
|
||||
"This package provides type-safe GitHub Actions workflow generation.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public rust-hypher-0.1
|
||||
(hidden-package
|
||||
(package
|
||||
@@ -145,6 +307,191 @@ transliterating them. It supports Emoji and Chinese.")
|
||||
(description "@code{hypher} is a Rust library for syllabification.")
|
||||
(license (list license:expat license:asl2.0)))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
;;
|
||||
;; Only livekit-protocol, livekit-runtime, and livekit-api are
|
||||
;; packaged. The libwebrtc, webrtc-sys, and livekit crates are
|
||||
;; disabled on Linux by our zed-use-mock-livekit-on-linux patch
|
||||
;; (which adds target_os = "linux" to the cfg gate), but their
|
||||
;; Cargo.toml files must remain for workspace resolution; their
|
||||
;; source is replaced with empty stubs. The snippet also deletes
|
||||
;; unused workspace members (livekit-ffi, soxr-sys, yuv-sys,
|
||||
;; imgproc, examples) and the 1.6 MiB generated livekit.serde.rs
|
||||
;; (guarded by a nonexistent "serde" feature, so never compiled).
|
||||
;;
|
||||
;; TODO: Regenerate livekit-protocol/src/livekit.rs (5650 lines)
|
||||
;; from the .proto source in the livekit-protocol/protocol
|
||||
;; submodule (github.com/livekit/protocol) using prost-build and
|
||||
;; pbjson-build as native-inputs, then delete the shipped copy.
|
||||
(define-public rust-livekit-0.7.8.5f04705
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-livekit")
|
||||
(version "0.7.8")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/zed-industries/livekit-rust-sdks")
|
||||
(commit "5f04705ac3f356350ae31534ffbc476abc9ea83d")))
|
||||
(file-name
|
||||
(git-file-name "rust-livekit" "0.7.8.5f04705"))
|
||||
(sha256
|
||||
(base32 "1irnw9dax0nl8rl7jxdxs5vw6hg166jj4gf1s5cza6igvmrkl6y9"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(for-each delete-file-recursively
|
||||
'(".github" "examples" "imgproc"
|
||||
"livekit-ffi" "soxr-sys" "yuv-sys"
|
||||
;; Keep Cargo.toml for workspace resolution
|
||||
;; but replace source with stubs.
|
||||
"libwebrtc/src"
|
||||
"livekit/src"
|
||||
"webrtc-sys/src"
|
||||
"webrtc-sys/include"
|
||||
"webrtc-sys/libwebrtc"))
|
||||
(for-each (lambda (f)
|
||||
(mkdir-p (dirname f))
|
||||
(call-with-output-file f (const #t)))
|
||||
'("libwebrtc/src/lib.rs"
|
||||
"livekit/src/lib.rs"
|
||||
"webrtc-sys/src/lib.rs"))
|
||||
(delete-file
|
||||
"livekit-protocol/src/livekit.serde.rs")
|
||||
(substitute* "Cargo.toml"
|
||||
(("\"livekit-ffi\",") "")
|
||||
(("\"soxr-sys\",") "")
|
||||
(("\"yuv-sys\",") "")
|
||||
(("\"imgproc\",") ""))))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("livekit-protocol"
|
||||
"livekit-runtime"
|
||||
"livekit-api"
|
||||
"webrtc-sys-build"
|
||||
"webrtc-sys"
|
||||
"libwebrtc"
|
||||
"livekit")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'package
|
||||
(lambda* (#:key source (cargo-package-crates '())
|
||||
(cargo-package-flags '("--no-metadata" "--no-verify"))
|
||||
(vendor-dir "guix-vendor")
|
||||
#:allow-other-keys)
|
||||
(use-modules (ice-9 ftw))
|
||||
;; Same as the standard package phase, but deletes
|
||||
;; cargo's target/package/tmp-crate/ scratch directory
|
||||
;; between the packaging loop and the repacking step.
|
||||
;; Cargo copies .crate files there during packaging and
|
||||
;; does not clean up. The repacking step's recursive
|
||||
;; find-files picks them up, and scandir confuses the
|
||||
;; tmp-crate directory with an extracted crate when
|
||||
;; names sort after "tmp-crate" alphabetically.
|
||||
(when (file-exists? "Cargo.toml.orig")
|
||||
(delete-file "Cargo.toml.orig"))
|
||||
(for-each
|
||||
(lambda (pkg)
|
||||
(apply invoke "cargo" "package" "--offline"
|
||||
"--package" pkg cargo-package-flags)
|
||||
(for-each
|
||||
(lambda (crate)
|
||||
(invoke "tar" "xzf" crate "-C" vendor-dir))
|
||||
(find-files "target/package" "\\.crate$"))
|
||||
((assoc-ref %standard-phases 'patch-cargo-checksums)
|
||||
#:vendor-dir vendor-dir))
|
||||
cargo-package-crates)
|
||||
;; Delete cargo's scratch directory.
|
||||
(when (file-exists? "target/package/tmp-crate")
|
||||
(delete-file-recursively "target/package/tmp-crate"))
|
||||
;; Repack crates with deterministic timestamps.
|
||||
(with-directory-excursion "target/package"
|
||||
(for-each
|
||||
(lambda (crate)
|
||||
(invoke "tar" "xf" crate)
|
||||
(delete-file crate)
|
||||
(let ((dir
|
||||
(car (scandir
|
||||
"."
|
||||
(lambda (file)
|
||||
(and (not (member file '("." "..")))
|
||||
(not (string-suffix?
|
||||
".crate" file))))))))
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(let ((s (lstat file)))
|
||||
(unless (eq? (stat:type s) 'symlink)
|
||||
(utime file 0 0 0 0))))
|
||||
(find-files dir #:directories? #t))
|
||||
(apply invoke "tar" "czf"
|
||||
(string-append dir ".crate")
|
||||
"--sort=name" "--mtime=@0"
|
||||
"--owner=root:0" "--group=root:0"
|
||||
(find-files dir #:directories? #t))
|
||||
(delete-file-recursively dir)))
|
||||
(find-files "." "\\.crate$"))))))))
|
||||
(inputs (cargo-inputs 'rust-livekit-0.7.8.5f04705))
|
||||
(home-page "https://github.com/livekit/rust-sdks")
|
||||
(synopsis "LiveKit real-time communication SDK for Rust")
|
||||
(description
|
||||
"This package provides a LiveKit real-time communication SDK for Rust.")
|
||||
(license license:asl2.0))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
(define-public rust-notify-8.2.0.ce58c24
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-notify")
|
||||
(version "8.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/zed-industries/notify.git")
|
||||
(commit "ce58c24cad542c28e04ced02e20325a4ec28a31d")))
|
||||
(file-name
|
||||
(git-file-name "rust-notify" "8.2.0.ce58c24"))
|
||||
(sha256
|
||||
(base32 "09zn3ll1vlsblgrdacyw3zx58xzdxlab8ba7h22bbb57n76dmkl0"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("notify-types"
|
||||
"notify")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")))
|
||||
(inputs (cargo-inputs 'rust-notify-8.2.0.ce58c24))
|
||||
(home-page "https://github.com/notify-rs/notify")
|
||||
(synopsis "Cross-platform filesystem notification library")
|
||||
(description
|
||||
"This package provides a cross-platform filesystem notification library
|
||||
for Rust.")
|
||||
(license (list license:asl2.0 license:expat)))))
|
||||
|
||||
(define-public rust-pcre2-utf32-0.2
|
||||
(hidden-package
|
||||
(package
|
||||
@@ -227,6 +574,77 @@ UTF-32 support.")
|
||||
"0zgqklzmyk893n82zq8d0is57npvy9lsfpqb83h1bbx9c42fl35p"))))
|
||||
(inputs (cargo-inputs 'rust-pipewire-0.8.0.93138d0))))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
(define-public rust-pet-0.1.0.d5b5bb0
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-pet")
|
||||
(version "0.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/microsoft/python-environment-tools.git")
|
||||
(commit "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16")))
|
||||
(file-name
|
||||
(git-file-name "rust-pet" "0.1.0.d5b5bb0"))
|
||||
(sha256
|
||||
(base32 "01djr1761l7c889v9lng7igjqxiz208r2vrwij661cn2fy5xcm5f"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("pet-fs"
|
||||
"pet-core"
|
||||
"pet-python-utils"
|
||||
"pet-jsonrpc"
|
||||
"pet-reporter"
|
||||
"pet-conda"
|
||||
"pet-virtualenv"
|
||||
"pet-virtualenvwrapper"
|
||||
"pet-env-var-path"
|
||||
"pet-global-virtualenvs"
|
||||
"pet-homebrew"
|
||||
"pet-linux-global-python"
|
||||
"pet-mac-commandlinetools"
|
||||
"pet-mac-python-org"
|
||||
"pet-mac-xcode"
|
||||
"pet-pipenv"
|
||||
"pet-pixi"
|
||||
"pet-poetry"
|
||||
"pet-pyenv"
|
||||
"pet-telemetry"
|
||||
"pet-uv"
|
||||
"pet-venv"
|
||||
"pet-windows-store"
|
||||
"pet-windows-registry"
|
||||
"pet")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-versions
|
||||
(lambda _
|
||||
(let ((version #$(package-version this-package)))
|
||||
(substitute* (find-files "." "^Cargo[.]toml$")
|
||||
(("^(pet-[a-z-]*) = [{] path = \"([^\"]*)\" [}]" x pkg path)
|
||||
(string-append pkg " = { version = \"" version "\", path = \"" path "\" }")))))))))
|
||||
(inputs (cargo-inputs 'rust-pet-0.1.0.d5b5bb0))
|
||||
(home-page "https://github.com/microsoft/python-environment-tools")
|
||||
(synopsis "Python environment tools")
|
||||
(description
|
||||
"This package provides Python environment tools.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public rust-pubgrub-0.3.0.b70cf70
|
||||
(let ((commit "b70cf707aa43f21b32f3a61b8a0889b15032d5c4")
|
||||
(revision "0"))
|
||||
@@ -677,6 +1095,47 @@ intelligence.")
|
||||
(inputs (cons oniguruma
|
||||
(cargo-inputs 'rust-syntect-5.3))))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
(define-public rust-tiktoken-rs-0.9.1.2570c43
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-tiktoken-rs")
|
||||
(version "0.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/zed-industries/tiktoken-rs")
|
||||
(commit "2570c4387a8505fb8f1d3f3557454b474f1e8271")))
|
||||
(file-name
|
||||
(git-file-name "rust-tiktoken-rs" "0.9.1.2570c43"))
|
||||
(sha256
|
||||
(base32 "0yki1whx16xqgsrnr6gjsxakj6qzyvz958g6c9h15xp154kw6573"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("tiktoken-rs")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")))
|
||||
(inputs (cargo-inputs 'rust-tiktoken-rs-0.9.1.2570c43))
|
||||
(home-page "https://github.com/zurawiki/tiktoken-rs")
|
||||
(synopsis "Rust library for OpenAI's BPE tokenizer")
|
||||
(description
|
||||
"This package provides Rust bindings for OpenAI's @acronym{BPE, byte
|
||||
pair encoding} tokenizer, used to count and manage tokens for OpenAI
|
||||
language models.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public rust-tikv-jemallocator-for-polars
|
||||
(let ((commit "c7991e5bb6b3e9f79db6b0f48dcda67c5c3d2936")
|
||||
(revision "0"))
|
||||
@@ -960,3 +1419,95 @@ and runtime for AI-assisted coding.")
|
||||
(description "Glycin is a sandbox image decoder for image viewers and
|
||||
thumbnails to display untrusted content safely.")
|
||||
(license (list license:mpl2.0 license:lgpl2.1+))))
|
||||
|
||||
;; Workspace dependency of zed.
|
||||
;;
|
||||
;; Cargo side: Cargo unifies dependency versions across zed's
|
||||
;; workspace, including this package's transitive dependencies,
|
||||
;; and records them in zed's Cargo.lock.
|
||||
;;
|
||||
;; Guix side: zed's cargo-inputs entry (generated from zed's
|
||||
;; Cargo.lock) already contains all of this package's transitive
|
||||
;; dependencies, so this package reuses zed's cargo-inputs.
|
||||
(define-public rust-zed-xim-0.4.0-zed.16f35a2
|
||||
(hidden-package
|
||||
(package
|
||||
(name "rust-zed-xim")
|
||||
(version "0.4.0-zed")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/zed-industries/xim-rs.git")
|
||||
(commit "16f35a2c881b815a2b6cdfd6687988e84f8447d8")))
|
||||
(file-name
|
||||
(git-file-name "rust-zed-xim" "0.4.0-zed.16f35a2"))
|
||||
(sha256
|
||||
(base32 "14cyxxdgjpbkf8ny4c46cfqjinavi2cyxzwfngldlls97m5zh555"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:skip-build? #t
|
||||
#:install-source? #t
|
||||
#:cargo-package-crates ''("xim-ctext"
|
||||
"xim-parser"
|
||||
"zed-xim")
|
||||
#:cargo-package-flags ''("--no-metadata" "--no-verify"
|
||||
"--exclude-lockfile")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'package
|
||||
(lambda* (#:key source (cargo-package-crates '())
|
||||
(cargo-package-flags '("--no-metadata" "--no-verify"))
|
||||
(vendor-dir "guix-vendor")
|
||||
#:allow-other-keys)
|
||||
(use-modules (ice-9 ftw))
|
||||
;; Same as the standard package phase, but deletes
|
||||
;; cargo's target/package/tmp-crate/ scratch directory
|
||||
;; between the packaging loop and the repacking step.
|
||||
(when (file-exists? "Cargo.toml.orig")
|
||||
(delete-file "Cargo.toml.orig"))
|
||||
(for-each
|
||||
(lambda (pkg)
|
||||
(apply invoke "cargo" "package" "--offline"
|
||||
"--package" pkg cargo-package-flags)
|
||||
(for-each
|
||||
(lambda (crate)
|
||||
(invoke "tar" "xzf" crate "-C" vendor-dir))
|
||||
(find-files "target/package" "\\.crate$"))
|
||||
((assoc-ref %standard-phases 'patch-cargo-checksums)
|
||||
#:vendor-dir vendor-dir))
|
||||
cargo-package-crates)
|
||||
(when (file-exists? "target/package/tmp-crate")
|
||||
(delete-file-recursively "target/package/tmp-crate"))
|
||||
(with-directory-excursion "target/package"
|
||||
(for-each
|
||||
(lambda (crate)
|
||||
(invoke "tar" "xf" crate)
|
||||
(delete-file crate)
|
||||
(let ((dir
|
||||
(car (scandir
|
||||
"."
|
||||
(lambda (file)
|
||||
(and (not (member file '("." "..")))
|
||||
(not (string-suffix?
|
||||
".crate" file))))))))
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(let ((s (lstat file)))
|
||||
(unless (eq? (stat:type s) 'symlink)
|
||||
(utime file 0 0 0 0))))
|
||||
(find-files dir #:directories? #t))
|
||||
(apply invoke "tar" "czf"
|
||||
(string-append dir ".crate")
|
||||
"--sort=name" "--mtime=@0"
|
||||
"--owner=root:0" "--group=root:0"
|
||||
(find-files dir #:directories? #t))
|
||||
(delete-file-recursively dir)))
|
||||
(find-files "." "\\.crate$"))))))))
|
||||
(inputs (cargo-inputs 'rust-zed-xim-0.4.0-zed.16f35a2))
|
||||
(home-page "https://github.com/XDeme1/xim-rs")
|
||||
(synopsis "X input method client and server")
|
||||
(description
|
||||
"This package provides a library for @code{xim}, the X input method.")
|
||||
(license license:expat))))
|
||||
|
||||
@@ -153,7 +153,7 @@ hardware.")
|
||||
(package
|
||||
(inherit sdl2)
|
||||
(name "sdl3")
|
||||
(version "3.2.10")
|
||||
(version "3.4.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -162,7 +162,7 @@ hardware.")
|
||||
version "/SDL3-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1q0ksmg1h0xfjpgbshslxc5a2b2flcm7n5lwiq4v8vf6vssffyzq"))))
|
||||
"0r1q1frjs0am93aspgha4k15rvmmiwsp5kn2pw5i9fw9daz2swgf"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -188,8 +188,11 @@ hardware.")
|
||||
(propagated-inputs
|
||||
(list alsa-lib
|
||||
libxcursor ;enables X11 cursor support
|
||||
libxi
|
||||
libxkbcommon
|
||||
libxrandr
|
||||
libxscrnsaver
|
||||
libxtst
|
||||
mesa ;required by wayland
|
||||
pipewire-minimal
|
||||
pulseaudio
|
||||
@@ -206,7 +209,7 @@ hardware.")
|
||||
(define-public sdl2-compat
|
||||
(package
|
||||
(name "sdl2-compat")
|
||||
(version "2.32.54")
|
||||
(version "2.32.66")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -215,7 +218,7 @@ hardware.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ijpx62b9syypxxnwvggz4l5fmrgln95ka180am9g2hgyqkqlj5n"))))
|
||||
"1las3lq2sn7hiwpcdzf1rpcjz2g3dfrnl83b8n78v8y665fmbbk4"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
|
||||
+16
-16
@@ -34,29 +34,18 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages search)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages aspell)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages ebook)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
@@ -67,9 +56,10 @@
|
||||
#:use-module (gnu packages less)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pdf)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages photo)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-crypto)
|
||||
@@ -82,7 +72,17 @@
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public xapian
|
||||
(package
|
||||
|
||||
@@ -893,7 +893,7 @@ A @code{andglob} program is also provided along with s.")
|
||||
(define-public oksh
|
||||
(package
|
||||
(name "oksh")
|
||||
(version "7.5")
|
||||
(version "7.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -902,7 +902,7 @@ A @code{andglob} program is also provided along with s.")
|
||||
version "/oksh-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pgdxvy8jgydsyzk7vcc93pm09bihqvrn3i35gz1ncg9z31rbf20"))))
|
||||
"0l59x9mm6nbixcpz3zf3iplqili2gyw8l382rj89b0iv32hxac1v"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are no tests available
|
||||
|
||||
@@ -46,19 +46,11 @@
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "17iqvqs7w3z5c4acnjc6mixqkqz4rff2c7flfpnlwgfjgqy1a2zw"))
|
||||
(modules '((guix build utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; XXX: Keep just some portion with valulable data and no license
|
||||
;; issues.
|
||||
#~(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 "."
|
||||
"allsky"
|
||||
"coordinates"
|
||||
|
||||
+16
-17
@@ -22,20 +22,6 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages sssd)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages augeas)
|
||||
#:use-module (gnu packages autotools)
|
||||
@@ -47,6 +33,7 @@
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages gettext)
|
||||
@@ -57,17 +44,29 @@
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (gnu packages openldap)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages samba)
|
||||
#:use-module (gnu packages security-token)
|
||||
#:use-module (gnu packages selinux)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml))
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#: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)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public adcli
|
||||
(package
|
||||
|
||||
@@ -1465,12 +1465,12 @@ inference for statistical models.")
|
||||
"|"))))))))
|
||||
(native-inputs
|
||||
(list bison
|
||||
dvisvgm
|
||||
flex
|
||||
python-numpydoc
|
||||
python-sphinx
|
||||
;; python-sphinx-gallery ;; Currently broken
|
||||
swig-4.0))
|
||||
swig-4.0
|
||||
texlive-dvisvgm))
|
||||
(inputs
|
||||
(list openblas ; the only required dependency
|
||||
;; The dependencies below are all optional.
|
||||
|
||||
+15
-15
@@ -26,21 +26,7 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages sync)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages acl)
|
||||
#:use-module (gnu packages adns)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages check)
|
||||
@@ -48,6 +34,7 @@
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages dlang)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
@@ -79,7 +66,20 @@
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages tls))
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils))
|
||||
|
||||
(define-public nextcloud-client
|
||||
(package
|
||||
|
||||
+14569
-10142
File diff suppressed because it is too large
Load Diff
+204
-31
@@ -37,7 +37,7 @@
|
||||
;;; Copyright © 2024 Murilo <murilo@disroot.org>
|
||||
;;; Copyright © 2025 Ashvith Shetty <ashvithshetty0010@zohomail.in>
|
||||
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||
;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se>
|
||||
;;; Copyright © 2025, 2026 Ashish SHUKLA <ashish.is@lostca.se>
|
||||
;;; Copyright © 2025 Marc Coquand <marc@coquand.email>
|
||||
;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
|
||||
;;; Copyright © 2025 Junker <dk@junkeria.club>
|
||||
@@ -121,6 +121,7 @@
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages perl)
|
||||
#: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)
|
||||
@@ -133,7 +134,10 @@
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages terminals)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages vulkan)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
@@ -414,39 +418,40 @@ based command language.")
|
||||
(define-public kakoune
|
||||
(package
|
||||
(name "kakoune")
|
||||
(version "2025.06.03")
|
||||
(version "2026.04.12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mawww/kakoune/"
|
||||
"releases/download/v" version "/"
|
||||
"kakoune-" version ".tar.bz2"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/mawww/kakoune/")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "16b466anx7gf1jci3gxj87xr5qw9fgyhpc3509myzf6z3cgr9mff"))))
|
||||
(base32 "11c4sgb9k1iahi06i5p6m0qz1qf5hz4g2f1z80di23987bwvbjlv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
(string-append "CXX=" ,(cxx-for-target)))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-source
|
||||
(lambda _
|
||||
;; kakoune uses confstr with _CS_PATH to find out where to find
|
||||
;; a posix shell, but this doesn't work in the build
|
||||
;; environment. This substitution just replaces that result
|
||||
;; with the "sh" path.
|
||||
(substitute* "src/shell_manager.cc"
|
||||
(("if \\(m_shell.empty\\(\\)\\)" line)
|
||||
(string-append "m_shell = \"" (which "sh")
|
||||
"\";\n " line)))))
|
||||
(add-after 'install 'wrap-executable
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(wrap-program (string-append (assoc-ref outputs "out") "/bin/kak")
|
||||
`("PATH" ":" prefix
|
||||
(,(dirname (search-input-file inputs "bin/perl")))))))
|
||||
(delete 'configure)))) ; no configure script
|
||||
(native-inputs (list pkg-config))
|
||||
(list
|
||||
#:make-flags
|
||||
#~(list (string-append "PREFIX=" #$output)
|
||||
(string-append "CXX=" #$(cxx-for-target)))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-source
|
||||
(lambda _
|
||||
;; kakoune uses confstr with _CS_PATH to find out where to find
|
||||
;; a posix shell, but this doesn't work in the build
|
||||
;; environment. This substitution just replaces that result
|
||||
;; with the "sh" path.
|
||||
(substitute* "src/shell_manager.cc"
|
||||
(("if \\(m_shell.empty\\(\\)\\)" line)
|
||||
(string-append "m_shell = \"" (which "sh")
|
||||
"\";\n " line)))))
|
||||
(add-after 'install 'wrap-executable
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(wrap-program (string-append #$output "/bin/kak")
|
||||
`("PATH" ":" prefix
|
||||
(,(dirname (search-input-file inputs "bin/perl")))))))
|
||||
(delete 'configure)))) ; no configure script
|
||||
(inputs (list perl))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
@@ -956,13 +961,13 @@ OpenBSD team.")
|
||||
(define-public nano
|
||||
(package
|
||||
(name "nano")
|
||||
(version "8.7.1")
|
||||
(version "9.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1pyy3hnjr9g0831wcdrs18v0lh7v63yj1kaf3ljz3qpj92rdrw3n"))))
|
||||
(base32 "1piz044cjyk77w33g2qqwg386irqpgzabm9snwjhl4cnnis46f4z"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(if (%current-target-system)
|
||||
@@ -2017,3 +2022,171 @@ with full unicode support and antialiased text rendering.")
|
||||
syntax highlighting, customizable color scheme (including support for 24-bit true
|
||||
colours), kitty keyboard protocol, editorconfig support, amongst other features.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public zed
|
||||
(package
|
||||
(name "zed")
|
||||
(version "0.225.10")
|
||||
(outputs '("out" ; editor, cli, icons, desktop file
|
||||
"remote" ; zed-remote-server for remote development
|
||||
"server" ; collab server daemon
|
||||
"tools")) ; extension_cli
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/zed-industries/zed")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1d6zr88s4nj4fw01gw908aw2mqgjj25baj4gx7qnm6rsbxqrp500"))
|
||||
(patches
|
||||
(search-patches "zed-0.225.10-add-message-notification-action.patch"
|
||||
"zed-0.225.10-add-guix-container-support.patch"
|
||||
"zed-0.225.10-collapse-multiline-git-deps.patch"
|
||||
"zed-0.225.10-disable-dlopen.patch"
|
||||
"zed-0.225.10-exclude-libwebrtc-from-audio.patch"
|
||||
"zed-0.225.10-fix-sqlite-memory-mode.patch"
|
||||
"zed-0.225.10-fix-test-db-isolation.patch"
|
||||
"zed-0.225.10-fix-workspace-race.patch"
|
||||
"zed-0.225.10-keep-regular-file-workspaces.patch"
|
||||
"zed-0.225.10-remove-patch-crates-io.patch"
|
||||
"zed-0.225.10-use-mock-livekit-on-linux.patch"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:install-source? #f
|
||||
#:cargo-build-flags ''("--release" "-p" "zed")
|
||||
;; Not installed:
|
||||
;; auto_update_helper - Windows-only (empty main on Linux)
|
||||
;; eval - internal AI agent benchmarking tool
|
||||
;; edit_prediction_cli - internal edit prediction training pipeline
|
||||
;; storybook - GPUI component viewer for Zed UI development
|
||||
;; docs_preprocessor - mdbook preprocessor for Zed's docs website
|
||||
;; zed_visual_test_runner - visual regression tests, macOS-only
|
||||
#:cargo-install-paths ''("crates/zed"
|
||||
"crates/cli" ; opens files in running Zed
|
||||
;;; Install remote_server via its own cargo invocation
|
||||
;;; to avoid feature unification with the zed build.
|
||||
"crates/remote_server" ; installs as zed-remote-server
|
||||
"crates/collab" ; self-hostable collaboration server
|
||||
"crates/extension_cli") ; builds extensions from source
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'install-extras
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(libexec (string-append out "/libexec"))
|
||||
(icons512 (string-append out "/share/icons/hicolor/512x512/apps"))
|
||||
(icons1024 (string-append out "/share/icons/hicolor/1024x1024/apps"))
|
||||
(apps (string-append out "/share/applications"))
|
||||
(remote-bin (string-append (assoc-ref outputs "remote") "/bin"))
|
||||
(server-bin (string-append (assoc-ref outputs "server") "/bin"))
|
||||
(tools-bin (string-append (assoc-ref outputs "tools") "/bin")))
|
||||
;;; The cli binary is the user-facing launcher that finds
|
||||
;;; and delegates to zed-editor via ../libexec/zed-editor.
|
||||
(mkdir-p libexec)
|
||||
(rename-file (string-append bin "/zed")
|
||||
(string-append libexec "/zed-editor"))
|
||||
(rename-file (string-append bin "/cli")
|
||||
(string-append bin "/zed"))
|
||||
;;; Move remote_server to "remote" output as zed-remote-server.
|
||||
(mkdir-p remote-bin)
|
||||
(rename-file (string-append bin "/remote_server")
|
||||
(string-append remote-bin "/zed-remote-server"))
|
||||
;;; Move collab to "server" output.
|
||||
(mkdir-p server-bin)
|
||||
(rename-file (string-append bin "/collab")
|
||||
(string-append server-bin "/collab"))
|
||||
(rename-file (string-append bin "/dotenv")
|
||||
(string-append server-bin "/dotenv"))
|
||||
;;; Move zed-extension to "tools" output.
|
||||
(mkdir-p tools-bin)
|
||||
(rename-file (string-append bin "/zed-extension")
|
||||
(string-append tools-bin "/zed-extension"))
|
||||
;;; Icons.
|
||||
(mkdir-p icons512)
|
||||
(mkdir-p icons1024)
|
||||
(copy-file "crates/zed/resources/app-icon.png"
|
||||
(string-append icons512 "/zed.png"))
|
||||
(copy-file "crates/zed/resources/app-icon@2x.png"
|
||||
(string-append icons1024 "/zed.png"))
|
||||
;;; Desktop file.
|
||||
(mkdir-p apps)
|
||||
(copy-file "crates/zed/resources/zed.desktop.in"
|
||||
(string-append apps "/dev.zed.Zed.desktop"))
|
||||
(substitute* (string-append apps "/dev.zed.Zed.desktop")
|
||||
(("\\$APP_NAME") "Zed")
|
||||
(("\\$APP_CLI") "zed")
|
||||
(("\\$APP_ARGS") "%U")
|
||||
(("\\$APP_ICON") "zed")
|
||||
(("\\$DO_STARTUP_NOTIFY") "true")))))
|
||||
(add-after 'unpack 'set-env
|
||||
(lambda _
|
||||
(setenv "LIBGIT2_NO_VENDOR" "1")
|
||||
(setenv "LIBSQLITE3_SYS_USE_PKG_CONFIG" "1")))
|
||||
(add-after 'set-env 'patch-git-deps
|
||||
(lambda _
|
||||
;; All multi-line entries are collapsed to single
|
||||
;; lines by the patch. reqwest and scap already
|
||||
;; carry version fields; just strip the git source.
|
||||
(substitute* "Cargo.toml"
|
||||
(("(reqwest = \\{) git = \"[^\"]+\", rev = \"[^\"]+\", " _ prefix)
|
||||
(string-append prefix " "))
|
||||
(("(scap = \\{) git = \"[^\"]+\", rev = \"[^\"]+\", " _ prefix)
|
||||
(string-append prefix " ")))
|
||||
;; Replace all remaining git fields with version = "*"
|
||||
;; and strip rev/branch.
|
||||
(substitute* "Cargo.toml"
|
||||
(("git = \"https://[^\"]+\"")
|
||||
"version = \"*\"")
|
||||
((", rev = \"[^\"]+\"") "")
|
||||
((", branch = \"[^\"]+\"") ""))
|
||||
;; Sub-crate Cargo.toml files also have git deps.
|
||||
(for-each
|
||||
(lambda (file)
|
||||
;; rev-before-git deps: replace pair with version = "*".
|
||||
(substitute* file
|
||||
(("rev = \"[^\"]+\", git = \"[^\"]+\"")
|
||||
"version = \"*\""))
|
||||
;; git-before-rev deps that already carry a version
|
||||
;; field: strip git+rev, keep everything else.
|
||||
(substitute* file
|
||||
(("git = \"[^\"]+\" *, rev = \"[^\"]+\" *, ") "")
|
||||
((", git *= *\"[^\"]+\"") "")
|
||||
((", branch = \"[^\"]+\"") "")))
|
||||
(find-files "crates" "^Cargo\\.toml$"))
|
||||
;; nvim-rs has no version field; add one.
|
||||
(substitute* "crates/vim/Cargo.toml"
|
||||
(("(nvim-rs = \\{) " _ prefix)
|
||||
(string-append prefix " version = \"*\", "))))))))
|
||||
(native-inputs (list cmake-minimal pkg-config protobuf))
|
||||
(inputs
|
||||
(cons* alsa-lib
|
||||
bzip2
|
||||
dbus
|
||||
fontconfig
|
||||
freetype
|
||||
libgit2-1.9
|
||||
libx11
|
||||
libxcb
|
||||
libxkbcommon
|
||||
openssl
|
||||
sqlite
|
||||
vulkan-loader
|
||||
wayland
|
||||
wayland-protocols
|
||||
xcb-util-cursor
|
||||
zlib
|
||||
(list zstd "lib")
|
||||
(cargo-inputs 'zed)))
|
||||
(home-page "https://zed.dev")
|
||||
(synopsis "High-performance, multiplayer code editor")
|
||||
(description
|
||||
"Zed is a high-performance, multiplayer code editor written in Rust.
|
||||
|
||||
Note: This build disables WebRTC (libwebrtc) support because libwebrtc is
|
||||
not yet packaged in Guix. As a result, voice and video calls in collaborative
|
||||
sessions are not available. Text-based collaboration, editing, and all other
|
||||
features work normally.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
@@ -191,7 +191,7 @@ libenca and several charset conversion libraries and tools.")
|
||||
(hidden-package
|
||||
(package
|
||||
(name "utf8proc-bootstrap")
|
||||
(version "2.10.0")
|
||||
(version "2.11.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -200,7 +200,7 @@ libenca and several charset conversion libraries and tools.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1n1k67x39sk8xnza4w1xkbgbvgb1g7w2a7j2qrqzqaw1lyilqsy2"))))
|
||||
(base32 "1ssix4zf3lac1afzlw2gbfg3n52gmggip8lv224gywqf3zyvyp8c"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f ;To break dependency cycle.
|
||||
@@ -223,7 +223,7 @@ case-folding, and other operations for data in the UTF-8 encoding.")
|
||||
(inherit utf8proc-bootstrap)
|
||||
(name "utf8proc")
|
||||
(native-inputs
|
||||
(let ((UNICODE_VERSION "16.0.0")) ; defined in data/Makefile
|
||||
(let ((UNICODE_VERSION "17.0.0")) ; defined in data/Makefile
|
||||
;; Only if the tests will be run should these be added.
|
||||
(if (and (%current-system)
|
||||
(supported-package? julia))
|
||||
@@ -235,7 +235,7 @@ case-folding, and other operations for data in the UTF-8 encoding.")
|
||||
UNICODE_VERSION "/ucd/NormalizationTest.txt"))
|
||||
(sha256
|
||||
(base32
|
||||
"1cffwlxgn6sawxb627xqaw3shnnfxq0v7cbgsld5w1z7aca9f4fq")))
|
||||
"1nw7i89q42r0plwlc8qj6qm18brk23hc0jf800cp86km63azy6ah")))
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -243,7 +243,7 @@ case-folding, and other operations for data in the UTF-8 encoding.")
|
||||
UNICODE_VERSION "/ucd/auxiliary/GraphemeBreakTest.txt"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d9w6vdfxakjpp38qjvhgvbl2qx0zv5655ph54dhdb3hs9a96azf")))
|
||||
"1v4k2x52bzwgqxw89hdf3wdgwm8q3ianmfrya37bl699qp939lg2")))
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -251,7 +251,7 @@ case-folding, and other operations for data in the UTF-8 encoding.")
|
||||
UNICODE_VERSION "/ucd/DerivedCoreProperties.txt"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gfsq4vdmzi803i2s8ih7mm4fgs907kvkg88kvv9fi4my9hm3lrr")))
|
||||
"021clafsjmjblsxcszp0dpxy2phwhbmyghfmxym2yj2w378zxir4")))
|
||||
;; For tests.
|
||||
julia
|
||||
perl
|
||||
|
||||
@@ -71,14 +71,14 @@
|
||||
(define-public tor
|
||||
(package
|
||||
(name "tor")
|
||||
(version "0.4.9.5")
|
||||
(version "0.4.9.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dist.torproject.org/tor-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yg1k4qcvf7ikc296wgr7nr5axhpkkjb3xkn364n93ildgwc4jf9"))))
|
||||
"05vh1bcsr0gx2xwl7r94drmqlzp0dgag43dlajk6769f0nbvm6m8"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user