forked from tribes/guix
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d780c4c1cc | |||
| 701a498b42 | |||
| 2be1e10e36 |
+3
-21
@@ -98,27 +98,9 @@
|
||||
((indent-tabs-mode . nil)
|
||||
|
||||
;; Emacs 28 changed the behavior of 'lisp-fill-paragraph', which causes the
|
||||
;; first line of package descriptions to extrude past 'fill-column', and
|
||||
;; somehow that is deemed more correct upstream (see:
|
||||
;; https://issues.guix.gnu.org/56197).
|
||||
(eval . (progn
|
||||
(require 'lisp-mode)
|
||||
(defun emacs27-lisp-fill-paragraph (&optional justify)
|
||||
(interactive "P")
|
||||
(or (fill-comment-paragraph justify)
|
||||
(let ((paragraph-start
|
||||
(concat paragraph-start
|
||||
"\\|\\s-*\\([(;\"]\\|\\s-:\\|`(\\|#'(\\)"))
|
||||
(paragraph-separate
|
||||
(concat paragraph-separate "\\|\\s-*\".*[,\\.]$"))
|
||||
(fill-column (if (and (integerp emacs-lisp-docstring-fill-column)
|
||||
(derived-mode-p 'emacs-lisp-mode))
|
||||
emacs-lisp-docstring-fill-column
|
||||
fill-column)))
|
||||
(fill-paragraph justify))
|
||||
;; Never return nil.
|
||||
t))
|
||||
(setq-local fill-paragraph-function #'emacs27-lisp-fill-paragraph)))
|
||||
;; first line of package descriptions to extrude past 'fill-column'. The
|
||||
;; following variable reverts its behavior to the previous one.
|
||||
(lisp-fill-paragraphs-as-doc-string nil)
|
||||
|
||||
;; This notably allows '(' in Paredit to not insert a space when the
|
||||
;; preceding symbol is one of these.
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
/doc/stamp-vti
|
||||
/doc/version.texi
|
||||
/doc/version-*.texi
|
||||
/etc/apparmor.d/tunables/guix
|
||||
/etc/committer.scm
|
||||
/etc/gnu-store.mount
|
||||
/etc/guix-daemon.cil
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
(name "cbaines"))
|
||||
("3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5"
|
||||
(name "civodul"))
|
||||
("CCB8 1842 F9D7 058E CD67 377A BF5C DF4D F6BF 6682"
|
||||
(name "csantosb"))
|
||||
("510A 8628 E2A7 7678 8F8C 709C 4BC0 2592 5FF8 F4D3"
|
||||
(name "cwebber"))
|
||||
(;; primary: "295A F991 6F46 F8A1 34B0 29DA 8086 3842 F0FE D83B"
|
||||
@@ -36,8 +34,6 @@
|
||||
(name "efraim"))
|
||||
("5DBE 23D3 9053 6526 7F8C C76A FDB9 52BD 3F73 56D6"
|
||||
(name "ekaitz"))
|
||||
("50E1 7BE0 D210 C883 D675 3150 4A3D 07EF D05C 4045"
|
||||
(name "fishinthecalculator"))
|
||||
(;; primary: "D1BD 1EB7 B655 AECE 0BA7 8F94 4940 7E7E 89CA 9B07"
|
||||
"0807 AC76 DFE8 4303 6D5F 5879 F51D 4A16 DCEE 6FA7"
|
||||
(name "futurile"))
|
||||
@@ -49,7 +45,7 @@
|
||||
(;; primary: "220F 98D9 5E86 204C 0036 DA7B 6DEC 4360 408B 4185"
|
||||
"F4C2 D1DF 3FDE EA63 D1D3 0776 ACC6 6D09 CA52 8292"
|
||||
(name "hako"))
|
||||
("3D58 BE78 5C1B E400 E214 0755 43F4 B499 3A1F 9D20"
|
||||
("B943 509D 633E 80DD 27FC 4EED 634A 8DFF D3F6 31DF"
|
||||
(name "htgoebel"))
|
||||
( ;; primary: "FECD 9EBA FAAD 1831 7E05 DAC0 E55F 4198 D2A7 0CD7"
|
||||
"6980 A9B9 5202 AA11 EB1D 8922 8499 AC88 F1A7 1CF2"
|
||||
@@ -102,9 +98,6 @@
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2020-01/msg00499.html>.
|
||||
"1EFB 0909 1F17 D28C CBF9 B13A 53D4 57B2 D636 EE82"
|
||||
(name "roptat"))
|
||||
(;; primary: "3AC5 5D0E 1DA7 AF44 3868 11EE 213D C372 0E7A 023C"
|
||||
"6B51 071A 0FB1 52AD ED93 6360 0322 7982 69E4 71C3"
|
||||
(name "Rutherther"))
|
||||
("EAD1 89E4 799B 5E5E B20A 2A19 CDBC 0BD9 5943 A706"
|
||||
(name "SameExpert"))
|
||||
(;; primary: "D6B0 C593 DA8C 5EDC A44C 7A58 C336 91F7 1188 B004"
|
||||
|
||||
@@ -30,7 +30,6 @@ Eric Bavier <bavier@posteo.net> <bavier@member.fsf.org>
|
||||
Eric Dvorsak <eric@dvorsak.fr> <yenda1@gmail.com>
|
||||
Evgeny Pisemsky <mail@pisemsky.site> <evgeny@pisemsky.com>
|
||||
George Clemmer <myglc2@gmail.com>
|
||||
Giacomo Leidi <therewasa@fishinthecalculator.me> <goodoldpaul@autistici.org>
|
||||
ison <ison@airmail.cc> <ison111@protonmail.com>
|
||||
Ivan Vilata i Balaguer <ivan@selidor.net>
|
||||
Jakob L. Kreuze <zerodaysfordays@sdf.org> <zerodaysfordays@sdf.lonestar.org>
|
||||
@@ -59,7 +58,6 @@ Mathieu Othacehe <mathieu.othacehe@parrot.com>
|
||||
Mathieu Othacehe <othacehe@gnu.org>
|
||||
Matthew James Kraai <kraai@ftbfs.org>
|
||||
Maxim Cournoyer <maxim@guixotic.coop> <maxim.cournoyer@gmail.com>
|
||||
Nguyễn Gia Phong <cnx@loang.net> <mcsinyx@disroot.org>
|
||||
Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com>
|
||||
nikita <nikita@n0.is>
|
||||
nikita <nikita@n0.is> ng0 <ng0@n0.is>
|
||||
|
||||
+2
-49
@@ -12,18 +12,6 @@ gnu/packages/audio\.scm @guix/audio
|
||||
gnu/packages/fluidplug\.scm @guix/audio
|
||||
gnu/packages/xiph\.scm @guix/audio
|
||||
|
||||
gnu/packages/elixir(-.+|)\.scm$ @guix/beam
|
||||
guix/build/mix-build-system\.scm @guix/beam
|
||||
guix/build-system/mix\.scm @guix/beam
|
||||
gnu/packages/erlang(-.+|)\.scm$ @guix/beam
|
||||
guix/build/rebar-build-system\.scm @guix/beam
|
||||
guix/build-system/rebar\.scm @guix/beam
|
||||
guix/import/hexpm\.scm @guix/beam
|
||||
guix/scripts/import/hexpm\.scm @guix/beam
|
||||
|
||||
gnu/packages/bioinformatics\.scm @guix/bioinformatics
|
||||
|
||||
gnu/packages/bootstrap\.scm @guix/bootstrap
|
||||
gnu/packages/commencement\.scm @guix/bootstrap
|
||||
gnu/packages/mes\.scm @guix/bootstrap
|
||||
|
||||
@@ -35,7 +23,6 @@ gnu/packages/cpp\.scm @guix/cpp
|
||||
gnu/packages/ninja\.scm @guix/cpp
|
||||
gnu/packages/valgrind\.scm @guix/cpp
|
||||
|
||||
etc/teams\.scm @guix/core
|
||||
guix/avahi\.scm @guix/core
|
||||
guix/base16\.scm @guix/core
|
||||
guix/base32\.scm @guix/core
|
||||
@@ -96,7 +83,6 @@ guix/quirks\.scm @guix/core
|
||||
guix/read-print\.scm @guix/core
|
||||
guix/records\.scm @guix/core
|
||||
guix/remote\.scm @guix/core
|
||||
guix/remote-procedures\.scm @guix/core
|
||||
guix/repl\.scm @guix/core
|
||||
guix/search-paths\.scm @guix/core
|
||||
guix/self\.scm @guix/core
|
||||
@@ -132,15 +118,6 @@ guix/build/gnu-build-system\.scm @guix/core-packages
|
||||
guix/build/utils\.scm @guix/core-packages
|
||||
guix/build-system/gnu\.scm @guix/core-packages
|
||||
|
||||
gnu/packages/(.*-|)crypto\.scm$ @guix/crypto
|
||||
gnu/packages/cryptsetup\.scm @guix/crypto
|
||||
gnu/packages/gnupg\.scm @guix/crypto
|
||||
gnu/packages/nettle\.scm @guix/crypto
|
||||
gnu/packages/password-utils\.scm @guix/crypto
|
||||
gnu/packages/security-token\.scm @guix/crypto
|
||||
gnu/packages/ssh\.scm @guix/crypto
|
||||
gnu/packages/tls\.scm @guix/crypto
|
||||
|
||||
gnu/packages/debian\.scm @guix/debian
|
||||
|
||||
\.texi$ @guix/documentation
|
||||
@@ -150,7 +127,6 @@ gnu/system/examples/lightweight-desktop\.tmpl @guix/documentation
|
||||
gnu/system/examples/desktop\.tmpl @guix/documentation
|
||||
|
||||
gnu/packages/electronics\.scm @guix/electronics
|
||||
gnu/packages/hdl\.scm @guix/electronics
|
||||
gnu/packages/libftdi\.scm @guix/electronics
|
||||
gnu/packages/engineering\.scm @guix/electronics
|
||||
gnu/packages/flashing-tools\.scm @guix/electronics
|
||||
@@ -175,8 +151,6 @@ gnu/packages/game-development\.scm @guix/games
|
||||
gnu/packages/luanti\.scm @guix/games
|
||||
gnu/packages/esolangs\.scm @guix/games
|
||||
gnu/packages/motti\.scm @guix/games
|
||||
gnu/services/games\.scm @guix/games
|
||||
gnu/tests/games\.scm @guix/games
|
||||
guix/build/luanti-build-system\.scm @guix/games
|
||||
|
||||
etc/teams/gnome @guix/gnome
|
||||
@@ -200,18 +174,6 @@ guix/import/go\.scm @guix/go
|
||||
guix/scripts/import/go\.scm @guix/go
|
||||
tests/import/go\.scm @guix/go
|
||||
|
||||
gnu/packages/guile\.scm @guix/guile
|
||||
gnu/packages/guile-wm\.scm @guix/guile
|
||||
gnu/packages/guile-xyz\.scm @guix/guile
|
||||
guix/build-system/guile\.scm @guix/guile
|
||||
guix/build/guile-build-system\.scm @guix/guile
|
||||
|
||||
gnu/packages/hare\.scm @guix/hare
|
||||
gnu/packages/hare-apps\.scm @guix/hare
|
||||
gnu/packages/hare-xyz\.scm @guix/hare
|
||||
guix/build-system/hare\.scm @guix/hare
|
||||
guix/build/hare-build-system\.scm @guix/hare
|
||||
|
||||
gnu/packages/dhall\.scm @guix/haskell
|
||||
gnu/packages/haskell(-.+|)\.scm$ @guix/haskell
|
||||
gnu/packages/purescript\.scm @guix/haskell
|
||||
@@ -229,8 +191,6 @@ tests/home-services\.scm @guix/home
|
||||
|
||||
gnu/packages/mpi\.scm @guix/hpc
|
||||
gnu/packages/oneapi\.scm @guix/hpc
|
||||
gnu/packages/opencl\.scm @guix/hpc
|
||||
gnu/packages/parallel\.scm @guix/hpc
|
||||
gnu/packages/rocm\.scm @guix/hpc
|
||||
gnu/packages/sycl\.scm @guix/hpc
|
||||
gnu/packages/tbb\.scm @guix/hpc
|
||||
@@ -244,17 +204,13 @@ gnu/packages/hurd\.scm @guix/hurd
|
||||
|
||||
gnu/installer(\.scm$|/) @guix/installer
|
||||
|
||||
gnu/packages/clojure\.scm @guix/java
|
||||
gnu/packages/java(-.+|)\.scm$ @guix/java
|
||||
gnu/packages/maven(-.+|)\.scm$ @guix/java
|
||||
guix/build/ant-build-system\.scm @guix/java
|
||||
guix/build/clojure-build-system\.scm @guix/java
|
||||
guix/build/clojure-utils\.scm @guix/java
|
||||
guix/build/java-utils\.scm @guix/java
|
||||
guix/build/maven-build-system\.scm @guix/java
|
||||
guix/build/maven/ @guix/java
|
||||
guix/build-system/ant\.scm @guix/java
|
||||
guix/build-system/clojure\.scm @guix/java
|
||||
guix/build-system/maven\.scm @guix/java
|
||||
|
||||
gnu/packages/node-xyz\.scm @guix/javascript
|
||||
@@ -289,8 +245,6 @@ gnu/packages/ibus\.scm @guix/localization
|
||||
|
||||
gnu/packages/lxqt\.scm @guix/lxqt
|
||||
|
||||
gnu/packages/mate\.scm @guix/mate
|
||||
|
||||
|
||||
gnu/build/icecat-extension\.scm @guix/mozilla
|
||||
gnu/packages/browser-extensions\.scm @guix/mozilla
|
||||
@@ -338,12 +292,11 @@ gnu/packages/chez\.scm @guix/racket
|
||||
gnu/packages/racket\.scm @guix/racket
|
||||
|
||||
NEWS @guix/release
|
||||
etc/manifests/release-minimal\.scm @guix/release
|
||||
etc/manifests/release-desktop\.scm @guix/release
|
||||
etc/manifests/release\.scm @guix/release
|
||||
|
||||
gnu/packages/diffoscope\.scm @guix/reproduciblebuilds
|
||||
|
||||
gnu/packages/(ruby)(-.+|)\.scm$ @guix/ruby
|
||||
gnu/packages/ruby\.scm @guix/ruby
|
||||
guix/build/ruby-build-system\.scm @guix/ruby
|
||||
guix/build-system/ruby\.scm @guix/ruby
|
||||
guix/import/gem\.scm @guix/ruby
|
||||
|
||||
+55
-56
@@ -116,7 +116,6 @@ MODULES = \
|
||||
guix/narinfo.scm \
|
||||
guix/derivations.scm \
|
||||
guix/grafts.scm \
|
||||
guix/remote-procedures.scm \
|
||||
guix/repl.scm \
|
||||
guix/rpm.scm \
|
||||
guix/transformations.scm \
|
||||
@@ -297,7 +296,6 @@ MODULES = \
|
||||
guix/build/toml.scm \
|
||||
guix/search-paths.scm \
|
||||
guix/packages.scm \
|
||||
guix/import/apache.scm \
|
||||
guix/import/cabal.scm \
|
||||
guix/import/composer.scm \
|
||||
guix/import/cpan.scm \
|
||||
@@ -378,7 +376,6 @@ MODULES = \
|
||||
guix/scripts/import/luanti.scm \
|
||||
guix/scripts/import/minetest.scm \
|
||||
guix/scripts/import/npm-binary.scm \
|
||||
guix/scripts/import/nuget.scm \
|
||||
guix/scripts/import/opam.scm \
|
||||
guix/scripts/import/pypi.scm \
|
||||
guix/scripts/import/stackage.scm \
|
||||
@@ -455,13 +452,15 @@ AUX_FILES = \
|
||||
gnu/packages/aux-files/findclass.php \
|
||||
gnu/packages/aux-files/guix.vim \
|
||||
gnu/packages/aux-files/guix-nvim.vim \
|
||||
gnu/packages/aux-files/linux-libre/6.18-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.18-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.18-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.17-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.17-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.17-riscv.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.17-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.16-arm.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.16-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.16-riscv.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.16-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.16-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.12-arm.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.12-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/6.12-i686.conf \
|
||||
@@ -511,8 +510,7 @@ EXAMPLES = \
|
||||
gnu/system/examples/plasma.tmpl \
|
||||
gnu/system/examples/raspberry-pi-64.tmpl \
|
||||
gnu/system/examples/raspberry-pi-64-nfs-root.tmpl \
|
||||
gnu/system/examples/vm-image.tmpl \
|
||||
gnu/system/examples/vm-image-efi.tmpl
|
||||
gnu/system/examples/vm-image.tmpl
|
||||
|
||||
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go)
|
||||
|
||||
@@ -584,7 +582,6 @@ SCM_TESTS = \
|
||||
tests/import/hexpm.scm \
|
||||
tests/import/luanti.scm \
|
||||
tests/import/npm-binary.scm \
|
||||
tests/import/nuget.scm \
|
||||
tests/import/opam.scm \
|
||||
tests/import/print.scm \
|
||||
tests/import/pypi.scm \
|
||||
@@ -754,14 +751,6 @@ dist_fishcompletion_DATA = etc/completion/fish/guix.fish
|
||||
# SELinux policy
|
||||
nodist_selinux_policy_DATA = etc/guix-daemon.cil
|
||||
|
||||
# AppArmor profiles.
|
||||
dist_apparmor_profile_DATA = \
|
||||
etc/apparmor.d/guix \
|
||||
etc/apparmor.d/guix-daemon
|
||||
|
||||
nodist_apparmor_profile_tunables_DATA = \
|
||||
etc/apparmor.d/tunables/guix
|
||||
|
||||
EXTRA_DIST += \
|
||||
.dir-locals.el \
|
||||
.guix-authorizations \
|
||||
@@ -779,12 +768,9 @@ EXTRA_DIST += \
|
||||
build-aux/compile-as-derivation.scm \
|
||||
build-aux/config.rpath \
|
||||
build-aux/convert-xref.scm \
|
||||
build-aux/cuirass/evaluate.scm \
|
||||
build-aux/extract-syscall-ranges.sh \
|
||||
build-aux/generate-authors.scm \
|
||||
build-aux/gitlog-to-changelog \
|
||||
build-aux/git-version-gen \
|
||||
build-aux/keep-only-translated.scm \
|
||||
build-aux/mdate-from-git.scm \
|
||||
build-aux/test-driver.scm \
|
||||
build-aux/update-NEWS.scm \
|
||||
@@ -798,9 +784,7 @@ EXTRA_DIST += \
|
||||
etc/manifests/disarchive.scm \
|
||||
etc/manifests/hurd.scm \
|
||||
etc/manifests/kernels.scm \
|
||||
etc/manifests/release-minimal.scm \
|
||||
etc/manifests/release-desktop.scm \
|
||||
etc/manifests/release-user-packages.scm \
|
||||
etc/manifests/release.scm \
|
||||
etc/manifests/source.scm \
|
||||
etc/manifests/system-tests.scm \
|
||||
etc/manifests/time-travel.scm \
|
||||
@@ -1153,18 +1137,12 @@ system_flags = $(foreach system,$(1),-s $(system))
|
||||
# 5. Build the installation and VM images. The images will run 'guix'
|
||||
# corresponding to 'vX.Y.Z' + 1 commit, and they will install 'vX.Y.Z'.
|
||||
#
|
||||
# This is split into two targets, because a commit is made that has to be
|
||||
# pushed to Guix.
|
||||
# First, 'prepare-release' should be run, doing steps 1 and 2.
|
||||
# Then, the resulting commit should be pushed so that it's available
|
||||
# to be downloaded for the system images.
|
||||
# Afterwards, the 'release' target takes care of the rest. This 'release'
|
||||
# target takes care of everything and copies the resulting files to
|
||||
# $(releasedir).
|
||||
# This 'release' target takes care of everything and copies the resulting
|
||||
# files to $(releasedir).
|
||||
#
|
||||
# XXX: Depend on 'dist' rather than 'distcheck' to work around the Gettext
|
||||
# issue described at <https://savannah.gnu.org/bugs/index.php?51027>.
|
||||
prepare-release: dist-with-updated-version all
|
||||
release: dist-with-updated-version all
|
||||
@if ! git diff-index --quiet HEAD; then \
|
||||
echo "There are uncommitted changes; stopping." >&2 ; \
|
||||
exit 1 ; \
|
||||
@@ -1182,26 +1160,48 @@ prepare-release: dist-with-updated-version all
|
||||
$(top_builddir)/pre-inst-env guix build guix \
|
||||
$(call system_flags,$(SUPPORTED_SYSTEMS)) \
|
||||
-v1 --no-grafts --fallback
|
||||
|
||||
@echo
|
||||
@echo "First step done! Source tarball is ready in $(releasedir)"
|
||||
@echo "Now push the resulting commit and run `make release`."
|
||||
@echo
|
||||
|
||||
# Make sure you've ran prepare-release prior to running release and pushed
|
||||
# the commit to Guix. It might be pushed to any branch, such as version-X.Y.Z.
|
||||
release: all
|
||||
# Build the artifacts for current commit.
|
||||
# Use time-machine for provenance.
|
||||
$(MKDIR_P) "$(releasedir)"
|
||||
@echo "Building guix inferior for current commit."
|
||||
COMMIT="$$(git rev-parse HEAD)" && \
|
||||
GUIX="$$(guix time-machine -q --commit=$$COMMIT)/bin/guix" && \
|
||||
echo "Building artifacts for current commit: $$COMMIT." && \
|
||||
ARTIFACTS="$$($$GUIX build --no-grafts \
|
||||
-f ./etc/teams/release/artifacts.scm)" && \
|
||||
echo "Artifacts built! Copying to $(releasedir)" && \
|
||||
cp -f "$$ARTIFACTS"/* "$(releasedir)"
|
||||
# Generate the binary release tarballs.
|
||||
rm -f $(BINARY_TARBALLS)
|
||||
$(MAKE) $(BINARY_TARBALLS)
|
||||
for system in $(SUPPORTED_SYSTEMS) ; do \
|
||||
mv "guix-binary.$$system.tar.xz" \
|
||||
"$(releasedir)/guix-binary-$(PACKAGE_VERSION).$$system.tar.xz" ; \
|
||||
done
|
||||
# Build 'current-guix' to speed things up for the next step.
|
||||
$(top_builddir)/pre-inst-env guix build \
|
||||
-e '((@ (gnu packages package-management) current-guix))' \
|
||||
$(call system_flags,$(GUIX_SYSTEM_INSTALLER_SYSTEMS)) \
|
||||
-v1 --no-grafts --fallback
|
||||
# Generate the ISO installation images.
|
||||
for system in $(GUIX_SYSTEM_INSTALLER_SYSTEMS) ; do \
|
||||
GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//'`" ; \
|
||||
image=`$(top_builddir)/pre-inst-env \
|
||||
guix system image -t iso9660 \
|
||||
--label="GUIX_$${system}_$(VERSION)" \
|
||||
--system=$$system --fallback \
|
||||
gnu/system/install.scm` ; \
|
||||
if [ ! -f "$$image" ] ; then \
|
||||
echo "failed to produce Guix installation image for $$system" >&2 ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
cp "$$image" "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp" ; \
|
||||
mv "$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso.tmp" \
|
||||
"$(releasedir)/$(GUIX_SYSTEM_IMAGE_BASE).$$system.iso" ; \
|
||||
done
|
||||
# Generate the VM images.
|
||||
for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \
|
||||
GUIX_DISPLAYED_VERSION="`git describe --match=v* | sed -'es/^v//'`" ; \
|
||||
image=`$(top_builddir)/pre-inst-env \
|
||||
guix system image -t qcow2 $(GUIX_SYSTEM_VM_IMAGE_FLAGS) \
|
||||
--save-provenance \
|
||||
--system=$$system --fallback \
|
||||
gnu/system/examples/vm-image.tmpl` ; \
|
||||
if [ ! -f "$$image" ] ; then \
|
||||
echo "failed to produce Guix VM image for $$system" >&2 ; \
|
||||
exit 1 ; \
|
||||
fi ; \
|
||||
cp "$$image" "$(releasedir)/$(GUIX_SYSTEM_VM_IMAGE_BASE).$$system.qcow2"; \
|
||||
done
|
||||
@echo
|
||||
@echo "Congratulations! All the release files are now in $(releasedir)."
|
||||
@echo
|
||||
@@ -1240,10 +1240,9 @@ assert-no-store-file-names:
|
||||
# Make sure installer substitutes are available. Check only the primary
|
||||
# server so that '--display-missing' doesn't print two lists.
|
||||
assert-binaries-available: $(GOBJECTS)
|
||||
$(AM_V_at)$(top_builddir)/pre-inst-env \
|
||||
guix weather -m "$(top_srcdir)/etc/manifests/release-minimal.scm" \
|
||||
-m "$(top_srcdir)/etc/manifests/release-desktop.scm" \
|
||||
--substitute-urls="https://ci.guix.gnu.org" \
|
||||
$(AM_V_at)$(top_builddir)/pre-inst-env \
|
||||
guix weather -m "$(top_srcdir)/etc/manifests/release.scm" \
|
||||
--substitute-urls="https://ci.guix.gnu.org" \
|
||||
--display-missing
|
||||
|
||||
# Make sure the final inputs don't refer to bootstrap tools.
|
||||
|
||||
@@ -6,7 +6,6 @@ Copyright © 2013-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
Copyright © 2021, 2022, 2024 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
|
||||
Copyright © 2026 Noé Lopez <noelopez@free.fr>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
@@ -17,77 +16,8 @@ Please send Guix bug reports to bug-guix@gnu.org.
|
||||
* Changes in 1.5.0 (since 1.4.0)
|
||||
** Package management
|
||||
*** New ‘rpm’ format for the ‘guix pack’ command
|
||||
*** New ‘appimage’ format for the ‘guix pack’ command
|
||||
*** New ‘--max-layers’ and ‘--file’ options for the ‘guix pack’ command
|
||||
*** New ‘--roll-back’ and ‘--expression’ options for the ‘guix deploy’ command
|
||||
*** New ‘--with-version’ package transformation option
|
||||
*** New ‘--with-configure-flag’ package transformation option
|
||||
*** New ‘--nesting’ option to use Guix within ‘guix shell’ containers
|
||||
*** New ‘--emulate-fhs’ option for ‘guix shell’ containers
|
||||
*** New ‘--dependents’ and ‘--development’ options for ‘guix build’
|
||||
*** New ‘--interactive’ and ‘--list-types’ flags for ‘guix repl’
|
||||
*** The root file-system of ‘guix shell’ containers is now read-only
|
||||
*** New ‘--writable-root’ option for the ‘guix shell’ command
|
||||
*** Improved style rules for ‘guix style’
|
||||
*** New ‘guix locate’ command
|
||||
*** ‘guix refresh’ now honours the ‘--key-server’ option
|
||||
*** ‘guix git authenticate‘ now remembers introduction commit and signer
|
||||
*** ‘guix git authenticate’ now installs pre-push and post-merge git hooks
|
||||
*** System reconfiguration now supports kexec for fast reboot
|
||||
*** Hetzner Cloud is now supported by the ‘guix deploy’ command
|
||||
*** The Guix Daemon can now be run without root privileges
|
||||
*** ‘guix refresh’ can now target partial version
|
||||
*** New ‘guix import composer’ command
|
||||
*** New ‘guix import binary-npm’ command
|
||||
*** New ‘guix import nuget’ command
|
||||
*** New ‘graphml’ backend for guix graph
|
||||
*** New ‘cyclonedx-json’ backend for guix graph
|
||||
*** AppArmor profiles are now available for guix and guix-daemon
|
||||
** Distribution
|
||||
*** ‘nss-certs’ is now included in ‘%base-packages’
|
||||
*** ‘udev-service-type’ now supports hardware configuration files
|
||||
*** ‘gdm-service-type’ now uses Wayland by default
|
||||
*** KDE Plasma 6.5 is now available with the new ‘plasma-desktop-service-type’
|
||||
*** GNOME was updated to version 44 with a more modular desktop service
|
||||
*** Declarative offloading with new ‘build-machines’ field of operating-system
|
||||
*** ‘containerd-service-type’ is no longer included with the Docker service
|
||||
*** ‘privileged-programs’ replaces ‘setuid-programs’ in ‘operating-system’
|
||||
*** The ‘postgresql’ field of ‘postgresql-configuration‘ is now mandatory
|
||||
*** The Rottlog service was replaced by new ‘log-rotation-service-type’
|
||||
*** The default system log has been changed to Shepherd’s ‘system-log’ service
|
||||
*** New recommended ‘%base-home-services’ variable for Guix Home
|
||||
*** UDisks now mounts removable devices in /run/media/$USER instead of /media
|
||||
*** Syncthing service received incompatible changes
|
||||
*** ‘node-build-system’ received incompatible changes
|
||||
*** New services for /etc/profile.d and /etc/bashrc.d
|
||||
*** New build system for clasp-cl
|
||||
*** New Rust packaging model
|
||||
*** C.utf8 locale is now supported by glibc
|
||||
*** Fully bootstrapped mono and zig are now available
|
||||
*** 64bit Hurd (x86_64-gnu) now has experimental support
|
||||
*** 12525 new packages
|
||||
*** 8911 package updates
|
||||
|
||||
Noteworthy updates:
|
||||
bash 5.2.37, binutils 2.44, clojure 1.12.0, cups 2.4.14, emacs 30.2,
|
||||
gcc-toolchain 15.2.0, gdb 16.3, ghc 9.2.8, gimp 3.0.4, glibc 2.41,
|
||||
gnome 46.10, gnupg 2.4.7, go 1.25.3, guile 3.0.9, icecat 140.6.0-gnu1,
|
||||
icedtea 3.19.0, inkscape 1.3.2, julia 1.8.5, libreoffice 25.2.5.2,
|
||||
linux-libre 6.17.12, lxde 0.99.3, mate 1.28.2, ocaml 5.3.0, octave 10.3.0,
|
||||
openjdk 25, perl 5.36.0, python 3.11.14, racket 8.18, rust 1.85.1, r 4.5.2,
|
||||
sbcl 2.5.8, shepherd 1.0.9, xfce 4.20.0, xorg-server 21.1.21
|
||||
|
||||
** Programming interfaces
|
||||
*** ‘(gnu system setuid)’ has been renamed to ‘(gnu system privilege)’
|
||||
*** Moved to a new Rust packaging model and repackaged all Rust applications
|
||||
*** Rust library packages have been moved to the guix-rust-past-crates channel
|
||||
*** Most Python packages now use the ‘pyproject-build-system’
|
||||
** Noteworthy bug fixes
|
||||
*** Daemon vulnerability allowing store corruption has been fixed
|
||||
*** Daemon vulnerability allowing takeover of build users has been fixed
|
||||
*** Daemon privilege escalation vulnerabilities fixed
|
||||
*** Daemon CVEs have been fixed
|
||||
CVE-2024-27297, CVE-2024-52867, CVE-2025-46415, CVE-2025-46416, CVE-2025-59378
|
||||
* Changes in 1.4.0 (since 1.3.0)
|
||||
** Package management
|
||||
*** New ‘guix home’ command, for home environment management
|
||||
@@ -1996,7 +1926,7 @@ zynaddsubfx@3.0.3, zziplib@0.13.69
|
||||
*** ‘guix pack’ now honors package transformation options
|
||||
*** ‘guix package --search’ no longer shows superseded packages
|
||||
(<https://bugs.gnu.org/30566>)
|
||||
*** ‘guix offload test’ reports errors more nicely
|
||||
*** ‘guix offload test’ reports errors more nicely
|
||||
(<https://bugs.gnu.org/28057>)
|
||||
*** postgresql service is started through ‘pg_ctl’
|
||||
(<https://bugs.gnu.org/29992>)
|
||||
@@ -5734,7 +5664,7 @@ Monad” in the manual.
|
||||
|
||||
*** X session is executed from a login shell (<http://bugs.gnu.org/19119>)
|
||||
*** grub.cfg is now a garbage-collector root (<http://bugs.gnu.org/19160>)
|
||||
*** Substituter progress report properly formatted
|
||||
*** Substituter progress report properly formatted
|
||||
(<http://bugs.gnu.org/19313>)
|
||||
*** Document permissions for /gnu/store (<http://bugs.gnu.org/19316>)
|
||||
*** Make sure config.go is newer than config.scm
|
||||
@@ -5990,18 +5920,18 @@ This could cause problems with ancient Linux kernel.
|
||||
*** download: Use the 'SERVER NAME' TLS extension when possible
|
||||
(<http://bugs.gnu.org/18526>)
|
||||
*** libdaemon: Add alternate source URLs (<http://bugs.gnu.org/18639>)
|
||||
*** icu4c: Reinstate RUNPATH on shared libraries
|
||||
*** icu4c: Reinstate RUNPATH on shared libraries
|
||||
(<http://bugs.gnu.org/18695>)
|
||||
*** nss-mdns: Add alternate source URLs (<http://bugs.gnu.org/18704>)
|
||||
*** download: Add "Accept: */*" to the HTTP headers
|
||||
(<http://bugs.gnu.org/18768>)
|
||||
*** guix-register: Do not attempt to create NIX_STORE_DIR
|
||||
*** guix-register: Do not attempt to create NIX_STORE_DIR
|
||||
(<http://bugs.gnu.org/18689>)
|
||||
*** Allow Linux-libre to find our 'modprobe' command
|
||||
(<http://bugs.gnu.org/18525>)
|
||||
*** man-pages: Build sequentially (<http://bugs.gnu.org/18701>)
|
||||
*** Fix intermittent test failures involving GC (<http://bugs.gnu.org/18935>)
|
||||
*** guix import: pypi: Gracefully handle non-existent packages
|
||||
*** guix import: pypi: Gracefully handle non-existent packages
|
||||
(<http://bugs.gnu.org/18831>)
|
||||
*** Make sure the shared library has the '.so' extension
|
||||
(<http://bugs.gnu.org/18521>)
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
directory))
|
||||
((_ . directory) directory))
|
||||
(derivation->output-paths drv)))))
|
||||
(%final-inputs system)))
|
||||
%final-inputs))
|
||||
|
||||
(define (assert-valid-substitute substitute)
|
||||
"Make sure SUBSTITUTE does not refer to any bootstrap inputs, and bail out
|
||||
|
||||
@@ -3,7 +3,7 @@ exec guile --no-auto-compile -e main -s "$0" "$@"
|
||||
!#
|
||||
;;;; test-driver.scm - Guile test driver for Automake testsuite harness
|
||||
|
||||
(define script-version "2026-01-23.07") ;UTC
|
||||
(define script-version "2023-12-08.14") ;UTC
|
||||
|
||||
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2021 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
@@ -151,7 +151,7 @@ cases based on their names."
|
||||
(and show-duration? time-elapsed-seconds)))
|
||||
|
||||
(unless (and errors-only? (not (test-failed? runner)))
|
||||
(format #t "test-name: ~A~%" (test-runner-test-name runner))
|
||||
(format #t "test-name: ~A~%" (result 'test-name))
|
||||
(format #t "location: ~A~%"
|
||||
(string-append (result 'source-file) ":"
|
||||
(number->string (result 'source-line))))
|
||||
|
||||
+2
-19
@@ -2,7 +2,7 @@
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
#
|
||||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2012-2021, 2022-2023, 2025 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2012-2021, 2022-2023 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2013, 2016 Mark H Weaver <mhw@netris.org>
|
||||
# Copyright © 2014-2016 Alex Kost <alezost@gmail.com>
|
||||
# Copyright © 2014-2016 David Thompson <davet@gnu.org>
|
||||
@@ -81,15 +81,6 @@ AC_ARG_WITH([selinux-policy-dir],
|
||||
[selinux_policydir='${datadir}/selinux/'])
|
||||
AC_SUBST([selinux_policydir])
|
||||
|
||||
AC_ARG_WITH([apparmor-profile-dir],
|
||||
AS_HELP_STRING([--with-apparmor-profile-dir=DIR],
|
||||
[name of the AppArmor profile directory]),
|
||||
[apparmor_profiledir="$withval"],
|
||||
[apparmor_profiledir='${sysconfdir}/apparmor.d'])
|
||||
AC_SUBST([apparmor_profiledir])
|
||||
apparmor_profile_tunablesdir='${apparmor_profiledir}/tunables'
|
||||
AC_SUBST([apparmor_profile_tunablesdir])
|
||||
|
||||
dnl Better be verbose.
|
||||
AC_MSG_CHECKING([for the store directory])
|
||||
AC_MSG_RESULT([$storedir])
|
||||
@@ -130,8 +121,7 @@ if test "x$GUILD" = "x"; then
|
||||
fi
|
||||
|
||||
dnl (guix ui), notably, requires 'default-optimization-level' added in 3.0.3.
|
||||
dnl (guix serialization) requires 'bytevector-slice' added in 3.0.9.
|
||||
PKG_CHECK_MODULES([GUILE], [guile-3.0 >= 3.0.9])
|
||||
PKG_CHECK_MODULES([GUILE], [guile-3.0 >= 3.0.3])
|
||||
|
||||
dnl Get CFLAGS and LDFLAGS for libguile.
|
||||
GUILE_FLAGS
|
||||
@@ -199,12 +189,6 @@ if test "x$have_guile_lzlib" != "xyes"; then
|
||||
AC_MSG_ERROR([Guile-lzlib is missing; please install it.])
|
||||
fi
|
||||
|
||||
dnl Check for Guile-semver.
|
||||
GUILE_MODULE_AVAILABLE([have_guile_semver], [(semver)])
|
||||
if test "x$have_guile_semver" != "xyes"; then
|
||||
AC_MSG_ERROR([Guile-semver is missing; please install it.])
|
||||
fi
|
||||
|
||||
dnl Check for Guile-Avahi.
|
||||
GUILE_MODULE_AVAILABLE([have_guile_avahi], [(avahi)])
|
||||
AM_CONDITIONAL([HAVE_GUILE_AVAHI],
|
||||
@@ -324,7 +308,6 @@ AC_CONFIG_FILES([Makefile
|
||||
po/guix/Makefile.in
|
||||
po/packages/Makefile.in
|
||||
etc/guix-daemon.cil
|
||||
etc/apparmor.d/tunables/guix
|
||||
guix/config.scm])
|
||||
|
||||
AC_CONFIG_FILES([etc/committer.scm], [chmod +x etc/committer.scm])
|
||||
|
||||
+5
-7
@@ -72,7 +72,7 @@
|
||||
|
||||
(define %cookbook-languages
|
||||
;; Available translations for the 'guix-cookbook' text domain.
|
||||
'("de" "en" "es" "fr" "it" "ko" "pt_BR" "ru" "sk" "sv" "ta" "zh_CN"))
|
||||
'("de" "en" "es" "fr" "it" "ko" "pt_BR" "ru" "sk" "sv" "zh_CN"))
|
||||
|
||||
(define %languages
|
||||
;; Available translations for the document being built.
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
(define %latest-guix-version
|
||||
;; Latest released version.
|
||||
"1.5.0")
|
||||
"1.4.0")
|
||||
|
||||
(define (texinfo-manual-images source)
|
||||
"Return a directory containing all the images used by the user manual, taken
|
||||
@@ -777,8 +777,7 @@ in SOURCE."
|
||||
(define version-links
|
||||
(list (menu-item #$latest-version
|
||||
(string-append
|
||||
"/manual/" #$latest-version
|
||||
"/" language
|
||||
"/manual/" language
|
||||
(if split-node? "/html_node" "")))
|
||||
(menu-item "development"
|
||||
(string-append
|
||||
@@ -943,8 +942,7 @@ makeinfo OPTIONS."
|
||||
(let* ((texi (language->texi-file-name language))
|
||||
(opts `("--html"
|
||||
"-c" ,(string-append "TOP_NODE_UP_URL=/manual/"
|
||||
#$%latest-guix-version
|
||||
"/" language)
|
||||
language)
|
||||
#$@options
|
||||
,texi)))
|
||||
(format #t "building HTML manual for language '~a'...~%"
|
||||
@@ -1302,7 +1300,7 @@ must be the Guix top-level source directory, from which PO files are taken."
|
||||
language))
|
||||
".html")))
|
||||
"HTML, entirely on one page"))
|
||||
,@(if (member language '("ko" "ru" "ta"))
|
||||
,@(if (member language '("ko" "ru"))
|
||||
'()
|
||||
`((li (a (@ (href ,(string-append
|
||||
#$manual
|
||||
|
||||
+283
-72
@@ -66,7 +66,7 @@ GNU Guix depends on the following packages:
|
||||
|
||||
@itemize
|
||||
@item @url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x,
|
||||
version 3.0.9 or later;
|
||||
version 3.0.3 or later;
|
||||
@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version
|
||||
0.1.0 or later;
|
||||
@item
|
||||
@@ -134,15 +134,10 @@ C++11 standard.
|
||||
@section Building from Git
|
||||
|
||||
If you want to hack Guix itself, it is recommended to use the latest
|
||||
version from the Git repository@footnote{
|
||||
Guix uses @code{master} as the default branch name. A proposal in 2025 to
|
||||
change the default branch name to @code{main} did not reach consensus.
|
||||
See @uref{https://codeberg.org/guix/guix-consensus-documents/src/branch/main/003-rename-default-branch.md,
|
||||
Guix Consensus Document 003}.}:
|
||||
version from the Git repository:
|
||||
|
||||
@example
|
||||
git clone https://git.guix.gnu.org/guix.git
|
||||
cd guix
|
||||
@end example
|
||||
|
||||
@cindex authentication, of a Guix checkout
|
||||
@@ -182,7 +177,6 @@ guix shell -D guix -CPW
|
||||
or even, from within a Git worktree for Guix:
|
||||
|
||||
@example
|
||||
echo $(pwd) >> ~/.config/guix/shell-authorized-directories
|
||||
guix shell -CPW
|
||||
@end example
|
||||
|
||||
@@ -190,10 +184,6 @@ If @option{-C} (short for @option{--container}) is not supported on your
|
||||
system, try @command{--pure} instead of @option{-CPW}.
|
||||
@xref{Invoking guix shell}, for more information on that command.
|
||||
|
||||
Most of the test suite runs without an internet connection. The @option{-N}
|
||||
(short for @option{--network}) can be added to the @code{guix shell} command
|
||||
to run the tests that require internet access.
|
||||
|
||||
If you are unable to use Guix when building Guix from a checkout, the
|
||||
following are the required packages in addition to those mentioned in the
|
||||
installation instructions (@pxref{Requirements}).
|
||||
@@ -207,11 +197,11 @@ installation instructions (@pxref{Requirements}).
|
||||
@item @url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}.
|
||||
@end itemize
|
||||
|
||||
On Guix, other development tools, like @code{strace}, can be included by
|
||||
giving them as extra arguments to @command{guix shell}:
|
||||
On Guix, extra dependencies can be added by instead running @command{guix
|
||||
shell}:
|
||||
|
||||
@example
|
||||
guix shell -D guix -CPW strace
|
||||
guix shell -D guix help2man git strace --pure
|
||||
@end example
|
||||
|
||||
From there you can generate the build system infrastructure
|
||||
@@ -1948,60 +1938,35 @@ keyword parameters for procedures that take more than four parameters.
|
||||
@node Submitting Patches
|
||||
@section Submitting Patches
|
||||
|
||||
@cindex pull requests
|
||||
@cindex patch submission
|
||||
Development is done using the Git distributed version control system.
|
||||
Thus, access to the repository is not strictly necessary. We welcome
|
||||
contributions as @dfn{pull requests} (PR) at
|
||||
@url{https://codeberg.org/guix/guix/pulls/}@footnote{Before January 1st,
|
||||
2026, changes would be submitted by email to
|
||||
@email{guix-patches@@gnu.org} and could be
|
||||
@uref{https://issues.guix.gnu.org, browsed online}. In accordance with
|
||||
@uref{https://codeberg.org/guix/guix-consensus-documents/src/branch/main/002-codeberg.md,
|
||||
Guix Consensus Document 002}, this method is no longer supported.}.
|
||||
|
||||
There are two ways to create a pull request:
|
||||
contributions in one of the following forms:
|
||||
|
||||
@itemize
|
||||
@item
|
||||
By creating a personal ``fork'' of @uref{https://codeberg.org/guix/guix,
|
||||
the repository}, creating a branch with your changes, and
|
||||
@uref{https://docs.codeberg.org/collaborating/pull-requests-and-git-flow/,
|
||||
submitting a pull request for that branch}.
|
||||
@cindex pull request, for contributions
|
||||
As a @dfn{pull request} (PR) at
|
||||
@url{https://codeberg.org/guix/guix/pulls/}. This is now the preferred
|
||||
form.
|
||||
|
||||
@item
|
||||
@cindex AGit workflow, for pull requests
|
||||
By following the @uref{https://forgejo.org/docs/next/user/agit-support/,
|
||||
@dfn{AGit workflow}}, which is somewhat more convenient and consumes
|
||||
less disk space at Codeberg since it removes the need to create a
|
||||
``fork''.
|
||||
Until December 31st, 2025@footnote{This date is the result of a decision
|
||||
made collectively in
|
||||
@uref{https://codeberg.org/guix/guix-consensus-documents/src/branch/main/002-codeberg.md,
|
||||
Guix Consensus Document 002} in May 2025.}, you may also send patches as
|
||||
produced by @code{git format-patch} to the @email{guix-patches@@gnu.org}
|
||||
mailing list (@pxref{Submitting patches to a project,,, git, Git User
|
||||
Manual}).
|
||||
|
||||
Assuming your local checkout is on the branch containing the changes you
|
||||
would like to submit for inclusion in the @code{master} branch, run:
|
||||
|
||||
@example
|
||||
git push origin HEAD:refs/for/master \
|
||||
-o topic=@var{topic} \
|
||||
-o title=@var{title} -o description=@var{description}
|
||||
@end example
|
||||
|
||||
@var{topic} must be an identifier without whitespace, similar to a
|
||||
branch name; @var{title} and @var{description} are arbitrary text that
|
||||
can be omitted, in which case the message of the last commit on the
|
||||
branch fills that role.
|
||||
|
||||
To send an update to an AGit pull request of yours, run:
|
||||
|
||||
@example
|
||||
git push origin HEAD:refs/for/master \
|
||||
-o topic=@var{topic} -o force-push=yes
|
||||
@end example
|
||||
|
||||
Codeberg automatically figures out which pull request @var{topic}
|
||||
corresponds to and updates the associated branch.
|
||||
This mailing list is backed by a Debbugs instance, which allows us to
|
||||
keep track of submissions (@pxref{Tracking Bugs and Changes}).
|
||||
Each message sent to that mailing list gets a new tracking number
|
||||
assigned; people can then follow up on the submission by sending email
|
||||
to @code{@var{ISSUE_NUMBER}@@debbugs.gnu.org}, where @var{ISSUE_NUMBER}
|
||||
is the tracking number (@pxref{Sending a Patch Series}).
|
||||
@end itemize
|
||||
|
||||
Contributors are encouraged to take a moment to set some Git
|
||||
Either way, contributors are encouraged to take a moment to set some Git
|
||||
repository options (@pxref{Configuring Git}) first, which can improve
|
||||
the readability of patches. Seasoned Guix developers may also want to
|
||||
look at the section on commit access (@pxref{Commit Access}).
|
||||
@@ -2168,13 +2133,36 @@ guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master --disable-auth
|
||||
|
||||
@end enumerate
|
||||
|
||||
When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as
|
||||
a subject, if your patch is to be applied on a branch other than
|
||||
@code{master}, say @code{core-updates}, specify it in the subject like
|
||||
@samp{[PATCH core-updates] @dots{}}.
|
||||
|
||||
You may use your email client, the @command{git send-email} command
|
||||
(@pxref{Sending a Patch Series}) or the @command{mumi send-email}
|
||||
command (@pxref{Debbugs User Interfaces}). We prefer to get patches in
|
||||
plain text messages, either inline or as MIME attachments. You are
|
||||
advised to pay attention if your email client changes anything like line
|
||||
breaks or indentation which could potentially break the patches.
|
||||
|
||||
Expect some delay when you submit your very first patch to
|
||||
@email{guix-patches@@gnu.org}. You have to wait until you get an
|
||||
acknowledgement with the assigned tracking number. Future acknowledgements
|
||||
should not be delayed.
|
||||
|
||||
When a bug is resolved, please close the thread by sending an email to
|
||||
@email{@var{ISSUE_NUMBER}-done@@debbugs.gnu.org}.
|
||||
|
||||
@menu
|
||||
* Configuring Git::
|
||||
* Sending a Patch Series::
|
||||
@end menu
|
||||
|
||||
@node Configuring Git
|
||||
@subsection Configuring Git
|
||||
@cindex git configuration
|
||||
@cindex @code{git format-patch}
|
||||
@cindex @code{git send-email}
|
||||
|
||||
If you have not done so already, you may wish to set a name and email
|
||||
that will be associated with your commits (@pxref{telling git your name,
|
||||
@@ -2194,6 +2182,166 @@ changes was already submitted for review. If you have a
|
||||
@file{commit-msg} hook of your own you would like to use with Guix, you
|
||||
can place it under the @file{.git/hooks/commit-msg.d/} directory.
|
||||
|
||||
@node Sending a Patch Series
|
||||
@subsection Sending a Patch Series
|
||||
@cindex patch series
|
||||
@cindex @code{git send-email}
|
||||
@cindex @code{git format-patch}
|
||||
|
||||
@quotation Warning
|
||||
This section is about contributing code by sending patches by email.
|
||||
This option is supported until December 31st, 2025, but we recommend
|
||||
getting familiar with the @dfn{pull request} workflow, which will become
|
||||
the norm after that date. @xref{Submitting Patches}, for more info.
|
||||
@end quotation
|
||||
|
||||
@unnumberedsubsubsec Single Patches
|
||||
@anchor{Single Patches}
|
||||
The @command{git send-email} command is the best way to send both single
|
||||
patches and patch series (@pxref{Multiple Patches}) to the Guix mailing
|
||||
list. Sending patches as email attachments may make them difficult to
|
||||
review in some mail clients, and @command{git diff} does not store commit
|
||||
metadata.
|
||||
|
||||
@quotation Note
|
||||
The @command{git send-email} command is provided by the @code{send-email}
|
||||
output of the @code{git} package, i.e. @code{git:send-email}.
|
||||
@end quotation
|
||||
|
||||
The following command will create a patch email from the latest commit,
|
||||
open it in your @var{EDITOR} or @var{VISUAL} for editing, and send it to
|
||||
the Guix mailing list to be reviewed and merged. Assuming you have
|
||||
already configured Git according to @xref{Configuring Git}, you can
|
||||
simply use:
|
||||
|
||||
@example
|
||||
$ git send-email --annotate -1
|
||||
@end example
|
||||
|
||||
@quotation Tip
|
||||
To add a prefix to the subject of your patch, you may use the
|
||||
@option{--subject-prefix} option. The Guix project uses this to
|
||||
specify that the patch is intended for a branch or repository
|
||||
other than the @code{master} branch of
|
||||
@url{https://codeberg.org/guix/guix.git}.
|
||||
|
||||
@example
|
||||
git send-email --annotate --subject-prefix='PATCH core-updates' -1
|
||||
@end example
|
||||
@end quotation
|
||||
|
||||
The patch email contains a three-dash separator line after the commit
|
||||
message. You may ``annotate'' the patch with explanatory text by adding
|
||||
it under this line. If you do not wish to annotate the email, you may
|
||||
drop the @option{--annotate} option.
|
||||
|
||||
If you need to send a revised patch, don't resend it like this or send
|
||||
a ``fix'' patch to be applied on top of the last one; instead, use
|
||||
@command{git commit --amend} or @url{https://git-rebase.io,
|
||||
@command{git rebase}} to modify the commit, and use the
|
||||
@email{@var{ISSUE_NUMBER}@@debbugs.gnu.org} address and the @option{-v}
|
||||
flag with @command{git send-email}.
|
||||
|
||||
@example
|
||||
$ git commit --amend
|
||||
$ git send-email --annotate -v@var{REVISION} \
|
||||
--to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -1
|
||||
@end example
|
||||
|
||||
@quotation Note
|
||||
Due to an apparent bug in @command{git send-email},
|
||||
@option{-v @var{REVISION}} (with the space) will not work; you
|
||||
@emph{must} use @option{-v@var{REVISION}}.
|
||||
@end quotation
|
||||
|
||||
You can find out @var{ISSUE_NUMBER} either by searching on the mumi
|
||||
interface at @url{https://issues.guix.gnu.org} for the name of your patch or
|
||||
reading the acknowledgement email sent automatically by Debbugs in
|
||||
reply to incoming bugs and patches, which contains the bug number.
|
||||
|
||||
@unnumberedsubsubsec Notifying Teams
|
||||
@anchor{Notifying Teams}
|
||||
@cindex teams
|
||||
If your git checkout has been correctly configured (@pxref{Configuring
|
||||
Git}), the @command{git send-email} command will automatically notify
|
||||
the appropriate team members, based on the scope of your changes. This
|
||||
relies on the @file{etc/teams.scm} script, which can also be invoked
|
||||
manually if you do not use the preferred @command{git send-email}
|
||||
command to submit patches. To list the available actions of the script,
|
||||
you can invoke it via the @command{etc/teams.scm help} command. For
|
||||
more information regarding teams, @pxref{Teams}.
|
||||
|
||||
@quotation Note
|
||||
On foreign distros, you might have to use @command{./pre-inst-env git
|
||||
send-email} for @file{etc/teams.scm} to work.
|
||||
@end quotation
|
||||
|
||||
@unnumberedsubsubsec Multiple Patches
|
||||
@anchor{Multiple Patches}
|
||||
@cindex cover letter
|
||||
While @command{git send-email} alone will suffice for a single
|
||||
patch, an unfortunate flaw in Debbugs means you need to be more
|
||||
careful when sending multiple patches: if you send them all to the
|
||||
@email{guix-patches@@gnu.org} address, a new issue will be created
|
||||
for each patch!
|
||||
|
||||
When sending a series of patches, it's best to send a Git ``cover
|
||||
letter'' first, to give reviewers an overview of the patch series.
|
||||
We can create a directory called @file{outgoing} containing both
|
||||
our patch series and a cover letter called @file{0000-cover-letter.patch}
|
||||
with @command{git format-patch}.
|
||||
|
||||
@example
|
||||
$ git format-patch -@var{NUMBER_COMMITS} -o outgoing \
|
||||
--cover-letter
|
||||
@end example
|
||||
|
||||
@quotation Note
|
||||
@code{git format-patch} accepts a wide range of
|
||||
@uref{https://git-scm.com/docs/gitrevisions, revision range} specifiers.
|
||||
For example, if you are working in a branch, you could select all commits
|
||||
in your branch starting at @code{master}.
|
||||
|
||||
@example
|
||||
$ git format-patch master..@var{MY_BRANCH} -o outgoing \
|
||||
--cover-letter
|
||||
@end example
|
||||
@end quotation
|
||||
|
||||
We can now send @emph{just} the cover letter to the
|
||||
@email{guix-patches@@gnu.org} address, which will create an issue
|
||||
that we can send the rest of the patches to.
|
||||
|
||||
@example
|
||||
$ git send-email outgoing/0000-cover-letter.patch --annotate
|
||||
$ rm outgoing/0000-cover-letter.patch # we don't want to resend it!
|
||||
@end example
|
||||
|
||||
Ensure you edit the email to add an appropriate subject line and
|
||||
blurb before sending it. Note the automatically generated shortlog
|
||||
and diffstat below the blurb.
|
||||
|
||||
Once the Debbugs mailer has replied to your cover letter email, you
|
||||
can send the actual patches to the newly-created issue address.
|
||||
|
||||
@example
|
||||
$ git send-email outgoing/*.patch --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org
|
||||
$ rm -rf outgoing # we don't need these anymore
|
||||
@end example
|
||||
|
||||
Thankfully, this @command{git format-patch} dance is not necessary
|
||||
to send an amended patch series, since an issue already exists for
|
||||
the patchset.
|
||||
|
||||
@example
|
||||
$ git send-email -@var{NUMBER_COMMITS} -v@var{REVISION} \
|
||||
--to=@var{ISSUE_NUMBER}@@debbugs.gnu.org
|
||||
@end example
|
||||
|
||||
If need be, you may use @option{--cover-letter --annotate} to send
|
||||
another cover letter, e.g. for explaining what's changed since the last
|
||||
revision, and why these changes are necessary.
|
||||
|
||||
@node Tracking Bugs and Changes
|
||||
@section Tracking Bugs and Changes
|
||||
|
||||
@@ -2204,26 +2352,31 @@ patch submissions and topic branches.
|
||||
* The Issue Tracker:: The official bug and patch tracker.
|
||||
* Managing Patches and Branches:: How changes to Guix are managed.
|
||||
* Debbugs User Interfaces:: Ways to interact with Debbugs.
|
||||
* Debbugs Usertags:: Tag reports with custom labels.
|
||||
* Cuirass Build Notifications:: Be alerted of any breakage via RSS feeds.
|
||||
@end menu
|
||||
|
||||
@node The Issue Tracker
|
||||
@subsection The Issue Tracker
|
||||
|
||||
@cindex email workflow, deprecated
|
||||
@cindex issue tracker, for the email workflow
|
||||
@cindex bug reports, tracking
|
||||
@cindex patch submissions, tracking
|
||||
@cindex issue tracking
|
||||
@cindex Debbugs, issue tracking system
|
||||
Bug reports (@dfn{issues}) and patch submissions (@dfn{pull requests})
|
||||
are currently tracked at the @uref{https://codeberg.org/guix/guix,
|
||||
project's home at Codeberg}.
|
||||
|
||||
Before January 1st, 2026, bug reports and patches were tracked using the
|
||||
Debbugs instance at @uref{https://bugs.gnu.org}, which can also be
|
||||
browsed at @uref{https://issues.guix.gnu.org}. This has been
|
||||
discontinued and Codeberg is now the sole option to report new bugs and
|
||||
propose new changes@footnote{Check out
|
||||
Before May 25th, 2025, bug reports and patches were exclusively tracked
|
||||
using the Debbugs instance at @uref{https://bugs.gnu.org}; it may still
|
||||
be used for these purposes until December 31st, 2025, after which
|
||||
Codeberg will become the sole option to report new bugs and propose new
|
||||
changes@footnote{Check out
|
||||
@uref{https://codeberg.org/guix/guix-consensus-documents/src/branch/main/002-codeberg.md,
|
||||
Guix Consensus Document 002} for details on this decision.}.
|
||||
Guix Consensus Document 002} for details on this decision.}. With
|
||||
Debbugs, bug reports are sent by email to @email{bug-guix@@gnu.org} and
|
||||
patches are sent to @email{guix-patches@@gnu.org} (@pxref{Submitting
|
||||
Patches}).
|
||||
|
||||
@node Managing Patches and Branches
|
||||
@subsection Managing Patches and Branches
|
||||
@@ -2335,10 +2488,11 @@ only then should the merge requests be created, as documented earlier.
|
||||
|
||||
@quotation Warning
|
||||
This section is about bug reports and patches sent by email to
|
||||
@uref{https://issues.guix.gnu.org, Debbugs}, which is discontinued.
|
||||
Since January 1st, 2026, bug reports and patches are submitted as issues
|
||||
and pull requests on @uref{https://codeberg.org/guix/guix, Codeberg}.
|
||||
@xref{Submitting Patches}, for more info.
|
||||
@uref{https://issues.guix.gnu.org, Debbugs}. This option is supported
|
||||
until December 31st, 2025, after which
|
||||
@uref{https://codeberg.org/guix/guix, Codeberg} will be the only
|
||||
interface for submitting bug reports and changes. @xref{Submitting
|
||||
Patches}, for more info.
|
||||
@end quotation
|
||||
|
||||
@subsubsection Web interface
|
||||
@@ -2527,6 +2681,63 @@ used.
|
||||
@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on
|
||||
this nifty tool!
|
||||
|
||||
@node Debbugs Usertags
|
||||
@subsection Debbugs Usertags
|
||||
|
||||
@cindex usertags, for debbugs
|
||||
@cindex Debbugs usertags
|
||||
Debbugs provides a feature called @dfn{usertags} that allows any user to
|
||||
tag any bug with an arbitrary label. Bugs can be searched by usertag,
|
||||
so this is a handy way to organize bugs@footnote{The list of usertags is
|
||||
public information, and anyone can modify any user's list of usertags,
|
||||
so keep that in mind if you choose to use this feature.}. If you use
|
||||
Emacs Debbugs, the entry-point to consult existing usertags is the
|
||||
@samp{C-u M-x debbugs-gnu-usertags} procedure. To set a usertag, press
|
||||
@samp{C} while consulting a bug within the *Guix-Patches* buffer opened
|
||||
with @samp{C-u M-x debbugs-gnu-bugs} buffer, then select @code{usertag}
|
||||
and follow the instructions.
|
||||
|
||||
For example, to view all the bug reports (or patches, in the case of
|
||||
@code{guix-patches}) tagged with the usertag @code{powerpc64le-linux}
|
||||
for the user @code{guix}, open a URL like the following in a web
|
||||
browser:
|
||||
@url{https://debbugs.gnu.org/cgi-bin/pkgreport.cgi?tag=powerpc64le-linux;users=guix}.
|
||||
|
||||
For more information on how to use usertags, please refer to the
|
||||
documentation for Debbugs or the documentation for whatever tool you use
|
||||
to interact with Debbugs.
|
||||
|
||||
In Guix, we are experimenting with usertags to keep track of
|
||||
architecture-specific issues, as well as reviewed ones. To facilitate
|
||||
collaboration, all our usertags are associated with the single user
|
||||
@code{guix}. The following usertags currently exist for that user:
|
||||
|
||||
@table @code
|
||||
|
||||
@item powerpc64le-linux
|
||||
The purpose of this usertag is to make it easy to find the issues that
|
||||
matter most for the @code{powerpc64le-linux} system type. Please assign
|
||||
this usertag to bugs or patches that affect @code{powerpc64le-linux} but
|
||||
not other system types. In addition, you may use it to identify issues
|
||||
that for some reason are particularly important for the
|
||||
@code{powerpc64le-linux} system type, even if the issue affects other
|
||||
system types, too.
|
||||
|
||||
@item reproducibility
|
||||
For issues related to reproducibility. For example, it would be
|
||||
appropriate to assign this usertag to a bug report for a package that
|
||||
fails to build reproducibly.
|
||||
|
||||
@item reviewed-looks-good
|
||||
You have reviewed the series and it looks good to you (LGTM).
|
||||
|
||||
@end table
|
||||
|
||||
If you're a committer and you want to add a usertag, just start using it
|
||||
with the @code{guix} user. If the usertag proves useful to you,
|
||||
consider updating this section of the manual so that others will know
|
||||
what your usertag means.
|
||||
|
||||
@node Cuirass Build Notifications
|
||||
@subsection Cuirass Build Notifications
|
||||
|
||||
@@ -3028,7 +3239,7 @@ to that commit message.
|
||||
|
||||
If you are not a committer, you can help others find a @emph{series} you
|
||||
have reviewed more easily by adding a @code{reviewed-looks-good} usertag
|
||||
for the @code{guix} user.
|
||||
for the @code{guix} user (@pxref{Debbugs Usertags}).
|
||||
|
||||
@node Updating the Guix Package
|
||||
@section Updating the Guix Package
|
||||
|
||||
+27
-51
@@ -22,7 +22,7 @@ Copyright @copyright{} 2020 André Batista@*
|
||||
Copyright @copyright{} 2020 Christine Lemmer-Webber@*
|
||||
Copyright @copyright{} 2021 Joshua Branson@*
|
||||
Copyright @copyright{} 2022, 2023 Maxim Cournoyer@*
|
||||
Copyright @copyright{} 2023--2026 Ludovic Courtès@*
|
||||
Copyright @copyright{} 2023-2025 Ludovic Courtès@*
|
||||
Copyright @copyright{} 2023 Thomas Ieong@*
|
||||
Copyright @copyright{} 2024 Florian Pelz@*
|
||||
Copyright @copyright{} 2025 45mg@*
|
||||
@@ -77,9 +77,8 @@ Italian (@pxref{Top,,, guix-cookbook.it, Ricettario di GNU Guix}),
|
||||
Brazilian Portuguese (@pxref{Top,,, guix-cookbook.pt_BR,
|
||||
Livro de receitas do GNU Guix}), Russian (@pxref{Top,,, guix-cookbook.ru,
|
||||
GNU Guix Рецепты}), Slovak (@pxref{Top,,, guix-cookbook.sk,
|
||||
Receptár GNU Guix}), Swedish (@pxref{Top,,, guix-cookbook.sv,
|
||||
Kokbok för GNU Guix}), and Tamil (@pxref{Top,,, guix-cookbook.ta,
|
||||
GNU Guix கையேடு}). If you would like to translate
|
||||
Receptár GNU Guix}), and Swedish (@pxref{Top,,, guix-cookbook.sv,
|
||||
Kokbok för GNU Guix}). If you would like to translate
|
||||
this document in your native language, consider joining
|
||||
@uref{https://translate.codeberg.org/projects/guix/documentation-cookbook,
|
||||
Weblate} (@pxref{Translating Guix,,, guix, GNU Guix Reference
|
||||
@@ -293,7 +292,7 @@ Examples of valid expressions:
|
||||
@result{} 17
|
||||
|
||||
(display (string-append "Hello " "Guix" "\n"))
|
||||
@print{} Hello Guix
|
||||
@print{} Hello Guix!
|
||||
@result{} #<unspecified>
|
||||
@end lisp
|
||||
|
||||
@@ -505,6 +504,10 @@ selection of documents to learn more about Scheme:
|
||||
@uref{https://spritely.institute/static/papers/scheme-primer.html, @i{A
|
||||
Scheme Primer}}, by Christine Lemmer-Webber and the Spritely Institute.
|
||||
|
||||
@item
|
||||
@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm,
|
||||
@i{Scheme at a Glance}}, by Steve Litt.
|
||||
|
||||
@item
|
||||
@c There used to be a copy at mitpress.mit.edu but it vanished.
|
||||
@uref{https://sarabander.github.io/sicp/,
|
||||
@@ -1734,8 +1737,8 @@ At this stage, the package @code{cargo-audit} is buildable.
|
||||
|
||||
@item
|
||||
Finally we'll unbundle the vendored dependencies. The lockfile importer
|
||||
inserts @code{TODO REVIEW:} comments for libraries with high probability
|
||||
of bundled dependencies. @code{cargo-build-system} also performs
|
||||
inserts @code{TODO:} comments for libraries with high probability of
|
||||
bundled dependencies. @code{cargo-build-system} also performs
|
||||
additional check for binary files in its
|
||||
@code{check-for-pregenerated-files} phase, which usually indicates
|
||||
bundling:
|
||||
@@ -1909,11 +1912,11 @@ Don't forget to modify all workspace members in @code{(gnu packages
|
||||
rust-crates)}:
|
||||
|
||||
@lisp
|
||||
(define rust-pipewire-0.8.0.fd3d8f7 package:rust-pipewire-0.8.0.fd3d8f7)
|
||||
(define rust-pipewire-sys-0.8.0.fd3d8f7 package:rust-pipewire-0.8.0.fd3d8f7)
|
||||
(define rust-pipewire-0.8.0.fd3d8f7 rust-pipewire-0.8.0.fd3d8f7)
|
||||
(define rust-pipewire-sys-0.8.0.fd3d8f7 rust-pipewire-0.8.0.fd3d8f7)
|
||||
@dots{}
|
||||
(define rust-libspa-0.8.0.fd3d8f7 package:rust-pipewire-0.8.0.fd3d8f7)
|
||||
(define rust-libspa-sys-0.8.0.fd3d8f7 package:rust-pipewire-0.8.0.fd3d8f7)
|
||||
(define rust-libspa-0.8.0.fd3d8f7 rust-pipewire-0.8.0.fd3d8f7)
|
||||
(define rust-libspa-sys-0.8.0.fd3d8f7 rust-pipewire-0.8.0.fd3d8f7)
|
||||
@end lisp
|
||||
|
||||
@node Using Rust Libraries in Other Build Systems
|
||||
@@ -5958,15 +5961,6 @@ installation instructions (@pxref{Binary Installation,,, guix, GNU Guix
|
||||
Reference Manual}). Thanks to the installation script, this should be
|
||||
quick. Once installation is complete, we need to make some adjustments.
|
||||
|
||||
@quotation Note
|
||||
Starting from Guix version 1.5.0, @command{guix-daemon} runs without
|
||||
root privileges by default; previously installed systems can also be
|
||||
migrated to this ``rootless'' mode (@pxref{Build Environment Setup,,,
|
||||
guix, GNU Guix Reference Manual}). Learn more about this change in a
|
||||
@uref{https://hpc.guix.info/blog/2025/03/build-daemon-drops-its-privileges/,
|
||||
2025 blog post}.
|
||||
@end quotation
|
||||
|
||||
Since we want @code{guix-daemon} to be reachable not just from the head
|
||||
node but also from the compute nodes, we need to arrange so that it
|
||||
listens for connections over TCP/IP. To do that, we'll edit the systemd
|
||||
@@ -5981,12 +5975,13 @@ something like this:
|
||||
@ifnothtml
|
||||
@example
|
||||
ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
|
||||
--build-users-group=guixbuild \
|
||||
--listen=/var/guix/daemon-socket/socket --listen=0.0.0.0
|
||||
@end example
|
||||
@end ifnothtml
|
||||
@ifhtml
|
||||
@example
|
||||
ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0
|
||||
ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --listen=/var/guix/daemon-socket/socket --listen=0.0.0.0
|
||||
@end example
|
||||
@end ifhtml
|
||||
|
||||
@@ -6022,51 +6017,32 @@ The @file{/gnu/store} directory can be exported read-only since only
|
||||
package}; thus, to allow users to install packages with @code{guix
|
||||
package}, this must be read-write.
|
||||
|
||||
@quotation Note
|
||||
Although it is rarely used, Guix allows for the creation of profiles in
|
||||
non-default locations. For instance, @code{guix package -p
|
||||
~/dev/python-dev -i python} installs Python in a profile reachable from
|
||||
the @code{~/dev/python-dev} symlink instead of the default
|
||||
@file{~/.guix-profile}.
|
||||
|
||||
To make sure that
|
||||
Users can create as many profiles as they like in addition to the
|
||||
default profile, @file{~/.guix-profile}. For instance, @code{guix
|
||||
package -p ~/dev/python-dev -i python} installs Python in a profile
|
||||
reachable from the @code{~/dev/python-dev} symlink. To make sure that
|
||||
this profile is protected from garbage collection---i.e., that Python
|
||||
will not be removed from @file{/gnu/store} while this profile exists---,
|
||||
@emph{home directories should be mounted on the head node} as well so
|
||||
that @code{guix-daemon} knows about these non-standard profiles and
|
||||
avoids collecting software they refer to.
|
||||
|
||||
@c The following paragraph refers to Guix commit
|
||||
@c d12c4452a49b355369636de1dfc766b5bad6437b, which changed
|
||||
@c 'time-machine' and 'shell' to store GC roots under /var/guix.
|
||||
Doing so is optional though: profiles created by default by
|
||||
@command{guix package}, @command{guix pull}, and @command{guix shell}
|
||||
are all stored under @file{/var/guix} and thus protected from garbage
|
||||
collection.
|
||||
@end quotation
|
||||
|
||||
It may be a good idea to periodically remove unused bits from
|
||||
@file{/gnu/store} by running @command{guix gc} (@pxref{Invoking guix
|
||||
gc,,, guix, GNU Guix Reference Manual}). This can be done by adding a
|
||||
systemd timer based on the one shipped with Guix:
|
||||
crontab entry on the head node:
|
||||
|
||||
@example
|
||||
cp \
|
||||
/var/guix/profiles/per-user/root/current-guix/lib/systemd/system/guix-gc.* \
|
||||
/etc/systemd/system
|
||||
root@@master# crontab -e
|
||||
@end example
|
||||
|
||||
Make sure to edit @file{guix-gc.service} and @file{guix-gc.timer} under
|
||||
@file{/etc/systemd/system} to adjust the parameters to your need: timer
|
||||
frequency, amount of free space, and whether to delete user's old
|
||||
generations. We recommend executing @command{guix gc -F50G} every
|
||||
night, which will ensure that at least 50@tie{}GiB are available,
|
||||
without deleting user generations. Once you're satisfied, you can start
|
||||
the timer:
|
||||
@noindent
|
||||
... with something like this:
|
||||
|
||||
@example
|
||||
systemctl daemon-reload
|
||||
systemctl start guix-gc.timer
|
||||
# Every day at 5AM, run the garbage collector to make sure
|
||||
# at least 10 GB are free on /gnu/store.
|
||||
0 5 * * 1 /usr/local/bin/guix gc -F10G
|
||||
@end example
|
||||
|
||||
We're done with the head node! Let's look at compute nodes now.
|
||||
|
||||
+235
-1105
File diff suppressed because it is too large
Load Diff
+2
-4
@@ -2,7 +2,7 @@
|
||||
# Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual.
|
||||
# Further modified by Tomas Volf <~@wolfsden.cz>.
|
||||
|
||||
htmlxrefversion=2026-01-22.12; # UTC
|
||||
htmlxrefversion=2025-08-31.16; # UTC
|
||||
|
||||
# Copyright 2010-2020, 2022 Free Software Foundation, Inc.
|
||||
#
|
||||
@@ -416,7 +416,7 @@ guile-rpc mono ${GS}/guile-rpc/manual/guile-rpc.html
|
||||
guile-rpc node ${GS}/guile-rpc/manual/html_node/
|
||||
|
||||
GUIX_ROOT = https://guix.gnu.org
|
||||
GUIX = ${GUIX_ROOT}/manual/devel
|
||||
GUIX = ${GUIX_ROOT}/manual
|
||||
guix.de mono ${GUIX}/de/guix.de.html
|
||||
guix.de node ${GUIX}/de/html_node/
|
||||
guix.es mono ${GUIX}/es/guix.es.html
|
||||
@@ -453,8 +453,6 @@ GUIX_COOKBOOK = ${GUIX_ROOT}/cookbook
|
||||
guix-cookbook.sk node ${GUIX_COOKBOOK}/sk/html_node/
|
||||
guix-cookbook.sv mono ${GUIX_COOKBOOK}/sv/guix-cookbook.sv.html
|
||||
guix-cookbook.sv node ${GUIX_COOKBOOK}/sv/html_node/
|
||||
guix-cookbook.ta mono ${GUIX_COOKBOOK}/ta/guix-cookbook.ta.html
|
||||
guix-cookbook.ta node ${GUIX_COOKBOOK}/ta/html_node/
|
||||
guix-cookbook mono ${GUIX_COOKBOOK}/en/guix-cookbook.html
|
||||
guix-cookbook node ${GUIX_COOKBOOK}/en/html_node/
|
||||
guix-cookbook.zh_CN mono ${GUIX_COOKBOOK}/zh-cn/guix-cookbook.zh_CN.html
|
||||
|
||||
+1
-2
@@ -26,7 +26,7 @@
|
||||
|
||||
# If adding a language, update the following variables, and info_TEXINFOS.
|
||||
MANUAL_LANGUAGES = de es fr it pt_BR ru zh_CN
|
||||
COOKBOOK_LANGUAGES = de es fr it ko pt_BR ru sk sv ta zh_CN
|
||||
COOKBOOK_LANGUAGES = de es fr it ko pt_BR ru sk sv zh_CN
|
||||
|
||||
# Arg1: A list of languages codes.
|
||||
# Arg2: The file name stem.
|
||||
@@ -52,7 +52,6 @@ info_TEXINFOS = %D%/guix.texi \
|
||||
%D%/guix-cookbook.ru.texi \
|
||||
%D%/guix-cookbook.sk.texi \
|
||||
%D%/guix-cookbook.sv.texi \
|
||||
%D%/guix-cookbook.ta.texi \
|
||||
%D%/guix-cookbook.zh_CN.texi
|
||||
|
||||
%C%_guix_TEXINFOS = \
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
abi <abi/4.0>,
|
||||
|
||||
include <tunables/global>
|
||||
include <tunables/guix>
|
||||
|
||||
# There’s no point in confining the guix executable, since it can run
|
||||
# any user code and so everything is expected. We just need to
|
||||
# explicitly enable userns for systems with the
|
||||
# kernel.apparmor_restrict_unprivileged_userns sysctl.
|
||||
profile guix @{guix_storedir}/{*-guix-command,*-guix-*/bin/guix} flags=(unconfined) {
|
||||
userns,
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
abi <abi/4.0>,
|
||||
|
||||
include <tunables/global>
|
||||
include <tunables/guix>
|
||||
|
||||
profile guix-daemon @{guix_storedir}/*-{guix-daemon,guix}-*/bin/guix-daemon flags=(enforce,attach_disconnected.path=/disconnected) {
|
||||
include <abstractions/base>
|
||||
|
||||
userns,
|
||||
signal,
|
||||
capability sys_admin,
|
||||
capability net_admin,
|
||||
capability sys_chroot,
|
||||
capability setgid,
|
||||
capability chown,
|
||||
network dgram,
|
||||
umount,
|
||||
mount,
|
||||
pivot_root,
|
||||
# Paths inside build chroot
|
||||
/real-root/ w,
|
||||
/ w,
|
||||
|
||||
@{guix_localstatedir}/guix/** rwk,
|
||||
/var/log/guix/** w,
|
||||
owner @{PROC}/@{pid}/{fd/,environ} r,
|
||||
owner @{PROC}/@{pid}/oom_score_adj w,
|
||||
owner @{PROC}/@{pid}/uid_map rw,
|
||||
owner @{PROC}/@{pid}/gid_map rw,
|
||||
owner @{PROC}/@{pid}/setgroups w,
|
||||
@{guix_storedir}/ r,
|
||||
@{guix_storedir}/** rwlmk,
|
||||
@{guix_storedir}/*/bin/guile cx -> guix-builder,
|
||||
@{guix_storedir}/*-guix-command cx -> guix-helper,
|
||||
@{guix_storedir}/*-guix-*/bin/guix cx -> guix-helper,
|
||||
@{etc_rw}/nsswitch.conf r,
|
||||
@{etc_rw}/passwd r,
|
||||
@{etc_rw}/group r,
|
||||
owner /tmp/** rwl,
|
||||
owner /var/tmp/** rwl,
|
||||
|
||||
/usr/bin/newgidmap Ux,
|
||||
|
||||
# Site-specific additions and overrides. See local/README for details.
|
||||
include if exists <local/guix-daemon>
|
||||
|
||||
profile guix-builder flags=(enforce,attach_disconnected.path=/disconnected) {
|
||||
include <abstractions/base>
|
||||
|
||||
signal (receive),
|
||||
|
||||
@{guix_storedir}/** rwlmkux,
|
||||
|
||||
owner /tmp/** rw,
|
||||
|
||||
@{PROC}/@{pid}/fd/ r,
|
||||
|
||||
/disconnected/** rw,
|
||||
}
|
||||
|
||||
# This is for any time guix is called by the daemon as a helper:
|
||||
# - guix download
|
||||
# - guix discover
|
||||
# - guix gc --list-busy
|
||||
# - probably more?
|
||||
profile guix-helper flags=(enforce,attach_disconnected.path=/disconnected) {
|
||||
include <abstractions/base>
|
||||
include <abstractions/nameservice>
|
||||
|
||||
signal (receive),
|
||||
ptrace (read) peer=guix-daemon,
|
||||
|
||||
/disconnected/run/dbus/system_bus_socket rw,
|
||||
dbus (send, receive),
|
||||
@{guix_localstatedir}/guix/discover/ rw,
|
||||
@{guix_localstatedir}/guix/discover/* rw,
|
||||
|
||||
@{guix_localstatedir}/guix/substitute/ rw,
|
||||
@{guix_localstatedir}/guix/substitute/** rwk,
|
||||
|
||||
@{guix_sysconfdir}/guix/** r,
|
||||
|
||||
@{guix_storedir}/** rwlmix,
|
||||
|
||||
@{PROC}/ r,
|
||||
owner @{PROC}/@{pid}/{fd/,environ} r,
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
@{guix_storedir} = @storedir@
|
||||
@{guix_sysconfdir} = @guix_sysconfdir@
|
||||
@{guix_localstatedir} = @guix_localstatedir@
|
||||
|
||||
include if exists <tunables/guix.d>
|
||||
+16
-17
@@ -303,23 +303,22 @@ corresponding to the top-level definition containing the staged changes."
|
||||
(or (equal? old-values new-values)
|
||||
(let ((removed (lset-difference equal? old-values new-values))
|
||||
(added (lset-difference equal? new-values old-values)))
|
||||
(unless (and (null? added) (null? removed))
|
||||
(format port
|
||||
"[~a]: ~a~%" field
|
||||
(break-string
|
||||
;; A dependency can be a list of (pkg output).
|
||||
(match (list (map object->string removed)
|
||||
(map object->string added))
|
||||
((() added)
|
||||
(format #f "Add ~a."
|
||||
(listify added)))
|
||||
((removed ())
|
||||
(format #f "Remove ~a."
|
||||
(listify removed)))
|
||||
((removed added)
|
||||
(format #f "Remove ~a; add ~a."
|
||||
(listify removed)
|
||||
(listify added)))))))))))
|
||||
(format port
|
||||
"[~a]: ~a~%" field
|
||||
(break-string
|
||||
;; A dependency can be a list of (pkg output).
|
||||
(match (list (map object->string removed)
|
||||
(map object->string added))
|
||||
((() added)
|
||||
(format #f "Add ~a."
|
||||
(listify added)))
|
||||
((removed ())
|
||||
(format #f "Remove ~a."
|
||||
(listify removed)))
|
||||
((removed added)
|
||||
(format #f "Remove ~a; add ~a."
|
||||
(listify removed)
|
||||
(listify added))))))))))
|
||||
'(inputs propagated-inputs native-inputs)))
|
||||
|
||||
(define* (add-commit-message file-name variable-name
|
||||
|
||||
+1
-37
@@ -175,10 +175,6 @@
|
||||
(file (execute
|
||||
execute_no_trans read write open entrypoint map
|
||||
getattr link unlink)))
|
||||
;; Needed to execute the 'newgidmap' helper.
|
||||
(allow guix_daemon_t
|
||||
bin_t
|
||||
(file (execute execute_no_trans map)))
|
||||
|
||||
;; Remounting /gnu/store read-write.
|
||||
(allow guix_daemon_t
|
||||
@@ -189,9 +185,6 @@
|
||||
(allow guix_daemon_t
|
||||
root_t
|
||||
(dir (mounton)))
|
||||
(allow init_t
|
||||
guix_daemon.guix_store_content_t
|
||||
(dir (mounton)))
|
||||
(allow guix_daemon_t
|
||||
fs_t
|
||||
(filesystem (getattr)))
|
||||
@@ -326,7 +319,7 @@
|
||||
map
|
||||
getattr setattr
|
||||
unlink
|
||||
open read write append)))
|
||||
open read write)))
|
||||
(allow guix_daemon_t
|
||||
guix_daemon_conf_t
|
||||
(lnk_file (create getattr rename unlink read)))
|
||||
@@ -368,14 +361,6 @@
|
||||
self
|
||||
(netlink_route_socket (bind create getattr nlmsg_read read write getopt)))
|
||||
|
||||
;; Allow use of user namespaces
|
||||
(allow guix_daemon_t
|
||||
self
|
||||
(cap_userns (setgid sys_admin net_admin sys_chroot)))
|
||||
(allow guix_daemon_t
|
||||
self
|
||||
(user_namespace (create)))
|
||||
|
||||
;; Socket operations
|
||||
(allow guix_daemon_t
|
||||
guix_daemon_socket_t
|
||||
@@ -455,27 +440,6 @@
|
||||
vnc_port_t
|
||||
(tcp_socket (name_bind)))
|
||||
|
||||
;; 'guix gc' needs to go through /proc entries for all processes that are
|
||||
;; running. Strictly speaking, it means guix-daemon needs access to all
|
||||
;; process types in the SELinux policy. In practice, only processes from
|
||||
;; programs in the /gnu/store are relevant for finding roots for garbage
|
||||
;; collection. Since Guix currently doesn't install any SELinux policy for
|
||||
;; its packages, we can assume that all the processes it needs to access run
|
||||
;; as unconfined_t.
|
||||
;;
|
||||
;; FIXME: This doesn't stop 'guix gc' from generating a lot of unnecessary
|
||||
;; AVC denied audit messages. Perhaps guix-daemon could test whether it has
|
||||
;; access to the proc entry before trying to access it?
|
||||
(allow guix_daemon_t
|
||||
unconfined_t
|
||||
(dir (search)))
|
||||
(allow guix_daemon_t
|
||||
unconfined_t
|
||||
(file (read)))
|
||||
(allow guix_daemon_t
|
||||
unconfined_t
|
||||
(lnk_file (read)))
|
||||
|
||||
;; I guess sometimes it needs random numbers
|
||||
(allow guix_daemon_t
|
||||
random_device_t
|
||||
|
||||
@@ -14,12 +14,6 @@ ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daem
|
||||
--substitute-urls='@GUIX_SUBSTITUTE_URLS@'
|
||||
Environment='GUIX_STATE_DIRECTORY=@localstatedir@/guix' 'GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
|
||||
|
||||
# Stop the gnu-store.mount so that the daemon can capture the store as
|
||||
# read-write in its private mount namespace.
|
||||
# See <https://codeberg.org/guix/guix/issues/4744>.
|
||||
ExecStartPre=-+systemctl stop gnu-store.mount
|
||||
ExecStartPost=-+systemctl start gnu-store.mount --no-block
|
||||
|
||||
# Run under a dedicated unprivileged user account.
|
||||
User=guix-daemon
|
||||
|
||||
|
||||
+18
-102
@@ -17,7 +17,6 @@
|
||||
# Copyright © 2024 Tomas Volf <~@wolfsden.cz>
|
||||
# Copyright © 2024 Richard Sent <richard@freakingpenguin.com>
|
||||
# Copyright © 2025 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
# Copyright © 2025 Noé Lopez <noelopez@free.fr>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
@@ -106,12 +105,10 @@ DEBUG=0
|
||||
GNU_URL="https://ftpmirror.gnu.org/gnu/guix/"
|
||||
|
||||
# The following associative array holds set of GPG keys used to sign the
|
||||
# releases, keyed by their corresponding Codeberg user name.
|
||||
# releases, keyed by their corresponding Savannah user ID.
|
||||
declare -A GPG_SIGNING_KEYS
|
||||
GPG_SIGNING_KEYS["civodul"]=3CE464558A84FDC69DB40CFB090B11993D9AEBB5 # ludo
|
||||
GPG_SIGNING_KEYS["apteryx"]=27D586A4F8900854329FF09F1260E46482E63562 # maxim
|
||||
GPG_SIGNING_KEYS["efraim"]=A28BF40C3E551372662D14F741AAE7DCCA3D8351 # efraim
|
||||
PUBLIC_KEYSERVERS="keys.openpgp.org pgpkeys.eu keyserver.ubuntu.com"
|
||||
GPG_SIGNING_KEYS[15145]=3CE464558A84FDC69DB40CFB090B11993D9AEBB5 # ludo
|
||||
GPG_SIGNING_KEYS[127547]=27D586A4F8900854329FF09F1260E46482E63562 # maxim
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
#+UTILITIES
|
||||
@@ -206,7 +203,6 @@ chk_gpg_keyring()
|
||||
|
||||
for user_id in "${!GPG_SIGNING_KEYS[@]}"; do
|
||||
gpg_key_id=${GPG_SIGNING_KEYS[$user_id]}
|
||||
codeberg_username=$user_id
|
||||
# Without --dry-run this command will create a ~/.gnupg owned by root on
|
||||
# systems where gpg has never been used, causing errors and confusion.
|
||||
if gpg --dry-run --list-keys "$gpg_key_id" >/dev/null 2>&1; then
|
||||
@@ -215,39 +211,20 @@ chk_gpg_keyring()
|
||||
if prompt_yes_no "${INF}The following OpenPGP public key is \
|
||||
required to verify the Guix binary signature: $gpg_key_id.
|
||||
Would you like me to fetch it for you?"; then
|
||||
if wget "https://codeberg.org/$codeberg_username.gpg" \
|
||||
--tries=1 --timeout=30 --no-verbose -O- | gpg --import -; then
|
||||
continue
|
||||
fi
|
||||
|
||||
key_obtained=false
|
||||
# Try to fetch keys from an available keyserver
|
||||
for key_server in $PUBLIC_KEYSERVERS; do
|
||||
if gpg --keyserver $key_server --recv-key $gpg_key_id; then
|
||||
key_obtained=true
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if $key_obtained; then
|
||||
# Use a reasonable time-out here so users don't report silent
|
||||
# ‘freezes’ when Savannah goes out to lunch, as has happened.
|
||||
if wget "https://sv.gnu.org/people/viewgpg.php?user_id=$user_id" \
|
||||
--timeout=30 --no-verbose -O- | gpg --import -; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
# If we reach this point, the key is (still) missing. Report further
|
||||
# missing keys, if any, but then abort the installation.
|
||||
_err "Missing OpenPGP public key ($gpg_key_id).
|
||||
Fetch it with codeberg username:
|
||||
Fetch it with this command:
|
||||
|
||||
wget \"https://codeberg.org/$codeberg_username.gpg\" -O - | \
|
||||
sudo -i gpg --import -
|
||||
|
||||
If this fails, try to fetch it via a keyserver:
|
||||
|
||||
for key_server in $PUBLIC_KEYSERVERS; do
|
||||
if sudo -i gpg --keyserver $key_server --recv-key $gpg_key_id; then
|
||||
break
|
||||
fi
|
||||
done"
|
||||
wget \"https://sv.gnu.org/people/viewgpg.php?user_id=$user_id\" -O - | \
|
||||
sudo -i gpg --import -"
|
||||
exit_flag=yes
|
||||
done
|
||||
if [ "$exit_flag" = yes ]; then
|
||||
@@ -778,7 +755,7 @@ sys_create_init_profile()
|
||||
cat <<"EOF" > /etc/profile.d/zzz-guix.sh
|
||||
# Explicitly initialize XDG base directory variables to ease compatibility
|
||||
# with Guix System: see <https://issues.guix.gnu.org/56050#3>.
|
||||
export XCURSOR_PATH="${XCURSOR_PATH:-$HOME/.local/share/icons:$HOME/.icons:/usr/local/share/icons:/usr/share/icons}"
|
||||
export XCURSOR_PATH="${XCURSOR_PATH:-/usr/local/share/icons:/usr/share/icons}"
|
||||
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
|
||||
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
|
||||
@@ -794,8 +771,12 @@ export PATH="$GUIX_PROFILE/bin${PATH:+:}$PATH"
|
||||
# info and man readers. When INFOPATH is unset, add a trailing colon so Emacs
|
||||
# searches 'Info-default-directory-list'. When MANPATH is unset, add a
|
||||
# trailing colon so the system default search path is used.
|
||||
export INFOPATH="$GUIX_PROFILE/share/info:${INFOPATH:-}"
|
||||
export MANPATH="$GUIX_PROFILE/share/man:${MANPATH:-}"
|
||||
export INFOPATH="$GUIX_PROFILE/share/info:$INFOPATH"
|
||||
export MANPATH="$GUIX_PROFILE/share/man:$MANPATH"
|
||||
# Expose the latest Guix modules to Guile so guix shell and repls spawned by
|
||||
# e.g. Geiser work out of the box.
|
||||
export GUILE_LOAD_PATH="$GUIX_PROFILE/share/guile/site/3.0${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
|
||||
export GUILE_LOAD_COMPILED_PATH="$GUIX_PROFILE/lib/guile/3.0/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
|
||||
|
||||
# User's default profile, if it exists
|
||||
GUIX_PROFILE="$HOME/.guix-profile"
|
||||
@@ -817,11 +798,6 @@ if [ -L "$GUIX_PROFILE" ]; then
|
||||
*$GUIX_PROFILE/share/man*) ;;
|
||||
*) export MANPATH="$GUIX_PROFILE/share/man:$MANPATH"
|
||||
esac
|
||||
|
||||
case $XDG_DATA_DIRS in
|
||||
*$GUIX_PROFILE/share*) ;;
|
||||
*) export XDG_DATA_DIRS="$GUIX_PROFILE/share:$XDG_DATA_DIRS"
|
||||
esac
|
||||
fi
|
||||
|
||||
# NOTE: Guix Home handles its own profile initialization in ~/.profile. See
|
||||
@@ -916,64 +892,6 @@ sys_maybe_setup_selinux()
|
||||
restorecon -R /gnu /var/guix
|
||||
}
|
||||
|
||||
sys_maybe_setup_apparmor()
|
||||
{
|
||||
if ! [ -f /sys/module/apparmor/parameters/enabled ]
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
if ! command -v apparmor_parser &> /dev/null
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
prompt_yes_no "Install AppArmor profile that might be required to run guix-daemon?" \
|
||||
|| return 0
|
||||
|
||||
local var_guix=/var/guix/profiles/per-user/root/current-guix
|
||||
local apparmor_sources="${var_guix}/etc/apparmor.d/"
|
||||
|
||||
if ! [ -d "$apparmor_sources" ]
|
||||
then
|
||||
_err "This version of Guix doesn’t contain AppArmor profiles."
|
||||
return
|
||||
fi
|
||||
|
||||
cp -f -t /etc/apparmor.d/tunables "$apparmor_sources/tunables/guix"
|
||||
cp -f -t /etc/apparmor.d "$apparmor_sources/guix-daemon"
|
||||
cp -f -t /etc/apparmor.d "$apparmor_sources/guix"
|
||||
apparmor_parser --warn=all -r /etc/apparmor.d/guix-daemon
|
||||
apparmor_parser --warn=all -r /etc/apparmor.d/guix
|
||||
|
||||
_msg_pass "apparmor profiles installed and loaded"
|
||||
}
|
||||
|
||||
sys_delete_apparmor_profiles()
|
||||
{
|
||||
# Not a big deal if the apparmor_parser commands fail as they only apply
|
||||
# for the current boot, we still want to go on and remove the files.
|
||||
if [ -f "/etc/apparmor.d/guix" ]
|
||||
then
|
||||
_msg_info "removing /etc/apparmor.d/guix"
|
||||
apparmor_parser -R /etc/apparmor.d/guix || true
|
||||
rm -f "/etc/apparmor.d/guix"
|
||||
fi
|
||||
|
||||
if [ -f "/etc/apparmor.d/guix-daemon" ]
|
||||
then
|
||||
_msg_info "removing /etc/apparmor.d/guix-daemon"
|
||||
apparmor_parser -R /etc/apparmor.d/guix-daemon || true
|
||||
rm -f "/etc/apparmor.d/guix-daemon"
|
||||
fi
|
||||
|
||||
if [ -f "/etc/apparmor.d/tunables/guix" ]
|
||||
then
|
||||
_msg_info "removing /etc/apparmor.d/tunables/guix"
|
||||
rm -f "/etc/apparmor.d/tunables/guix"
|
||||
fi
|
||||
}
|
||||
|
||||
sys_delete_init_profile()
|
||||
{
|
||||
_msg_info "removing /etc/profile.d/zzz-guix.sh"
|
||||
@@ -1051,6 +969,7 @@ main_install()
|
||||
chk_init_sys
|
||||
add_init_sys_require
|
||||
chk_require "${REQUIRE[@]}"
|
||||
chk_gpg_keyring
|
||||
chk_sys_arch
|
||||
chk_sys_nscd
|
||||
chk_existing
|
||||
@@ -1061,7 +980,6 @@ main_install()
|
||||
tmp_path="$(mktemp -t -d guix.XXXXXX)"
|
||||
|
||||
if [ -z "${GUIX_BINARY_FILE_NAME}" ]; then
|
||||
chk_gpg_keyring
|
||||
guix_get_bin_list "${GNU_URL}"
|
||||
guix_get_bin "${GNU_URL}" "${BIN_VER}" "$tmp_path"
|
||||
GUIX_BINARY_FILE_NAME=${BIN_VER}.tar.xz
|
||||
@@ -1076,7 +994,6 @@ main_install()
|
||||
sys_create_store "${GUIX_BINARY_FILE_NAME}" "${tmp_path}"
|
||||
sys_create_build_user
|
||||
sys_maybe_setup_selinux
|
||||
sys_maybe_setup_apparmor
|
||||
sys_enable_guix_daemon
|
||||
sys_authorize_build_farms
|
||||
sys_create_init_profile
|
||||
@@ -1110,7 +1027,6 @@ main_uninstall()
|
||||
sys_delete_guix_daemon
|
||||
# stop people from accessing their profiles.
|
||||
sys_delete_user_profiles
|
||||
sys_delete_apparmor_profiles
|
||||
# kill guix off all the guts of guix
|
||||
sys_delete_store
|
||||
# clean up the system
|
||||
|
||||
@@ -71,21 +71,18 @@ TARGET."
|
||||
"connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups"
|
||||
"linux-libre" "grub-hybrid")))
|
||||
|
||||
(define (%system-gui-packages target)
|
||||
(define %system-gui-packages
|
||||
;; Key packages proposed by the Guix System installer.
|
||||
(append (map specification->package
|
||||
'(;; build system `python' does not support cross builds
|
||||
;"gnome" "xfce" "mate" "openbox"
|
||||
;"gnome" "xfce" "mate" "openbox"
|
||||
"awesome"
|
||||
"i3-wm" "i3status" "dmenu" "st"
|
||||
"ratpoison" "xterm"
|
||||
;; build system `emacs' does not support cross builds
|
||||
;"emacs-exwm" "emacs-desktop-environment"
|
||||
;"emacs-exwm" "emacs-desktop-environment"
|
||||
"emacs"))
|
||||
;; NOTE: %default-xorg-modules depends on system.
|
||||
(parameterize
|
||||
((%current-target-system target))
|
||||
%default-xorg-modules)))
|
||||
%default-xorg-modules))
|
||||
|
||||
(define %packages-to-cross-build
|
||||
;; Packages that must be cross-buildable from x86_64-linux.
|
||||
@@ -154,8 +151,7 @@ TARGET."
|
||||
;; With a graphical environment:
|
||||
(if (or (target-x86-32? target)
|
||||
(target-aarch64? target))
|
||||
;; %system-gui-packages depends on the system.
|
||||
(%system-gui-packages target)
|
||||
%system-gui-packages
|
||||
'()))))
|
||||
(fold delete (map platform-system->target (systems))
|
||||
'(;; Disable cross-compilation to self:
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; This file returns a manifest containing packages which are needed by the
|
||||
;;; installer.
|
||||
|
||||
(use-modules (guix packages)
|
||||
(gnu packages)
|
||||
((gnu services xorg) #:select (%default-xorg-modules))
|
||||
(guix profiles)
|
||||
(guix utils)
|
||||
(srfi srfi-1))
|
||||
|
||||
(define %desktop-packages
|
||||
(append
|
||||
%default-xorg-modules
|
||||
(map specification->package
|
||||
(list
|
||||
;; etc-service
|
||||
"net-base"
|
||||
"tzdata"
|
||||
;; boot-file-system-utilities-service
|
||||
"e2fsprogs"
|
||||
;; plasma-deskto-sservice-type
|
||||
"plasma"
|
||||
;; gnome-desktop-service
|
||||
"gnome"
|
||||
;; xfce-desktop-service
|
||||
"xfce"
|
||||
;; mate-desktop-service
|
||||
"mate"
|
||||
;; set-xorg-configuration-service
|
||||
"font-alias"
|
||||
"font-misc-misc"
|
||||
"font-adobe75dpi"
|
||||
"xorg-server"
|
||||
;; screen-locker-service
|
||||
"slock"
|
||||
"xlockmore"
|
||||
;; mtp-service
|
||||
"libmtp"
|
||||
;; sane-service
|
||||
"sane"
|
||||
"sane-backends"
|
||||
;; mount-setuid-helpers-service
|
||||
"nfs-utils"
|
||||
"ntfs-3g"
|
||||
;; guix-artwork-service
|
||||
"guix-backgrounds"
|
||||
"guix-icons"
|
||||
;; vte-integration-service
|
||||
"vte"
|
||||
;; network-manager-applet-service
|
||||
"network-manager-applet"
|
||||
;; modem-manager-service
|
||||
"modem-manager"
|
||||
;; usb-modeswitch-service
|
||||
"usb-modeswitch"
|
||||
"usb-modeswitch-data"
|
||||
;; avahi-service
|
||||
"avahi"
|
||||
;; udisks-service
|
||||
"udisks"
|
||||
;; cups-pk-helper-service
|
||||
"cups-pk-helper"
|
||||
;; colord-service
|
||||
"colord"
|
||||
;; geoclue-service
|
||||
"geoclue"
|
||||
;; polkit-service
|
||||
"polkit"
|
||||
;; elogind-service
|
||||
"elogind"
|
||||
;; dbus-service
|
||||
;; ntp-service
|
||||
"ntp"
|
||||
;; alsa-service
|
||||
"alsa-plugins"
|
||||
;; mingetty-service
|
||||
"mingetty"
|
||||
;; etc-bashrc-d-service
|
||||
"bash-completion"
|
||||
;; udev-service
|
||||
"eudev"
|
||||
"lvm2"
|
||||
"alsa-utils"
|
||||
"crda"
|
||||
;; sysctl-service
|
||||
"procps"
|
||||
;; special-files-service
|
||||
"coreutils"
|
||||
"grub-pc"
|
||||
"less"
|
||||
"mg"
|
||||
"nano"
|
||||
"nvi"
|
||||
"man-db"
|
||||
"info-reader"
|
||||
"kbd"
|
||||
"guile-readline"
|
||||
"guile-colorized"
|
||||
"pciutils"
|
||||
"usbutils"
|
||||
"util-linux-with-udev"
|
||||
"kmod"
|
||||
"isc-dhcp"
|
||||
"iproute2"
|
||||
"wget"
|
||||
"nss-certs"
|
||||
"iw"
|
||||
"wireless-tools"
|
||||
"psmisc"
|
||||
"which"
|
||||
"guile"
|
||||
"findutils"
|
||||
"grep"
|
||||
"sed"
|
||||
"diffutils"
|
||||
"patch"
|
||||
"gawk"
|
||||
"tar"
|
||||
"gzip"
|
||||
"bzip2"
|
||||
"lzip"
|
||||
"xz"
|
||||
"zstd"
|
||||
;; packages
|
||||
"sway"
|
||||
"foot"
|
||||
"wmenu"
|
||||
"icewm"
|
||||
"openbox"
|
||||
"awesome"
|
||||
"i3-wm"
|
||||
"i3status"
|
||||
"dmenu"
|
||||
"st"
|
||||
"ratpoison"
|
||||
"xterm"
|
||||
"emacs"
|
||||
"emacs-exwm"
|
||||
"emacs-desktop-environment"))))
|
||||
|
||||
(define %desktop-manifest
|
||||
(manifest
|
||||
;; Some of %SYSTEM-PACKAGES are currently unsupported on some
|
||||
;; systems--e.g., GNOME on 32-bit, due to Rust. Filter them out.
|
||||
(filter-map (lambda (package)
|
||||
(and (supported-package? package (%current-system))
|
||||
(package->manifest-entry package)))
|
||||
(append %desktop-packages))))
|
||||
|
||||
%desktop-manifest
|
||||
@@ -1,164 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 Noé Lopez <noelopez@free.fr>
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; This manifest is a list of packages that user care about (collected via an
|
||||
;;; online form). It corresponds to the “Important packages” of GCD 005.
|
||||
|
||||
(specifications->manifest
|
||||
(list
|
||||
"0ad"
|
||||
"agda"
|
||||
"alacritty"
|
||||
"ardour"
|
||||
"autoconf"
|
||||
"automake"
|
||||
"blender"
|
||||
"borg"
|
||||
"btrfs-progs"
|
||||
"certbot"
|
||||
"chez-scheme"
|
||||
"clang-toolchain"
|
||||
"cryptsetup"
|
||||
"dillo"
|
||||
"direnv"
|
||||
"docker-cli"
|
||||
"dovecot"
|
||||
"emacs"
|
||||
"emacs-exwm"
|
||||
"emacs-pgtk"
|
||||
"evince"
|
||||
"fcitx5"
|
||||
"file"
|
||||
"fish"
|
||||
"foot"
|
||||
"fzf"
|
||||
"gajim"
|
||||
"gallery-dl"
|
||||
"gcc-toolchain"
|
||||
"getmail6"
|
||||
"gettext"
|
||||
"ghc-xmonad-contrib"
|
||||
"gimp"
|
||||
"git"
|
||||
"gmp"
|
||||
"gnome"
|
||||
"gnupg"
|
||||
"godot"
|
||||
"gpaste"
|
||||
"guile"
|
||||
"guile-json"
|
||||
"hatch"
|
||||
"help2man"
|
||||
"helvum"
|
||||
"hexchat"
|
||||
"hyprland"
|
||||
"icecat"
|
||||
"imagemagick"
|
||||
"imapfilter"
|
||||
"jami"
|
||||
"k3b"
|
||||
"kakoune"
|
||||
"keepassxc"
|
||||
"krita"
|
||||
"ksoloti-patcher"
|
||||
"libreoffice"
|
||||
"librewolf"
|
||||
"libsecret"
|
||||
"libtool"
|
||||
"libvirt"
|
||||
"llama-cpp"
|
||||
"mariadb"
|
||||
"luanti"
|
||||
"mpc"
|
||||
"mpfr"
|
||||
"mplayer"
|
||||
"mpv"
|
||||
"mullvadbrowser"
|
||||
"neovim"
|
||||
"nginx"
|
||||
"niri"
|
||||
"nix"
|
||||
"node"
|
||||
"notmuch"
|
||||
"obs"
|
||||
"offlineimap3"
|
||||
"opencv"
|
||||
"openmpi"
|
||||
"opensmtpd"
|
||||
"openssh"
|
||||
"openttd"
|
||||
"pandoc"
|
||||
"password-store"
|
||||
"pavucontrol"
|
||||
"php"
|
||||
"picard"
|
||||
"pipewire"
|
||||
"pkg-config"
|
||||
"plasma"
|
||||
"plasma-desktop"
|
||||
"po4a"
|
||||
"podman"
|
||||
"postgresql"
|
||||
"python"
|
||||
"python-lxml"
|
||||
"python-pycryptodome"
|
||||
"qemu"
|
||||
"ranger"
|
||||
"retroarch"
|
||||
;;"rocm"
|
||||
"rofi"
|
||||
"rspamd"
|
||||
"rsync"
|
||||
"screen"
|
||||
"slurm"
|
||||
"sqlite"
|
||||
"sqlitebrowser"
|
||||
"strace"
|
||||
"strawberry"
|
||||
"syncthing"
|
||||
"taisei"
|
||||
"telegram-desktop"
|
||||
"texlive-babel"
|
||||
"texlive-babel-english"
|
||||
"texlive-babel-french"
|
||||
"texlive-babel-german"
|
||||
"texlive-collection-latex"
|
||||
"texlive-collection-latexrecommended"
|
||||
"texlive-collection-xetex"
|
||||
"texlive-pdfjam"
|
||||
"tmux"
|
||||
"tuba"
|
||||
"ungoogled-chromium"
|
||||
"unison"
|
||||
"unzip"
|
||||
"uv"
|
||||
"viewnior"
|
||||
"virt-manager"
|
||||
"waybar"
|
||||
"wine"
|
||||
"wine64"
|
||||
"wireguard-tools"
|
||||
"xmobar"
|
||||
"xmonad"
|
||||
"xournal"
|
||||
"xournalpp"
|
||||
"xpdf"
|
||||
"yt-dlp"
|
||||
"zig"
|
||||
"zip"
|
||||
"zsh"))
|
||||
@@ -23,9 +23,7 @@
|
||||
;;; installer.
|
||||
|
||||
(use-modules (guix packages)
|
||||
(gnu packages)
|
||||
((gnu system) #:select (%base-packages %base-firmware))
|
||||
(guix profiles)
|
||||
((gnu services xorg) #:select (%default-xorg-modules))
|
||||
(guix utils)
|
||||
(srfi srfi-1))
|
||||
|
||||
@@ -46,14 +44,16 @@ TARGET."
|
||||
(define %system-packages
|
||||
;; Key packages proposed by the Guix System installer.
|
||||
(append (map specification->package
|
||||
'("guix" "shepherd" "guile-static-initrd"
|
||||
"openssh" "tor" "ntp" "gpm" "mingetty"
|
||||
'("guix" "shepherd"
|
||||
"gnome" "xfce" "mate"
|
||||
"icewm" "openbox" "awesome"
|
||||
"i3-wm" "i3status" "dmenu" "st"
|
||||
"ratpoison" "xterm"
|
||||
"emacs" "emacs-exwm" "emacs-desktop-environment"
|
||||
"openssh" "tor" "ntp" "gpm"
|
||||
"connman" "network-manager" "wpa-supplicant" "isc-dhcp" "cups"
|
||||
"linux-libre" "grub-hybrid"
|
||||
;; privileged programs
|
||||
"shadow" "sudo" "fuse" "inetutils" "util-linux"))
|
||||
%base-firmware
|
||||
%base-packages))
|
||||
"linux-libre" "grub-hybrid"))
|
||||
%default-xorg-modules))
|
||||
|
||||
(define %bootloader-packages
|
||||
;; The bootloaders offered by the Guix System installer.
|
||||
-115
@@ -42,121 +42,6 @@
|
||||
(channel-news
|
||||
(version 0)
|
||||
|
||||
(entry (commit "6d4cb99a15da7f4fd55f956c55f4f4aacfcc7742")
|
||||
(title
|
||||
(en "@code{%desktop-services} now includes GDM on AArch64")
|
||||
(de "@code{%desktop-services} enthält jetzt GDM auf AArch64")
|
||||
(pt "@code{%desktop-services} agora inclui GDM no AArch64"))
|
||||
(body
|
||||
(en "On Guix System in an operating system configuration, your value for the
|
||||
@code{services} field is based on @code{%desktop-services} for desktop
|
||||
machines.
|
||||
|
||||
The @code{%desktop-services} contains a login manager that is
|
||||
architecture-dependent. Previously, GDM has been used on x86_64 and SDDM on
|
||||
other architectures.
|
||||
|
||||
Now, GDM is used on all 64-bit architectures. This affects only AArch64 in
|
||||
the end, as other 64-bit architectures aren't mature enough to use
|
||||
%desktop-services, yet.
|
||||
|
||||
In case you're on AArch64 and you've changed the login manager, you will have
|
||||
to adapt your config to remove @code{gdm-service-type} instead of
|
||||
@code{sddm-service-type}.")
|
||||
(de "Auf Guix System liegen in einer Betriebssystemkonfiguration Ihrem
|
||||
Wert des @code{services}-Feldes auf Desktop-Maschinen die
|
||||
@code{%desktop-services} zugrunde.
|
||||
|
||||
Zu den @code{%desktop-services} gehört eine Anmeldeverwaltung, die sich je nach
|
||||
Architektur unterscheidet. Bisher wurde GDM auf x86_64 benutzt und SDDM auf
|
||||
anderen Architekturen.
|
||||
|
||||
Ab jetzt wird GDM auf allen 64-Bit-Architekturen benutzt. Das betrifft
|
||||
letztlich nur AArch64, weil andere 64-Bit-Architecturen bisher noch nicht weit
|
||||
genug fortgeschritten sind, um die %desktop-services zu benutzen.
|
||||
|
||||
Falls Sie auf AArch64 sind und die Anmeldeverwaltung geändert haben, müssen Sie
|
||||
Ihre Konfiguration ändern und dort @code{gdm-service-type} entfernen statt
|
||||
@code{sddm-service-type}.")
|
||||
(pt "Em uma configuração de sistema operacional do Guix System, seu
|
||||
valor para o campo @code{services} é baseado em @code{%desktop-services} para
|
||||
máquinas desktop.
|
||||
|
||||
@code{%desktop-services} contém um gerenciador de login dependente de
|
||||
arquitetura. Anteriormente, GDM fora usado em x86_64 e SDDM nas demais.
|
||||
|
||||
Agora, GDM é usado em todas as arquiteturas de 64 bits. Esta mudança afeta
|
||||
apenas a AArch64 no frigir dos ovos, dado que as demais arquiteturas de 64
|
||||
bits não são maduras o bastante para usar @code{%desktop-services}, por
|
||||
enquanto.
|
||||
|
||||
No caso de você estar em um AArch64 e ter modificado o gerenciador de login,
|
||||
você terá que adaptar sua configuração para remover @code{gdm-service-type} em
|
||||
vez de @code{sddm-service-type}.")))
|
||||
|
||||
(entry (commit "d3b79beaa806452dceaffb8b211b69dc4c346aba")
|
||||
(title
|
||||
(en "Linux-libre 5.4 no longer supported")
|
||||
(de "Linux-libre 5.4 nicht mehr unterstützt")
|
||||
(pt "Linux-libre 5.4 não é mais suportado"))
|
||||
(body
|
||||
(en "The linux-libre 5.4 kernel series is no longer supported
|
||||
upstream and will be removed from GNU Guix soon:
|
||||
|
||||
https://www.kernel.org/category/releases.html
|
||||
|
||||
This kernel series was first added to Guix in 2019 by Mark Weaver, at version
|
||||
5.4.5. After ~297 updates delivered to Guix users, we have deployed the final
|
||||
update, 5.4.302.
|
||||
|
||||
The next kernel series removals are scheduled for December 2026, when the Linux
|
||||
long-term support team is planning to stop supporting four different kernel
|
||||
series: 6.12, 6.6, 5.15, and 5.10.")
|
||||
(de "Die Versionsreihe 5.4 des Linux-libre-Kernels wird von dessen
|
||||
Anbieter nicht mehr unterstützt und wird bald aus GNU Guix entfernt werden:
|
||||
|
||||
https://www.kernel.org/category/releases.html
|
||||
|
||||
Diese Kernel-Reihe wurde ursprünglich 2019 zu Guix hinzugefügt von Mark Weaver
|
||||
mit Version 5.4.5. Nach ~297 Aktualisierungen, die Guix seinen Nutzern
|
||||
bereitgestellt hat, haben wir nun die letzte Aktualisierung
|
||||
ausgeliefert, 5.4.302.
|
||||
|
||||
Der weitere Plan von Linux’ Team für Langzeitunterstützung sieht vor, als
|
||||
Nächstes die Unterstützung für vier verschiedene Kernel-Reihen im Dezember 2026
|
||||
zu beenden: 6.12, 6.6, 5.15 und 5.10.")
|
||||
(pt "A série 5.4 do kernel linux-libre não é mais suportada pelo
|
||||
fornecedor e será removida do GNU Guix em breve:
|
||||
|
||||
https://www.kernel.org/category/releases.html
|
||||
|
||||
Esta série de kernels foi adicionada inicialmente ao Guix em 2019 por Mark
|
||||
Weaver, na versão 5.4.5. Após ~297 atualizações entregues aos usuários do
|
||||
Guix, implantamos a atualização final, 5.4.302.
|
||||
|
||||
As próximas remoções de séries do kernel estão agendadas para dezembro de
|
||||
2026, quando o time de suporte de longo prazo planeja interromper o suporte a
|
||||
quatro séries diferentes do kernel: 6.12, 6.6, 5.15 e 5.10.")))
|
||||
|
||||
(entry (commit "14bb0192fde79909999c3880b6b66aa22499eb11")
|
||||
(title
|
||||
(en "Linux-libre 6.16 removed from Guix")
|
||||
(de "Linux-libre 6.16 wurde aus Guix entfernt")
|
||||
(pt "Linux-libre 6.16 removido do Guix")
|
||||
(zh "Linux-libre 6.16 已从 Guix 中移除"))
|
||||
(body
|
||||
(en "The linux-libre 6.16 kernel series has been removed from Guix, as
|
||||
it is no longer supported upstream. The 6.17 kernel series is now the
|
||||
default.")
|
||||
(de "Die Versionsreihe 6.16 des Linux-libre-Kernels wurde aus GNU Guix
|
||||
entfernt, weil sie von dessen Anbieter nicht mehr unterstützt wird.
|
||||
Kernel-Versionsreihe 6.17 ist jetzt vorgegeben.")
|
||||
(pt "A série 6.16 do kernel linux-libre foi removida do Guix, dado
|
||||
que não é mais suportada pelo fornecedor. A série 6.17 é o padrão atual")
|
||||
(zh "由于上游不再支持,GNU Guix 已移除 6.16 系列的 linux-libre 内核。6.17
|
||||
内核系列现已成为默认版本。")))
|
||||
|
||||
|
||||
(entry (commit "8daae75de3670594dfcb63b6ae6f1603ca6f7971")
|
||||
(title
|
||||
(en "Fundraising to sustain and strengthen Guix")
|
||||
|
||||
+43
-180
@@ -14,8 +14,7 @@ exec $pre_inst_env_maybe guix repl -- "$0" "$@"
|
||||
;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
;;; Copyright © 2025 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
|
||||
;;; Copyright © 2025-2026 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2025 jgart <jgart@dismail.de>
|
||||
;;; Copyright © 2025 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -92,7 +91,7 @@ exec $pre_inst_env_maybe guix repl -- "$0" "$@"
|
||||
(email person-email)
|
||||
(account person-codeberg-account))
|
||||
|
||||
(define (person name email account)
|
||||
(define* (person name #:optional email account)
|
||||
(make-person name email account))
|
||||
|
||||
(define* (team id #:key name description (members '())
|
||||
@@ -285,25 +284,14 @@ PARAMETERS."
|
||||
|
||||
;; API documentation at <https://codeberg.org/api/swagger>.
|
||||
|
||||
(define-forgejo-request (organization-teams/paginated organization page)
|
||||
"Return the list of teams of ORGANIZATION, for the given PAGE (1-indexed)."
|
||||
(define-forgejo-request (organization-teams organization)
|
||||
"Return the list of teams of ORGANIZATION."
|
||||
(GET "orgs" organization "teams"
|
||||
& `(("page" . ,(number->string page))))
|
||||
& '(("limit" . "100"))) ;get up to 100 teams
|
||||
=> 200
|
||||
(lambda (port)
|
||||
(map json->forgejo-team (vector->list (json->scm port)))))
|
||||
|
||||
(define (organization-teams token organization)
|
||||
"Return the list of teams of ORGANIZATION."
|
||||
(let loop ((index 1)
|
||||
(pages '()))
|
||||
(match (organization-teams/paginated token organization index)
|
||||
(()
|
||||
(concatenate (reverse pages)))
|
||||
(lst
|
||||
(loop (+ 1 index)
|
||||
(cons lst pages))))))
|
||||
|
||||
(define-forgejo-request (create-team organization team)
|
||||
"Create TEAM, a Forgejo team, under ORGANIZATION."
|
||||
(POST "orgs" organization "teams")
|
||||
@@ -476,32 +464,11 @@ already exists. Lookup team IDs among CURRENT-TEAMS."
|
||||
"gnu/packages/fluidplug.scm"
|
||||
"gnu/packages/xiph.scm")))
|
||||
|
||||
(define-team beam
|
||||
(team 'beam
|
||||
#:name "Erlang/Elixir/BEAM team"
|
||||
#:description "The virtual machine at the core of the Erlang Open
|
||||
Telecom Platform (OTP), Erlang and Elxir languages and packages, development
|
||||
of Rebar and Mix build systems and Hex.pm importer."
|
||||
#:scope (list (make-regexp* "^gnu/packages/elixir(-.+|)\\.scm$")
|
||||
"guix/build/mix-build-system.scm"
|
||||
"guix/build-system/mix.scm"
|
||||
(make-regexp* "^gnu/packages/erlang(-.+|)\\.scm$")
|
||||
"guix/build/rebar-build-system.scm"
|
||||
"guix/build-system/rebar.scm"
|
||||
"guix/import/hexpm.scm"
|
||||
"guix/scripts/import/hexpm.scm")))
|
||||
|
||||
(define-team bioinformatics
|
||||
(team 'bioinformatics
|
||||
#:name "Bioinformatics team"
|
||||
#:scope (list "gnu/packages/bioinformatics.scm")))
|
||||
|
||||
(define-team bootstrap
|
||||
(team 'bootstrap
|
||||
#:name "Bootstrap"
|
||||
#:description "Full-source bootstrap: stage0, Mes, Gash, etc."
|
||||
#:scope (list "gnu/packages/bootstrap.scm"
|
||||
"gnu/packages/commencement.scm"
|
||||
#:scope (list "gnu/packages/commencement.scm"
|
||||
"gnu/packages/mes.scm")))
|
||||
|
||||
(define-team c++
|
||||
@@ -521,8 +488,7 @@ of Rebar and Mix build systems and Hex.pm importer."
|
||||
(team 'core
|
||||
#:name "Core / Tools / Internals"
|
||||
#:scope
|
||||
(list "etc/teams.scm"
|
||||
"guix/avahi.scm"
|
||||
(list "guix/avahi.scm"
|
||||
"guix/base16.scm"
|
||||
"guix/base32.scm"
|
||||
"guix/base64.scm"
|
||||
@@ -582,7 +548,6 @@ of Rebar and Mix build systems and Hex.pm importer."
|
||||
"guix/read-print.scm"
|
||||
"guix/records.scm"
|
||||
"guix/remote.scm"
|
||||
"guix/remote-procedures.scm"
|
||||
"guix/repl.scm"
|
||||
"guix/search-paths.scm"
|
||||
"guix/self.scm"
|
||||
@@ -644,7 +609,6 @@ of Rebar and Mix build systems and Hex.pm importer."
|
||||
#:name "Electronics team"
|
||||
#:description "Electronics and hardware related packages."
|
||||
#:scope (list "gnu/packages/electronics.scm"
|
||||
"gnu/packages/hdl.scm"
|
||||
"gnu/packages/libftdi.scm"
|
||||
"gnu/packages/engineering.scm"
|
||||
"gnu/packages/flashing-tools.scm")))
|
||||
@@ -681,8 +645,6 @@ ecosystem."
|
||||
"gnu/packages/luanti.scm"
|
||||
"gnu/packages/esolangs.scm" ; granted, rather niche
|
||||
"gnu/packages/motti.scm"
|
||||
"gnu/services/games.scm"
|
||||
"gnu/tests/games.scm"
|
||||
"guix/build/luanti-build-system.scm")))
|
||||
|
||||
(define-team gnome
|
||||
@@ -715,26 +677,6 @@ GLib/GIO, GTK, GStreamer and Webkit."
|
||||
"guix/scripts/import/go.scm"
|
||||
"tests/import/go.scm")))
|
||||
|
||||
(define-team guile
|
||||
(team 'guile
|
||||
#:name "Guile team"
|
||||
#:description
|
||||
"Team for the Guile platform, libraries, and build system."
|
||||
#:scope (list "gnu/packages/guile.scm"
|
||||
"gnu/packages/guile-wm.scm"
|
||||
"gnu/packages/guile-xyz.scm"
|
||||
"guix/build-system/guile.scm"
|
||||
"guix/build/guile-build-system.scm")))
|
||||
|
||||
(define-team hare
|
||||
(team 'hare
|
||||
#:name "Hare"
|
||||
#:scope (list "gnu/packages/hare.scm"
|
||||
"gnu/packages/hare-apps.scm"
|
||||
"gnu/packages/hare-xyz.scm"
|
||||
"guix/build-system/hare.scm"
|
||||
"guix/build/hare-build-system.scm")))
|
||||
|
||||
(define-team haskell
|
||||
(team 'haskell
|
||||
#:name "Haskell team"
|
||||
@@ -767,8 +709,6 @@ the haskell-build-system."
|
||||
#:description "High-performance computing (HPC) related packages."
|
||||
#:scope (list "gnu/packages/mpi.scm"
|
||||
"gnu/packages/oneapi.scm"
|
||||
"gnu/packages/opencl.scm"
|
||||
"gnu/packages/parallel.scm"
|
||||
"gnu/packages/rocm.scm"
|
||||
"gnu/packages/sycl.scm"
|
||||
"gnu/packages/tbb.scm"
|
||||
@@ -796,20 +736,16 @@ the haskell-build-system."
|
||||
"The JDK and JRE, the Maven build system, Java packages, the ant-build-system,
|
||||
and the maven-build-system."
|
||||
#:scope
|
||||
(list "gnu/packages/clojure.scm"
|
||||
;; Match java.scm and java-*.scm.
|
||||
(list ;; Match java.scm and java-*.scm.
|
||||
(make-regexp* "^gnu/packages/java(-.+|)\\.scm$")
|
||||
;; Match maven.scm and maven-*.scm
|
||||
(make-regexp* "^gnu/packages/maven(-.+|)\\.scm$")
|
||||
"guix/build/ant-build-system.scm"
|
||||
"guix/build/clojure-build-system.scm"
|
||||
"guix/build/clojure-utils.scm"
|
||||
"guix/build/java-utils.scm"
|
||||
"guix/build/maven-build-system.scm"
|
||||
;; The maven directory
|
||||
(make-regexp* "^guix/build/maven/")
|
||||
"guix/build-system/ant.scm"
|
||||
"guix/build-system/clojure.scm"
|
||||
"guix/build-system/maven.scm")))
|
||||
|
||||
(define-team javascript
|
||||
@@ -877,12 +813,6 @@ asdf-build-system."
|
||||
#:description "LXQt desktop environment."
|
||||
#:scope (list "gnu/packages/lxqt.scm")))
|
||||
|
||||
(define-team mate
|
||||
(team 'mate
|
||||
#:name "MATE team"
|
||||
#:description "MATE desktop environment"
|
||||
#:scope (list "gnu/packages/mate.scm")))
|
||||
|
||||
(define-team mentors
|
||||
(team 'mentors
|
||||
#:name "Mentors"
|
||||
@@ -979,8 +909,7 @@ importer."
|
||||
"The current release team. Members are expected to change with each
|
||||
release."
|
||||
#:scope (list "NEWS"
|
||||
"etc/manifests/release-minimal.scm"
|
||||
"etc/manifests/release-desktop.scm")))
|
||||
"etc/manifests/release.scm")))
|
||||
|
||||
(define-team reproduciblebuilds
|
||||
(team 'reproduciblebuilds
|
||||
@@ -992,7 +921,7 @@ release."
|
||||
(define-team ruby
|
||||
(team 'ruby
|
||||
#:name "Ruby team"
|
||||
#:scope (list (make-regexp* "^gnu/packages/(ruby)(-.+|)\\.scm$")
|
||||
#:scope (list "gnu/packages/ruby.scm"
|
||||
"guix/build/ruby-build-system.scm"
|
||||
"guix/build-system/ruby.scm"
|
||||
"guix/import/gem.scm"
|
||||
@@ -1012,20 +941,6 @@ release."
|
||||
"guix/scripts/import/crate.scm"
|
||||
"tests/import/crate.scm")))
|
||||
|
||||
(define-team crypto
|
||||
(team 'crypto
|
||||
#:name "Crypto team"
|
||||
#:description
|
||||
"Secrets, passwords, cryptography and security related packages."
|
||||
#:scope (list (make-regexp* "^gnu/packages/(.*-|)crypto\\.scm$")
|
||||
"gnu/packages/cryptsetup.scm"
|
||||
"gnu/packages/gnupg.scm"
|
||||
"gnu/packages/nettle.scm"
|
||||
"gnu/packages/password-utils.scm"
|
||||
"gnu/packages/security-token.scm"
|
||||
"gnu/packages/ssh.scm"
|
||||
"gnu/packages/tls.scm")))
|
||||
|
||||
(define-team science
|
||||
(team 'science
|
||||
#:name "Science team"
|
||||
@@ -1138,6 +1053,11 @@ the \"texlive\" importer."
|
||||
"bavier")
|
||||
science)
|
||||
|
||||
(define-member (person "Lars-Dominik Braun"
|
||||
"lars@6xq.net"
|
||||
"ldb")
|
||||
python haskell)
|
||||
|
||||
(define-member (person "Jonathan Brielmaier"
|
||||
"jonathan.brielmaier@web.de"
|
||||
"jonsger")
|
||||
@@ -1147,12 +1067,12 @@ the \"texlive\" importer."
|
||||
"ludo@gnu.org"
|
||||
"civodul")
|
||||
core core-packages hpc installer
|
||||
guile)
|
||||
mentors)
|
||||
|
||||
(define-member (person "Andreas Enge"
|
||||
"andreas@enge.fr"
|
||||
"enge")
|
||||
bootstrap core-packages crypto lxqt science tex)
|
||||
bootstrap core-packages lxqt science tex)
|
||||
|
||||
(define-member (person "Tanguy Le Carrour"
|
||||
"tanguy@bioneland.org"
|
||||
@@ -1182,7 +1102,7 @@ the \"texlive\" importer."
|
||||
(define-member (person "jgart"
|
||||
"jgart@dismail.de"
|
||||
"jgart")
|
||||
hare lisp mentors)
|
||||
lisp mentors)
|
||||
|
||||
(define-member (person "Guillaume Le Vaillant"
|
||||
"glv@posteo.net"
|
||||
@@ -1217,7 +1137,7 @@ the \"texlive\" importer."
|
||||
(define-member (person "Ricardo Wurmus"
|
||||
"rekado@elephly.net"
|
||||
"rekado")
|
||||
bioinformatics r sugar)
|
||||
r sugar)
|
||||
|
||||
(define-member (person "Christopher Baines"
|
||||
"guix@cbaines.net"
|
||||
@@ -1239,6 +1159,10 @@ the \"texlive\" importer."
|
||||
"jpoiret")
|
||||
installer)
|
||||
|
||||
(define-member (person "("
|
||||
"paren@disroot.org")
|
||||
)
|
||||
|
||||
(define-member (person "Simon Tournier"
|
||||
"zimon.toutoune@gmail.com"
|
||||
"zimoun")
|
||||
@@ -1267,7 +1191,7 @@ the \"texlive\" importer."
|
||||
(define-member (person "Katherine Cox-Buday"
|
||||
"cox.katherine.e+guix@gmail.com"
|
||||
"katco")
|
||||
emacs lisp)
|
||||
emacs go lisp)
|
||||
|
||||
(define-member (person "Munyoki Kilyungi"
|
||||
"me@bonfacemunyoki.com"
|
||||
@@ -1299,20 +1223,23 @@ the \"texlive\" importer."
|
||||
"Hellseher")
|
||||
go julia python science sysadmin)
|
||||
|
||||
(define-member (person "Arthur Rodrigues"
|
||||
"arthurhdrodrigues@proton.me"
|
||||
"arthurhdrodrigues")
|
||||
go)
|
||||
(define-member (person "Vivien Kraus"
|
||||
"vivien@planete-kraus.eu")
|
||||
gnome)
|
||||
|
||||
(define-member (person "Mark H Weaver"
|
||||
"mhw@netris.org"
|
||||
"mhw")
|
||||
mozilla)
|
||||
|
||||
(define-member (person "Adam Faiz"
|
||||
"adam.faiz@disroot.org")
|
||||
games)
|
||||
|
||||
(define-member (person "Laurent Gatto"
|
||||
"lgatto@protonmail.ch"
|
||||
"laurent.gatto@gmail.com"
|
||||
"lgatto")
|
||||
r bioinformatics)
|
||||
r)
|
||||
|
||||
(define-member (person "Nicolas Goaziou"
|
||||
"guix@nicolasgoaziou.fr"
|
||||
@@ -1352,7 +1279,7 @@ the \"texlive\" importer."
|
||||
(define-member (person "Cayetano Santos"
|
||||
"csantosb@inventati.org"
|
||||
"csantosb")
|
||||
ai emacs electronics hpc crypto reproduciblebuilds)
|
||||
ai emacs electronics hpc)
|
||||
|
||||
(define-member (person "Greg Hogan"
|
||||
"code@greghogan.com"
|
||||
@@ -1361,7 +1288,8 @@ the \"texlive\" importer."
|
||||
|
||||
(define-member (person "Hilton Chain"
|
||||
"hako@ultrarare.space"
|
||||
"hako"))
|
||||
"hako")
|
||||
emacs home localization mozilla rust zig)
|
||||
|
||||
(define-member (person "Noé Lopez"
|
||||
"noelopez@free.fr"
|
||||
@@ -1373,6 +1301,10 @@ the \"texlive\" importer."
|
||||
"Ashvith")
|
||||
games go javascript sysadmin xfce)
|
||||
|
||||
(define-member (person "Trevor Richards"
|
||||
"trev@trevdev.ca")
|
||||
lisp emacs)
|
||||
|
||||
(define-member (person "Konrad Hinsen"
|
||||
"guix@khinsen.fastmail.net"
|
||||
"khinsen")
|
||||
@@ -1394,9 +1326,9 @@ the \"texlive\" importer."
|
||||
hurd)
|
||||
|
||||
(define-member (person "Giacomo Leidi"
|
||||
"therewasa@fishinthecalculator.me"
|
||||
"goodoldpaul@autistici.org"
|
||||
"fishinthecalculator")
|
||||
audio beam)
|
||||
audio)
|
||||
|
||||
(define-member (person "Saku Laesvuori"
|
||||
"saku@laesvuori.fi"
|
||||
@@ -1408,11 +1340,6 @@ the \"texlive\" importer."
|
||||
"rodion-goritskov")
|
||||
release)
|
||||
|
||||
(define-member (person "Jason Conroy"
|
||||
"jconroy@tscripta.net"
|
||||
"conroj")
|
||||
ocaml)
|
||||
|
||||
(define-member (person "Rutherther"
|
||||
"rutherther@ditigal.xyz"
|
||||
"Rutherther")
|
||||
@@ -1426,77 +1353,13 @@ the \"texlive\" importer."
|
||||
(define-member (person "Danny Milosavljevic"
|
||||
"dannym@friendly-machines.com"
|
||||
"daym")
|
||||
bootstrap hpc python rust science)
|
||||
bootstrap hpc rust science)
|
||||
|
||||
(define-member (person "Andy Tai"
|
||||
"atai@atai.org"
|
||||
"atai")
|
||||
ai)
|
||||
|
||||
(define-member (person "Pierre-Henry Fröhring"
|
||||
"contact@phfrohring.com"
|
||||
"phfrohring")
|
||||
beam)
|
||||
|
||||
(define-member (person "Igorj Gorjaĉev"
|
||||
"igor@goryachev.org"
|
||||
"delitrem")
|
||||
beam)
|
||||
|
||||
(define-member (person "Nguyễn Gia Phong"
|
||||
"cnx@loang.net"
|
||||
"cnx")
|
||||
python sysadmin)
|
||||
|
||||
(define-member (person "Lilah Tascheter"
|
||||
"lilah@lunabee.space"
|
||||
"tinystar")
|
||||
hare)
|
||||
|
||||
(define-member (person "FuncProgLinux"
|
||||
"softwarelibre@urutau-ltd.org"
|
||||
"FuncProgLinux")
|
||||
mate)
|
||||
|
||||
(define-member (person "Reza Housseini"
|
||||
"reza@housseini.me"
|
||||
"rhou")
|
||||
python science c++)
|
||||
|
||||
(define-member (person "Yunqi Shao"
|
||||
"me@yqshao.se"
|
||||
"yqshao")
|
||||
sysadmin)
|
||||
|
||||
(define-member (person "Collin Doering"
|
||||
"collin@rekahsoft.ca"
|
||||
"rekahsoft")
|
||||
embedded electronics haskell sysadmin)
|
||||
|
||||
(define-member (person "Mathieu Lirzin"
|
||||
"mthl@gnu.org"
|
||||
"mthl")
|
||||
java)
|
||||
|
||||
(define-member (person "Hugo Buddelmeijer"
|
||||
"hugo@buddelmeijer.nl"
|
||||
"hugobuddel")
|
||||
python)
|
||||
|
||||
(define-member (person "Yan Abu Arab"
|
||||
"yanabuarab@gmail.com"
|
||||
"tux1c")
|
||||
python sysadmin)
|
||||
|
||||
(define-member (person "Wilko Meyer"
|
||||
"w@wmeyer.eu"
|
||||
"theesm")
|
||||
kernel)
|
||||
|
||||
(define-member (person "Untrusem"
|
||||
"mysticmoksh@riseup.net"
|
||||
"untrusem")
|
||||
mozilla)
|
||||
|
||||
(define (find-team name)
|
||||
(or (hash-ref %teams (string->symbol name))
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; This file returns a manifest of packages built using the mix-build-system.
|
||||
;;; It is used to assist continuous integration of the beam-team branch.
|
||||
;;;
|
||||
;;;
|
||||
;;; You can use it to build all covered packages with:
|
||||
;;;
|
||||
;;; ./pre-inst-env guix build -m etc/teams/beam/elixir-manifest.scm
|
||||
;;;
|
||||
;;; or to update them with:
|
||||
;;;
|
||||
;;; ./pre-inst-env guix refresh -u -m etc/teams/beam/elixir-manifest.scm
|
||||
|
||||
(use-modules (guix packages)
|
||||
(guix profiles)
|
||||
(guix gexp)
|
||||
(guix build-system)
|
||||
(ice-9 match)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
|
||||
(define* (has-mix-build-system? build-system #:key modules #:allow-other-keys)
|
||||
(or (eq? (build-system-name build-system) 'mix)
|
||||
(any
|
||||
(match-lambda
|
||||
(('guix 'build 'mix-build-system) #t)
|
||||
('((guix build mix-build-system) . _) #t)
|
||||
(_ #f))
|
||||
(cond
|
||||
((gexp? modules) (gexp->approximate-sexp modules))
|
||||
((pair? modules) modules)
|
||||
(else '())))))
|
||||
|
||||
(manifest
|
||||
(map package->manifest-entry
|
||||
(fold-packages
|
||||
(lambda (package lst)
|
||||
(if (apply has-mix-build-system?
|
||||
(package-build-system package)
|
||||
(package-arguments package))
|
||||
(cons package lst)
|
||||
lst))
|
||||
(list))))
|
||||
@@ -1,60 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; This file returns a manifest of packages built using the rebar-build-system.
|
||||
;;; It is used to assist continuous integration of the beam-team branch.
|
||||
;;;
|
||||
;;;
|
||||
;;; You can use it to build all covered packages with:
|
||||
;;;
|
||||
;;; ./pre-inst-env guix build -m etc/teams/beam/erlang-manifest.scm
|
||||
;;;
|
||||
;;; or to update them with:
|
||||
;;;
|
||||
;;; ./pre-inst-env guix refresh -u -m etc/teams/beam/erlang-manifest.scm
|
||||
|
||||
(use-modules (guix packages)
|
||||
(guix profiles)
|
||||
(guix gexp)
|
||||
(guix build-system)
|
||||
(ice-9 match)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
|
||||
(define* (has-rebar-build-system? build-system #:key modules #:allow-other-keys)
|
||||
(or (eq? (build-system-name build-system) 'rebar)
|
||||
(any
|
||||
(match-lambda
|
||||
(('guix 'build 'rebar-build-system) #t)
|
||||
('((guix build rebar-build-system) . _) #t)
|
||||
(_ #f))
|
||||
(cond
|
||||
((gexp? modules) (gexp->approximate-sexp modules))
|
||||
((pair? modules) modules)
|
||||
(else '())))))
|
||||
|
||||
(manifest
|
||||
(map package->manifest-entry
|
||||
(fold-packages
|
||||
(lambda (package lst)
|
||||
(if (apply has-rebar-build-system?
|
||||
(package-build-system package)
|
||||
(package-arguments package))
|
||||
(cons package lst)
|
||||
lst))
|
||||
(list))))
|
||||
@@ -52,8 +52,7 @@
|
||||
tools/versions-stable")))
|
||||
|
||||
(define (fetch-releng-content)
|
||||
"Return a string corresponding to the content of the %GNOME-RELENG-VERSIONS-URI
|
||||
file."
|
||||
"Return an input port to the %GNOME-RELENG-VERSIONS-URI file."
|
||||
(call-with-port (http-fetch/cached (%gnome-releng-versions-uri))
|
||||
get-string-all))
|
||||
|
||||
@@ -76,8 +75,8 @@ NL < '\n'")
|
||||
'(("adwaita-fonts" . "font-adwaita")))
|
||||
|
||||
(define (parse-releng data)
|
||||
"Return the complete parse tree for DATA, a string representing the content of
|
||||
a GNOME releng file."
|
||||
"Return DATA, a string representing the content of a GNOME releng file, and
|
||||
return the complete parse tree."
|
||||
(let ((tree (peg:tree (match-pattern releng data))))
|
||||
(match tree
|
||||
(#f (raise-exception (make-releng-parser-error)))
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 jgart <jgart@dismail.de>
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; This file returns a manifest of packages built using the hare-build-system.
|
||||
;;; It is used to assist continuous integration of the hare-team branch.
|
||||
|
||||
(use-modules (guix packages)
|
||||
(guix profiles)
|
||||
(guix build-system))
|
||||
|
||||
(manifest
|
||||
(map package->manifest-entry
|
||||
(fold-packages
|
||||
(lambda (package lst)
|
||||
(if (or (eq? 'hare (build-system-name (package-build-system package)))
|
||||
(string=? "hare" (package-name package)))
|
||||
(cons package lst)
|
||||
lst))
|
||||
'())))
|
||||
@@ -1,40 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 jgart <jgart@dismail.de>
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; This file returns a manifest of packages built using any one of the
|
||||
;;; asdf build systems. It is used to assist continuous integration of
|
||||
;;; the lisp-team branch.
|
||||
|
||||
(use-modules (guix packages)
|
||||
(guix profiles)
|
||||
(guix build-system))
|
||||
|
||||
(manifest
|
||||
(map package->manifest-entry
|
||||
(fold-packages
|
||||
(lambda (package lst)
|
||||
(if (or (eq? 'asdf/sbcl (build-system-name (package-build-system package)))
|
||||
(eq? 'asdf/ecl (build-system-name (package-build-system package)))
|
||||
(eq? 'asdf/clasp (build-system-name (package-build-system package)))
|
||||
(string=? "clasp-cl" (package-name package))
|
||||
(string=? "ecl" (package-name package))
|
||||
(string=? "sbcl" (package-name package)))
|
||||
(cons package lst)
|
||||
lst))
|
||||
'())))
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 FuncProgLinux <softwarelibre@urutau-ltd.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/>.
|
||||
|
||||
(use-modules (guix packages)
|
||||
(guix profiles)
|
||||
(gnu packages mate)
|
||||
(ice-9 match)
|
||||
(srfi srfi-1))
|
||||
|
||||
(define (propagated-inputs package)
|
||||
(map
|
||||
(match-lambda
|
||||
((_ (? package? pkg)) pkg)
|
||||
((_ (? package? pkg) output) (list pkg output)))
|
||||
(package-propagated-inputs package)))
|
||||
|
||||
(packages->manifest
|
||||
(append-map propagated-inputs
|
||||
(list mate)))
|
||||
@@ -1,35 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 jgart <jgart@dismail.de>
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; This file returns a manifest of packages built using the python-build-system.
|
||||
;;; It is used to assist continuous integration of the python-team branch.
|
||||
|
||||
(use-modules (guix packages)
|
||||
(guix profiles)
|
||||
(guix build-system))
|
||||
|
||||
(manifest
|
||||
(map package->manifest-entry
|
||||
(fold-packages
|
||||
(lambda (package lst)
|
||||
(if (or (eq? 'python (build-system-name (package-build-system package)))
|
||||
(eq? 'pyproject (build-system-name (package-build-system package)))
|
||||
(string=? "python" (package-name package)))
|
||||
(cons package lst)
|
||||
lst))
|
||||
'())))
|
||||
@@ -1,413 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; This manifest returns build artfacts for all supported systems. This can be
|
||||
;;; controlled by SUPPORTED_SYSTEMS environment variable. For the list of
|
||||
;;; artifacts produced, see artifacts-for-system and the `<thing>-for-system?`
|
||||
;;; procedures. NOTE: the --system argument does not change the system for which
|
||||
;;; the resulting package is built. They return different definitions of the
|
||||
;;; images. To change the system, pass different SUPPORTED_SYSTEMS.
|
||||
|
||||
(use-modules (gnu compression)
|
||||
(gnu image)
|
||||
(gnu packages graphviz)
|
||||
(gnu packages imagemagick)
|
||||
(gnu packages package-management)
|
||||
(gnu packages perl)
|
||||
(gnu services)
|
||||
(gnu system image)
|
||||
(gnu system install)
|
||||
(gnu system)
|
||||
(guix build-system gnu)
|
||||
(guix build-system trivial)
|
||||
(guix channels)
|
||||
(guix gexp)
|
||||
(guix git)
|
||||
(guix grafts)
|
||||
(guix memoization)
|
||||
(guix monads)
|
||||
(guix packages)
|
||||
(guix profiles)
|
||||
(guix records)
|
||||
(guix scripts pack)
|
||||
(guix store)
|
||||
(guix ui)
|
||||
(guix utils)
|
||||
(ice-9 format)
|
||||
(ice-9 match)
|
||||
(srfi srfi-9)
|
||||
(srfi srfi-26)
|
||||
(srfi srfi-35))
|
||||
|
||||
;; For easier testing, use (snapshot) guix package from (gnu packages
|
||||
;; package-management). Otherwise, the package is updated to current commit and
|
||||
;; might not be substitutable, leading to longer build times.
|
||||
(define %use-snapshot-package?
|
||||
(string=? (or (getenv "GUIX_USE_SNAPSHOT_PACKAGE") "no") "yes"))
|
||||
|
||||
(define (%guix-version)
|
||||
;; NOTE: while package-version guix is not correct in general,
|
||||
;; it is correct for the release itself. At that time, the
|
||||
;; guix package is updated to vX.Y.Z and it's the version
|
||||
;; we want to use.
|
||||
(package-version guix))
|
||||
|
||||
(define (%vm-image-path)
|
||||
(search-path %load-path "gnu/system/examples/vm-image.tmpl"))
|
||||
|
||||
(define (%vm-image-efi-path)
|
||||
(search-path %load-path "gnu/system/examples/vm-image-efi.tmpl"))
|
||||
|
||||
;; monadic record and gexp-compiler
|
||||
;; taken from Inria
|
||||
;; https://gitlab.inria.fr/numpex-pc5/wp3/guix-images/-/blob/17bf4585abc2d637faa5d339436e778b7c9fb1ce/modules/guix-hpc/packs.scm
|
||||
|
||||
;; XXX: The <monadic> hack below will hopefully become unnecessary once the
|
||||
;; (guix scripts pack) interface switches to declarative style--i.e.,
|
||||
;; file-like objects.
|
||||
|
||||
(define-record-type <monadic>
|
||||
(monadic->declarative mvalue)
|
||||
monadic?
|
||||
(mvalue monadic-value))
|
||||
|
||||
(define-gexp-compiler (monadic-compiler (monadic <monadic>) system target)
|
||||
(monadic-value monadic))
|
||||
|
||||
;; The tarball should be the same for every system.
|
||||
;; Still, we need to decide what system to build it
|
||||
;; for, so use the one that CI has most resources for.
|
||||
(define (source-tarball-for-system? system)
|
||||
(member system
|
||||
'("x86_64-linux")))
|
||||
|
||||
(define (iso-for-system? system)
|
||||
(member system
|
||||
'("x86_64-linux" "i686-linux" "aarch64-linux")))
|
||||
|
||||
(define (qcow2-for-system? system)
|
||||
(member system
|
||||
'("x86_64-linux" "aarch64-linux")))
|
||||
|
||||
(define* (qcow2-gpt-for-system? system)
|
||||
(string=? system "aarch64-linux"))
|
||||
|
||||
(define (copy-/etc/config.scm config)
|
||||
"Copy the configuration.scm of the operating system to /etc/config.scm, for
|
||||
user's convenience. The file has to be writable, not a link to the store, so
|
||||
etc-service-type can't be used here. CONFIG is a pair of strings, (FROM . TO).
|
||||
The config will be copied from FROM to TO."
|
||||
(match config
|
||||
((from . to)
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
(when (not (file-exists? #$to))
|
||||
(copy-file #$from #$to)
|
||||
(make-file-writable #$to)))))
|
||||
(_ (raise
|
||||
(formatted-message-string
|
||||
(G_ "unexpected config parameter, should be pair of strings: ~a"
|
||||
config))))))
|
||||
|
||||
(define copy-/etc/config.scm-service-type
|
||||
(service-type (name 'copy-/etc/config.scm)
|
||||
(description
|
||||
"Copy the system configuration file to /etc/config.scm.")
|
||||
(extensions (list (service-extension activation-service-type
|
||||
copy-/etc/config.scm)))
|
||||
(default-value (cons "/run/current-system/configuration.scm"
|
||||
"/etc/config.scm"))))
|
||||
|
||||
(define (operating-system-with-/etc/config.scm os)
|
||||
"Copy the system configuration file to writable /etc/config.scm on first boot."
|
||||
(operating-system
|
||||
(inherit os)
|
||||
(services (cons (service copy-/etc/config.scm-service-type)
|
||||
(operating-system-user-services os)))))
|
||||
|
||||
(define (simple-provenance-entry config-file)
|
||||
"Return system entries describing the operating system config, provided
|
||||
through CONFIG-FILE."
|
||||
(mbegin %store-monad
|
||||
(return `(("configuration.scm"
|
||||
,(local-file (assume-valid-file-name config-file)
|
||||
"configuration.scm"))))))
|
||||
|
||||
;; This is mostly taken from provenance-service-type from (gnu services),
|
||||
;; but it provides only configuration.scm, not channels.scm. This is
|
||||
;; to get the same derivations for both Cuirass and local builds.
|
||||
;; In the future, provenance-service-type could be adapted to support
|
||||
;; this use case as well.
|
||||
(define simple-provenance-service-type
|
||||
(service-type (name 'provenance)
|
||||
(extensions
|
||||
(list (service-extension system-service-type
|
||||
simple-provenance-entry)))
|
||||
(default-value #f) ;the OS config file
|
||||
(description
|
||||
"Store configuration.scm of the system in the system
|
||||
itself.")))
|
||||
|
||||
(define* (operating-system-with-simple-provenance
|
||||
os
|
||||
#:optional
|
||||
(config-file
|
||||
(operating-system-configuration-file
|
||||
os)))
|
||||
"Return a variant of OS that stores its CONFIG-FILE. This is similar to
|
||||
`operating-system-with-provenance`, but it does copy only the
|
||||
configuration.scm."
|
||||
(operating-system
|
||||
(inherit os)
|
||||
(services (cons (service simple-provenance-service-type config-file)
|
||||
(operating-system-user-services os)))))
|
||||
|
||||
(define (guix-package-commit guix)
|
||||
;; Extract the commit of the GUIX package.
|
||||
(match (package-source guix)
|
||||
((? channel? source)
|
||||
(channel-commit source))
|
||||
(_
|
||||
(apply (lambda* (#:key commit #:allow-other-keys) commit)
|
||||
(package-arguments guix)))))
|
||||
|
||||
;; NOTE: Normally, we would use (current-guix), along with url
|
||||
;; overridden to the upstream repository to not leak our local checkout.
|
||||
;; But currently, the (current-guix) derivation has to be computed through
|
||||
;; QEMU for systems other than your host system. This takes a lot of time,
|
||||
;; it takes at least half an hour to get the derivations.
|
||||
(define (guix-package/with-commit guix commit)
|
||||
"Use the guix from (gnu packages package-management),
|
||||
but override its commit to the specified version. Make sure
|
||||
to also override the channel commit to have the correct
|
||||
provenance."
|
||||
(let ((scm-version (car (string-split (package-version guix) #\-))))
|
||||
(package
|
||||
(inherit guix)
|
||||
(version (string-append scm-version "." (string-take commit 7)))
|
||||
(source (git-checkout
|
||||
(url (channel-url %default-guix-channel))
|
||||
(commit commit)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments guix)
|
||||
((#:configure-flags flags '())
|
||||
#~(cons*
|
||||
(string-append "--with-channel-commit=" #$commit)
|
||||
(filter (lambda (flag)
|
||||
(not (string-prefix? "--with-channel-commit=" flag)))
|
||||
#$flags))))))))
|
||||
|
||||
(define guix-for-images
|
||||
(mlambda (system)
|
||||
(cond
|
||||
;; For testing purposes, use the guix package directly.
|
||||
(%use-snapshot-package? guix)
|
||||
;; Normally, update the guix package to current commit.
|
||||
(else
|
||||
(guix-package/with-commit guix (guix-package-commit (current-guix)))))))
|
||||
|
||||
(define %binary-tarball-compression "xz")
|
||||
|
||||
;; Like guix pack -C xz -s --localstatedir --profile-name=current-guix guix
|
||||
(define* (binary-tarball-for-system system #:key (extra-packages '()))
|
||||
(let* ((base-name (string-append "guix-binary-" (%guix-version) "." system))
|
||||
(manifest (packages->manifest (cons* guix extra-packages)))
|
||||
(profile (profile (content manifest)))
|
||||
(inputs `(("profile" ,profile)))
|
||||
(compression %binary-tarball-compression))
|
||||
(manifest-entry
|
||||
(name (string-append base-name ".tar." compression))
|
||||
(version (%guix-version))
|
||||
(item (monadic->declarative
|
||||
(self-contained-tarball
|
||||
base-name profile
|
||||
#:profile-name "current-guix"
|
||||
#:compressor (lookup-compressor compression)
|
||||
#:localstatedir? #t))))))
|
||||
|
||||
;; Like guix system image -t iso9660 \
|
||||
;; --label="GUIX_$${system}_$(VERSION)" gnu/system/install.scm
|
||||
(define* (iso-for-system system)
|
||||
(let* ((name (string-append
|
||||
"guix-system-install-" (%guix-version) "." system ".iso"))
|
||||
(base-os (make-installation-os
|
||||
#:grub-displayed-version (%guix-version)
|
||||
#:efi-only? (string=? system "aarch64-linux")))
|
||||
(base-image (os->image base-os #:type iso-image-type))
|
||||
(label (string-append "GUIX_" system "_"
|
||||
(if (> (string-length (%guix-version)) 7)
|
||||
(string-take (%guix-version) 7)
|
||||
(%guix-version)))))
|
||||
(manifest-entry
|
||||
(name name)
|
||||
(version (%guix-version))
|
||||
(item (system-image
|
||||
(image-with-label
|
||||
(image
|
||||
(inherit base-image)
|
||||
(name (string->symbol name)))
|
||||
label))))))
|
||||
|
||||
;; Like guix system image -t qcow2 gnu/system/examples/vm-image.tmpl
|
||||
(define* (qcow2-for-system system)
|
||||
(let* ((name (string-append
|
||||
"guix-system-vm-image-" (%guix-version) "." system ".qcow2"))
|
||||
(base-os-path
|
||||
(if (qcow2-gpt-for-system? system)
|
||||
(%vm-image-efi-path)
|
||||
(%vm-image-path)))
|
||||
(target-image-type
|
||||
(if (qcow2-gpt-for-system? system)
|
||||
qcow2-gpt-image-type
|
||||
qcow2-image-type))
|
||||
(base-os
|
||||
(operating-system-with-/etc/config.scm
|
||||
(operating-system-with-simple-provenance
|
||||
(load base-os-path) base-os-path)))
|
||||
(base-image (os->image base-os #:type target-image-type)))
|
||||
(manifest-entry
|
||||
(name name)
|
||||
(version (%guix-version))
|
||||
(item (system-image
|
||||
(image
|
||||
(inherit base-image)
|
||||
(volatile-root? #f)
|
||||
(size (* 20 (expt 1024 3))) ; 20 GiB to have spare space
|
||||
(name (string->symbol name))))))))
|
||||
|
||||
(define* (guix-source-tarball)
|
||||
(let ((guix (package
|
||||
(inherit guix)
|
||||
(native-inputs
|
||||
(modify-inputs (package-native-inputs guix)
|
||||
;; graphviz-minimal -> graphviz
|
||||
(replace "graphviz" graphviz)
|
||||
(append imagemagick)
|
||||
(append perl))))))
|
||||
(manifest-entry
|
||||
(name (string-append "guix-" (%guix-version) ".tar.gz"))
|
||||
(version (package-version guix))
|
||||
(item (dist-package
|
||||
guix
|
||||
;; Guix is built from git source, not from tarball.
|
||||
;; So it's fine to use its source directly.
|
||||
(package-source guix))))))
|
||||
|
||||
(define* (manifest-entry-with-parameters system entry
|
||||
#:key
|
||||
(guix-for-images-proc guix-for-images))
|
||||
(manifest-entry
|
||||
(inherit entry)
|
||||
(item
|
||||
(with-parameters
|
||||
((%current-system system)
|
||||
(%current-target-system #f)
|
||||
(current-guix-package (guix-for-images-proc system)))
|
||||
(manifest-entry-item entry)))))
|
||||
|
||||
(define* (manifest-with-parameters system manifest
|
||||
#:key
|
||||
(guix-for-images-proc guix-for-images))
|
||||
"Returns entries in the manifest accompanied with %current-system,
|
||||
%current-target-sytem and current-guix-package parameters."
|
||||
(make-manifest
|
||||
(map (cut manifest-entry-with-parameters system <>
|
||||
#:guix-for-images-proc guix-for-images-proc)
|
||||
(manifest-entries manifest))))
|
||||
|
||||
(define (artifacts-for-system/nonparameterized system)
|
||||
"Get all artifacts for given system. This will always include the
|
||||
guix-binary tarball and optionally iso and/or qcow2 images."
|
||||
(manifest
|
||||
(append
|
||||
(list
|
||||
(binary-tarball-for-system system))
|
||||
;; TODO: After source tarball generation is ready, uncomment.
|
||||
;; (if (source-tarball-for-system? system)
|
||||
;; (list (guix-source-tarball))
|
||||
;; '())
|
||||
(if (iso-for-system? system)
|
||||
(list (iso-for-system system))
|
||||
'())
|
||||
(if (qcow2-for-system? system)
|
||||
(list (qcow2-for-system system))
|
||||
'()))))
|
||||
|
||||
(define* (artifacts-for-system system
|
||||
#:key
|
||||
(guix-for-images-proc guix-for-images))
|
||||
"Collects all artifacts for a system. Gives them the proper %current-system
|
||||
and %current-target-system parameters, so the --system passed on CLI is
|
||||
irrelevant."
|
||||
;; NOTE: parameterizing current system, because the tarball seems to somehow
|
||||
;; depend on it early on. I haven't investigated it, but seems like a bug. Could
|
||||
;; it be the gexp->derivation + monadic->declarative, not passing down the
|
||||
;; system? Symptom: guix build --system=x86_64 -m artifacts-manifest.scm and
|
||||
;; guix build --system=i686-linux -m artifacts-manifest.scm gives out different
|
||||
;; results without the parameterization.
|
||||
(parameterize
|
||||
((%current-system system)
|
||||
(%current-target-system #f)
|
||||
(current-guix-package (guix-for-images-proc system)))
|
||||
(manifest-with-parameters
|
||||
system
|
||||
(artifacts-for-system/nonparameterized system)
|
||||
#:guix-for-images-proc guix-for-images-proc)))
|
||||
|
||||
(define (manifest->union manifest)
|
||||
"Makes a union that will be a folder with all the entries symlinked. This
|
||||
is different from a profile as it expects the entries are just simple files
|
||||
and symlinks them by their manifest-entry-name."
|
||||
(let ((entries (manifest-entries manifest)))
|
||||
(computed-file
|
||||
"artifacts-union"
|
||||
(with-imported-modules '((guix build union)
|
||||
(guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(mkdir-p #$output)
|
||||
|
||||
(for-each
|
||||
(lambda* (entry)
|
||||
(symlink (cdr entry)
|
||||
(string-append #$output "/" (car entry))))
|
||||
(list #$@(map (lambda (entry)
|
||||
#~(cons
|
||||
#$(manifest-entry-name entry)
|
||||
#$(manifest-entry-item entry)))
|
||||
entries))))))))
|
||||
|
||||
(define %supported-systems
|
||||
(or (and
|
||||
(getenv "SUPPORTED_SYSTEMS")
|
||||
(string-split (getenv "SUPPORTED_SYSTEMS") #\ ))
|
||||
'("x86_64-linux" "i686-linux"
|
||||
"armhf-linux" "aarch64-linux"
|
||||
"powerpc64le-linux" "riscv64-linux")))
|
||||
|
||||
(define supported-systems-union-manifest
|
||||
(concatenate-manifests
|
||||
(map artifacts-for-system
|
||||
%supported-systems)))
|
||||
|
||||
(when %use-snapshot-package?
|
||||
(warning (G_ "building images using the 'guix' package (snapshot)~%")))
|
||||
(info (G_ "producing artifacts for the following systems: ~a~%")
|
||||
%supported-systems)
|
||||
supported-systems-union-manifest
|
||||
@@ -1,26 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; Produce a single directory with all the artifacts inside of it, with proper
|
||||
;;; names. They can then be easily copied to releasedir in Makefile. The files are
|
||||
;;; symlinked to save space, but they should be copied out of the store as regular
|
||||
;;; files.
|
||||
|
||||
(load "artifacts-manifest.scm")
|
||||
|
||||
(manifest->union
|
||||
supported-systems-union-manifest)
|
||||
@@ -1,94 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
(use-modules (guix packages)
|
||||
(guix gexp)
|
||||
(gnu services)
|
||||
(gnu tests install)
|
||||
(ice-9 match)
|
||||
(guix utils)
|
||||
(srfi srfi-26)
|
||||
(srfi srfi-1))
|
||||
|
||||
;; TODO find a better way to check for thunked fields
|
||||
(define* (thunked-field? field obj)
|
||||
(and
|
||||
(procedure? obj)
|
||||
(eq?
|
||||
(car (procedure-minimum-arity obj))
|
||||
1)
|
||||
; Uhhh
|
||||
(string-suffix? "(x)>"
|
||||
(format #f "~a" obj))))
|
||||
|
||||
;; Prints names of all packages, prepending the service they
|
||||
;; come from.
|
||||
(define* (print-all-packages obj #:optional (pred package?))
|
||||
(match obj
|
||||
((? pred)
|
||||
(format #t "\"~a\"~%" (package-name obj))
|
||||
(list obj))
|
||||
((? gexp?)
|
||||
(list))
|
||||
((a . b)
|
||||
(append (print-all-packages a pred)
|
||||
(print-all-packages b pred)))
|
||||
((_ ...)
|
||||
(apply append
|
||||
(map (cut print-all-packages <> pred)
|
||||
obj)))
|
||||
(#(_ ...)
|
||||
(print-all-packages (vector->list obj) proc))
|
||||
((or (? service-type?)
|
||||
(? origin?))
|
||||
(list))
|
||||
((? record?)
|
||||
(let* ((record-type (record-type-descriptor obj))
|
||||
(record-fields (record-type-fields record-type)))
|
||||
(when (service? obj)
|
||||
(format #t ";; ~a-service~%" (service-type-name (service-kind obj))))
|
||||
(apply append
|
||||
(map (lambda (field)
|
||||
(let* ((accessor (record-accessor record-type field))
|
||||
(field-obj (accessor obj)))
|
||||
(if (thunked-field? field field-obj)
|
||||
(print-all-packages (field-obj obj) pred)
|
||||
(print-all-packages field-obj pred))))
|
||||
record-fields))))
|
||||
((? parameter?)
|
||||
(list))
|
||||
(_
|
||||
(list))))
|
||||
|
||||
(define full-installer-os
|
||||
((@@ (gnu tests install) installation-target-desktop-os-for-gui-tests)))
|
||||
|
||||
(define minimal-installer-os
|
||||
((@@ (gnu tests install) installation-target-os-for-gui-tests)))
|
||||
|
||||
(display "Full os packages:")
|
||||
(print-all-packages full-installer-os)
|
||||
(display "Minimal os packages:")
|
||||
(print-all-packages minimal-installer-os)
|
||||
|
||||
;; Note that the printed packages will contain duplicates.
|
||||
;; I recommend to first put packages out of the profile service
|
||||
;; and out of packages field (they will be above service packages)
|
||||
;; at the bottom of the list and then filtering only unique lines, ie.
|
||||
;; with `awk '!a[$0]++'`. And lastly removing services that no longer
|
||||
;; have packages and also the packages that are already in minimal manifest
|
||||
;; (in case of desktop manifest)
|
||||
@@ -22,7 +22,7 @@
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module ((gnu packages rust-sources) #:prefix package:)
|
||||
#:use-module (gnu packages rust-sources)
|
||||
#:export (lookup-cargo-inputs))
|
||||
|
||||
;;;
|
||||
|
||||
+2
-2
@@ -29,7 +29,7 @@
|
||||
;;; Code:
|
||||
|
||||
(define %artwork-repository
|
||||
(let ((commit "08259679a0faef63e3ba169df5b937d836bd9262"))
|
||||
(let ((commit "4c7f2ce6428a63e202cd2a9474a06f68a946934d"))
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -39,6 +39,6 @@
|
||||
"-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0anryix0y8w9brksiaz39r8c10vdd0fp4h96b9f3m4aw0xpv8xlf")))))
|
||||
"1rl569759q9wm1dxn7nkq3873d2k92giic7aa6jwzwr3n16prc7y")))))
|
||||
|
||||
;;; artwork.scm ends here
|
||||
|
||||
+6
-5
@@ -2,7 +2,7 @@
|
||||
;;; Copyright © 2017 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2017, 2020, 2022 Mathieu Othacehe <othacehe@gnu.org>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2019, 2021, 2023, 2025 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
|
||||
;;; Copyright © 2022 Reza Alizadeh Majd <r.majd@pantherx.org>
|
||||
@@ -26,8 +26,7 @@
|
||||
(define-module (gnu bootloader)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:use-module (gnu system uuid)
|
||||
#:autoload (guix discovery) (fold-module-public-variables)
|
||||
#:autoload (guix describe) (modules-from-current-profile)
|
||||
#:use-module (guix discovery)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix profiles)
|
||||
#:use-module (guix records)
|
||||
@@ -306,8 +305,10 @@ instead~%")))
|
||||
|
||||
(define (bootloader-modules)
|
||||
"Return the list of bootloader modules."
|
||||
(modules-from-current-profile "gnu/bootloader"
|
||||
#:warn warn-about-load-error))
|
||||
(all-modules (map (lambda (entry)
|
||||
`(,entry . "gnu/bootloader"))
|
||||
%load-path)
|
||||
#:warn warn-about-load-error))
|
||||
|
||||
(define %bootloaders
|
||||
;; The list of publically-known bootloaders.
|
||||
|
||||
@@ -65,7 +65,6 @@
|
||||
grub-efi-bootloader
|
||||
grub-efi-removable-bootloader
|
||||
grub-efi32-bootloader
|
||||
grub-efi32-removable-bootloader
|
||||
grub-efi-netboot-bootloader
|
||||
grub-efi-netboot-removable-bootloader
|
||||
grub-mkrescue-bootloader
|
||||
@@ -845,13 +844,6 @@ symlink to the store is not needed in this case."
|
||||
(name 'grub-efi32)
|
||||
(package grub-efi32)))
|
||||
|
||||
(define grub-efi32-removable-bootloader
|
||||
(bootloader
|
||||
(inherit grub-efi32-bootloader)
|
||||
(name 'grub-efi32-removable-bootloader)
|
||||
(installer (make-grub-efi-installer #:removable? #t
|
||||
#:efi32? #t))))
|
||||
|
||||
(define (make-grub-efi-netboot-bootloader name subdir)
|
||||
(bootloader
|
||||
(name name)
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
;;; Copyright © 2023-2024 Herman Rimm <herman@rimm.ee>
|
||||
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
|
||||
;;; Copyright © 2025 dan <i@dan.games>
|
||||
;;; Copyright © 2026 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -36,7 +35,6 @@
|
||||
u-boot-a20-olinuxino-lime2-bootloader
|
||||
u-boot-a20-olinuxino-micro-bootloader
|
||||
u-boot-bananapi-m2-ultra-bootloader
|
||||
u-boot-am335x-evm-bootloader
|
||||
u-boot-beaglebone-black-bootloader
|
||||
u-boot-cubietruck-bootloader
|
||||
u-boot-firefly-rk3399-bootloader
|
||||
@@ -66,12 +64,7 @@
|
||||
((? string?)
|
||||
(list #~(install-file (string-append bootloader #$file)
|
||||
install-dir)))
|
||||
((? file-like?)
|
||||
(list #~(mkdir-p install-dir)
|
||||
#~(copy-file #$file
|
||||
(string-append install-dir
|
||||
"/"
|
||||
#$(plain-file-name file)))))
|
||||
((? file-like?) (list #~(install-file #$file install-dir)))
|
||||
(#f '()))))
|
||||
#~(lambda (bootloader device mount-point)
|
||||
(let ((install-dir (string-append mount-point "/boot")))
|
||||
@@ -98,48 +91,6 @@ is BLOCK-SIZE * COUNT, or FILE size if COUNT is not given."
|
||||
(if bootloader
|
||||
(error "Failed to install U-Boot"))))
|
||||
|
||||
(define install-am335x-evm-u-boot
|
||||
(write-u-boot-image
|
||||
;; According to the "26.1.8.5.5 MMC/SD Read Sector Procedure in Raw Mode"
|
||||
;; section in the "AM335x and AMIC110 Sitara™ Processors Technical
|
||||
;; Reference Manual", we have offset, the bootrom tries to load code at the
|
||||
;; offsets 0x0, 0x20000 (128KB), 0x40000 (256KB) and 0x60000 (384KB).
|
||||
;;
|
||||
;; The MBR is 512 Bytes
|
||||
;; (https://en.wikipedia.org/wiki/Master_boot_record#Sector_layout).
|
||||
;;
|
||||
;; At the time of writing, u-boot.img is 1.4 MiB, and it is at offset
|
||||
;; 0x60000 (384KB) as per CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR.
|
||||
;;
|
||||
;; We also need to align the first partition to make sure read/writes are
|
||||
;; properly aligned.
|
||||
;;
|
||||
;; Given these constraints, we chose the following partitioning:
|
||||
;;
|
||||
;; 0 512 Bytes 128 KiB
|
||||
;; | | (0x20000) 256 KiB
|
||||
;; | | / (0x40000) 384 KiB 4 MiB
|
||||
;; | | / | (0x60000) |
|
||||
;; | | / | | |
|
||||
;; v v / v v v
|
||||
;; +-------+ +--------------+---------------+----------------+
|
||||
;; | MBR | ... | First MLO | Second MLO | u-boot.img |
|
||||
;; +-------+ +--------------+---------------+----------------+
|
||||
;; <-512 B-> ... <-- 128 KiB --> <-- 128 KiB --> <-- 3712 KiB -->
|
||||
;;
|
||||
;; The rationale for that is as follows:
|
||||
;;
|
||||
;; - We add a second copy of the MLO at 256 KiB for improving reliability
|
||||
;; as the doc/board/ti/am335x_evm.rst documentation in u-boot advise us
|
||||
;; to do that, and also because the space there isn't used.
|
||||
;;
|
||||
;; - All can fit into 2MiB (u-boot.img can grow up to 1664 KiB), but we
|
||||
;; want a bit more space in case u-boot.img grows over time, so we allow
|
||||
;; u-boot to grow until the 4 MiB offset.
|
||||
'(("MLO" 256 256) ;; First MLO
|
||||
("MLO" 256 512) ;; Second MLO
|
||||
("u-boot.img" 7424 768)) 512))
|
||||
|
||||
(define install-beaglebone-black-u-boot
|
||||
;; http://wiki.beyondlogic.org/index.php?title=BeagleBoneBlack_Upgrading_uBoot
|
||||
;; This first stage bootloader called MLO (U-Boot SPL) is expected at
|
||||
@@ -181,12 +132,7 @@ is BLOCK-SIZE * COUNT, or FILE size if COUNT is not given."
|
||||
;; starfive_visionfive2.dtb. We cannot guarantee that users will
|
||||
;; update this U-Boot, so set the FDT explicitly.
|
||||
(plain-file "uEnv.txt"
|
||||
(string-join
|
||||
(list
|
||||
"boot_targets=mmc1 nvme0 mmc0 dhcp"
|
||||
"bootcmd_mmc1=bootflow scan"
|
||||
"fdtfile=starfive/jh7110-starfive-visionfive-2-v1.3b.dtb")
|
||||
"\n"))))
|
||||
"fdtfile=starfive/jh7110-starfive-visionfive-2-v1.3b.dtb~%")))
|
||||
|
||||
|
||||
;;;
|
||||
@@ -201,33 +147,6 @@ is BLOCK-SIZE * COUNT, or FILE size if COUNT is not given."
|
||||
(installer #f)
|
||||
(disk-image-installer install-u-boot)))
|
||||
|
||||
(define u-boot-am335x-evm-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
;; This bootloader supports the following computers:
|
||||
;; - SanCloud BeagleBone Enhanced
|
||||
;; - SanCloud BeagleBone Enhanced Extended WiFi
|
||||
;; - SanCloud BeagleBone Enhanced Lite
|
||||
;; - Seeed Studio BeagleBone Green Eco
|
||||
;; - TI AM3359 ICE-V2
|
||||
;; - TI AM335x BeagleBone
|
||||
;; - TI AM335x BeagleBone Black
|
||||
;; - TI AM335x BeagleBone Green
|
||||
;; - TI AM335x EVM
|
||||
;; - TI AM335x EVM-SK
|
||||
;; - TI AM335x PocketBeagle
|
||||
;;
|
||||
;; This list was made by retrieving the list of Devicetrees used in
|
||||
;; configs/am335x_evm_defconfig in u-boot source code. Once we have that we
|
||||
;; can look at each Devicetree in arch/arm/boot/dts/ti/omap/ inside Linux,
|
||||
;; and in each file, look at the model property to find the name of the
|
||||
;; computers that this image supports.
|
||||
(package u-boot-am335x-evm)
|
||||
;; At the time of writing, our u-boot.img is 1.4 MiB. This is why we can't
|
||||
;; reuse install-beaglebone-black-u-boot. And having the same image being
|
||||
;; able to boot on multiple computers is useful.
|
||||
(disk-image-installer install-am335x-evm-u-boot)))
|
||||
|
||||
(define u-boot-beaglebone-black-bootloader
|
||||
(bootloader
|
||||
(inherit u-boot-bootloader)
|
||||
|
||||
+9
-16
@@ -359,7 +359,7 @@ to it atomically and set the appropriate permissions."
|
||||
(left unused-subid-range-left ;previous unused subuid range or #f
|
||||
(default #f))
|
||||
(min unused-subid-range-min ;lower bound of this unused subuid range
|
||||
(default 0))
|
||||
(default %subordinate-id-min))
|
||||
(max unused-subid-range-max ;upper bound
|
||||
(default %subordinate-id-max))
|
||||
(right unused-subid-range-right ;next unused subuid range or #f
|
||||
@@ -555,10 +555,7 @@ will be marked as used in it."
|
||||
(define actual-range
|
||||
(subid-range
|
||||
(inherit range)
|
||||
;; New IDs are only allocated between %subordinate-id-min and
|
||||
;; %subordinate-id-max.
|
||||
(start
|
||||
(max allocation-start %subordinate-id-min))))
|
||||
(start allocation-start)))
|
||||
|
||||
(if (within-interval? allocation actual-range)
|
||||
(values
|
||||
@@ -606,6 +603,13 @@ is visited to find the best unused range that can hold RANGE."
|
||||
(define range-end
|
||||
(subid-range-end range))
|
||||
|
||||
(unless (and (subordinate-id? range-start)
|
||||
(subordinate-id? range-end))
|
||||
(raise
|
||||
(condition
|
||||
(&invalid-subid-range-error
|
||||
(range range)))))
|
||||
|
||||
(define less?
|
||||
(< range-end allocation-start))
|
||||
(define more?
|
||||
@@ -798,23 +802,12 @@ new UIDs."
|
||||
(define* (allocate-subids ranges #:optional (current-ranges '()))
|
||||
"Return a list of subids entries for RANGES, a list of <subid-range>. IDs
|
||||
found in CURRENT-RANGES, a list of subid entries, are reused."
|
||||
;; Ranges from disk must always have a start.
|
||||
(let ((generic (any (compose not subid-range-has-start?) current-ranges)))
|
||||
(when generic
|
||||
(raise
|
||||
(condition
|
||||
(&specific-subid-range-expected-error
|
||||
(range generic))))))
|
||||
(for-each
|
||||
(lambda (range)
|
||||
;; New ranges must always be included in the current supported set.
|
||||
(unless (or (not (subid-range-has-start? range))
|
||||
(and (subordinate-id? (subid-range-start range))
|
||||
(subordinate-id? (subid-range-end range))))
|
||||
(raise
|
||||
(condition (&invalid-subid-range-error (range range))))))
|
||||
ranges)
|
||||
|
||||
(define sorted-ranges
|
||||
(stable-sort ranges
|
||||
subid-range-less))
|
||||
|
||||
+24
-38
@@ -11,7 +11,6 @@
|
||||
;;; Copyright © 2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -141,13 +140,12 @@ and bits are set according to the default behaviour of 'mkdir'."
|
||||
#:key
|
||||
(directory %skeleton-directory)
|
||||
uid gid)
|
||||
"Copy the account skeletons from DIRECTORY to HOME and make them writable.
|
||||
When UID is an integer, make it the owner of all the files created except the
|
||||
home directory; likewise for GID."
|
||||
(define (set-permission file)
|
||||
"Copy the account skeletons from DIRECTORY to HOME. When UID is an integer,
|
||||
make it the owner of all the files created except the home directory; likewise
|
||||
for GID."
|
||||
(define (set-owner file)
|
||||
(when (or uid gid)
|
||||
(chown file (or uid -1) (or gid -1)))
|
||||
(make-file-writable file))
|
||||
(chown file (or uid -1) (or gid -1))))
|
||||
|
||||
(let ((files (scandir directory (negate dot-or-dot-dot?)
|
||||
string<?)))
|
||||
@@ -157,9 +155,10 @@ home directory; likewise for GID."
|
||||
(copy-recursively (string-append directory "/" file)
|
||||
target
|
||||
#:log (%make-void-port "w"))
|
||||
(for-each set-permission
|
||||
(for-each set-owner
|
||||
(find-files target (const #t)
|
||||
#:directories? #t))))
|
||||
#:directories? #t))
|
||||
(make-file-writable target)))
|
||||
files)))
|
||||
|
||||
(define* (make-skeletons-writable home
|
||||
@@ -279,17 +278,6 @@ they already exist."
|
||||
|
||||
(for-each ensure-user-home users))
|
||||
|
||||
(define* (canonicalize-path* file)
|
||||
"A safe version of `canonicalize-path' that warns rather than raises on errors.
|
||||
`canonicalize-path' uses `realpath(2)', which can return various errors like
|
||||
EINVAL, ELOOP, etc."
|
||||
(or (false-if-exception (canonicalize-path file))
|
||||
(begin
|
||||
(format (current-warning-port)
|
||||
"warning: could not canonicalize file `~a'; using as-is~%"
|
||||
file)
|
||||
file)))
|
||||
|
||||
(define (activate-etc etc)
|
||||
"Install ETC, a directory in the store, as the source of static files for
|
||||
/etc."
|
||||
@@ -312,28 +300,26 @@ EINVAL, ELOOP, etc."
|
||||
(rm-f "/etc/ssl")
|
||||
(symlink "/run/current-system/profile/etc/ssl" "/etc/ssl")
|
||||
|
||||
(rm-f "/etc/static")
|
||||
(symlink etc "/etc/static")
|
||||
(for-each (lambda (file)
|
||||
(let ((target (string-append "/etc/" file))
|
||||
;; Canonicalize the file names to resolve any symlinks, to
|
||||
;; ensure /etc/localtime points to a timezone data file in
|
||||
;; the store containing the timezone name. This is done
|
||||
;; for compatibility with software expecting this systemd
|
||||
;; convention to be followed.
|
||||
(source (canonicalize-path* (string-append etc "/" file))))
|
||||
(source (string-append "/etc/static/" file)))
|
||||
(rm-f target)
|
||||
(cond ((string=? (basename target) "sudoers")
|
||||
(begin
|
||||
;; /etc/sudoers must be a regular file.
|
||||
(copy-file source target)
|
||||
;; XXX: dirty hack to meet sudo's expectations
|
||||
(chmod target #o440)))
|
||||
((string=? (basename target) "hosts")
|
||||
;; /etc/hosts must be a regular file, as some software
|
||||
;; like vpn-slice expect to be able to write to it.
|
||||
(copy-file source target))
|
||||
(else ;usual case
|
||||
(symlink source target)))))
|
||||
|
||||
;; Things such as /etc/sudoers must be regular files, not
|
||||
;; symlinks; furthermore, they could be modified behind our
|
||||
;; back---e.g., with 'visudo'. Thus, make a copy instead of
|
||||
;; symlinking them.
|
||||
(if (file-is-directory? source)
|
||||
(symlink source target)
|
||||
(copy-file source target))
|
||||
|
||||
;; XXX: Dirty hack to meet sudo's expectations.
|
||||
(when (string=? (basename target) "sudoers")
|
||||
(chmod target #o440))))
|
||||
(scandir etc (negate dot-or-dot-dot?)
|
||||
|
||||
;; The default is 'string-locale<?', but we don't have
|
||||
;; it when run from the initrd's statically-linked
|
||||
;; Guile.
|
||||
|
||||
@@ -91,7 +91,7 @@ each retry."
|
||||
((sleep*) delay) ;else wait and retry
|
||||
(loop (+ 1 attempts)))
|
||||
(error "maximum number of retry attempts reached"
|
||||
(quote (begin body ...)) args))))))
|
||||
(quote body ...) args))))))
|
||||
|
||||
|
||||
;;;
|
||||
|
||||
+8
-72
@@ -1,12 +1,12 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013-2020, 2025 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
|
||||
;;; Copyright © 2022, 2025 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@@ -66,14 +66,12 @@
|
||||
(number->string
|
||||
(inexact->exact (ceiling (/ size 1024)))))
|
||||
|
||||
(define* (estimate-partition-size root #:optional (margin .25))
|
||||
(define (estimate-partition-size root)
|
||||
"Given the ROOT directory, evaluate and return its size. As this doesn't
|
||||
take the partition metadata size into account, take a MARGIN. As this in
|
||||
take the partition metadata size into account, take a 25% margin. As this in
|
||||
turn doesn't take any constant overhead into account, force a 1-MiB minimum."
|
||||
(max (ash 1 20)
|
||||
;; without inexact->exact, 'guess can result in an error like that:
|
||||
;; "Wrong type (expecting exact integer): 7179941140.0".
|
||||
(inexact->exact (round (* (+ 1. margin) (file-size root))))))
|
||||
(* 1.25 (file-size root))))
|
||||
|
||||
(define* (make-btrfs-image partition target root)
|
||||
"Handle the creation of BTRFS partition images. See
|
||||
@@ -83,8 +81,7 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
|
||||
(label (partition-label partition))
|
||||
(uuid (partition-uuid partition)))
|
||||
(apply invoke
|
||||
`("unshare" "--map-root-user" "mkfs.btrfs"
|
||||
"-r" ,root
|
||||
`("fakeroot" "mkfs.btrfs" "-r" ,root
|
||||
"-L" ,label
|
||||
,@(if uuid
|
||||
`("-U" ,(uuid->string uuid))
|
||||
@@ -119,43 +116,7 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
|
||||
(size-in-kib
|
||||
(if (eq? size 'guess)
|
||||
(estimate-partition-size root)
|
||||
size)))))
|
||||
|
||||
;; 'mke2fs' does not create directory indexes by default, meaning that
|
||||
;; directories have a limit of 65,000 sub-directories, which can be
|
||||
;; problematic for the store. To avoid that, run 'e2fsck -D' to create
|
||||
;; those directory indexes. See
|
||||
;; <https://github.com/tytso/e2fsprogs/issues/257>.
|
||||
(invoke "e2fsck" "-fDy" target)))
|
||||
|
||||
(define* (make-f2fs-image partition target root
|
||||
#:key
|
||||
(owner-uid 0)
|
||||
(owner-gid 0))
|
||||
"Handle the creation of F2FS partition images. See 'make-partition-image'."
|
||||
(let ((size (partition-size partition))
|
||||
(label (partition-label partition))
|
||||
(uuid (partition-uuid partition))
|
||||
(fs-options (partition-file-system-options partition)))
|
||||
;; The mkfs.f2fs utility can't create files, so we need to create one
|
||||
;; before running it.
|
||||
(call-with-output-file target (const #t))
|
||||
(truncate-file
|
||||
target
|
||||
(if (eq? size 'guess)
|
||||
;; The F2FS filesystem has more overhead than other filesystems like
|
||||
;; BTRFS and ext4.
|
||||
(estimate-partition-size root .50)
|
||||
size))
|
||||
(apply invoke "fakeroot" "mkfs.f2fs"
|
||||
"-l" label
|
||||
"-R" (format #f "~a:~a" owner-uid owner-gid)
|
||||
`(,@(if uuid
|
||||
`("-U" ,(uuid->string uuid))
|
||||
'())
|
||||
,@fs-options
|
||||
,target))
|
||||
(invoke "fakeroot" "sload.f2fs" "-P" "-f" root target)))
|
||||
size)))))))
|
||||
|
||||
(define* (make-vfat-image partition target root fs-bits)
|
||||
"Handle the creation of VFAT partition images. See 'make-partition-image'."
|
||||
@@ -183,23 +144,6 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
|
||||
(string-append "::" file))))
|
||||
(scandir root))))
|
||||
|
||||
(define* (make-swap-image partition target)
|
||||
"Make a swap partition of a certain size."
|
||||
(let ((size (partition-size partition))
|
||||
(label (partition-label partition))
|
||||
(uuid (partition-uuid partition))
|
||||
(fs-options (partition-file-system-options partition)))
|
||||
(apply invoke "fakeroot" "mkswap"
|
||||
"--pagesize" "4096"
|
||||
"--endianness" "little"
|
||||
"-L" label
|
||||
"--file" target
|
||||
"--size" (number->string size)
|
||||
`(,@(if uuid
|
||||
`("-U" ,(uuid->string uuid))
|
||||
'())
|
||||
,@fs-options))))
|
||||
|
||||
(define* (make-unformatted-image partition target)
|
||||
"Make an unformatted partition of a certain size."
|
||||
(let ((size (partition-size partition)))
|
||||
@@ -218,14 +162,10 @@ ROOT directory to populate the image."
|
||||
(make-btrfs-image partition target root))
|
||||
((string-prefix? "ext" type)
|
||||
(make-ext-image partition target root))
|
||||
((string=? "f2fs" type)
|
||||
(make-f2fs-image partition target root))
|
||||
((or (string=? type "vfat") (string=? type "fat16"))
|
||||
(make-vfat-image partition target root 16))
|
||||
((string=? type "fat32")
|
||||
(make-vfat-image partition target root 32))
|
||||
((string=? "swap" type)
|
||||
(make-swap-image partition target))
|
||||
((string=? type "unformatted")
|
||||
(make-unformatted-image partition target))
|
||||
(else
|
||||
@@ -429,11 +369,7 @@ GRUB configuration and OS-DRV as the stuff in it."
|
||||
"-not" "-wholename" "/System/*"
|
||||
"-not" "-name" "unicode.pf2"
|
||||
"-not" "-name" "bzImage"
|
||||
"-not" "-name" "zImage"
|
||||
"-not" "-name" "Image"
|
||||
"-not" "-name" "vmlinuz"
|
||||
"-not" "-name" "*.gz" ; initrd
|
||||
"-not" "-name" "*.zst" ; all man pages
|
||||
"-not" "-name" "*.gz" ; initrd & all man pages
|
||||
"-not" "-name" "*.png" ; includes grub-image.png
|
||||
"-exec" "set_filter" "--zisofs"
|
||||
"--")
|
||||
|
||||
@@ -46,26 +46,7 @@
|
||||
make-static-device-nodes
|
||||
configure-qemu-networking
|
||||
|
||||
boot-system
|
||||
|
||||
linux-console
|
||||
|
||||
linux-console?
|
||||
linux-console-device
|
||||
linux-console-can-read?
|
||||
linux-console-can-write?
|
||||
linux-console-can-unblank?
|
||||
linux-console-enabled?
|
||||
linux-console-preferred?
|
||||
linux-console-primary?
|
||||
linux-console-printk?
|
||||
linux-console-braille?
|
||||
linux-console-safe-when-cpu-offline?
|
||||
linux-console-major
|
||||
linux-console-minor
|
||||
linux-console-virtual?
|
||||
|
||||
read-linux-consoles))
|
||||
boot-system))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
@@ -694,56 +675,4 @@ the root file system...\n" root-delay)
|
||||
(start-repl)))))
|
||||
#:on-error on-error))
|
||||
|
||||
(define-record-type <linux-console>
|
||||
(make-linux-console device can-read? can-write? can-unblank?
|
||||
enabled? preferred? primary? printk? braille?
|
||||
safe-when-cpu-offline? major minor virtual?)
|
||||
linux-console?
|
||||
(device linux-console-device)
|
||||
(can-read? linux-console-can-read?)
|
||||
(can-write? linux-console-can-write?)
|
||||
(can-unblank? linux-console-can-unblank?)
|
||||
(enabled? linux-console-enabled?)
|
||||
(preferred? linux-console-preferred?)
|
||||
(primary? linux-console-primary?)
|
||||
(printk? linux-console-printk?)
|
||||
(braille? linux-console-braille?)
|
||||
(safe-when-cpu-offline? linux-console-safe-when-cpu-offline?)
|
||||
(major linux-console-major)
|
||||
(minor linux-console-minor)
|
||||
(virtual? linux-console-virtual?))
|
||||
|
||||
(define* (read-linux-consoles #:optional (consoles-file "/proc/consoles"))
|
||||
"Parses CONSOLES-FILE and returns a list of <linux-console> records."
|
||||
(if (not (file-exists? consoles-file))
|
||||
'()
|
||||
(with-input-from-file consoles-file
|
||||
(lambda ()
|
||||
(let ((line-regex (make-regexp
|
||||
"^([^ ]+)[ ]+(.+)[ ]+([0-9]+):([0-9]+)$"))
|
||||
(virt-regex (make-regexp "^tty[0-9]+$")))
|
||||
(let loop ((line (read-line))
|
||||
(results '()))
|
||||
(cond
|
||||
((eof-object? line)
|
||||
(reverse results))
|
||||
((regexp-exec line-regex line)
|
||||
=> (lambda (m)
|
||||
(let* ((dev (match:substring m 1))
|
||||
(flags (match:substring m 2))
|
||||
(major (string->number (match:substring m 3)))
|
||||
(minor (string->number (match:substring m 4)))
|
||||
(virtual? (regexp-exec virt-regex dev))
|
||||
(has? (lambda (c)
|
||||
(string-any (lambda (f) (char=? f c)) flags))))
|
||||
(loop (read-line)
|
||||
(cons (make-linux-console
|
||||
dev
|
||||
(has? #\R) (has? #\W) (has? #\U) (has? #\E)
|
||||
(has? #\C) (has? #\B) (has? #\p) (has? #\b)
|
||||
(has? #\a)
|
||||
major minor virtual?)
|
||||
results)))))
|
||||
(else (loop (read-line) results)))))))))
|
||||
|
||||
;;; linux-boot.scm ends here
|
||||
|
||||
@@ -107,8 +107,8 @@ QEMU monitor and to the guest's backdoor REPL."
|
||||
(define extra-options
|
||||
(list "-nographic"
|
||||
"-monitor" (string-append "unix:" socket-directory "/monitor")
|
||||
"-chardev" (string-append "socket,id=repl,path="
|
||||
socket-directory "/repl")
|
||||
"-chardev" (string-append "socket,id=repl,path=" socket-directory
|
||||
"/repl,reconnect=1")
|
||||
"-chardev" (string-append "socket,id=qga,server=on,wait=off,path="
|
||||
socket-directory "/qemu-ga")
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2025 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2025 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
;;; Copyright © 2022 ( <paren@disroot.org>
|
||||
;;; Copyright © 2023 conses <contact@conses.eu>
|
||||
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2025 dan <i@dan.games>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -26,7 +25,7 @@
|
||||
#:use-module (gnu services configuration)
|
||||
#:use-module (gnu services xorg)
|
||||
#:autoload (gnu packages glib) (dbus)
|
||||
#:autoload (gnu packages xdisorg) (darkman redshift unclutter)
|
||||
#:autoload (gnu packages xdisorg) (redshift unclutter)
|
||||
#:autoload (gnu packages xorg) (setxkbmap xmodmap)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix gexp)
|
||||
@@ -47,11 +46,7 @@
|
||||
home-xmodmap-configuration
|
||||
home-xmodmap-service-type
|
||||
|
||||
home-startx-command-service-type
|
||||
|
||||
home-darkman-configuration
|
||||
home-darkman-configuration?
|
||||
home-darkman-service-type))
|
||||
home-startx-command-service-type))
|
||||
|
||||
|
||||
;;;
|
||||
@@ -452,93 +447,3 @@ buttons under the Xorg display server via user-defined expressions.")))
|
||||
|
||||
(define-service-type-mapping
|
||||
startx-command-service-type => home-startx-command-service-type)
|
||||
|
||||
|
||||
;;;
|
||||
;;; Darkman.
|
||||
;;;
|
||||
|
||||
(define-maybe number)
|
||||
|
||||
(define (serialize-number field value)
|
||||
(string-append (match field
|
||||
('latitude "lat")
|
||||
('longitude "lng")
|
||||
(_ (symbol->string field)))
|
||||
": " (number->string value) "\n"))
|
||||
|
||||
(define (serialize-boolean field value)
|
||||
(string-append (match field
|
||||
('use-geoclue "usegeoclue")
|
||||
('dbus-server "dbusserver")
|
||||
(_ "portal"))
|
||||
": " (if value "true" "false") "\n"))
|
||||
|
||||
(define-configuration home-darkman-configuration
|
||||
(darkman
|
||||
(file-like darkman)
|
||||
"The @code{darkman} package to use.")
|
||||
|
||||
(latitude
|
||||
maybe-number
|
||||
"Latitude, used at startup or when @code{use-geoclue} is @code{#f}. More than
|
||||
one decimal point is generally not needed.")
|
||||
|
||||
(longitude
|
||||
maybe-number
|
||||
"Longitude, used at startup or when @code{use-geoclue} is @code{#f}. More than
|
||||
one decimal point is generally not needed.")
|
||||
|
||||
(use-geoclue
|
||||
(boolean #f)
|
||||
"Whether to use a local geoclue instance to determine the current location.
|
||||
Setting this to false without explicitly setting latitude and longtitude
|
||||
disables automatic transitions entirely.")
|
||||
|
||||
(dbus-server
|
||||
(boolean #t)
|
||||
"Whether to expose the current mode via darkman's own D-Bus API.")
|
||||
|
||||
(portal
|
||||
(boolean #t)
|
||||
"Whether to expose the current mode via the XDG settings portal D-Bus API."))
|
||||
|
||||
(define (serialize-home-darkman-configuration config)
|
||||
(mixed-text-file
|
||||
"config.yaml"
|
||||
(serialize-configuration config home-darkman-configuration-fields)))
|
||||
|
||||
(define (home-darkman-configuration-files config)
|
||||
`(("darkman/config.yaml" ,(serialize-home-darkman-configuration config))))
|
||||
|
||||
(define (home-darkman-profile-service config)
|
||||
(list (home-darkman-configuration-darkman config)))
|
||||
|
||||
(define (home-darkman-shepherd-service config)
|
||||
(list
|
||||
(shepherd-service
|
||||
(provision '(darkman))
|
||||
(requirement '(dbus))
|
||||
(modules '((shepherd support))) ;for '%user-log-dir'
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append (home-darkman-configuration-darkman config)
|
||||
"/bin/darkman")
|
||||
"run")
|
||||
#:log-file
|
||||
(string-append %user-log-dir "/darkman.log")))
|
||||
(stop #~(make-kill-destructor)))))
|
||||
|
||||
(define home-darkman-service-type
|
||||
(service-type
|
||||
(name 'home-darkman)
|
||||
(extensions
|
||||
(list (service-extension home-shepherd-service-type
|
||||
home-darkman-shepherd-service)
|
||||
(service-extension home-xdg-configuration-files-service-type
|
||||
home-darkman-configuration-files)
|
||||
(service-extension home-profile-service-type
|
||||
home-darkman-profile-service)))
|
||||
(default-value (home-darkman-configuration))
|
||||
(description "Run the @code{darkman} daemon, which will invoke scripts in
|
||||
$XDG_DATA_DIRS/dark-mode.d/ when sundown, and invoke scripts in
|
||||
$XDG_DATA_DIRS/light-mode.d/ when sunrise.")))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2024 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -60,7 +60,10 @@
|
||||
or 'stow, but ~a was found.")
|
||||
value))))
|
||||
|
||||
(define-maybe/no-serialization list-of-strings)
|
||||
(define list-of-strings?
|
||||
(list-of string?))
|
||||
|
||||
(define-maybe list-of-strings)
|
||||
|
||||
(define-configuration/no-serialization home-dotfiles-configuration
|
||||
(source-directory
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
|
||||
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||
;;; Copyright © 2023 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2023 Andrew Patterson <andrewpatt7@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;;
|
||||
;;; 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 home services gnome)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu system accounts)
|
||||
#:use-module (gnu services configuration)
|
||||
#:use-module (gnu home services)
|
||||
#:use-module (gnu home services shepherd)
|
||||
#:export (gcr-ssh-agent-configuration
|
||||
gcr-ssh-agent-configuration?
|
||||
gcr-ssh-agent-configuration-fields
|
||||
gcr-ssh-agent-configuration-package
|
||||
gcr-ssh-agent-configuration-log-file
|
||||
|
||||
home-gcr-ssh-agent-log-file
|
||||
home-gcr-ssh-agent-shepherd-service
|
||||
|
||||
home-gcr-ssh-agent-service-type))
|
||||
|
||||
(define-maybe/no-serialization string)
|
||||
|
||||
(define-configuration/no-serialization gcr-ssh-agent-configuration
|
||||
(package
|
||||
(package gcr)
|
||||
"The @code{gcr} package to use.")
|
||||
(log-file
|
||||
(maybe-string)
|
||||
"Where the service will write its logs. If unset, it defaults to
|
||||
@file{$HOME/.local/state/shepherd/gcr-ssh-agent.log}."))
|
||||
|
||||
(define (home-gcr-ssh-agent-log-file config)
|
||||
(define maybe-log-file (gcr-ssh-agent-configuration-log-file config))
|
||||
(if (maybe-value-set? maybe-log-file)
|
||||
maybe-log-file
|
||||
#~(string-append %user-log-dir "/gcr-ssh-agent.log")))
|
||||
|
||||
(define (home-gcr-ssh-agent-shepherd-service config)
|
||||
(let ((package
|
||||
(gcr-ssh-agent-configuration-package config))
|
||||
(log-file (home-gcr-ssh-agent-log-file config)))
|
||||
(list
|
||||
(shepherd-service
|
||||
(provision '(gcr-ssh-agent ssh-agent))
|
||||
(modules
|
||||
;;for '%user-log-dir' and '%user-runtime-dir'
|
||||
'((shepherd support)))
|
||||
(start
|
||||
#~(let* ((socket-directory
|
||||
(string-append %user-runtime-dir
|
||||
"/gcr"))
|
||||
(socket-endpoint
|
||||
(endpoint
|
||||
(make-socket-address
|
||||
AF_UNIX
|
||||
(string-append socket-directory "/ssh"))
|
||||
#:name "ssh"
|
||||
#:socket-directory-permissions #o700)))
|
||||
(make-systemd-constructor
|
||||
(list #$(file-append package
|
||||
"/libexec/gcr-ssh-agent")
|
||||
"-d" socket-directory)
|
||||
(list socket-endpoint)
|
||||
;; With #:lazy-start #t the first ssh connection
|
||||
;; hangs indefinitely.
|
||||
#:lazy-start? #f
|
||||
#:log-file #$log-file)))
|
||||
(stop #~(make-systemd-destructor))))))
|
||||
|
||||
(define (home-gcr-ssh-agent-environment-variables config)
|
||||
`(("SSH_AUTH_SOCK" . "${XDG_RUNTIME_DIR}/gcr/ssh")))
|
||||
|
||||
(define home-gcr-ssh-agent-service-type
|
||||
(service-type
|
||||
(name 'home-gcr-ssh-agent)
|
||||
(extensions
|
||||
(list (service-extension
|
||||
home-shepherd-service-type
|
||||
home-gcr-ssh-agent-shepherd-service)
|
||||
(service-extension home-environment-variables-service-type
|
||||
home-gcr-ssh-agent-environment-variables)))
|
||||
(default-value (gcr-ssh-agent-configuration))
|
||||
(description
|
||||
"Provides @code{gcr-ssh-agent} Shepherd service and installs
|
||||
@code{gcr} in the system profile.")))
|
||||
@@ -23,7 +23,6 @@
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages wm)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services shepherd)
|
||||
@@ -72,8 +71,7 @@ environment variables set for a Wayland desktop session."
|
||||
niri
|
||||
xdg-desktop-portal
|
||||
xdg-desktop-portal-gnome
|
||||
xdg-desktop-portal-gtk
|
||||
xwayland-satellite)))))
|
||||
xdg-desktop-portal-gtk)))))
|
||||
(description "Install and configure Niri, a scrollable tiling Wayland
|
||||
compositor. This service starts Niri as a user-level desktop session with
|
||||
proper environment variables set for Wayland compatibility. It ensures Niri
|
||||
|
||||
@@ -1,221 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2025 Lilah Tascheter <lilah@lunabee.space>
|
||||
;;;
|
||||
;;; 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 home services secrets)
|
||||
#:use-module (gnu home services)
|
||||
#:use-module (gnu home services shepherd)
|
||||
#:use-module (gnu packages password-utils)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services configuration)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:export (wrap-himitsu-prompter
|
||||
home-himitsu-configuration
|
||||
home-himitsu-service-type
|
||||
|
||||
home-himitsu-ssh-configuration
|
||||
home-himitsu-ssh-service-type
|
||||
|
||||
home-himitsu-secret-service-configuration
|
||||
home-himitsu-secret-service-type))
|
||||
|
||||
;;
|
||||
;; himitsu
|
||||
;;
|
||||
|
||||
(define (wrap-himitsu-prompter prompter)
|
||||
"Wraps a prompter to autodetect DISPLAY and WAYLAND_DISPLAY, necessary since
|
||||
shepherd typically starts before a graphical session."
|
||||
(program-file "himitsu-wrapped-prompter"
|
||||
#~(begin (use-modules (ice-9 ftw) (ice-9 match) (srfi srfi-26))
|
||||
(unless (or (getenv "DISPLAY") (getenv "WAYLAND_DISPLAY"))
|
||||
(for-each (lambda (dir pat cont)
|
||||
(match (scandir dir (cut regexp-exec pat <>) string<?)
|
||||
((file . _) (cont file)) (_ #f)))
|
||||
(list "/tmp/.X11-unix" (or (getenv "XDG_RUNTIME_DIR")
|
||||
(string-append "/run/user/" (getuid))))
|
||||
(map make-regexp '("^X[0-9]+$" "^wayland-[0-9]+$"))
|
||||
(list (lambda (f)
|
||||
(setenv "DISPLAY" (string-append ":" (string-drop f 1))))
|
||||
(cut setenv "WAYLAND_DISPLAY" <>))))
|
||||
(apply execl #$prompter #$prompter (cdr (command-line))))))
|
||||
|
||||
(define-maybe string (prefix himitsu-))
|
||||
|
||||
(define (string-or-gexp? s)
|
||||
(or (string? s) (gexp? s)))
|
||||
|
||||
(define list-of-strings-or-gexps? (list-of string-or-gexp?))
|
||||
|
||||
(define (himitsu-serialize-string label val)
|
||||
#~(format #f "~a=~a~%" '#$label #$val))
|
||||
|
||||
(define himitsu-serialize-file-like himitsu-serialize-string)
|
||||
|
||||
(define (himitsu-serialize-list-of-strings-or-gexps label vals)
|
||||
#~(string-join (list #$@vals) "\n" 'suffix))
|
||||
|
||||
(define-configuration home-himitsu-configuration
|
||||
(package (file-like himitsu) "himitsu package to use." empty-serializer)
|
||||
(notify-reuse maybe-string "Command run to notify the user upon use of a
|
||||
secret it was already authorized to use. Limited shell expansion available.")
|
||||
(prompter (file-like (wrap-himitsu-prompter
|
||||
(file-append hiprompt-gtk "/bin/hiprompt-gtk")))
|
||||
"himitsu prompter to use to request user authorization for secret access.")
|
||||
(extra-options (list-of-strings-or-gexps '()) "A list of extra options, one
|
||||
per line, to put verbatim into the config file.")
|
||||
(prefix himitsu-))
|
||||
|
||||
(define (himitsu-serialize config)
|
||||
(mixed-text-file "himitsu.ini" "[himitsud]\n"
|
||||
(serialize-configuration config home-himitsu-configuration-fields)))
|
||||
|
||||
(define (himitsu-shepherd-service config)
|
||||
(define start
|
||||
#~(lambda _
|
||||
(let ((data (or (getenv "XDG_DATA_HOME")
|
||||
(string-append user-homedir "/.local/share"))))
|
||||
(if (directory-exists? (string-append data "/himitsu"))
|
||||
(fork+exec-command
|
||||
(list #$(let ((pkg (home-himitsu-configuration-package config)))
|
||||
(file-append pkg "/bin/himitsud"))
|
||||
"-C" #$(himitsu-serialize config))
|
||||
#:log-file (string-append %user-log-dir "/himitsu.log"))
|
||||
(error "Himitsu store must exist before the service can run! Try \
|
||||
running 'himitsu-store -i' first?")))))
|
||||
(list (shepherd-service
|
||||
(documentation "Run the Himitsu secret service manager.")
|
||||
(provision '(himitsud))
|
||||
(modules (cons* '(shepherd support) %default-modules))
|
||||
(start start)
|
||||
(stop #~(make-kill-destructor)))))
|
||||
|
||||
;; we need to install the file or else himitsu-store will gen it
|
||||
(define (himitsu-xdg-configuration-service config)
|
||||
`(("himitsu/config.ini" ,(himitsu-serialize config))))
|
||||
|
||||
(define home-himitsu-service-type
|
||||
(service-type
|
||||
(name 'himitsu)
|
||||
(extensions
|
||||
(list (service-extension home-shepherd-service-type
|
||||
himitsu-shepherd-service)
|
||||
(service-extension home-xdg-configuration-files-service-type
|
||||
himitsu-xdg-configuration-service)
|
||||
(service-extension home-profile-service-type
|
||||
(const (list himitsu)))))
|
||||
(compose concatenate)
|
||||
(extend (lambda (config exts)
|
||||
(let ((opts (home-himitsu-configuration-extra-options config)))
|
||||
(home-himitsu-configuration
|
||||
(inherit config)
|
||||
(extra-options (append exts opts))))))
|
||||
(default-value (home-himitsu-configuration))
|
||||
(description "Run the Himitsu secret storage manager upon login. You
|
||||
should create the Himitsu database in advance.")))
|
||||
|
||||
;;
|
||||
;; himitsu-ssh
|
||||
;;
|
||||
|
||||
(define (remember-option? opt)
|
||||
(or (number? opt) (memq opt '(session skip refuse))))
|
||||
|
||||
(define list-of-remember-options? (list-of remember-option?))
|
||||
|
||||
(define (himitsu-serialize-list-of-remember-options label val)
|
||||
(himitsu-serialize-string label
|
||||
(string-join (map (lambda (x) (cond ((number? x) (number->string x))
|
||||
((symbol? x) (symbol->string x))))
|
||||
val)
|
||||
",")))
|
||||
|
||||
(define-configuration home-himitsu-ssh-configuration
|
||||
(package (file-like himitsu-ssh) "himitsu-ssh package to use."
|
||||
empty-serializer)
|
||||
(persist (list-of-remember-options '(session 300 refuse)) "List of options
|
||||
given when prompting to allow himitsu-ssh to see your keys. The option chosen
|
||||
decides how long himitsu-ssh has this access. Options can be either 'session,
|
||||
'refuse, 'skip, or a timeout in seconds. 'session means until the daemon
|
||||
closes, 'refuse to decline and never ask again, and 'skip means to ask again
|
||||
next use.")
|
||||
(disclose (list-of-remember-options '(skip session 300)) "List of options
|
||||
given when prompting to allow himitsu-ssh use of your keys. The format is the
|
||||
same has persist.")
|
||||
(prefix himitsu-))
|
||||
|
||||
(define (himitsu-ssh-shepherd-service config)
|
||||
(let* ((package (home-himitsu-ssh-configuration-package config))
|
||||
(binary (file-append package "/bin/hissh-agent")))
|
||||
(list (shepherd-service
|
||||
(documentation "Start the Himitsu ssh-agent implementation.")
|
||||
(provision '(himitsu-ssh ssh-agent))
|
||||
(requirement '(himitsud))
|
||||
(start #~(make-forkexec-constructor (list #$binary)))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define (himitsu-ssh-himitsu.ini config)
|
||||
(list "[ssh.remember]"
|
||||
(serialize-configuration config home-himitsu-ssh-configuration-fields)))
|
||||
|
||||
(define (himitsu-ssh-environment-variables _)
|
||||
'(("SSH_AUTH_SOCK" . "${XDG_RUNTIME_DIR:-/run/user/$UID}/hissh-agent")))
|
||||
|
||||
(define home-himitsu-ssh-service-type
|
||||
(service-type
|
||||
(name 'himitsu-ssh)
|
||||
(extensions (list (service-extension home-shepherd-service-type
|
||||
himitsu-ssh-shepherd-service)
|
||||
(service-extension home-himitsu-service-type
|
||||
himitsu-ssh-himitsu.ini)
|
||||
(service-extension home-environment-variables-service-type
|
||||
himitsu-ssh-environment-variables)
|
||||
(service-extension home-profile-service-type
|
||||
(const (list himitsu-ssh)))))
|
||||
(default-value (home-himitsu-ssh-configuration))
|
||||
(description "Add support for ssh to store keys in Himitsu.")))
|
||||
|
||||
;;
|
||||
;; himitsu-secret-service
|
||||
;;
|
||||
|
||||
(define-configuration home-himitsu-secret-service-configuration
|
||||
(package (file-like himitsu-secret-service) "himitsu-secret-service package to
|
||||
use." empty-serializer)
|
||||
(prefix himitsu-))
|
||||
|
||||
(define (himitsu-secret-service-shepherd-service config)
|
||||
(let* ((package (home-himitsu-secret-service-configuration-package config))
|
||||
(binary (file-append package "/bin/hisecrets-agent")))
|
||||
(list (shepherd-service
|
||||
(documentation "Start the Himitsu secret-service implementation.")
|
||||
(provision '(himitsu-secret-service secret-service))
|
||||
(requirement '(himitsud dbus))
|
||||
(start #~(make-forkexec-constructor (list #$binary)))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define home-himitsu-secret-service-type
|
||||
(service-type
|
||||
(name 'himitsu-secret-service)
|
||||
(extensions
|
||||
(list (service-extension home-shepherd-service-type
|
||||
himitsu-secret-service-shepherd-service)))
|
||||
(default-value (home-himitsu-secret-service-configuration))
|
||||
(description "Add support to Himitsu for the freedesktop.org
|
||||
secret-service protocol.")))
|
||||
@@ -3,7 +3,6 @@
|
||||
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
|
||||
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2026 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -312,8 +311,6 @@ through before connecting to the server.")
|
||||
(default #f))
|
||||
(known-hosts home-openssh-configuration-known-hosts ;unspec | list of file-like
|
||||
(default *unspecified*))
|
||||
(known-hosts2 home-openssh-configuration-known-hosts2 ;unspec | list of file-like
|
||||
(default *unspecified*))
|
||||
(hosts home-openssh-configuration-hosts ;list of <openssh-host>
|
||||
(default '()))
|
||||
(add-keys-to-agent home-openssh-configuration-add-keys-to-agent ;string with limited values
|
||||
@@ -379,7 +376,6 @@ inserted after each of them."
|
||||
(let* ((ssh-config (plain-file "ssh.conf"
|
||||
(openssh-configuration->string config)))
|
||||
(known-hosts (home-openssh-configuration-known-hosts config))
|
||||
(known-hosts2 (home-openssh-configuration-known-hosts2 config))
|
||||
(authorized-keys (home-openssh-configuration-authorized-keys config))
|
||||
(authorized-keys (and
|
||||
authorized-keys
|
||||
@@ -391,10 +387,6 @@ inserted after each of them."
|
||||
'()
|
||||
`((".ssh/known_hosts"
|
||||
,(file-join "known_hosts" known-hosts "\n"))))
|
||||
,@(if (unspecified? known-hosts2)
|
||||
'()
|
||||
`((".ssh/known_hosts2"
|
||||
,(file-join "known_hosts2" known-hosts2 "\n"))))
|
||||
(".ssh/config" ,ssh-config))))
|
||||
|
||||
(define openssh-activation
|
||||
|
||||
@@ -129,6 +129,9 @@
|
||||
(define (list-of-string-ish? lst)
|
||||
(every string-ish? lst))
|
||||
|
||||
(define (list-of-packages? lst)
|
||||
(every package? lst))
|
||||
|
||||
(define (bar-position? p)
|
||||
(member p '(top bottom)))
|
||||
|
||||
|
||||
@@ -103,21 +103,10 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
|
||||
(define backup
|
||||
(string-append backup-directory "/" (preprocess-file file)))
|
||||
|
||||
(define (copy-file* oldfile newfile)
|
||||
"Like 'copy-file', but also copies dangling symlinks."
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(copy-file oldfile newfile))
|
||||
(lambda args
|
||||
(if (and (eq? 'symlink (stat:type (lstat oldfile)))
|
||||
(= ENOENT (system-error-errno args)))
|
||||
(symlink (readlink oldfile) newfile)
|
||||
(apply throw args)))))
|
||||
|
||||
(mkdir-p backup-directory)
|
||||
(format #t (G_ "Backing up ~a...") (target-file file))
|
||||
(mkdir-p (dirname backup))
|
||||
(copy-file* (target-file file) backup)
|
||||
(copy-file (target-file file) backup)
|
||||
(delete-file (target-file file))
|
||||
(display (G_ " done\n")))
|
||||
|
||||
|
||||
@@ -108,11 +108,10 @@ like sockets.")
|
||||
@file{/var/log}, but for user. It is not a part of XDG Base Directory
|
||||
Specification, but helps to make implementation of home services more
|
||||
consistent."
|
||||
(serializer
|
||||
(lambda (field-name val)
|
||||
(when (maybe-value-set? val)
|
||||
(warn-about-deprecation field-name #f #:replacement 'state-home))
|
||||
(serialize-path field-name val))))
|
||||
(lambda (field-name val)
|
||||
(when (maybe-value-set? val)
|
||||
(warn-about-deprecation field-name #f #:replacement 'state-home))
|
||||
(serialize-path field-name val)))
|
||||
(state-home
|
||||
(path "$HOME/.local/state")
|
||||
"Base directory for programs to store state data that should persist
|
||||
|
||||
+7
-6
@@ -367,13 +367,14 @@ purposes."
|
||||
'unknown)
|
||||
((channels ...)
|
||||
(map (lambda (channel)
|
||||
;; NOTE: URL is not logged to synchronize the derivations
|
||||
;; coming out of pre-inst-env, time-machine and Cuirass
|
||||
;; for generating release artifacts.
|
||||
`(channel ,(channel-name channel) ,(channel-commit channel)))
|
||||
(let* ((uri (string->uri (channel-url channel)))
|
||||
(url (if (or (not uri) (eq? 'file (uri-scheme uri)))
|
||||
"local checkout"
|
||||
(channel-url channel))))
|
||||
`(channel ,(channel-name channel) ,url ,(channel-commit channel))))
|
||||
channels))))
|
||||
|
||||
(define* (installer-program #:key dry-run? (guix-for-installer (current-guix)))
|
||||
(define* (installer-program #:key dry-run?)
|
||||
"Return a file-like object that runs the given INSTALLER."
|
||||
(define init-gettext
|
||||
;; Initialize gettext support, so that installer messages can be
|
||||
@@ -422,7 +423,7 @@ purposes."
|
||||
guile-gnutls
|
||||
guile-zlib ;for (gnu build linux-modules)
|
||||
guile-zstd ;for (gnu build linux-modules)
|
||||
guix-for-installer)
|
||||
(current-guix))
|
||||
(with-imported-modules `(,@(source-module-closure
|
||||
`(,@modules
|
||||
(gnu services herd)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2024,2026 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -168,10 +168,8 @@ or #f. Return #t on success and #f on failure."
|
||||
(const '())))
|
||||
(install-command (append `( "guix" "system" "init"
|
||||
"--fallback"
|
||||
,@(if (%current-target-system)
|
||||
`(,(string-append
|
||||
"--target="
|
||||
(%current-target-system)))
|
||||
,@(if (target-hurd?)
|
||||
'("--target=i586-pc-gnu")
|
||||
'()))
|
||||
options
|
||||
(list (%installer-configuration-file)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -27,8 +27,7 @@
|
||||
str)
|
||||
|
||||
(define (kernel->configuration kernel dry-run?)
|
||||
(if (and (string? kernel)
|
||||
(string-prefix? "Hurd" kernel))
|
||||
(if (equal? kernel "Hurd")
|
||||
`((kernel %hurd-default-operating-system-kernel)
|
||||
,(comment (G_ ";; \"noide\" disables the gnumach IDE driver, enabling rumpdisk.\n"))
|
||||
(kernel-arguments '("noide"))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -23,48 +23,23 @@
|
||||
#:export (run-kernel-page))
|
||||
|
||||
(define (run-kernel-page)
|
||||
;; TRANSLATORS: "Hurd" is a proper noun and must not be translated.
|
||||
(let* ((hurd-x86 (G_ "Hurd 32-bit (experimental)"))
|
||||
(hurd-x86_64 (G_ "Hurd 64-bit (highly experimental!)"))
|
||||
(linux-libre "Linux Libre")
|
||||
(kernels (parameterize ((%current-target-system #f))
|
||||
`(,linux-libre
|
||||
,@(cond ((target-x86-64?)
|
||||
(list hurd-x86 hurd-x86_64))
|
||||
((target-x86?)
|
||||
(list hurd-x86))
|
||||
(else
|
||||
'())))))
|
||||
(default (cond ((equal? (%current-target-system) "i586-pc-gnu")
|
||||
hurd-x86)
|
||||
((equal? (%current-target-system) "x86_64-pc-gnu")
|
||||
hurd-x86_64)
|
||||
(else
|
||||
linux-libre)))
|
||||
(let* ((kernels `(,@(if (target-x86?) '("Hurd") '())
|
||||
"Linux Libre"))
|
||||
(result
|
||||
(run-listbox-selection-page
|
||||
#:title (G_ "Kernel")
|
||||
#:info-text
|
||||
;; TRANSLATORS: "Hurd" is a proper noun and must not be translated.
|
||||
;; TRANSLATORS: "Linux Libre" is a literal and must not be translated.
|
||||
(G_ "Please select a kernel. When in doubt, choose \"Linux Libre\".
|
||||
|
||||
The Hurd is offered as a technology preview and development aid; many packages \
|
||||
are not yet available in Guix, such as a desktop environment or even a \
|
||||
windowing system (X, Wayland).")
|
||||
are not yet available in Guix, such as a desktop environment or even a windowing \
|
||||
system (X, Wayland).")
|
||||
#:listbox-items kernels
|
||||
#:listbox-item->text identity
|
||||
#:listbox-default-item default
|
||||
#:sort-listbox-items? #f ;keep Linux first
|
||||
#:listbox-default-item "Linux Libre"
|
||||
#:button-text (G_ "Back")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
(let ((target (cond ((equal? result hurd-x86)
|
||||
"i586-pc-gnu")
|
||||
((equal? result hurd-x86_64)
|
||||
"x86_64-pc-gnu")
|
||||
(else
|
||||
#f))))
|
||||
(%current-target-system target))
|
||||
(when (equal? result "Hurd")
|
||||
(%current-target-system "i586-pc-gnu"))
|
||||
result))
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (ice-9 match)
|
||||
@@ -113,24 +112,20 @@ network devices were found. Do you want to continue anyway?"))
|
||||
full-value
|
||||
(+ value 1)))))))
|
||||
|
||||
(define* (url-alive? url #:key (ensure-ok-status? #f))
|
||||
(define (url-alive? url)
|
||||
(false-if-exception
|
||||
(let ((response (http-request url)))
|
||||
(or (not ensure-ok-status?)
|
||||
(= (response-code response)
|
||||
200)))))
|
||||
(begin
|
||||
(http-request url)
|
||||
#t)))
|
||||
|
||||
(define* (common-urls-alive? urls #:key (ensure-ok-status? #f))
|
||||
"Return #t if at least some of the given URLS are alive,
|
||||
meaning that they do respond to a HTTP request. If ENSURE-OK-STATUS? is
|
||||
#t, return #t only if the code is 200."
|
||||
(define (common-urls-alive? urls)
|
||||
(dynamic-wind
|
||||
(lambda ()
|
||||
(sigaction SIGALRM
|
||||
(lambda _ #f))
|
||||
(alarm 3))
|
||||
(lambda ()
|
||||
(any (cut url-alive? <> #:ensure-ok-status? ensure-ok-status?)
|
||||
(any url-alive?
|
||||
urls))
|
||||
(lambda ()
|
||||
(alarm 0))))
|
||||
@@ -145,9 +140,7 @@ FULL-VALUE tentatives, spaced by 1 second."
|
||||
"https://bordeaux.guix.gnu.org"
|
||||
"https://ci.guix.gnu.org"
|
||||
"https://guix.gnu.org"
|
||||
"https://gnu.org")
|
||||
;; Any HTTP response means the users is online.
|
||||
#:ensure-ok-status? #f))
|
||||
"https://gnu.org")))
|
||||
(file-exists? "/tmp/installer-assume-online")))
|
||||
|
||||
(let* ((full-value 5))
|
||||
@@ -180,8 +173,7 @@ Do you want to continue anyway?"))
|
||||
(common-urls-alive?
|
||||
(list
|
||||
"https://bordeaux.guix.gnu.org/nix-cache-info"
|
||||
"https://ci.guix.gnu.org/nix-cache-info")
|
||||
#:ensure-ok-status? #t)))
|
||||
"https://ci.guix.gnu.org/nix-cache-info"))))
|
||||
|
||||
(let* ((full-value 5))
|
||||
(run-scale-page
|
||||
|
||||
@@ -108,23 +108,20 @@ all data on disk will be lost, are you sure you want to proceed?") item)
|
||||
|
||||
(define (run-label-page button-text button-callback)
|
||||
"Run a page asking the user to select a partition table label."
|
||||
;; Force the GPT label if UEFI is supported.
|
||||
(cond ((efi-installation?)
|
||||
((run-label-confirmation-page button-callback) "gpt"))
|
||||
;; Force the MSDOS label on Hurd.
|
||||
((target-hurd?)
|
||||
((run-label-confirmation-page button-callback) "msdos"))
|
||||
(else (run-listbox-selection-page
|
||||
#:info-text (G_ "Select a new partition table type. \
|
||||
;; Force the GPT label if UEFI is supported.
|
||||
(if (efi-installation?)
|
||||
((run-label-confirmation-page button-callback) "gpt")
|
||||
(run-listbox-selection-page
|
||||
#:info-text (G_ "Select a new partition table type. \
|
||||
Be careful, all data on the disk will be lost.")
|
||||
#:title (G_ "Partition table")
|
||||
#:listbox-items '("msdos" "gpt")
|
||||
#:listbox-default-item (if (target-hurd?) "msdos" "gpt")
|
||||
#:listbox-item->text identity
|
||||
#:listbox-callback-procedure
|
||||
(run-label-confirmation-page button-callback)
|
||||
#:button-text button-text
|
||||
#:button-callback-procedure button-callback))))
|
||||
#:title (G_ "Partition table")
|
||||
#:listbox-items '("msdos" "gpt")
|
||||
#:listbox-default-item (if (target-hurd?) "msdos" "gpt")
|
||||
#:listbox-item->text identity
|
||||
#:listbox-callback-procedure
|
||||
(run-label-confirmation-page button-callback)
|
||||
#:button-text button-text
|
||||
#:button-callback-procedure button-callback)))
|
||||
|
||||
(define (run-type-page partition)
|
||||
"Run a page asking the user to select a partition type."
|
||||
|
||||
@@ -36,9 +36,11 @@
|
||||
environments."
|
||||
(let ((items (filter desktop-system-service? (%system-services))))
|
||||
(run-checkbox-tree-page
|
||||
#:info-text (G_ "Please select the desktop environment(s) you wish to \
|
||||
#:info-text (if (target-hurd?)
|
||||
(G_ "Currently, none of these is available for the Hurd.")
|
||||
(G_ "Please select the desktop environment(s) you wish to \
|
||||
install. If you select multiple desktop environments here, you will be able \
|
||||
to choose from them later when you log in.")
|
||||
to choose from them later when you log in."))
|
||||
#:title (G_ "Desktop environment")
|
||||
#:items items
|
||||
#:selection (map system-service-recommended? items)
|
||||
@@ -48,16 +50,6 @@ to choose from them later when you log in.")
|
||||
(lambda ()
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
;; FIXME: all platforms should support %desktop-services and some of the
|
||||
;; offered desktop environments. Instead of globally disabling the desktop
|
||||
;; page, disable only non-working desktop environments.
|
||||
(define (run-desktop-environments-cbt-page/maybe)
|
||||
"Run page with desktop environments, as long as the user is on
|
||||
a system that supports them."
|
||||
(if (or (target-hurd?) (target-x86-32?))
|
||||
'()
|
||||
(run-desktop-environments-cbt-page)))
|
||||
|
||||
(define (run-networking-cbt-page)
|
||||
"Run a page allowing the user to select networking services."
|
||||
(let ((items (filter (lambda (service)
|
||||
@@ -139,7 +131,7 @@ client may be enough for a server.")
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (run-services-page)
|
||||
(let ((desktop (run-desktop-environments-cbt-page/maybe)))
|
||||
(let ((desktop (run-desktop-environments-cbt-page)))
|
||||
;; When the user did not select any desktop services, and thus didn't get
|
||||
;; '%desktop-services', offer network management services.
|
||||
(append desktop
|
||||
|
||||
+36
-38
@@ -195,21 +195,8 @@
|
||||
(define (system-services->configuration services)
|
||||
"Return the configuration field for SERVICES."
|
||||
(let* ((snippets (append-map system-service-snippet services))
|
||||
(packages (append-map system-service-packages services))
|
||||
(desktop? (find desktop-system-service? services))
|
||||
(packages
|
||||
(append (append-map system-service-packages services)
|
||||
(if desktop?
|
||||
(cons (comment (G_ ";; Fonts to cover all languages.\n"))
|
||||
(map (lambda (package)
|
||||
`(specification->package ,package))
|
||||
'("font-google-noto"
|
||||
"font-google-noto-emoji"
|
||||
;; FIXME: Selection of fonts depends on the
|
||||
;; locale. Use a monospaced CJK font with
|
||||
;; latin letters before there's proper fix.
|
||||
;; See <https://codeberg.org/guix/guix/pulls/5654#issuecomment-9928509>
|
||||
"font-sarasa-gothic")))
|
||||
'())))
|
||||
(base (if desktop?
|
||||
(if (target-hurd?)
|
||||
'%desktop-services/hurd
|
||||
@@ -243,33 +230,44 @@
|
||||
;; under their own account: use 'guix search KEYWORD' to search
|
||||
;; for packages and 'guix install PACKAGE' to install a package.\n")))))
|
||||
|
||||
`(,@(if (null? packages)
|
||||
(if (target-hurd?)
|
||||
(if (null? snippets)
|
||||
`(,@(if (null? packages)
|
||||
(if (target-hurd?)
|
||||
`(,@package-heading
|
||||
(packages %base-packages/hurd))
|
||||
'())
|
||||
`(,@package-heading
|
||||
(packages %base-packages/hurd))
|
||||
'())
|
||||
`(,@package-heading
|
||||
(packages (append (list ,@packages)
|
||||
,(if (target-hurd?)
|
||||
'%base-packages/hurd
|
||||
'%base-packages)))))
|
||||
(packages (append (list ,@packages)
|
||||
,(if (target-hurd?)
|
||||
'%base-packages/hurd
|
||||
'%base-packages)))))
|
||||
|
||||
,@service-heading
|
||||
,(if (and (null? snippets)
|
||||
(not desktop?))
|
||||
`(services ,services)
|
||||
`(services
|
||||
(append (list ,@snippets
|
||||
,@service-heading
|
||||
(services ,services))
|
||||
`(,@(if (null? packages)
|
||||
(if (target-hurd?)
|
||||
`(,@package-heading
|
||||
(packages %base-packages/hurd))
|
||||
'())
|
||||
`(,@package-heading
|
||||
(packages (append (list ,@packages)
|
||||
,(if (target-hurd?)
|
||||
'%base-packages/hurd
|
||||
'%base-packages)))))
|
||||
|
||||
,@(if desktop?
|
||||
;; XXX: Assume 'keyboard-layout' is in scope.
|
||||
`((set-xorg-configuration
|
||||
(xorg-configuration
|
||||
(keyboard-layout keyboard-layout))))
|
||||
'()))
|
||||
,@service-heading
|
||||
(services (append (list ,@snippets
|
||||
|
||||
,(vertical-space 1)
|
||||
,(comment (G_ "\
|
||||
,@(if desktop?
|
||||
;; XXX: Assume 'keyboard-layout' is in
|
||||
;; scope.
|
||||
`((set-xorg-configuration
|
||||
(xorg-configuration
|
||||
(keyboard-layout keyboard-layout))))
|
||||
'()))
|
||||
|
||||
,(vertical-space 1)
|
||||
,(comment (G_ "\
|
||||
;; This is the default list of services we
|
||||
;; are appending to.\n"))
|
||||
,services))))))
|
||||
,services))))))
|
||||
|
||||
+54
-101
@@ -1,5 +1,5 @@
|
||||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2012-2026 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2012-2025 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023, 2024, 2025 Andreas Enge <andreas@enge.fr>
|
||||
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
|
||||
@@ -19,7 +19,7 @@
|
||||
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
|
||||
# Copyright © 2018, 2019, 2020, 2021, 2022, 2024, 2025 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
|
||||
# Copyright © 2018, 2020-2026 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
# Copyright © 2018, 2020-2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
# Copyright © 2019, 2020, 2021, 2022, 2024 Guillaume Le Vaillant <glv@posteo.net>
|
||||
# Copyright © 2019, 2020 John Soo <jsoo1@asu.edu>
|
||||
# Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
@@ -35,7 +35,7 @@
|
||||
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
|
||||
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
|
||||
# Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
|
||||
# Copyright © 2020, 2023, 2025 Tanguy Le Carrour <tanguy@bioneland.org>
|
||||
# Copyright © 2020, 2023 Tanguy Le Carrour <tanguy@bioneland.org>
|
||||
# Copyright © 2020 Martin Becze <mjbecze@riseup.net>
|
||||
# Copyright © 2020 Malte Frank Gerdes <mate.f.gerdes@gmail.com>
|
||||
# Copyright © 2020, 2023 Vinicius Monego <monego@posteo.net>
|
||||
@@ -73,7 +73,6 @@
|
||||
# Copyright © 2024 James Smith <jsubuntuxp@disroot.org>
|
||||
# Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
|
||||
# Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
|
||||
# Copyright © 2025 bdunahu <bdunahu@operationnull.com>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
@@ -113,7 +112,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/home/services/dotfiles.scm \
|
||||
%D%/home/services/symlink-manager.scm \
|
||||
%D%/home/services/fontutils.scm \
|
||||
%D%/home/services/gnome.scm \
|
||||
%D%/home/services/gnupg.scm \
|
||||
%D%/home/services/guix.scm \
|
||||
%D%/home/services/mail.scm \
|
||||
@@ -123,7 +121,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/home/services/music.scm \
|
||||
%D%/home/services/niri.scm \
|
||||
%D%/home/services/pm.scm \
|
||||
%D%/home/services/secrets.scm \
|
||||
%D%/home/services/shells.scm \
|
||||
%D%/home/services/shepherd.scm \
|
||||
%D%/home/services/sound.scm \
|
||||
@@ -190,6 +187,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/calcurse.scm \
|
||||
%D%/packages/ccache.scm \
|
||||
%D%/packages/cdrom.scm \
|
||||
%D%/packages/cedille.scm \
|
||||
%D%/packages/certs.scm \
|
||||
%D%/packages/check.scm \
|
||||
%D%/packages/chemistry.scm \
|
||||
@@ -212,6 +210,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/connman.scm \
|
||||
%D%/packages/containers.scm \
|
||||
%D%/packages/convmv.scm \
|
||||
%D%/packages/cook.scm \
|
||||
%D%/packages/coq.scm \
|
||||
%D%/packages/cpio.scm \
|
||||
%D%/packages/cpp.scm \
|
||||
@@ -255,7 +254,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/docker.scm \
|
||||
%D%/packages/documentation.scm \
|
||||
%D%/packages/dpdk.scm \
|
||||
%D%/packages/duckdb.scm \
|
||||
%D%/packages/dvtm.scm \
|
||||
%D%/packages/easyrpg.scm \
|
||||
%D%/packages/ebook.scm \
|
||||
@@ -303,11 +301,11 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/freeipmi.scm \
|
||||
%D%/packages/ftp.scm \
|
||||
%D%/packages/fribidi.scm \
|
||||
%D%/packages/fusion.scm \
|
||||
%D%/packages/gambas.scm \
|
||||
%D%/packages/game-development.scm \
|
||||
%D%/packages/games.scm \
|
||||
%D%/packages/gawk.scm \
|
||||
%D%/packages/gcal.scm \
|
||||
%D%/packages/gcc.scm \
|
||||
%D%/packages/gd.scm \
|
||||
%D%/packages/gdb.scm \
|
||||
@@ -358,8 +356,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/gxmessage.scm \
|
||||
%D%/packages/hardware.scm \
|
||||
%D%/packages/hare.scm \
|
||||
%D%/packages/hare-apps.scm \
|
||||
%D%/packages/hare-xyz.scm \
|
||||
%D%/packages/haskell.scm \
|
||||
%D%/packages/haskell-apps.scm \
|
||||
%D%/packages/haskell-check.scm \
|
||||
@@ -367,7 +363,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/haskell-web.scm \
|
||||
%D%/packages/haskell-xyz.scm \
|
||||
%D%/packages/haxe.scm \
|
||||
%D%/packages/hdl.scm \
|
||||
%D%/packages/heads.scm \
|
||||
%D%/packages/hexedit.scm \
|
||||
%D%/packages/high-availability.scm \
|
||||
@@ -377,6 +372,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/i2p.scm \
|
||||
%D%/packages/ibus.scm \
|
||||
%D%/packages/icu4c.scm \
|
||||
%D%/packages/idris.scm \
|
||||
%D%/packages/idutils.scm \
|
||||
%D%/packages/image.scm \
|
||||
%D%/packages/image-processing.scm \
|
||||
@@ -550,7 +546,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/php.scm \
|
||||
%D%/packages/php-xyz.scm \
|
||||
%D%/packages/piet.scm \
|
||||
%D%/packages/diagram.scm \
|
||||
%D%/packages/pikchr.scm \
|
||||
%D%/packages/pkg-config.scm \
|
||||
%D%/packages/plan9.scm \
|
||||
%D%/packages/plotutils.scm \
|
||||
@@ -613,6 +609,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/rust-sources.scm \
|
||||
%D%/packages/samba.scm \
|
||||
%D%/packages/sagemath.scm \
|
||||
%D%/packages/sawfish.scm \
|
||||
%D%/packages/scanner.scm \
|
||||
%D%/packages/scheme.scm \
|
||||
%D%/packages/spreadsheet.scm \
|
||||
@@ -697,6 +694,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/vpn.scm \
|
||||
%D%/packages/vulkan.scm \
|
||||
%D%/packages/w3m.scm \
|
||||
%D%/packages/wdiff.scm \
|
||||
%D%/packages/weather.scm \
|
||||
%D%/packages/web.scm \
|
||||
%D%/packages/web-browsers.scm \
|
||||
@@ -759,7 +757,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/services/networking.scm \
|
||||
%D%/services/nix.scm \
|
||||
%D%/services/nfs.scm \
|
||||
%D%/services/opensnitch.scm \
|
||||
%D%/services/pam-mount.scm \
|
||||
%D%/services/power.scm \
|
||||
%D%/services/science.scm \
|
||||
@@ -804,7 +801,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/system/uuid.scm \
|
||||
%D%/system/vm.scm \
|
||||
\
|
||||
%D%/system/images/a20-olinuxino-lime2.scm \
|
||||
%D%/system/images/hurd.scm \
|
||||
%D%/system/images/novena.scm \
|
||||
%D%/system/images/orangepi-r1-plus-lts-rk3328.scm \
|
||||
@@ -971,6 +967,11 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/adb-add-libraries.patch \
|
||||
%D%/packages/patches/adb-libssl_11-compatibility.patch \
|
||||
%D%/packages/patches/accountsservice-extensions.patch \
|
||||
%D%/packages/patches/aegis-constness-error.patch \
|
||||
%D%/packages/patches/aegis-perl-tempdir1.patch \
|
||||
%D%/packages/patches/aegis-perl-tempdir2.patch \
|
||||
%D%/packages/patches/aegis-test-fixup-1.patch \
|
||||
%D%/packages/patches/aegis-test-fixup-2.patch \
|
||||
%D%/packages/patches/aegisub-icu59-include-unistr.patch \
|
||||
%D%/packages/patches/aegisub-boost68.patch \
|
||||
%D%/packages/patches/aegisub-boost81.patch \
|
||||
@@ -987,9 +988,9 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/akonadi-not-relocatable.patch \
|
||||
%D%/packages/patches/akonadi-timestamps.patch \
|
||||
%D%/packages/patches/alure-dumb-2.patch \
|
||||
%D%/packages/patches/amd-smi-python.patch \
|
||||
%D%/packages/patches/ibus-anthy-fix-tests.patch \
|
||||
%D%/packages/patches/ibus-table-paths.patch \
|
||||
%D%/packages/patches/anki-mpv-args.patch \
|
||||
%D%/packages/patches/antiword-CVE-2014-8123.patch \
|
||||
%D%/packages/patches/antlr3-3_1-fix-java8-compilation.patch \
|
||||
%D%/packages/patches/antlr3-3_3-fix-java8-compilation.patch \
|
||||
@@ -1058,7 +1059,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \
|
||||
%D%/packages/patches/binutils-2.41-fix-cross.patch \
|
||||
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
|
||||
%D%/packages/patches/bmake-run-check-separately.patch \
|
||||
%D%/packages/patches/boolector-find-googletest.patch \
|
||||
%D%/packages/patches/boost-fix-duplicate-definitions-bug.patch \
|
||||
%D%/packages/patches/btanks-scons-python.patch \
|
||||
@@ -1076,6 +1076,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/calls-disable-application-test.patch \
|
||||
%D%/packages/patches/calls-disable-sip-test.patch \
|
||||
%D%/packages/patches/camlboot-dynamically-allocate-stack-signal.patch \
|
||||
%D%/packages/patches/capnproto-fix-test.patch \
|
||||
%D%/packages/patches/capstone-fix-python-constants.patch \
|
||||
%D%/packages/patches/catdoc-CVE-2017-11110.patch \
|
||||
%D%/packages/patches/chez-irregex-import-cond-expand.patch \
|
||||
@@ -1084,7 +1085,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/cdparanoia-fpic.patch \
|
||||
%D%/packages/patches/cdrkit-libre-cross-compile.patch \
|
||||
%D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \
|
||||
%D%/packages/patches/ceph-fix-cmake.patch \
|
||||
%D%/packages/patches/ceph-disable-cpu-optimizations.patch \
|
||||
%D%/packages/patches/ceph-fix-for-newer-boost.patch \
|
||||
%D%/packages/patches/cf-tool-add-languages.patch \
|
||||
%D%/packages/patches/chmlib-inttypes.patch \
|
||||
%D%/packages/patches/cl-asdf-config-directories.patch \
|
||||
@@ -1117,9 +1119,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/clucene-pkgconfig.patch \
|
||||
%D%/packages/patches/coda-use-system-libs.patch \
|
||||
%D%/packages/patches/cogl-fix-double-free.patch \
|
||||
%D%/packages/patches/collada-dom-boost.patch \
|
||||
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
|
||||
%D%/packages/patches/collectd-5.11.0-python-3.11.patch \
|
||||
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
|
||||
%D%/packages/patches/combinatorial-blas-awpm.patch \
|
||||
%D%/packages/patches/combinatorial-blas-io-fix.patch \
|
||||
%D%/packages/patches/compsize-fix-btrfs-progs-compatibility.patch \
|
||||
@@ -1140,11 +1140,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/crc32c-unbundle-googletest.patch \
|
||||
%D%/packages/patches/crda-optional-gcrypt.patch \
|
||||
%D%/packages/patches/clucene-contribs-lib.patch \
|
||||
%D%/packages/patches/cryfs-boost-1.88-fix.patch \
|
||||
%D%/packages/patches/cryfs-boost-1.89-fix.patch \
|
||||
%D%/packages/patches/csvkit-set-locale-for-tests.patch \
|
||||
%D%/packages/patches/ctranslate2-local-build.patch \
|
||||
%D%/packages/patches/ctune-cmake-disable-git-clone.patch \
|
||||
%D%/packages/patches/cube-nocheck.patch \
|
||||
%D%/packages/patches/cups-relax-root-ownership-check.patch \
|
||||
%D%/packages/patches/cura-engine-gcc-14.patch \
|
||||
@@ -1175,7 +1172,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/dhclient-script-resolvconf-support.patch \
|
||||
%D%/packages/patches/dicedb-remove-init-from-config-subpkg.patch \
|
||||
%D%/packages/patches/directfb-davinci-glibc-228-compat.patch \
|
||||
%D%/packages/patches/django-compressor-build-with-beautifulsoup-4.14+.patch \
|
||||
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
|
||||
%D%/packages/patches/doc++-gcc-14.patch \
|
||||
%D%/packages/patches/docbook-utils-documentation-edits.patch \
|
||||
@@ -1202,23 +1198,20 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/duc-fix-test-sh.patch \
|
||||
%D%/packages/patches/dune-common-skip-failing-tests.patch \
|
||||
%D%/packages/patches/durden-shadow-arcan.patch \
|
||||
%D%/packages/patches/dvdbackup-with-libdvdread-6.1.0+.patch \
|
||||
%D%/packages/patches/dvd+rw-tools-add-include.patch \
|
||||
%D%/packages/patches/dwarves-threading-reproducibility.patch \
|
||||
%D%/packages/patches/efivar-fix-fprint-format.patch \
|
||||
%D%/packages/patches/eigen-fix-strict-aliasing-bug.patch \
|
||||
%D%/packages/patches/einstein-build.patch \
|
||||
%D%/packages/patches/elfutils-tests-ptrace.patch \
|
||||
%D%/packages/patches/elixir-httpoison-tag-network-dependent-test-cases.patch \
|
||||
%D%/packages/patches/elixir-path-length.patch \
|
||||
%D%/packages/patches/elm-ghc9.2.patch \
|
||||
%D%/packages/patches/python-treelib-remove-python2-compat.patch \
|
||||
%D%/packages/patches/elm-offline-package-registry.patch \
|
||||
%D%/packages/patches/elm-reactor-static-files.patch \
|
||||
%D%/packages/patches/emacs-all-the-icons-remove-duplicate-rs.patch \
|
||||
%D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \
|
||||
%D%/packages/patches/emacs-disable-jit-compilation.patch \
|
||||
%D%/packages/patches/emacs-doc-toc-shell-commands.patch \
|
||||
%D%/packages/patches/emacs-elisp-autofmt-fix-region-send.patch \
|
||||
%D%/packages/patches/emacs-exec-path.patch \
|
||||
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
|
||||
%D%/packages/patches/emacs-gnus-alias-reference-signature.patch \
|
||||
@@ -1237,6 +1230,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/emacs-pasp-mode-quote-file-names.patch \
|
||||
%D%/packages/patches/emacs-pgtk-super-key-fix.patch \
|
||||
%D%/packages/patches/emacs-polymode-fix-lexical-variable-error.patch \
|
||||
%D%/packages/patches/emacs-shx-byte-compilation-test.patch \
|
||||
%D%/packages/patches/emacs-telega-path-placeholder.patch \
|
||||
%D%/packages/patches/emacs-telega-test-env.patch \
|
||||
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
|
||||
@@ -1248,18 +1242,16 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ergodox-firmware-fix-numpad.patch \
|
||||
%D%/packages/patches/ericw-tools-add-check-for-sse2-in-light.cc.patch \
|
||||
%D%/packages/patches/ericw-tools-gcc-11-pass-const-to-offsetof.patch \
|
||||
%D%/packages/patches/erlang-binpp-disable-failing-tests.patch \
|
||||
%D%/packages/patches/erlang-man-path.patch \
|
||||
%D%/packages/patches/erlang-mochiweb-disable-known-to-fail-tests.patch \
|
||||
%D%/packages/patches/esmini-use-pkgconfig.patch \
|
||||
%D%/packages/patches/esmtp-add-lesmtp.patch \
|
||||
%D%/packages/patches/esound-c99.patch \
|
||||
%D%/packages/patches/exercism-disable-self-update.patch \
|
||||
%D%/packages/patches/extempore-unbundle-external-dependencies.patch \
|
||||
%D%/packages/patches/extundelete-e2fsprogs-1.44.patch \
|
||||
%D%/packages/patches/fail2ban-fix-sshd-filter.patch \
|
||||
%D%/packages/patches/fail2ban-paths-guix-conf.patch \
|
||||
%D%/packages/patches/faiss-tests-CMakeLists-find-googletest.patch \
|
||||
%D%/packages/patches/falcosecurity-libs-bpf-probes-fix.patch \
|
||||
%D%/packages/patches/falcosecurity-libs-shared-build.patch \
|
||||
%D%/packages/patches/farstream-gupnp.patch \
|
||||
%D%/packages/patches/farstream-make.patch \
|
||||
@@ -1289,7 +1281,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch \
|
||||
%D%/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch \
|
||||
%D%/packages/patches/ffmpeg-4-binutils-2.41.patch \
|
||||
%D%/packages/patches/ffmpeg-svt-av1-v3.patch \
|
||||
%D%/packages/patches/fgallery-also-look-for-7z.patch \
|
||||
%D%/packages/patches/fifengine-boost-compat.patch \
|
||||
%D%/packages/patches/fifengine-python-3.9-compat.patch \
|
||||
@@ -1326,6 +1317,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/freeimage-unbundle.patch \
|
||||
%D%/packages/patches/freeimage-CVE-2020-21428.patch \
|
||||
%D%/packages/patches/freeimage-CVE-2020-22524.patch \
|
||||
%D%/packages/patches/freerdp-3.16.0-rpath.patch \
|
||||
%D%/packages/patches/freesolid-automake.patch \
|
||||
%D%/packages/patches/freesolid-autotools.patch \
|
||||
%D%/packages/patches/freesolid-configure.patch \
|
||||
@@ -1444,7 +1436,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
|
||||
%D%/packages/patches/gimp-fix-metadata-editor.patch \
|
||||
%D%/packages/patches/gimp-fix-tiff-load.patch \
|
||||
%D%/packages/patches/git-clar-path-max.patch \
|
||||
%D%/packages/patches/git-filter-repo-generate-doc.patch \
|
||||
%D%/packages/patches/gklib-suitesparse.patch \
|
||||
%D%/packages/patches/glib-appinfo-watch.patch \
|
||||
@@ -1503,7 +1494,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gnome-tweaks-search-paths.patch \
|
||||
%D%/packages/patches/gnulib-bootstrap.patch \
|
||||
%D%/packages/patches/gnumach-div0.patch \
|
||||
%D%/packages/patches/gnumach-kmsg-overflow.patch \
|
||||
%D%/packages/patches/gnumach-version.patch \
|
||||
%D%/packages/patches/gnupg-default-pinentry.patch \
|
||||
%D%/packages/patches/gnupg-1-build-with-gcc10.patch \
|
||||
@@ -1521,7 +1511,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/go-github-com-warpfork-go-wish-fix-tests.patch \
|
||||
%D%/packages/patches/go-github-com-wraparound-wrap-free-fonts.patch \
|
||||
%D%/packages/patches/go-skip-gc-test.patch \
|
||||
%D%/packages/patches/godot-glslang.patch \
|
||||
%D%/packages/patches/godot-libjpeg-turbo-unbundle.patch \
|
||||
%D%/packages/patches/gourmet-sqlalchemy-compat.patch \
|
||||
%D%/packages/patches/gpaste-fix-paths.patch \
|
||||
%D%/packages/patches/gpm-glibc-2.26.patch \
|
||||
@@ -1540,13 +1530,13 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/guile-default-utf8.patch \
|
||||
%D%/packages/patches/guile-2.2-default-utf8.patch \
|
||||
%D%/packages/patches/guile-relocatable.patch \
|
||||
%D%/packages/patches/guile-3.0.11-cross-compilation.patch \
|
||||
%D%/packages/patches/guile-3.0-relocatable.patch \
|
||||
%D%/packages/patches/guile-linux-syscalls.patch \
|
||||
%D%/packages/patches/guile-3.0-linux-syscalls.patch \
|
||||
%D%/packages/patches/guile-ac-d-bus-fix-tests.patch \
|
||||
%D%/packages/patches/guile-lib-fix-tests-for-guile2.2.patch \
|
||||
%D%/packages/patches/guile-fibers-cross-build-fix.patch \
|
||||
%D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
|
||||
%D%/packages/patches/guile-fibers-epoll-instance-is-dead.patch \
|
||||
%D%/packages/patches/guile-fibers-fd-finalizer-leak.patch \
|
||||
%D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
|
||||
@@ -1598,10 +1588,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/hurd-refcounts-assert.patch \
|
||||
%D%/packages/patches/hurd-rumpdisk-no-hd.patch \
|
||||
%D%/packages/patches/hurd-startup.patch \
|
||||
%D%/packages/patches/hurd-streamio-select.patch \
|
||||
%D%/packages/patches/hurd-proc-zombies.patch \
|
||||
%D%/packages/patches/hwloc-1-test-btrfs.patch \
|
||||
%D%/packages/patches/i3lock-blur-fix-build-on-gcc-10.patch \
|
||||
%D%/packages/patches/i7z-gcc-10.patch \
|
||||
%D%/packages/patches/icecat-adjust-mozilla-desktop.patch \
|
||||
%D%/packages/patches/icecat-makeicecat.patch \
|
||||
@@ -1614,29 +1601,13 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/icedove-observer-fix.patch \
|
||||
%D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch \
|
||||
%D%/packages/patches/icedtea-7-hotspot-pointer-comparison.patch \
|
||||
%D%/packages/patches/icu4c-20548-dateinterval-timezone.patch \
|
||||
%D%/packages/patches/icu4c-22132-standardize-vtzone-output.patch \
|
||||
%D%/packages/patches/icu4c-23069-rosh-hashanah-postponement.patch \
|
||||
%D%/packages/patches/icu4c-78-double-conversion.patch \
|
||||
%D%/packages/patches/icu4c-bug-1706949-wasi-workaround.patch \
|
||||
%D%/packages/patches/icu4c-bug-1790071-ICU-22132-standardize-vtzone-output.patch \
|
||||
%D%/packages/patches/icu4c-bug-1856290-ICU-20548-dateinterval-timezone.patch \
|
||||
%D%/packages/patches/icu4c-bug-1954138-dtitvfmt-adopt-calendar.patch \
|
||||
%D%/packages/patches/icu4c-bug-1972781-chinese-based-calendar.patch \
|
||||
%D%/packages/patches/icu4c-bug-2000225-ICU-23264-increase-measure-unit-capacity.patch \
|
||||
%D%/packages/patches/icu4c-bug-2002735-ICU-23277-coptic-single-era.patch \
|
||||
%D%/packages/patches/icu4c-dayperiod-fractional-seconds.patch \
|
||||
%D%/packages/patches/icu4c-double-conversion.patch \
|
||||
%D%/packages/patches/icu4c-dtitvfmt-adopt-calendar.patch \
|
||||
%D%/packages/patches/icu4c-fix-TestHebrewCalendarInTemporalLeapYear.patch \
|
||||
%D%/packages/patches/icu4c-icu-22132-fix-vtimezone.patch \
|
||||
%D%/packages/patches/icu4c-suppress-warnings.patch \
|
||||
%D%/packages/patches/icu4c-wasi-workaround.patch \
|
||||
%D%/packages/patches/icu4c-fix-TestHebrewCalendarInTemporalLeapYear.patch \
|
||||
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
||||
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
|
||||
%D%/packages/patches/idris-test-ffi008.patch \
|
||||
%D%/packages/patches/ilmbase-fix-tests.patch \
|
||||
%D%/packages/patches/inferno-fix-crash.patch \
|
||||
%D%/packages/patches/iniparser-remove-fetchcontent-usage.patch \
|
||||
%D%/packages/patches/inkscape-libxml2.patch \
|
||||
%D%/packages/patches/instead-use-games-path.patch \
|
||||
%D%/packages/patches/intltool-perl-compatibility.patch \
|
||||
@@ -1646,8 +1617,12 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/irrlicht-link-against-needed-libs.patch \
|
||||
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
|
||||
%D%/packages/patches/ispell-for-linphone-cmake.patch \
|
||||
%D%/packages/patches/jami-avutil-link.patch \
|
||||
%D%/packages/patches/jamesdsp-fix-bulid-on-pipewire-1.4.0.patch\
|
||||
%D%/packages/patches/jami-find-package-avutil.patch \
|
||||
%D%/packages/patches/jami-libjami-headers-search.patch \
|
||||
%D%/packages/patches/jami-qwindowkit.patch \
|
||||
%D%/packages/patches/jami-skip-tests-requiring-internet.patch \
|
||||
%D%/packages/patches/jami-unbundle-dependencies.patch \
|
||||
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
|
||||
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
|
||||
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
|
||||
@@ -1657,6 +1632,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch \
|
||||
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
|
||||
%D%/packages/patches/java-commons-collections-fix-java8.patch \
|
||||
%D%/packages/patches/java-commons-lang-fix-dependency.patch \
|
||||
%D%/packages/patches/java-guava-remove-annotation-deps.patch \
|
||||
%D%/packages/patches/java-jeromq-fix-tests.patch \
|
||||
%D%/packages/patches/java-openjfx-build-jdk_version.patch \
|
||||
@@ -1673,9 +1649,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/jfsutils-gcc-compat.patch \
|
||||
%D%/packages/patches/jfsutils-include-systypes.patch \
|
||||
%D%/packages/patches/john-the-ripper-jumbo-with-gcc-11.patch \
|
||||
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
|
||||
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
|
||||
%D%/packages/patches/jsonnet-include-cstdint-for-gcc-13-builds.patch \
|
||||
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
|
||||
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
|
||||
%D%/packages/patches/julia-Use-MPFR-4.2.patch \
|
||||
%D%/packages/patches/komikku-python-3.11-compat.patch \
|
||||
@@ -1693,14 +1668,11 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \
|
||||
%D%/packages/patches/libguestfs-syms.patch \
|
||||
%D%/packages/patches/libinfinity-renew-test-certificate.patch \
|
||||
%D%/packages/patches/libjami-pkgconf.patch \
|
||||
%D%/packages/patches/libmaus2-fix-gcc-13-require-include-cstdint.patch \
|
||||
%D%/packages/patches/libretro-dolphin-emu-data.patch \
|
||||
%D%/packages/patches/libretro-dolphin-emu-gc-font-tool.patch \
|
||||
%D%/packages/patches/libretro-dolphin-emu-libusb-assert.patch \
|
||||
%D%/packages/patches/libretro-dolphin-emu-vulkan-headers.patch \
|
||||
%D%/packages/patches/librewolf-add-store-to-rdd-allowlist.patch \
|
||||
%D%/packages/patches/librewolf-compare-paths.patch \
|
||||
%D%/packages/patches/librewolf-neuter-locale-download.patch \
|
||||
%D%/packages/patches/librewolf-use-system-wide-dir.patch \
|
||||
%D%/packages/patches/libvirt-add-install-prefix.patch \
|
||||
@@ -1711,8 +1683,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/lightdm-vnc-ipv6.patch \
|
||||
%D%/packages/patches/lightdm-vnc-color-depth.patch \
|
||||
%D%/packages/patches/lightdm-vncserver-check.patch \
|
||||
%D%/packages/patches/linphone-desktop-cmake-belcard.patch \
|
||||
%D%/packages/patches/linphone-desktop-cmake-find-modules.patch \
|
||||
%D%/packages/patches/localed-xorg-keyboard.patch \
|
||||
%D%/packages/patches/kaldi-ignore-failing-test.patch \
|
||||
%D%/packages/patches/kaldi-openblas-0.3.29-compatibility.patch \
|
||||
@@ -1726,7 +1696,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/kinit-kdeinit-extra_libs.patch \
|
||||
%D%/packages/patches/kio-search-smbd-on-PATH.patch \
|
||||
%D%/packages/patches/kismet-unbundle-boost.patch \
|
||||
%D%/packages/patches/kissfft-tflite-micro.patch \
|
||||
%D%/packages/patches/kitty-fix-wayland-protocols.patch \
|
||||
%D%/packages/patches/kmod-module-directory.patch \
|
||||
%D%/packages/patches/kmscon-runtime-keymap-switch.patch \
|
||||
@@ -1755,7 +1724,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/libbraiding-no-s.patch \
|
||||
%D%/packages/patches/libcaca-CVE-2021-3410-pt1.patch \
|
||||
%D%/packages/patches/libcaca-CVE-2021-3410-pt2.patch \
|
||||
%D%/packages/patches/libcap-magic-glibc-constant.patch \
|
||||
%D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
|
||||
%D%/packages/patches/libcanberra-wayland-crash.patch \
|
||||
%D%/packages/patches/libcroco-CVE-2020-12825.patch \
|
||||
@@ -1841,6 +1809,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/lirc-reproducible-build.patch \
|
||||
%D%/packages/patches/llvm-13-gcc-14.patch \
|
||||
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
|
||||
%D%/packages/patches/lsh-fix-x11-forwarding.patch \
|
||||
%D%/packages/patches/lsof-compat-linux-6.9.patch \
|
||||
%D%/packages/patches/lsof-fatal-test-failures.patch \
|
||||
%D%/packages/patches/lua-CVE-2014-5461.patch \
|
||||
@@ -1856,7 +1825,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/luit-posix.patch \
|
||||
%D%/packages/patches/lxc-no-static-bin.patch \
|
||||
%D%/packages/patches/lxsession-potfiles-ignore.patch \
|
||||
%D%/packages/patches/mate-common-honor-aclocal.patch \
|
||||
%D%/packages/patches/mactelnet-remove-init.patch \
|
||||
%D%/packages/patches/mailutils-variable-lookup.patch \
|
||||
%D%/packages/patches/mandoc-support-zstd-compression.patch \
|
||||
@@ -1899,10 +1867,10 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/minisat-install.patch \
|
||||
%D%/packages/patches/miniz-for-pytorch.patch \
|
||||
%D%/packages/patches/mit-krb5-hurd.patch \
|
||||
%D%/packages/patches/mitm-cache-head-requests.patch \
|
||||
%D%/packages/patches/mpc123-initialize-ao.patch \
|
||||
%D%/packages/patches/mpg321-CVE-2019-14247.patch \
|
||||
%D%/packages/patches/mpg321-gcc-10.patch \
|
||||
%D%/packages/patches/mpv-0.40.0-fix-ffmpeg-8.0.patch \
|
||||
%D%/packages/patches/modglue-fix-build.patch \
|
||||
%D%/packages/patches/modem-manager-fix-test-wrapper.patch \
|
||||
%D%/packages/patches/module-init-tools-moduledir.patch \
|
||||
@@ -1948,6 +1916,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/netsurf-system-utf8proc.patch \
|
||||
%D%/packages/patches/netsurf-y2038-tests.patch \
|
||||
%D%/packages/patches/netsurf-longer-test-timeout.patch \
|
||||
%D%/packages/patches/nextpnr-gtest.patch \
|
||||
%D%/packages/patches/nextpnr-imgui.patch \
|
||||
%D%/packages/patches/nhc98-c-update.patch \
|
||||
%D%/packages/patches/nix-dont-build-html-doc.diff \
|
||||
@@ -1967,7 +1936,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/nss-3.115-disable-broken-tests.patch \
|
||||
%D%/packages/patches/nss-3.115-disable-pkix-ocsp-tests.patch \
|
||||
%D%/packages/patches/ntp-fix-dereferencing-the-wrong-variable.patch \
|
||||
%D%/packages/patches/nvi-add-function-prototypes.patch \
|
||||
%D%/packages/patches/nvi-assume-preserve-path.patch \
|
||||
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
|
||||
%D%/packages/patches/nvi-db4.patch \
|
||||
@@ -1991,7 +1959,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/openboardview-use-system-mpc.patch \
|
||||
%D%/packages/patches/openbox-add-fix-for-glib2-exposed-segfault.patch \
|
||||
%D%/packages/patches/openbox-python3.patch \
|
||||
%D%/packages/patches/opendht-meson-install-headers.patch \
|
||||
%D%/packages/patches/opendht-nanosleep.patch \
|
||||
%D%/packages/patches/openexr-2-gcc-14.patch \
|
||||
%D%/packages/patches/openfst-for-vosk-fix-unique-ptr.patch \
|
||||
%D%/packages/patches/openjdk-currency-time-bomb.patch \
|
||||
@@ -2032,6 +2000,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/opentaxsolver-file-browser-fix.patch \
|
||||
%D%/packages/patches/open-zwave-hidapi.patch \
|
||||
%D%/packages/patches/opusfile-CVE-2022-47021.patch \
|
||||
%D%/packages/patches/orangeduck-mpc-fix-pkg-config.patch \
|
||||
%D%/packages/patches/orbit2-fix-array-allocation-32bit.patch \
|
||||
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
|
||||
%D%/packages/patches/ots-no-include-missing-file.patch \
|
||||
@@ -2069,13 +2038,12 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/python-bed-reader-use-store-samples.patch \
|
||||
%D%/packages/patches/python-chai-drop-python2.patch \
|
||||
%D%/packages/patches/python-clarabel-blas.patch \
|
||||
%D%/packages/patches/python-daemon-relax-lockfile.patch \
|
||||
%D%/packages/patches/python-docrepr-fix-tests.patch \
|
||||
%D%/packages/patches/python-gpg-setup-72.patch \
|
||||
%D%/packages/patches/python-feedparser-missing-import.patch \
|
||||
%D%/packages/patches/python-hdmedians-replace-nose.patch \
|
||||
%D%/packages/patches/python-louvain-fix-test.patch \
|
||||
%D%/packages/patches/python-matplotlib-fix-legend-loc-best-test.patch \
|
||||
%D%/packages/patches/python-mohawk-pytest.patch \
|
||||
%D%/packages/patches/python-msal-requests.patch \
|
||||
%D%/packages/patches/python-norns-nose.patch \
|
||||
%D%/packages/patches/python-numpy-gcc-14.patch \
|
||||
%D%/packages/patches/python-random2-getrandbits-test.patch \
|
||||
@@ -2095,7 +2063,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \
|
||||
%D%/packages/patches/qtdeclarative-disable-qmlcache.patch \
|
||||
%D%/packages/patches/qtlocation-5.15.8-mapboxgl-gcc13.patch \
|
||||
%D%/packages/patches/qtwebengine-revert-egl.patch \
|
||||
%D%/packages/patches/quodlibet-disable-bundled-packages.patch \
|
||||
%D%/packages/patches/qxlsx-fix-include-directory.patch \
|
||||
%D%/packages/patches/schiffbruch-fix-build-for-gcc-13.patch \
|
||||
@@ -2122,7 +2089,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/perl-5.14-no-sys-dirs.patch \
|
||||
%D%/packages/patches/perl-autosplit-default-time.patch \
|
||||
%D%/packages/patches/perl-class-methodmaker-reproducible.patch \
|
||||
%D%/packages/patches/perl-crypt-des-implicit-func-decl.patch \
|
||||
%D%/packages/patches/perl-image-exiftool-CVE-2021-22204.patch \
|
||||
%D%/packages/patches/perl-net-amazon-s3-moose-warning.patch \
|
||||
%D%/packages/patches/perl-net-dns-resolver-programmable-fix.patch \
|
||||
@@ -2216,10 +2182,12 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/python-pytorch-system-libraries.patch \
|
||||
%D%/packages/patches/python-pytorch-without-kineto.patch \
|
||||
%D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
|
||||
%D%/packages/patches/python-scipy-i686.patch \
|
||||
%D%/packages/patches/python-vaex-core-fix-tsl-use.patch \
|
||||
%D%/packages/patches/python-vega-datasets-remove-la-riots-code.patch \
|
||||
%D%/packages/patches/python-versioneer-guix-support.patch \
|
||||
%D%/packages/patches/python-werkzeug-tests.patch \
|
||||
%D%/packages/patches/python-xmp-toolkit-add-missing-error-codes.patch \
|
||||
%D%/packages/patches/qdigidoc-bundle-config-files.patch \
|
||||
%D%/packages/patches/qdigidoc-bundle-tsl-files.patch \
|
||||
%D%/packages/patches/qemu-build-info-manual.patch \
|
||||
@@ -2227,28 +2195,24 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/qemu-glibc-2.30.patch \
|
||||
%D%/packages/patches/qemu-fix-agent-paths.patch \
|
||||
%D%/packages/patches/qemu-fix-test-virtio-version.patch \
|
||||
%D%/packages/patches/qemu-disable-aarch64-migration-test.patch \
|
||||
%D%/packages/patches/qrcodegen-cpp-cmake.patch \
|
||||
%D%/packages/patches/qtbase-absolute-runpath.patch \
|
||||
%D%/packages/patches/qtbase-qmake-fix-includedir.patch \
|
||||
%D%/packages/patches/qtbase-qmlimportscanner-qml-import-path.patch \
|
||||
%D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch \
|
||||
%D%/packages/patches/qtbase-patch-libvulkan.patch \
|
||||
%D%/packages/patches/qtbase-qmake-use-libname.patch \
|
||||
%D%/packages/patches/qtbase-5-use-TZDIR.patch \
|
||||
%D%/packages/patches/qtscript-disable-tests.patch \
|
||||
%D%/packages/patches/quagga-reproducible-build.patch \
|
||||
%D%/packages/patches/quickjs-ng-64-bits-precision-on-i686.patch \
|
||||
%D%/packages/patches/quickjs-ng-fix-atomics.pause-on-32-bit.patch \
|
||||
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
|
||||
%D%/packages/patches/quilt-grep-compat.patch \
|
||||
%D%/packages/patches/qmk-firmware-fix-hacker-dvorak.patch \
|
||||
%D%/packages/patches/qtwayland-dont-recreate-callbacks.patch \
|
||||
%D%/packages/patches/qtwayland-cleanup-callbacks.patch \
|
||||
%D%/packages/patches/qtwayland-update-wayland-xml.patch \
|
||||
%D%/packages/patches/qtwebengine-fix-dependencies.patch \
|
||||
%D%/packages/patches/qtwebsockets-6.9-fix-tst_QWebSocket.patch\
|
||||
%D%/packages/patches/rabbitmq-defaults.patch \
|
||||
%D%/packages/patches/radare2-fix-meson-build-to-use-sys-qjs.patch \
|
||||
%D%/packages/patches/radare2-fix-meson-build-to-use-sys-sdb.patch \
|
||||
%D%/packages/patches/ragel-char-signedness.patch \
|
||||
%D%/packages/patches/randomjungle-disable-static-build.patch \
|
||||
%D%/packages/patches/rapidcheck-fix-libs.patch \
|
||||
@@ -2256,8 +2220,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/retroarch-unbundle-spirv-cross.patch \
|
||||
%D%/packages/patches/rct-add-missing-headers.patch \
|
||||
%D%/packages/patches/readline-link-ncurses.patch \
|
||||
%D%/packages/patches/renpy-python-3.11-compat.patch \
|
||||
%D%/packages/patches/renpy-fix-integer-slots.patch \
|
||||
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
|
||||
%D%/packages/patches/renpy-use-system-fribidi.patch \
|
||||
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
|
||||
%D%/packages/patches/rdkit-unbundle-external-dependencies.patch \
|
||||
%D%/packages/patches/r-httpuv-1.6.6-unvendor-libuv.patch \
|
||||
@@ -2276,16 +2240,11 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/remake-impure-dirs.patch \
|
||||
%D%/packages/patches/restartd-update-robust.patch \
|
||||
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
|
||||
%D%/packages/patches/rlwrap-no-rbgen.patch \
|
||||
%D%/packages/patches/rng-tools-revert-build-randstat.patch \
|
||||
%D%/packages/patches/rocclr-5.6.0-enable-gfx800.patch \
|
||||
%D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
|
||||
%D%/packages/patches/rocm-bandwidth-test-fix-external-packages-search.patch \
|
||||
%D%/packages/patches/rocm-bandwidth-test-fix-hsa-include-file-lookup.patch \
|
||||
%D%/packages/patches/rocm-bandwidth-test-take-default-gpus-from-environment.patch \
|
||||
%D%/packages/patches/rottlog-direntry.patch \
|
||||
%D%/packages/patches/ruby-actionpack-remove-browser-tests.patch \
|
||||
%D%/packages/patches/ruby-activesupport-fix-deprecation-warning.patch \
|
||||
%D%/packages/patches/ruby-asciidoctor-pdf-support-prawn-svg-0_36.patch \
|
||||
%D%/packages/patches/ruby-chunky-png-ruby-3-2-support.patch \
|
||||
%D%/packages/patches/ruby-hiredis-use-system-hiredis.patch \
|
||||
@@ -2306,6 +2265,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \
|
||||
%D%/packages/patches/s7-flint-3.patch \
|
||||
%D%/packages/patches/safeint-disable-tests.patch \
|
||||
%D%/packages/patches/sage-safeguard-sage-getargspec-cython.patch \
|
||||
%D%/packages/patches/sajson-for-gemmi-numbers-as-strings.patch \
|
||||
%D%/packages/patches/sajson-build-with-gcc10.patch \
|
||||
%D%/packages/patches/sane-look-for-plugins-in-SANE_BACKEND_LIB_PATH.patch \
|
||||
@@ -2316,7 +2276,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch \
|
||||
%D%/packages/patches/sbcl-ciel-repl.patch \
|
||||
%D%/packages/patches/sbcl-clml-fix-types.patch \
|
||||
%D%/packages/patches/sbcl-cl-redis-replace-sbcl-specific-calls.patch \
|
||||
%D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \
|
||||
%D%/packages/patches/sbcl-lack-fix-tests.patch \
|
||||
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
|
||||
@@ -2335,6 +2294,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/seq24-rename-mutex.patch \
|
||||
%D%/packages/patches/libsequoia-fix-ffi-Makefile.patch \
|
||||
%D%/packages/patches/libsequoia-remove-store.patch \
|
||||
%D%/packages/patches/shaderc-for-pcsx2-changes.patch \
|
||||
%D%/packages/patches/shakespeare-spl-fix-grammar.patch \
|
||||
%D%/packages/patches/shared-mime-info-xdgmime-path.patch \
|
||||
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \
|
||||
@@ -2344,7 +2304,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/slim-login.patch \
|
||||
%D%/packages/patches/slim-display.patch \
|
||||
%D%/packages/patches/slurm-23-salloc-fallback-shell.patch \
|
||||
%D%/packages/patches/slurm-drmaa-25.patch \
|
||||
%D%/packages/patches/stex-copy-from-immutable-store.patch \
|
||||
%D%/packages/patches/sysdig-shared-falcosecurity-libs.patch \
|
||||
%D%/packages/patches/syslinux-gcc10.patch \
|
||||
@@ -2400,7 +2359,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/texi2html-document-encoding.patch \
|
||||
%D%/packages/patches/texi2html-i18n.patch \
|
||||
%D%/packages/patches/texmacs-wayland-hidpi.patch \
|
||||
%D%/packages/patches/tflite-micro_disable_download.patch \
|
||||
%D%/packages/patches/thefuck-test-environ.patch \
|
||||
%D%/packages/patches/thefuck-remove-broken-tests.patch \
|
||||
%D%/packages/patches/tidy-CVE-2015-5522+5523.patch \
|
||||
@@ -2427,11 +2385,10 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/twinkle-bcg729.patch \
|
||||
%D%/packages/patches/u-boot-allow-disabling-openssl.patch \
|
||||
%D%/packages/patches/u-boot-nintendo-nes-serial.patch \
|
||||
%D%/packages/patches/u-boot-rockchip-inno-usb.patch \
|
||||
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
|
||||
%D%/packages/patches/uftrace-fix-tests.patch \
|
||||
%D%/packages/patches/ultrastar-deluxe-no-freesans.patch \
|
||||
%D%/packages/patches/unity-test-set-subdir-correctly.patch \
|
||||
%D%/packages/patches/unity-test-support-int64.patch \
|
||||
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
|
||||
%D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
|
||||
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \
|
||||
@@ -2505,16 +2462,14 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/wmctrl-64-fix.patch \
|
||||
%D%/packages/patches/wmfire-dont-inline-draw-fire.patch \
|
||||
%D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \
|
||||
%D%/packages/patches/woof-doom-unbundle-spng-miniz.patch \
|
||||
%D%/packages/patches/wordnet-CVE-2008-2149.patch \
|
||||
%D%/packages/patches/wordnet-CVE-2008-3908-pt1.patch \
|
||||
%D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \
|
||||
%D%/packages/patches/wpa-supplicant-dbus-group-policy.patch \
|
||||
%D%/packages/patches/x2goclient-fix-makefile.patch \
|
||||
%D%/packages/patches/x265-arm-flags.patch \
|
||||
%D%/packages/patches/x265-4-arm-flags.patch \
|
||||
%D%/packages/patches/xdg-desktop-portal-disable-portal-tests.patch\
|
||||
%D%/packages/patches/xdg-desktop-portal-disable-configuration-search-exit.patch\
|
||||
%D%/packages/patches/xdg-desktop-portal-1.20.3-disable-configuration-search-exit.patch\
|
||||
%D%/packages/patches/xdg-desktop-portal-wlr-harcoded-length.patch\
|
||||
%D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
|
||||
%D%/packages/patches/xfig-Enable-error-message-for-missing-libraries.patch \
|
||||
@@ -2529,10 +2484,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \
|
||||
%D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \
|
||||
%D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \
|
||||
%D%/packages/patches/xpra-5.0-install_libs.patch \
|
||||
%D%/packages/patches/xpra-5.0-systemd-run.patch \
|
||||
%D%/packages/patches/xpra-6.4-systemd-run.patch \
|
||||
%D%/packages/patches/xpra-6.4-install_libs.patch \
|
||||
%D%/packages/patches/xpra-6.0-systemd-run.patch \
|
||||
%D%/packages/patches/xpra-6.1-install_libs.patch \
|
||||
%D%/packages/patches/xterm-370-explicit-xcursor.patch \
|
||||
%D%/packages/patches/xygrib-fix-finding-data.patch \
|
||||
%D%/packages/patches/xygrib-newer-proj.patch \
|
||||
|
||||
@@ -651,7 +651,7 @@ fdisk -l /dev/sda"
|
||||
(format #f "#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
apt-get update
|
||||
apt-get install cloud-initramfs-growroot uidmap --assume-yes"))
|
||||
apt-get install cloud-initramfs-growroot --assume-yes"))
|
||||
(format #t "successfully installed rescue system packages on '~a'\n" name)))
|
||||
|
||||
(define (hetzner-machine-delete machine server)
|
||||
|
||||
@@ -77,43 +77,36 @@
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(outputs '("out" "bin"))
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; Tests require drivers
|
||||
#:configure-flags
|
||||
#~(list "CFLAGS=-g -O2 -Wno-error=incompatible-pointer-types"
|
||||
"--disable-static"
|
||||
"--enable-fake")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
#$@(if (this-package-native-input "config")
|
||||
#~((add-after 'unpack 'update-config-scripts
|
||||
(lambda* (#:key native-inputs inputs #:allow-other-keys)
|
||||
(for-each
|
||||
(lambda (dir)
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(install-file
|
||||
(search-input-file
|
||||
(or native-inputs inputs)
|
||||
(string-append "/bin/" file)) dir))
|
||||
(list "config.guess" "config.sub")))
|
||||
(list "." "libltdl")))))
|
||||
(list)))))
|
||||
`(#:tests? #f ; Tests require drivers
|
||||
#:configure-flags
|
||||
(list "CFLAGS=-g -O2 -Wno-error=incompatible-pointer-types"
|
||||
"--disable-static"
|
||||
"--enable-fake")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
,@(if (this-package-native-input "config")
|
||||
`((add-after 'unpack 'update-config-scripts
|
||||
(lambda* (#:key native-inputs inputs #:allow-other-keys)
|
||||
(for-each
|
||||
(lambda (dir)
|
||||
(for-each (lambda (file)
|
||||
(install-file
|
||||
(search-input-file
|
||||
(or native-inputs inputs)
|
||||
(string-append "/bin/" file)) dir))
|
||||
'("config.guess" "config.sub")))
|
||||
'("." "libltdl")))))
|
||||
'()))))
|
||||
(native-inputs
|
||||
(append
|
||||
(if (or (target-aarch64?)
|
||||
(target-ppc64le?)
|
||||
(target-riscv64?))
|
||||
(list config)
|
||||
(list))
|
||||
(list latex2html
|
||||
pkg-config
|
||||
python-wrapper
|
||||
swig)))
|
||||
(if (or (target-aarch64?)
|
||||
(target-ppc64le?)
|
||||
(target-riscv64?))
|
||||
(list config)
|
||||
'())
|
||||
(list latex2html pkg-config python-wrapper swig)))
|
||||
(inputs
|
||||
(list glib
|
||||
gtk+-2
|
||||
libusb-compat))
|
||||
(list glib gtk+-2 libusb-compat))
|
||||
(synopsis "Portable Braille Library")
|
||||
(description "Libbraille is a library to easily access Braille displays and
|
||||
terminals.")
|
||||
@@ -235,6 +228,50 @@ incorporated.")
|
||||
(home-page "https://brltty.app/")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public florence
|
||||
(package
|
||||
(name "florence")
|
||||
(version "0.6.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/florence/florence/" version
|
||||
"/florence-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"07h9qm22krlwayhzvc391lr23vicw81s48g7rirvx1fj0zyr4aa2"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--with-xtst"
|
||||
"--without-docs"
|
||||
"--with-notification")))
|
||||
(inputs
|
||||
(list libxml2
|
||||
libglade
|
||||
(librsvg-for-system)
|
||||
gstreamer
|
||||
cairo
|
||||
gtk+
|
||||
libxtst
|
||||
libxcomposite
|
||||
libnotify))
|
||||
(native-inputs
|
||||
(list gettext-minimal intltool pkg-config))
|
||||
(home-page "https://florence.sourceforge.net/")
|
||||
(synopsis "Extensible, scalable virtual keyboard for X11")
|
||||
(description
|
||||
"Florence is an extensible scalable virtual keyboard for X11.
|
||||
It is useful for people who can't use a real hardware keyboard (for
|
||||
example for people with disabilities), but you must be able to use
|
||||
a pointing device (as a mouse, a trackball, a touchscreen or opengazer).
|
||||
|
||||
Florence stays out of your way when you don't need it: it appears on the
|
||||
screen only when you need it. A timer-based auto-click input method is
|
||||
available to help to click.")
|
||||
;; The documentation is under FDL1.2, but we do not install the
|
||||
;; documentation.
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public footswitch
|
||||
(let ((commit "e455d6752221b9e9c3818cc304c873b9c2792490")
|
||||
(revision "0"))
|
||||
|
||||
+24
-22
@@ -30,13 +30,10 @@
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system pyproject)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix utils))
|
||||
|
||||
@@ -98,28 +95,33 @@
|
||||
(define-public python-pylibacl
|
||||
(package
|
||||
(name "python-pylibacl")
|
||||
(version "0.7.3")
|
||||
(version "0.6.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pylibacl" version))
|
||||
(sha256
|
||||
(base32 "08pr5cbipij3j591bihh72r5h14lyrspy24qwmfjsn0c1rcgp7wx"))))
|
||||
(build-system pyproject-build-system)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pylibacl" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zyrk2m20p5b6bdwxhrwib273i6i71zyr5hzssbxfqis5qra9848"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-tests
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
;; These tests operate on real files, but our tmpfs does not support
|
||||
;; ACLs.
|
||||
(substitute* "tests/test_acls.py"
|
||||
(("( *)def test_applyto(_extended(_mixed)?)?" match indent)
|
||||
(string-append indent "@pytest.mark.skip(reason=\"guix\")\n"
|
||||
match))))))))
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-tests
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
;; These tests operate on real files, but our tmpfs does not support
|
||||
;; ACLs.
|
||||
(substitute* "tests/test_acls.py"
|
||||
(("( *)def test_applyto(_extended(_mixed)?)?" match indent)
|
||||
(string-append indent "@pytest.mark.skip(reason=\"guix\")\n"
|
||||
match)))))
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(invoke "pytest" "tests")))))))
|
||||
(inputs (list acl))
|
||||
(native-inputs (list python-pytest python-setuptools))
|
||||
(native-inputs (list python-pytest))
|
||||
(home-page "https://pylibacl.k1024.org/")
|
||||
(synopsis "POSIX.1e @acronym{ACLs, access control lists} for Python")
|
||||
(description
|
||||
|
||||
+105
-272
@@ -48,7 +48,7 @@
|
||||
;;; Copyright © 2021, 2025 muradm <mail@muradm.net>
|
||||
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
|
||||
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
|
||||
;;; Copyright © 2021-2026 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;; Copyright © 2021-2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
|
||||
;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com>
|
||||
;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
|
||||
@@ -72,14 +72,11 @@
|
||||
;;; Copyright © 2024 nathan <nathan_mail@nborghese.com>
|
||||
;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me>
|
||||
;;; Copyright © 2024 Roman Scherer <roman@burningswell.com>
|
||||
;;; Copyright © 2024-2026 Ashish SHUKLA <ashish.is@lostca.se>
|
||||
;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se>
|
||||
;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com>
|
||||
;;; Copyright © 2025 Dariqq <dariqq@posteo.net>
|
||||
;;; Copyright © 2024 nik gaffney <nik@fo.am>
|
||||
;;; Copyright © 2025 Simon Streit <simon@netpanic.org>
|
||||
;;; Copyright © 2025 Luca Kredel <luca.kredel@web.de>
|
||||
;;; Copyright © 2025 ROCKTAKEY <rocktakey@gmail.com>
|
||||
;;; Copyright © 2026 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -139,7 +136,6 @@
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages file-systems)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
@@ -193,7 +189,6 @@
|
||||
#:use-module (gnu packages polkit)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-check)
|
||||
#:use-module (gnu packages python-crypto)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
@@ -379,34 +374,23 @@ service.")
|
||||
(package
|
||||
(name "hungrycat")
|
||||
(version "0.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jwilk/hungrycat/")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0llfb7kh2k53aqwc1fagw77fmwhvwdxd5qlg0fyrhqq298gj8wif"))))
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/jwilk/hungrycat/"
|
||||
"releases/download/" version "/"
|
||||
"hungrycat-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xy9l4hky85h3rgdmqmhcnx0q1hq0brskr8lzw2lz6lh7pxlxmyw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; tests: Files=2, Tests=2334, 1 wallclock secs
|
||||
#:test-target "test"
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target)))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'build 'build-doc
|
||||
(lambda _
|
||||
(invoke "make" "-C" "doc"))))))
|
||||
(native-inputs
|
||||
(list automake
|
||||
autoconf
|
||||
cppcheck
|
||||
perl
|
||||
perl-ipc-run
|
||||
python-docutils))
|
||||
;; For tests.
|
||||
`(("python" ,python-wrapper)
|
||||
("python-nose" ,python-nose)
|
||||
("perl" ,perl)
|
||||
("perl-ipc-run" ,perl-ipc-run)))
|
||||
(arguments
|
||||
`(#:test-target "test"))
|
||||
(synopsis "Single tool that combines @command{cat} & @command{rm}")
|
||||
(description
|
||||
"hungrycat prints the contents of a file to standard output, while
|
||||
@@ -599,44 +583,24 @@ interface and is based on GNU Guile.")
|
||||
(define-public shepherd-1.0
|
||||
(package
|
||||
(inherit shepherd-0.10)
|
||||
(version "1.0.9")
|
||||
(version "1.0.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/shepherd/shepherd-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mh080060lnycys8yq6kkiy363wif8dsip3nyklgd3a1r22wb274"))))
|
||||
"1xbzf7vmanb36hfb0kc9a240x7xnkynsfs6hcz2kj0xzf19h1srv"))))
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(list "--localstatedir=/var"
|
||||
;; Gzip and zstd are used by the log rotation service.
|
||||
(string-append "--with-gzip=" #$(this-package-input "gzip")
|
||||
"/bin/gzip")
|
||||
(string-append "--with-zstd=" #$(this-package-input "zstd")
|
||||
"/bin/zstd"))
|
||||
#:make-flags #~'("GUILE_AUTO_COMPILE=0")
|
||||
#:phases (if (%current-target-system)
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-fibers-directory
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; When cross-compiling, refer to the target
|
||||
;; Fibers, not the native one.
|
||||
(let ((fibers
|
||||
(search-input-file
|
||||
inputs
|
||||
"share/guile/site/3.0/fibers.scm"))
|
||||
(fibers-go
|
||||
(search-input-file
|
||||
inputs
|
||||
"lib/guile/3.0/site-ccache/fibers.go")))
|
||||
(substitute* '("herd.in" "shepherd.in")
|
||||
(("%FIBERS_SOURCE_DIRECTORY%")
|
||||
(dirname fibers))
|
||||
(("%FIBERS_OBJECT_DIRECTORY%")
|
||||
(dirname fibers-go)))))))
|
||||
#~%standard-phases)))
|
||||
(substitute-keyword-arguments (package-arguments shepherd-0.10)
|
||||
((#:configure-flags flags #~'())
|
||||
#~(list "--localstatedir=/var"
|
||||
|
||||
;; Gzip and zstd are used by the log rotation service.
|
||||
(string-append "--with-gzip=" #$(this-package-input "gzip")
|
||||
"/bin/gzip")
|
||||
(string-append "--with-zstd=" #$(this-package-input "zstd")
|
||||
"/bin/zstd")))))
|
||||
(native-inputs
|
||||
(modify-inputs (package-native-inputs shepherd-0.10)
|
||||
(replace "guile-fibers"
|
||||
@@ -1076,7 +1040,7 @@ console.")
|
||||
(define-public btop
|
||||
(package
|
||||
(name "btop")
|
||||
(version "1.4.6")
|
||||
(version "1.4.5")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -1085,7 +1049,7 @@ console.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1nj58dbv3c0rj8fngldkyrmdmacmjnbg8ch1c07ik97kqnnzd3l7"))))
|
||||
"03dchclmbjphirzqii4m0vyqfd0vw1k8mgpchmr13g3brlfzxd34"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list lowdown))
|
||||
(arguments
|
||||
@@ -1977,7 +1941,7 @@ maintenance releases.")
|
||||
(define-public dhcpcd
|
||||
(package
|
||||
(name "dhcpcd")
|
||||
(version "10.3.0")
|
||||
(version "10.2.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -1986,7 +1950,7 @@ maintenance releases.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "058k8wbzbjb6mm6qklv40z1y4k6sdb4ysap1xk6pny1m1f9xkdax"))))
|
||||
(base32 "01bqs71s2gixsir1cpnk6sm4k9dpdkrgp1r8cpbac50d6hwlxln3"))))
|
||||
(inputs (list bash-minimal coreutils-minimal eudev sed))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
@@ -2250,7 +2214,7 @@ by bandwidth they use.")
|
||||
perl-test-pod
|
||||
perl-test-pod-coverage
|
||||
perl-test-trap
|
||||
perl-tidy))
|
||||
perltidy))
|
||||
(inputs
|
||||
(list bash-minimal ;for wrap-program
|
||||
perl-exception-class
|
||||
@@ -2527,7 +2491,7 @@ system administrator.")
|
||||
(inputs
|
||||
(append (list coreutils zlib)
|
||||
(if (target-hurd?)
|
||||
(list libxcrypt)
|
||||
'()
|
||||
(list linux-pam))))
|
||||
(home-page "https://www.sudo.ws/")
|
||||
(synopsis "Run commands as root")
|
||||
@@ -2754,7 +2718,7 @@ command.")
|
||||
#:tests? #f ; no tests
|
||||
;; Make sure the (rarely updated) package 'imagemagick/stable'
|
||||
;; does not end up in the closure.
|
||||
#:disallowed-references (list (this-package-native-input "imagemagick"))
|
||||
#:disallowed-references (list imagemagick/stable)
|
||||
#:modules '((guix build qt-build-system)
|
||||
((guix build gnu-build-system) #:prefix gnu:)
|
||||
(guix build utils))
|
||||
@@ -2986,7 +2950,7 @@ system is under heavy load.")
|
||||
(define-public stress-ng
|
||||
(package
|
||||
(name "stress-ng")
|
||||
(version "0.19.06")
|
||||
(version "0.19.03")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -2995,7 +2959,7 @@ system is under heavy load.")
|
||||
(commit (string-append "V" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0fxyxxswkx5ay8i2w8ajsiagkysh8d41l88vls9c4rc35wxzhwf6"))))
|
||||
(base32 "1phrmjvvjn55pyfljfkk604d8q8wn17l416v91hskj98v7b7yhck"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; XXX The test suite seems to cause instability on the VisionFive 2
|
||||
@@ -3148,25 +3112,20 @@ track changes in important system configuration files.")
|
||||
(define-public libcap-ng
|
||||
(package
|
||||
(name "libcap-ng")
|
||||
(version "0.9")
|
||||
(version "0.8.5")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/stevegrubb/libcap-ng")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0izrrh2kmhi6dcy5iqcccmx90nwlaqcglhc60sl8n5ds8il14pi8"))))
|
||||
"1zy6ga6cqi6qvy2p3091i8zbillymyv01g6gmapriymx3i6jk99v"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--disable-static"
|
||||
"--without-python")))
|
||||
(inputs
|
||||
(list libbpf))
|
||||
(native-inputs
|
||||
(list autoconf automake libtool pkg-config))
|
||||
(home-page "https://people.redhat.com/sgrubb/libcap-ng/")
|
||||
(synopsis "Library for more easily working with POSIX capabilities")
|
||||
(description
|
||||
@@ -3182,34 +3141,29 @@ various ways that may be running with too much privilege.")
|
||||
(define-public smartmontools
|
||||
(package
|
||||
(name "smartmontools")
|
||||
(version "7.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/smartmontools/smartmontools")
|
||||
(commit (string-append "RELEASE_"
|
||||
(string-replace-substring version "." "_")))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "00c58xcqv73lzxf0baly2q0sqkyd2vncv93iabjj7jkvbzf7nqpz"))))
|
||||
(version "7.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/smartmontools/smartmontools/"
|
||||
version "/smartmontools-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gcrzcb4g7f994n6nws26g6x15yjija1gyzd359sjv7r3xj1z9p9"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:make-flags
|
||||
#~(list "BUILD_INFO=\"(Guix)\"")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "smartmontools"))))
|
||||
#:configure-flags
|
||||
#~(list (format #f "--with-scriptpath=~{~a:~}$PATH"
|
||||
(map (lambda (pkg)
|
||||
(in-vicinity pkg "bin"))
|
||||
'#$(list (this-package-input "coreutils-minimal")
|
||||
(this-package-input "sed")))))))
|
||||
(inputs (list automake autoconf coreutils-minimal libcap-ng sed))
|
||||
(inputs (list coreutils-minimal
|
||||
libcap-ng
|
||||
sed))
|
||||
(home-page "https://www.smartmontools.org/")
|
||||
(synopsis "S.M.A.R.T. harddisk control and monitoring tools")
|
||||
(description
|
||||
@@ -3223,7 +3177,7 @@ degradation and failure.")
|
||||
(define-public fdupes
|
||||
(package
|
||||
(name "fdupes")
|
||||
(version "2.4.0")
|
||||
(version "2.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -3231,7 +3185,7 @@ degradation and failure.")
|
||||
"releases/download/v" version "/"
|
||||
"fdupes-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0dhpgcylf99cnxz8h4i4dhv2i3124cs0n8lssbhwn783knijfysj"))))
|
||||
(base32 "1irab60gkjmnvk1l0x92cb5vh9zw9g0vgr3s82mir93zpvn8v3c0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list ncurses pcre2 sqlite))
|
||||
@@ -3381,17 +3335,7 @@ provides the following commands:
|
||||
(uri (pypi-uri "ansible" version))
|
||||
(sha256
|
||||
(base32 "0apj783acx4jzkf3bnibn4y5jc6jd8ly7l0rdqq8f1jpgxal933x"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; XXX: All tests errored with:
|
||||
;; from ...common.utils import (
|
||||
;; E ImportError: attempted relative import with no known parent package
|
||||
;;
|
||||
;; tests: 17 skipped, 1 warning, 1132 errors
|
||||
#:tests? #f))
|
||||
(native-inputs
|
||||
(list python-setuptools))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs (list ansible-core))
|
||||
;; The Ansible collections are found by ansible-core via the Python search
|
||||
;; path; the following search path ensures that they are found even when
|
||||
@@ -3420,7 +3364,7 @@ modules and plugins that extend Ansible.")
|
||||
(define-public debops
|
||||
(package
|
||||
(name "debops")
|
||||
(version "3.2.5")
|
||||
(version "3.2.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -3429,14 +3373,13 @@ modules and plugins that extend Ansible.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "15wfhha2b315i15l40j3sylyvs3mdrfw5awzq4cix51l5jppx8z5"))
|
||||
(base32 "0y7bmrnynbw0hz88shfv301a9fsank2cx86fvb7jx6g6kkbsa9pz"))
|
||||
(patches
|
||||
(search-patches "debops-setup-py-avoid-git.patch"))))
|
||||
(build-system pyproject-build-system)
|
||||
(native-inputs (list python-setuptools))
|
||||
(inputs
|
||||
(list ansible
|
||||
bash-minimal
|
||||
encfs
|
||||
fuse-2
|
||||
util-linux ;; for umount
|
||||
@@ -4505,7 +4448,7 @@ you are running, what theme or icon set you are using, etc.")
|
||||
(define-public hyfetch
|
||||
(package
|
||||
(name "hyfetch")
|
||||
(version "2.0.5")
|
||||
(version "2.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4514,11 +4457,12 @@ you are running, what theme or icon set you are using, etc.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1xb0m7mna6mm3gc823c40rfdhnw39afdr3g7kb4cqrc21s7fdd5y"))))
|
||||
(base32 "1h3s8m6csmxj815cpzh30m59132n8drxya0s2lh5ngjkpazgdnv3"))))
|
||||
(build-system pyproject-build-system)
|
||||
(native-inputs
|
||||
(list python-hatchling
|
||||
python-pytest))
|
||||
(list python-pytest
|
||||
python-setuptools
|
||||
python-wheel))
|
||||
(inputs
|
||||
(list python-typing-extensions))
|
||||
(home-page "https://github.com/hykilpikonna/HyFetch")
|
||||
@@ -4724,7 +4668,7 @@ information tool.")
|
||||
(define-public fastfetch-minimal
|
||||
(package
|
||||
(name "fastfetch-minimal")
|
||||
(version "2.57.0")
|
||||
(version "2.54.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4733,13 +4677,10 @@ information tool.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1cipr083bf8frqijvxnff7bgzvzczxksicaqj0m22avyhzxc7p3d"))
|
||||
(base32 "0iw58idc45x505rhix3mqymnfbk1r7jc10alyry9qypflalqwkqx"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
(delete-file-recursively "src/3rdparty")
|
||||
(substitute* "src/modules/logo/logo.c"
|
||||
(("\"3rdparty/yyjson/yyjson.h\"")
|
||||
"<yyjson.h>"))))))
|
||||
(delete-file-recursively "src/3rdparty")))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -4783,8 +4724,7 @@ system distribution, akin to many similar tools.")
|
||||
libxcb
|
||||
mesa
|
||||
wayland
|
||||
zlib ;for imagemagick and an #ifdef
|
||||
zfs)))))
|
||||
zlib))))) ;for imagemagick and an #ifdef
|
||||
|
||||
(define-public nnn
|
||||
(package
|
||||
@@ -4990,7 +4930,7 @@ launch daemons into the relevant nodes.")
|
||||
;; Fails to build as c++17.
|
||||
"CXXFLAGS=-std=c++14 -O2 -g")))
|
||||
(inputs
|
||||
(list openmpi munge launchmon libgcrypt zlib))
|
||||
(list openmpi munge launchmon libgcrypt))
|
||||
(synopsis "Scalable library loading in HPC environments")
|
||||
(description
|
||||
"Spindle is a tool for improving the performance of dynamic library and
|
||||
@@ -5142,102 +5082,36 @@ support forum. It runs with the @code{/exec} command in most IRC clients.")
|
||||
(define-public python-pyudev
|
||||
(package
|
||||
(name "python-pyudev")
|
||||
(version "0.24.4")
|
||||
(version "0.22.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pyudev/pyudev")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1m7xrsazbij5dcmnirn9hq6cwrfmzam5mr3kmvvcgnh24nhm401x"))))
|
||||
(build-system pyproject-build-system)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyudev" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xmj6l08iih2js9skjqpv4w7y0dhxyg91zmrs6v5aa65gbmipfv9"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; tests: 46 passed, 36 skipped, 79 deselected, 2 warnings
|
||||
#:test-flags
|
||||
;; These tests actually try to read /sys/devices:
|
||||
#~(list "-k" (string-join
|
||||
(list "not test_action"
|
||||
"test_action_mock"
|
||||
"test_ancestors"
|
||||
"test_anything"
|
||||
"test_asbool"
|
||||
"test_asint"
|
||||
"test_asstring"
|
||||
"test_attributes"
|
||||
"test_contains_mock"
|
||||
"test_deprecated_handler"
|
||||
"test_device_node"
|
||||
"test_device_number"
|
||||
"test_device_ordering"
|
||||
"test_device_path"
|
||||
"test_device_sys_name"
|
||||
"test_driver"
|
||||
"test_equality"
|
||||
"test_fake"
|
||||
"test_fake_monitor"
|
||||
"test_find_parent_no_devtype_mock"
|
||||
"test_find_parent_with_devtype_mock"
|
||||
"test_from_device_file"
|
||||
"test_from_device_number"
|
||||
"test_from_device_number_wrong_type"
|
||||
"test_from_name"
|
||||
"test_from_name_no_device_in_existing_subsystem"
|
||||
"test_from_path"
|
||||
"test_from_path_strips_leading_slash"
|
||||
"test_from_sys_path"
|
||||
"test_getitem"
|
||||
"test_getitem"
|
||||
"test_getitem_nonexisting"
|
||||
"test_hash"
|
||||
"test_inequality"
|
||||
"test_is_initialized"
|
||||
"test_is_initialized_mock"
|
||||
"test_iteration"
|
||||
"test_iteration_mock"
|
||||
"test_key_subset"
|
||||
"test_length"
|
||||
"test_links"
|
||||
"test_match"
|
||||
"test_match_parent"
|
||||
"test_match_property_bool"
|
||||
"test_match_subsystem"
|
||||
"test_match_subsystem_nomatch_complete"
|
||||
"test_match_subsystem_nomatch_unfulfillable"
|
||||
"test_name"
|
||||
"test_non_iterable"
|
||||
"test_parent"
|
||||
"test_path"
|
||||
"test_sequence_number"
|
||||
"test_subsystem"
|
||||
"test_sys_number"
|
||||
"test_sys_path"
|
||||
"test_tags"
|
||||
"test_time_since_initialized"
|
||||
"test_time_since_initialized_mock"
|
||||
"test_traverse"
|
||||
"test_type"
|
||||
"test_unsetitem")
|
||||
" and not "))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-ctypes-udev
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/pyudev/core.py"
|
||||
(("\"udev\"")
|
||||
(format #f "~s"
|
||||
(search-input-file inputs "/lib/libudev.so"))))
|
||||
(substitute* "src/pyudev/_ctypeslib/utils.py"
|
||||
`(#:tests? #f ; Tests require /sys
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-ctypes-udev
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((eudev (assoc-ref inputs "eudev")))
|
||||
(substitute* "src/pyudev/core.py"
|
||||
(("'udev'")
|
||||
(string-append "'" eudev "/lib/libudev.so'")))
|
||||
(substitute* "src/pyudev/_ctypeslib/utils.py"
|
||||
;; Use absolute paths instead of keys.
|
||||
(("= find_library") "= ")))))))
|
||||
(native-inputs
|
||||
(list python-pytest
|
||||
python-setuptools))
|
||||
(("= find_library") "= "))
|
||||
#t))))))
|
||||
(inputs
|
||||
(list eudev))
|
||||
(propagated-inputs
|
||||
(list python-six))
|
||||
(native-inputs
|
||||
(list python-docutils python-hypothesis python-mock python-pytest
|
||||
python-sphinx))
|
||||
(home-page "https://pyudev.readthedocs.io/")
|
||||
(synopsis "Python udev binding")
|
||||
(description "This package provides @code{udev} bindings for Python.")
|
||||
@@ -5278,7 +5152,7 @@ cache of unix and unix-like systems.")
|
||||
(define-public solaar
|
||||
(package
|
||||
(name "solaar")
|
||||
(version "1.1.18")
|
||||
(version "1.1.16")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -5287,7 +5161,7 @@ cache of unix and unix-like systems.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0wf8rkm9anxr9iw51yxaav9cifpfkf1m4cw7i9rfsq8xb3aa2n9b"))))
|
||||
(base32 "1q05pcrl1pr6ls92m5k690qrwqb4nz1lganxvbj9b40w3c6nh5iy"))))
|
||||
(build-system pyproject-build-system)
|
||||
(native-inputs
|
||||
(list python-pytest
|
||||
@@ -5664,7 +5538,7 @@ entries, providing commands to add, remove, comment, and search.")
|
||||
(define-public nmrpflash
|
||||
(package
|
||||
(name "nmrpflash")
|
||||
(version "0.9.26")
|
||||
(version "0.9.25")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -5673,7 +5547,7 @@ entries, providing commands to add, remove, comment, and search.")
|
||||
(url "https://github.com/jclehner/nmrpflash")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "19dna96qg32nscvsalgd0xslp3da84aj196cczdm0ixhv1k9pvi3"))
|
||||
(base32 "0xqvj52m6rk0gma8saqvp8b4jms9hca8i1v2kb5hcd6miaqgx276"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
@@ -5922,11 +5796,6 @@ This program allows you to view and manipulate this EEPROM list.")
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(setenv "CONFIG_SHELL" (which "bash"))
|
||||
(setenv "CFLAGS"
|
||||
(string-append "-g -O2 "
|
||||
"-Wno-error=implicit-int "
|
||||
"-Wno-error=implicit-function-declaration "
|
||||
"-Wno-error=incompatible-pointer-types"))
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix="
|
||||
(assoc-ref outputs "out"))))))))
|
||||
@@ -6744,11 +6613,10 @@ file or files to several hosts.")
|
||||
(install-file "man-page/dust.1"
|
||||
(string-append share "/man/man1"))
|
||||
(mkdir-p (string-append out
|
||||
"/share/bash-completion/completions"))
|
||||
(copy-file
|
||||
"completions/dust.bash"
|
||||
(string-append
|
||||
out "/share/bash-completion/completions/dust"))
|
||||
"/etc/bash_completion.d"))
|
||||
(copy-file "completions/dust.bash"
|
||||
(string-append out
|
||||
"/etc/bash_completion.d/dust"))
|
||||
(install-file "completions/dust.fish"
|
||||
(string-append share
|
||||
"/fish/vendor_completions.d"))
|
||||
@@ -7033,45 +6901,10 @@ with which other processes. It provides more usable versions of @command{ps},
|
||||
network, which causes enabled computers to power on.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public witr
|
||||
(package
|
||||
(name "witr")
|
||||
(version "0.1.7")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pranshuparmar/witr")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "18xx01lxd5j019gy9jmpms3awv4snlr028w01bfkyfid6hlwxbq2"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-source? #f
|
||||
#:import-path "github.com/pranshuparmar/witr/cmd/witr"
|
||||
#:unpack-path "github.com/pranshuparmar/witr"
|
||||
#:build-flags #~(list "-ldflags"
|
||||
(string-append "-X main.version=" #$version))))
|
||||
(home-page "https://github.com/pranshuparmar/witr")
|
||||
(synopsis "Utility to show why the process is running")
|
||||
(description
|
||||
"The @dfn{witr} (why-is-this-running), is a utility to show:
|
||||
@enumerate
|
||||
@item What is running?
|
||||
@item How did it start?
|
||||
@item What is keeping it running?
|
||||
@item What context does it belong to?
|
||||
@end enumerate
|
||||
It shows which process uses the port, and its information like process tree,
|
||||
working directory, user, pid, command, and so on.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public xfel
|
||||
(package
|
||||
(name "xfel")
|
||||
(version "1.3.5")
|
||||
(version "1.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -7079,7 +6912,7 @@ working directory, user, pid, command, and so on.")
|
||||
(url "https://github.com/xboot/xfel")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "1vmb3dr3vplxdxn9i8i4chdnfihb429rakvkqsfccb885ivkkn3b"))
|
||||
(base32 "15xlqkj7lf3xszgfyci32lrwdjhqmmm9clmwlp1qn6hywal3d2p4"))
|
||||
(file-name (git-file-name name version))))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
|
||||
+16
-61
@@ -9,7 +9,6 @@
|
||||
;;; Copyright © 2023 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||
;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -132,24 +131,29 @@ read all zbar supported codes.")
|
||||
(define-public zint
|
||||
(package
|
||||
(name "zint")
|
||||
(version "2.16.0")
|
||||
(version "2.15.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/zint/zint")
|
||||
(commit version)))
|
||||
(url "https://github.com/zint/zint")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zpv9ar1kfjl3bb27jc8hd8601zcda9yv4dz1jhxfhdsg6v4cdg7"))))
|
||||
(build-system cmake-build-system)
|
||||
"0arnpdqspyy3bxafm3lqc020bhwq3vazfnja2fk2s8c7mr9wimgr"))))
|
||||
(build-system qt-build-system)
|
||||
(arguments
|
||||
(list #:disallowed-references (list qtbase)
|
||||
#:parallel-tests? #f ;test suite fails otherwise
|
||||
#:configure-flags #~(list "-DZINT_TEST=ON"
|
||||
"-DZINT_UNINSTALL=OFF")))
|
||||
(native-inputs (list pkg-config))
|
||||
(inputs (list libpng))
|
||||
(list #:qtbase qtbase
|
||||
#:parallel-tests? #f
|
||||
#:configure-flags
|
||||
#~(list "-DZINT_QT6=ON"
|
||||
"-DZINT_TEST=ON"
|
||||
"-DZINT_UNINSTALL=OFF")))
|
||||
(native-inputs
|
||||
(list pkg-config qttools))
|
||||
(inputs
|
||||
(list libpng
|
||||
qtsvg))
|
||||
(synopsis "Barcode encoding library")
|
||||
(description "Zint is a suite of programs to allow easy encoding of data in
|
||||
any of the wide range of public domain barcode standards and to allow
|
||||
@@ -157,23 +161,6 @@ integration of this capability into your own programs.")
|
||||
(home-page "https://www.zint.org.uk/")
|
||||
(license (list license:bsd-3 license:gpl3+))))
|
||||
|
||||
(define-public zint-with-qt
|
||||
(package/inherit zint
|
||||
(name "zint-with-qt")
|
||||
(build-system qt-build-system)
|
||||
(arguments (substitute-keyword-arguments (package-arguments zint)
|
||||
((#:disallowed-references references)
|
||||
(delete qtbase references))
|
||||
((#:qtbase _ #f)
|
||||
qtbase)
|
||||
((#:configure-flags flags ''())
|
||||
#~(cons "-DZINT_QT6=ON" #$flags))))
|
||||
(inputs (modify-inputs (package-inputs zint)
|
||||
;; The UI library of qttools is linked to; hence it must be used
|
||||
;; as an input rather than a native input.
|
||||
(append qtsvg qttools)))
|
||||
(synopsis "Barcode encoding library (with graphical user interface)")))
|
||||
|
||||
(define-public zxing-cpp
|
||||
(package
|
||||
(name "zxing-cpp")
|
||||
@@ -313,38 +300,6 @@ barcodes of the modern ECC200 variety. libdmtx is a shared library, allowing
|
||||
C/C++ programs to use its capabilities without restrictions or overhead.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public dmtx-utils
|
||||
(package
|
||||
(name "dmtx-utils")
|
||||
(version "0.7.6")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dmtx/dmtx-utils/")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
"06m3qncqdlcnmw83n95yrx2alaq6bld320ax26z4ndnla41yk0p4")))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list autoconf automake libtool pkg-config))
|
||||
(inputs (list libdmtx imagemagick libjpeg-turbo))
|
||||
(home-page "https://github.com/dmtx/dmtx-utils/")
|
||||
(synopsis "Utilities for working with Data Matrix barcodes")
|
||||
(description
|
||||
"libdmtx is a software library that enables programs to read and write Data
|
||||
Matrix barcodes of the modern ECC200 variety. This package, dmtx-utils,
|
||||
provides command line utilities that allow scripts and command line users to
|
||||
use libdmtx functionality.
|
||||
|
||||
This package includes the following programs:
|
||||
@enumerate
|
||||
@item @code{dmtxquery}: Extract information from dmtxread output.
|
||||
@item @code{dmtxread}: Scan Data Matrix barcodes.
|
||||
@item @code{dmtxwrite}: Create Data Matrix barcodes.
|
||||
@end enumerate")
|
||||
(license (list license:lgpl2.1 license:gpl2))))
|
||||
|
||||
;; XXX: qt variant utils are broken: zbarcam-qt fails with segmentation fault.
|
||||
(define-public zbar
|
||||
(package
|
||||
|
||||
+56
-142
@@ -17,11 +17,10 @@
|
||||
;;; Copyright © 2022 宋文武 <iyzsong@envs.net>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2023 Mehmet Tekman <mtekman89@gmail.com>
|
||||
;;; Copyright © 2025-2026 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||
;;; Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
|
||||
;;; Copyright © 2025 Skylar Hill <stellarskylark@posteo.net>
|
||||
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2025 Andy Tai <atai@atai.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -61,7 +60,6 @@
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages java)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
@@ -269,7 +267,7 @@ the real span of the lattice.")
|
||||
(define-public pari-gp
|
||||
(package
|
||||
(name "pari-gp")
|
||||
(version "2.17.3")
|
||||
(version "2.17.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -277,7 +275,7 @@ the real span of the lattice.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jrd8q8bii109i01qjsc15948a47cn1kcg7jw0kqsijcb36lz74d"))))
|
||||
"0qahws0jmmqv3v611zdwhvg0rz5a678lhi8z51x16yzrbj7mfc3x"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list (texlive-local-tree)))
|
||||
(inputs (list gmp libx11 perl readline))
|
||||
@@ -498,20 +496,25 @@ or text interfaces) or as a C++ library.")
|
||||
(define-public flint
|
||||
(package
|
||||
(name "flint")
|
||||
(version "3.4.0")
|
||||
(version "3.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://flintlib.org/download/flint-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0csa8n7d4l3mh892q36nhiv1r7bkb168vszz79p95bfy0jc6g5wl"))))
|
||||
(base32 "0gyjbkhwrmx2vgb1gailnmmzacl4aikzgi70dzmpf8lpfxny8yya"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list ntl))
|
||||
(propagated-inputs
|
||||
(list gmp mpfr)) ; header files included by flint.h or mpfr_mat.h
|
||||
(arguments
|
||||
;; Parallel tests failed in the past on ARM, this may need to be
|
||||
;; tested again.
|
||||
`(#:parallel-tests? #f
|
||||
;; Prevent build machine specifics from ending up in the binary.
|
||||
'(#:configure-flags '("--disable-assembly")))
|
||||
#:configure-flags '("--disable-assembly")))
|
||||
(synopsis "Fast library for number theory")
|
||||
(description
|
||||
"FLINT is a C library for number theory. It supports arithmetic
|
||||
@@ -529,31 +532,19 @@ fast arithmetic.")
|
||||
(properties
|
||||
'((release-monitoring-url . "http://flintlib.org/downloads.html")))))
|
||||
|
||||
(define-public flint-3.3
|
||||
(package
|
||||
(inherit flint)
|
||||
(version "3.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://flintlib.org/download/flint-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1yzasdcv90f6w926p9g92cli2daxvb0mh2s1w1qskkvn618hxmv4"))))))
|
||||
|
||||
(define-public python-flint
|
||||
(package
|
||||
(name "python-flint")
|
||||
(version "0.8.0")
|
||||
(version "0.7.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fredrik-johansson/python-flint")
|
||||
(commit version)))
|
||||
(url "https://github.com/fredrik-johansson/python-flint")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1xdclpxpas29v3g14z2fxqf7hv4a6iq7bknl9d9r1510dcpxm67a"))))
|
||||
(base32 "09nsys2cajxsfh2c13nf98a2kwnm0msmab9f9zcjpkndj4ir453a"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -565,7 +556,7 @@ fast arithmetic.")
|
||||
python-pytest))
|
||||
(inputs
|
||||
(list gmp
|
||||
flint-3.3))
|
||||
flint))
|
||||
(propagated-inputs
|
||||
(list python-numpy))
|
||||
(home-page "https://fredrikj.net/python-flint/")
|
||||
@@ -627,7 +618,7 @@ matrices, and polynomials over the integers and over finite fields.")
|
||||
(define-public singular
|
||||
(package
|
||||
(name "singular")
|
||||
(version "4.4.1p5")
|
||||
(version "4.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -643,7 +634,7 @@ matrices, and polynomials over the integers and over finite fields.")
|
||||
"/singular-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pwygpmhf4sddf1v5x5fr1kbbkb29wlfd5yyj7lryvhbs45s9rdw"))))
|
||||
"16xlhar1krlskh9gxbw1gw4qi8248c95w71vzxdw72avs2pblkva"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -805,7 +796,7 @@ a C program.")
|
||||
(native-inputs
|
||||
(list googletest
|
||||
pkg-config
|
||||
python-numpy
|
||||
python-numpy-2
|
||||
python-wrapper))
|
||||
(inputs
|
||||
(list fftw
|
||||
@@ -817,80 +808,6 @@ a C program.")
|
||||
principle, 'Keep It Simple, Stupid.'")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public kissfft-for-tflite-micro
|
||||
(package
|
||||
(inherit kissfft)
|
||||
(name "kissfft-for-tflite-micro")
|
||||
(version "130")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/mborgerding/kissfft")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
"137h3pkn6jmc3pcgnqsq481f6jjblx7ygw9gyipgcdysmnhrwiv2")
|
||||
(patches (search-patches "kissfft-tflite-micro.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(for-each (lambda (f)
|
||||
(install-file f
|
||||
(string-append #$output "/include")))
|
||||
'("kiss_fft.h" "kissfft.hh"))
|
||||
(for-each (lambda (f)
|
||||
(install-file f
|
||||
(string-append #$output
|
||||
"/include/tools")))
|
||||
(find-files "tools"))))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "make" "CC=gcc" "testall")))))))
|
||||
(native-inputs (list procps))
|
||||
(inputs (list fftw))))
|
||||
|
||||
(define-public clac
|
||||
(package
|
||||
(name "clac")
|
||||
(version "0.3.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/soveran/clac")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
"0crpm5rxxipiz6kqs5ip900d77vvnslyjn5f6nj0lrc86bkbgi8d")))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-target "test"
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'set-env
|
||||
(lambda _
|
||||
(setenv "CC" "gcc")
|
||||
(setenv "PREFIX" #$output))))))
|
||||
(home-page "https://github.com/soveran/clac")
|
||||
(synopsis "Command-line, stack-based calculator with postfix notation")
|
||||
(description
|
||||
"Clac is a command line, stack-based calculator with postfix notation
|
||||
that displays the stack contents at all times. As you type, the stack
|
||||
changes are reflected immediately.")
|
||||
;; Bundles two dependencies, both also BSD-2. SDS is not yet packaged.
|
||||
;; linenoise is packaged, but the package doesn't provide shared
|
||||
;; object files so we have to build it anyway.
|
||||
(license license:bsd-2)))
|
||||
(define-public fftw
|
||||
(package
|
||||
(name "fftw")
|
||||
@@ -985,44 +902,6 @@ gnu build version."))))
|
||||
(string-append (package-description fftw)
|
||||
" With OpenMPI parallelism support."))))
|
||||
|
||||
(define-public python-pyflct
|
||||
(package
|
||||
(name "python-pyflct")
|
||||
(version "0.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyflct" version))
|
||||
(sha256
|
||||
(base32 "1xv4h1a4f8y3ww97g2vc7fg2scfi142vwjz556nx0r1nnpgggj41"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; tests: 6 passed
|
||||
#:test-flags
|
||||
#~(list "--pyargs" "pyflct")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'check 'remove-local-source
|
||||
(lambda _
|
||||
(delete-file-recursively "pyflct"))))))
|
||||
(native-inputs
|
||||
(list python-cython
|
||||
python-extension-helpers
|
||||
python-pytest
|
||||
python-setuptools
|
||||
python-setuptools-scm))
|
||||
(inputs
|
||||
(list fftw))
|
||||
(propagated-inputs
|
||||
(list python-numpy
|
||||
python-packaging))
|
||||
(home-page "https://docs.sunpy.org/projects/pyflct/")
|
||||
(synopsis "Python wrapper for Fourier Local Correlation Tracking")
|
||||
(description
|
||||
"This package provides a Python wrapper for Fourier Local Correlation Tracking.")
|
||||
(license license:lgpl2.1)))
|
||||
|
||||
(define-public java-la4j
|
||||
(package
|
||||
(name "java-la4j")
|
||||
@@ -2022,14 +1901,14 @@ no more than about 20 bits long).")
|
||||
(define-public r-dtt
|
||||
(package
|
||||
(name "r-dtt")
|
||||
(version "0.1-2.1")
|
||||
(version "0.1-2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "dtt" version))
|
||||
(sha256
|
||||
(base32
|
||||
"113qb6fjp08gcmv4cgq3cm2fk6k3r3j1wfsrygq8889i2bq4a073"))))
|
||||
"0n8gj5iylfagdbaqirpykb01a9difsy4zl6qq55f0ghvazxqdvmn"))))
|
||||
(properties `((upstream-name . "dtt")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://www.r-project.org")
|
||||
@@ -2336,3 +2215,38 @@ systems. This encompasses:
|
||||
@item the computation of the dimension and the degree of the solution set.
|
||||
@end itemize")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public clac
|
||||
(package
|
||||
(name "clac")
|
||||
(version "0.3.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/soveran/clac")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
"0crpm5rxxipiz6kqs5ip900d77vvnslyjn5f6nj0lrc86bkbgi8d")))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-target "test"
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'set-env
|
||||
(lambda _
|
||||
(setenv "CC" "gcc")
|
||||
(setenv "PREFIX" #$output))))))
|
||||
(home-page "https://github.com/soveran/clac")
|
||||
(synopsis "Command-line, stack-based calculator with postfix notation")
|
||||
(description
|
||||
"Clac is a command line, stack-based calculator with postfix notation
|
||||
that displays the stack contents at all times. As you type, the stack
|
||||
changes are reflected immediately.")
|
||||
;; Bundles two dependencies, both also BSD-2. SDS is not yet packaged.
|
||||
;; linenoise is packaged, but the package doesn't provide shared
|
||||
;; object files so we have to build it anyway.
|
||||
(license license:bsd-2)))
|
||||
|
||||
+138
-137
@@ -37,7 +37,6 @@
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system android-ndk)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system go)
|
||||
@@ -468,17 +467,29 @@ the corresponding @command{rsync} flags.")
|
||||
(package
|
||||
(name "mkbootimg")
|
||||
(version (android-platform-version))
|
||||
(source (android-platform-system-core version))
|
||||
(build-system copy-build-system)
|
||||
(source (origin
|
||||
(inherit (android-platform-system-core version))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-plan
|
||||
''(("mkbootimg/mkbootimg" "bin/")
|
||||
("mkbootimg/bootimg.h" "include/"))))
|
||||
(inputs (list python-wrapper))
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'enter-source
|
||||
(lambda _ (chdir "mkbootimg") #t))
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(include (string-append out "/include")))
|
||||
(install-file "mkbootimg" bin)
|
||||
(install-file "bootimg.h" include)
|
||||
#t))))))
|
||||
(home-page "https://developer.android.com/studio/command-line/adb.html")
|
||||
(synopsis "Tool to create Android boot images")
|
||||
(description "This package provides a tool to create Android Boot Images.")
|
||||
(description "This package provides a tool to create Android Boot
|
||||
Images.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public android-safe-iop
|
||||
@@ -972,7 +983,7 @@ The standard for the ETC1 texture format can be found at
|
||||
(define-public git-repo
|
||||
(package
|
||||
(name "git-repo")
|
||||
(version "2.60.1")
|
||||
(version "2.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -981,90 +992,88 @@ The standard for the ETC1 texture format can be found at
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append "git-repo-" version "-checkout"))
|
||||
(sha256
|
||||
(base32 "1cx1b0zmvnmglyn6kbdifcy6w3gm89z2icw4pykxm0wyasy7sc1c"))))
|
||||
(build-system pyproject-build-system)
|
||||
(base32 "0khg1731927gvin73dcbw1657kbfq4k7agla5rpzqcnwkk5agzg3"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-flags
|
||||
#~(list
|
||||
;; XXX: Requires GnuPG.
|
||||
"--deselect=tests/test_wrapper.py::SetupGnuPG::test_full"
|
||||
;; This is expected, as the package is patched for this.
|
||||
"-k" "not test_fetches_when_stale")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'build 'set-executable-paths
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(substitute* '("repo" "git_command.py")
|
||||
(("^GIT = 'git'")
|
||||
(format #f "GIT = '~a'"
|
||||
(search-input-file inputs "/bin/git"))))
|
||||
(substitute* "git_config.py"
|
||||
((" command_base = \\['ssh',")
|
||||
(format #f " command_base = ['~a',"
|
||||
(search-input-file inputs "/bin/ssh"))))))
|
||||
(add-before 'build 'do-not-self-update
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Setting the REPO_MAIN variable to an absolute file name is
|
||||
;; enough to have _FindRepo return the store main.py file. The
|
||||
;; self update mechanism is activated with the call to _Init() in
|
||||
;; main(), so we bypass it.
|
||||
|
||||
;; Ticket requesting upstream to provide a mean to disable the
|
||||
;; self update mechanism:
|
||||
;; https://bugs.chromium.org/p/gerrit/issues/detail?id=12407.
|
||||
(let ((repo-main (string-append #$output
|
||||
"/share/git-repo/main.py")))
|
||||
(substitute* "repo"
|
||||
(("^REPO_MAIN = .*")
|
||||
(format #f "REPO_MAIN = ~s~%" repo-main))
|
||||
((" _Init\\(args, gitc_init=\\(cmd ==.*" all)
|
||||
(string-append "True #" all)))
|
||||
;; Prevent repo from trying to git describe its version from
|
||||
;; the (disabled) self updated copy.
|
||||
(substitute* "git_command.py"
|
||||
(("ver = getattr\\(RepoSourceVersion.*")
|
||||
(format #f "ver = ~s~%" #$version)))
|
||||
(substitute* "subcmds/version.py"
|
||||
(("rp_ver = .*")
|
||||
(format #f "rp_ver = ~s~%" #$version)))
|
||||
;; Prevent repo from adding its (disabled) self update copy to
|
||||
;; the list of projects to fetch when using 'repo sync'.
|
||||
(substitute* "subcmds/sync.py"
|
||||
(("to_fetch\\.extend\\(all_projects\\).*" all)
|
||||
(string-append "#" all))
|
||||
(("self\\._Fetch\\(to_fetch")
|
||||
"self._Fetch(all_projects")
|
||||
(("_PostRepoFetch\\(rp, opt\\.repo_verify).*" all)
|
||||
(string-append "pass #" all))))))
|
||||
(delete 'build) ;nothing to build
|
||||
(add-before 'check 'configure-git
|
||||
(lambda _
|
||||
(setenv "HOME" (getcwd))
|
||||
;; XXX: pytest needs this for conftest to import local modules.
|
||||
(setenv "PYTHONPATH" (getcwd))
|
||||
(invoke "git" "config" "--global" "user.email" "you@example.com")
|
||||
(invoke "git" "config" "--global" "user.name" "Your Name")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((bin-dir (string-append #$output "/bin"))
|
||||
(repo-dir (string-append #$output "/share/"
|
||||
#$name)))
|
||||
(mkdir-p bin-dir)
|
||||
(mkdir-p repo-dir)
|
||||
(copy-recursively "." repo-dir)
|
||||
(delete-file-recursively (string-append repo-dir "/tests"))
|
||||
(symlink (string-append repo-dir "/repo")
|
||||
(string-append bin-dir "/repo"))))))))
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'set-executable-paths
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(git (assoc-ref inputs "git"))
|
||||
(ssh (assoc-ref inputs "ssh")))
|
||||
(substitute* '("repo" "git_command.py")
|
||||
(("^GIT = 'git'")
|
||||
(string-append "GIT = '" git "/bin/git'")))
|
||||
(substitute* "git_config.py"
|
||||
((" command_base = \\['ssh',")
|
||||
(string-append " command_base = ['" ssh "/bin/ssh',")))
|
||||
#t)))
|
||||
(add-before 'build 'do-not-self-update
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Setting the REPO_MAIN variable to an absolute file name is
|
||||
;; enough to have _FindRepo return the store main.py file. The
|
||||
;; self update mechanism is activated with the call to _Init() in
|
||||
;; main(), so we bypass it.
|
||||
|
||||
;; Ticket requesting upstream to provide a mean to disable the
|
||||
;; self update mechanism:
|
||||
;; https://bugs.chromium.org/p/gerrit/issues/detail?id=12407.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(repo-main (string-append out "/share/git-repo/main.py")))
|
||||
(substitute* "repo"
|
||||
(("^REPO_MAIN = .*")
|
||||
(format #f "REPO_MAIN = ~s~%" repo-main))
|
||||
((" _Init\\(args, gitc_init=\\(cmd ==.*" all)
|
||||
(string-append "True #" all)))
|
||||
;; Prevent repo from trying to git describe its version from
|
||||
;; the (disabled) self updated copy.
|
||||
(substitute* "git_command.py"
|
||||
(("ver = getattr\\(RepoSourceVersion.*")
|
||||
(format #f "ver = ~s~%" ,version)))
|
||||
(substitute* "subcmds/version.py"
|
||||
(("rp_ver = .*")
|
||||
(format #f "rp_ver = ~s~%" ,version)))
|
||||
;; Prevent repo from adding its (disabled) self update copy to
|
||||
;; the list of projects to fetch when using 'repo sync'.
|
||||
(substitute* "subcmds/sync.py"
|
||||
(("to_fetch\\.extend\\(all_projects\\).*" all)
|
||||
(string-append "#" all))
|
||||
(("self\\._Fetch\\(to_fetch")
|
||||
"self._Fetch(all_projects")
|
||||
(("_PostRepoFetch\\(rp, opt\\.repo_verify).*" all)
|
||||
(string-append "#" all))))))
|
||||
(delete 'build) ; nothing to build
|
||||
(add-before 'check 'configure-git
|
||||
(lambda _
|
||||
(setenv "HOME" (getcwd))
|
||||
(invoke "git" "config" "--global" "user.email" "you@example.com")
|
||||
(invoke "git" "config" "--global" "user.name" "Your Name")))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "./run_tests")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin-dir (string-append out "/bin"))
|
||||
(repo-dir (string-append out "/share/" ,name)))
|
||||
(mkdir-p bin-dir)
|
||||
(mkdir-p repo-dir)
|
||||
(copy-recursively "." repo-dir)
|
||||
(delete-file-recursively (string-append repo-dir "/tests"))
|
||||
(symlink (string-append repo-dir "/repo")
|
||||
(string-append bin-dir "/repo"))
|
||||
#t))))))
|
||||
(inputs
|
||||
;; TODO: Add git-remote-persistent-https once it is available in guix
|
||||
(list git openssh))
|
||||
(native-inputs (list python-pytest python-setuptools))
|
||||
`(("git" ,git)
|
||||
("ssh" ,openssh)))
|
||||
(native-inputs
|
||||
`(("pytest" ,python-pytest)))
|
||||
(home-page "https://code.google.com/p/git-repo/")
|
||||
(synopsis "Helps to manage many Git repositories")
|
||||
(description
|
||||
"Repo is a tool built on top of Git. Repo helps manage many Git
|
||||
repositories, does the uploads to revision control systems, and automates
|
||||
(description "Repo is a tool built on top of Git. Repo helps manage many
|
||||
Git repositories, does the uploads to revision control systems, and automates
|
||||
parts of the development workflow. Repo is not meant to replace Git, only to
|
||||
make it easier to work with Git. The repo command is an executable Python
|
||||
script that you can put anywhere in your path.")
|
||||
@@ -1297,58 +1306,50 @@ emulator inside the comfort of Emacs.")
|
||||
(package
|
||||
(name "enjarify")
|
||||
(version "1.0.3")
|
||||
(home-page "https://github.com/Storyyeller/enjarify")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Storyyeller/enjarify")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(patches
|
||||
(search-patches "enjarify-setup-py.patch"))
|
||||
(sha256
|
||||
(base32 "1nam7h1g4f1h6jla4qcjjagnyvd24dv6d5445w04q8hx07nxdapk"))))
|
||||
(build-system pyproject-build-system)
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(patches
|
||||
(search-patches "enjarify-setup-py.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1nam7h1g4f1h6jla4qcjjagnyvd24dv6d5445w04q8hx07nxdapk"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'check 'fix-tests
|
||||
(lambda _
|
||||
(substitute* "enjarify/runtests.py"
|
||||
(("from \\.main") "from enjarify.main")
|
||||
(("from \\.jvm") "from enjarify.jvm"))
|
||||
;; Upstream adjusted this test in commit:
|
||||
;; 3ae884a6485af82d300515813f537685b08dd800
|
||||
(substitute* "tests/test2/expected.txt"
|
||||
(("^20") "0"))
|
||||
;; Upstream removed this argument in order to support 32-bit
|
||||
;; architectures. commit:
|
||||
;; 4be0111d879aa95fdc0d9f24fe529f8c664d4093
|
||||
(substitute* "enjarify/runtests.py"
|
||||
(("java -Xss515m") "java "))))
|
||||
(add-after 'install 'install-enjarify-wrapper
|
||||
(lambda _
|
||||
(let ((bin (string-append #$output "/bin")))
|
||||
(install-file "enjarify.sh" bin)
|
||||
(symlink (string-append bin "/enjarify.sh")
|
||||
(string-append bin "/enjarify")))))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? test-flags #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "python" "-m" "enjarify.runtests")))))))
|
||||
(native-inputs
|
||||
(list openjdk12
|
||||
python-setuptools))
|
||||
(home-page "https://github.com/Storyyeller/enjarify")
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'fixup-expected-test-results
|
||||
;; Upstream adjusted this test in commit:
|
||||
;; 3ae884a6485af82d300515813f537685b08dd800
|
||||
(lambda _
|
||||
(substitute* "tests/test2/expected.txt"
|
||||
(("^20") "0"))
|
||||
#t))
|
||||
(add-before 'check 'drop-java-xss-argument
|
||||
;; Upstream removed this argument in order to support 32-bit
|
||||
;; architectures. commit: 4be0111d879aa95fdc0d9f24fe529f8c664d4093
|
||||
(lambda _
|
||||
(substitute* "enjarify/runtests.py"
|
||||
(("java -Xss515m") "java "))
|
||||
#t))
|
||||
(add-after 'install 'install-enjarify-wrapper
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out")))
|
||||
(mkdir-p (string-append out "/bin/"))
|
||||
(copy-file "enjarify.sh" (string-append out "/bin/enjarify"))
|
||||
#t))))))
|
||||
(native-inputs (list openjdk12))
|
||||
(synopsis "Translate Dalvik bytecode to equivalent Java bytecode")
|
||||
(description
|
||||
"Android applications are Java programs that run on a customized virtual
|
||||
machine, which is part of the Android operating system, the Dalvik VM. Their
|
||||
bytecode differs from the bytecode of normal Java applications. Enjarify can
|
||||
translate the Dalvik bytecode back to equivalent Java bytecode, which
|
||||
simplifies the analysis of Android applications. It's an alternative fork of
|
||||
not maintained Goole's project https://github.com/google/enjarify.")
|
||||
(description "Android applications are Java programs that run on a
|
||||
customized virtual machine, which is part of the Android operating system, the
|
||||
Dalvik VM. Their bytecode differs from the bytecode of normal Java
|
||||
applications. Enjarify can translate the Dalvik bytecode back to equivalent
|
||||
Java bytecode, which simplifies the analysis of Android applications.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public android-file-transfer
|
||||
|
||||
@@ -316,7 +316,7 @@ language.")
|
||||
;; Ensure that all required Qt plugins are found at runtime.
|
||||
(add-after 'install 'wrap-executable
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((qt '("qtbase" "qtmultimedia" "qtwayland")))
|
||||
(let ((qt '("qtbase" "qtmultimedia")))
|
||||
(wrap-program (string-append #$output "/bin/Papagayo")
|
||||
`("QT_PLUGIN_PATH" ":" prefix
|
||||
,(map (lambda (label)
|
||||
@@ -324,7 +324,7 @@ language.")
|
||||
"/lib/qt5/plugins/"))
|
||||
qt)))))))))
|
||||
(inputs
|
||||
(list bash-minimal qtbase-5 qtmultimedia-5 qtwayland-5 libsndfile))
|
||||
(list bash-minimal qtbase-5 qtmultimedia-5 libsndfile))
|
||||
(native-inputs
|
||||
(list qttools-5))
|
||||
(home-page "https://www.lostmarble.com/papagayo/")
|
||||
@@ -352,8 +352,7 @@ waveform until they line up with the proper sounds.")
|
||||
"0b1nwiwyg01087q318vymg4si76dw41ykxbn2zwd6dqbxzbpr1dh"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list bash-minimal qtbase-5 qtxmlpatterns-5 qtmultimedia-5 qtsvg-5
|
||||
qtwayland-5))
|
||||
(list bash-minimal qtbase-5 qtxmlpatterns-5 qtmultimedia-5 qtsvg-5))
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
|
||||
@@ -83,7 +83,6 @@
|
||||
(guix build cmake-build-system)
|
||||
(guix build utils))
|
||||
#:phases
|
||||
(with-extensions (list (cargo-guile-json))
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'prepare-cargo-build-system
|
||||
(lambda args
|
||||
@@ -112,7 +111,7 @@
|
||||
(substitute* "unit_tests/CMakeLists.txt"
|
||||
(("clamd_test\\.py" test)
|
||||
(string-append
|
||||
test " -k \"not test_clamd_08_VirusEvent\""))))))))))
|
||||
test " -k \"not test_clamd_08_VirusEvent\"")))))))))
|
||||
(native-inputs
|
||||
(append
|
||||
(list pkg-config
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
(define-public libapparmor
|
||||
(package
|
||||
(name "libapparmor")
|
||||
(version "4.1.2")
|
||||
(version "3.1.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -50,7 +50,7 @@
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0p3vq0awvn4ar6sblmhcs0i9m7zc9kbwm3f3zcggx4lqgmy8s18b"))))
|
||||
"1h77a7ww0rxfv5nsi1iy4fffklxdr2vq6r7kdsqm15yysglhbjyi"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
@@ -84,7 +84,6 @@
|
||||
(chdir "libraries/libapparmor"))))))
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
autoconf-archive
|
||||
automake
|
||||
bison
|
||||
dejagnu
|
||||
|
||||
+25
-27
@@ -40,15 +40,13 @@
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/AppImage/type2-runtime")
|
||||
(commit commit)))
|
||||
(url "https://github.com/AppImage/type2-runtime")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0954crhlbapxis96g1s0vfpf78ybr64zvjalak387ksxj560g44x"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; No tests
|
||||
#:make-flags
|
||||
#~(list "-Csrc/runtime" "runtime-fuse3"
|
||||
(string-append "CC=" #$(cc-for-target))
|
||||
@@ -62,33 +60,34 @@
|
||||
`((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 binary-ports))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(install-file "src/runtime/runtime-fuse3"
|
||||
(string-append #$output "/bin"))))
|
||||
;; Must be after all elf reliant phases. Used to identify the
|
||||
;; executable as an AppImage as per the specification.
|
||||
(add-after 'make-dynamic-linker-cache 'set-magic-bytes
|
||||
(lambda _
|
||||
(let ((port (open (string-append #$output
|
||||
"/bin/runtime-fuse3")
|
||||
(logior O_WRONLY))))
|
||||
(seek port 8 SEEK_SET)
|
||||
(put-bytevector port #vu8(#x41 #x49 #x02))
|
||||
(close-port port)))))
|
||||
#:disallowed-references
|
||||
(list (this-package-input "squashfuse-for-appimage")
|
||||
(this-package-input "fuse")
|
||||
(gexp-input (this-package-input "zstd") "static")
|
||||
(gexp-input (this-package-input "zlib") "static"))))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'check) ; No tests.
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(install-file "src/runtime/runtime-fuse3"
|
||||
(string-append #$output "/bin"))))
|
||||
;; Must be after all elf reliant phases. Used to identify the
|
||||
;; executable as an AppImage as per the specification.
|
||||
(add-after 'make-dynamic-linker-cache 'set-magic-bytes
|
||||
(lambda _
|
||||
(let ((port (open (string-append #$output
|
||||
"/bin/runtime-fuse3")
|
||||
(logior O_WRONLY))))
|
||||
(seek port 8 SEEK_SET)
|
||||
(put-bytevector port #vu8(#x41 #x49 #x02))
|
||||
(close-port port)))))
|
||||
#:disallowed-references (list squashfuse-for-appimage
|
||||
fuse-for-appimage
|
||||
(gexp-input zstd "static")
|
||||
(gexp-input zlib "static"))))
|
||||
;; Only needed at build time.
|
||||
(inputs (list squashfuse-for-appimage
|
||||
fuse-for-appimage
|
||||
`(,zstd "static")
|
||||
`(,zlib "static")))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://github.com/AppImage/type2-runtime")
|
||||
(synopsis "Runtime for executing AppImages")
|
||||
(description "The runtime is the executable part of every AppImage. It mounts
|
||||
the payload via @acronym{FUSE} and executes the entrypoint, allowing users to run
|
||||
@@ -97,5 +96,4 @@ ensures that the AppImage can access its bundled libraries and resources seamles
|
||||
providing a consistent environment across different Linux distributions. In the
|
||||
absence of @acronym{FUSE}, the AppImage can still be started using the
|
||||
@option{--appimage-extract-and-run} flag.")
|
||||
(home-page "https://github.com/AppImage/type2-runtime")
|
||||
(license license:expat))))
|
||||
|
||||
+1
-32
@@ -15,7 +15,7 @@
|
||||
;;; Copyright © 2021 Sergiu Ivanov <sivanov@colimite.fr>
|
||||
;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
|
||||
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
|
||||
;;; Copyright © 2024, 2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2024 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -482,34 +482,3 @@ European languages.")
|
||||
(for-each (cut install-file <> include-dir)
|
||||
'("config.h" "defhash.h" "ispell.h"
|
||||
"libispell.h" "local.h")))))))))))))
|
||||
|
||||
(define-public spell
|
||||
(package
|
||||
(name "spell")
|
||||
(version "1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/spell/spell-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0i4pqbhzkv5y4c2j7ajx713jykxsnn4dqdcqfvzn04xkgra47hkw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-commands
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "spell.c"
|
||||
(("aspell")
|
||||
(search-input-file inputs "bin/aspell"))
|
||||
(("ispell_prog = \"ispell\"")
|
||||
(format #f "ispell_prog = ~s"
|
||||
(search-input-file inputs "bin/ispell")))))))))
|
||||
(inputs (list aspell ispell))
|
||||
(synopsis "Spell checking")
|
||||
(description
|
||||
"Spell is a command-line spell-checking program. It reads through
|
||||
a text input and prints each misspelled word on a line of its own. It is
|
||||
implemented as a wrapper for GNU aspell or ispell.")
|
||||
(home-page "https://savannah.gnu.org/projects/spell/")
|
||||
(license gpl3+)))
|
||||
|
||||
+1163
-2433
File diff suppressed because it is too large
Load Diff
+246
-654
File diff suppressed because it is too large
Load Diff
@@ -221,13 +221,8 @@ YubiKey into your existing user authentication infrastructure.")
|
||||
(sha256
|
||||
(base32 "1mdj1wj0adcnx354fs17928yn2xfr1hj5mfraq282dagi873sqw3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'force-reconfigure
|
||||
(lambda _ (delete-file "configure"))))))
|
||||
(native-inputs
|
||||
(list autoconf automake libtool pkg-config))
|
||||
(list pkg-config))
|
||||
(inputs
|
||||
(list linux-pam))
|
||||
(home-page "https://pamtester.sourceforge.net/")
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+189
-471
File diff suppressed because it is too large
Load Diff
+170
-378
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+189
-410
File diff suppressed because it is too large
Load Diff
@@ -2039,7 +2039,7 @@ CONFIG_SCSI_LOWLEVEL=y
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_PMCRAID is not set
|
||||
# CONFIG_SCSI_PM8001 is not set
|
||||
CONFIG_SCSI_VIRTIO=m
|
||||
# CONFIG_SCSI_VIRTIO is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# end of SCSI device support
|
||||
|
||||
|
||||
@@ -205,24 +205,11 @@ mirror_directory (const char *source, const char *target,
|
||||
/* Create the mount point. */
|
||||
int err = firmlink (abs_source, entry, new_entry);
|
||||
|
||||
int is_directory = 0;
|
||||
if (entry->d_type == DT_UNKNOWN)
|
||||
{
|
||||
struct stat statbuf;
|
||||
if (fstatat (dir_fd, entry->d_name, &statbuf,
|
||||
AT_SYMLINK_NOFOLLOW) < 0)
|
||||
assert_perror (errno);
|
||||
if ((statbuf.st_mode & S_IFMT) == S_IFDIR)
|
||||
is_directory = 1;
|
||||
}
|
||||
else if (entry->d_type == DT_DIR)
|
||||
is_directory = 1;
|
||||
|
||||
/* It used to be that only directories could be bind-mounted. Thus,
|
||||
keep going if we fail to bind-mount a non-directory entry.
|
||||
That's OK because regular files in the root file system are
|
||||
usually uninteresting. */
|
||||
if (err != 0 && is_directory == 0)
|
||||
if (err != 0 && entry->d_type != DT_DIR)
|
||||
assert_perror (errno);
|
||||
|
||||
free (new_entry);
|
||||
|
||||
+65
-92
@@ -21,7 +21,7 @@
|
||||
;;; Copyright © 2021 Timothy Sample <samplet@ngyro.com>
|
||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
|
||||
;;; Copyright © 2022, 2025 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim@guixotic.coop>
|
||||
;;; Copyright © 2022 Feng Shu <tumashu@163.com>
|
||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
||||
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
|
||||
@@ -140,7 +140,7 @@
|
||||
tzdata-for-tests
|
||||
python-mock))
|
||||
(propagated-inputs
|
||||
(list python-pygobject python-urllib3))
|
||||
(list python-lockfile python-pygobject python-urllib3))
|
||||
(inputs
|
||||
(list bash-minimal ; to run the wrapped program
|
||||
dbus ; dbus-launch (Gio backend)
|
||||
@@ -357,62 +357,6 @@ random access nor for in-place modification. This package provides the
|
||||
@command{bsdcat}, @command{bsdcpio} and @command{bsdtar} commands.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
;;; TODO: core update (20k rebuilds).
|
||||
(define-public libarchive-next
|
||||
(package
|
||||
(inherit libarchive)
|
||||
(name "libarchive")
|
||||
(version "3.8.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "https://libarchive.org/downloads/libarchive-"
|
||||
version ".tar.xz")
|
||||
(string-append "https://github.com/libarchive/libarchive"
|
||||
"/releases/download/v" version "/libarchive-"
|
||||
version ".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0wxdr7qws1z1b1gp5jsm7n2ccnjlmrnds52d5wc5xkzagyslgf67"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments libarchive)
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(delete 'patch-pwd)
|
||||
(add-before 'build 'patch-commands
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("/bin/pwd") (which "pwd")))
|
||||
(substitute* "test_utils/test_main.c"
|
||||
(("/bin/sh") (which "sh")))))
|
||||
(replace 'check
|
||||
(lambda* (#:key parallel-build? tests? #:allow-other-keys)
|
||||
(if tests?
|
||||
(begin
|
||||
;; These environment variables are taken from
|
||||
;; <https://raw.githubusercontent.com/libarchive/libarchive/refs/heads/master/.github/workflows/ci.yml>
|
||||
(setenv "SKIP_OPEN_FD_ERR_TEST" "1")
|
||||
(setenv "IGNORE_TRAVERSALS_TEST4" "1")
|
||||
|
||||
;; XXX: The test_owner_parse, test_read_disk, and
|
||||
;; test_write_disk_lookup tests expect user 'root' to
|
||||
;; exist, but the chroot's /etc/passwd doesn't have it
|
||||
;; (see:
|
||||
;; <https://github.com/libarchive/libarchive/issues/2794>).
|
||||
(invoke "make" "-j" (number->string
|
||||
(if parallel-build?
|
||||
(parallel-job-count)
|
||||
1))
|
||||
"libarchive_test"
|
||||
"bsdcpio_test"
|
||||
"bsdtar_test")
|
||||
;; XXX: This glob disables too much.
|
||||
(invoke "./libarchive_test" "^test_*_disk*")
|
||||
(invoke "./bsdcpio_test" "^test_owner_parse")
|
||||
(invoke "./bsdtar_test"))
|
||||
;; Tests may be disabled if cross-compiling.
|
||||
(format #t "Test suite not run.~%"))))))))))
|
||||
|
||||
(define-public rdup
|
||||
(package
|
||||
(name "rdup")
|
||||
@@ -630,13 +574,13 @@ rsnapshot uses hard links to deduplicate identical files.")
|
||||
(define-public borg
|
||||
(package
|
||||
(name "borg")
|
||||
(version "1.4.3")
|
||||
(version "1.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "borgbackup" version))
|
||||
(sha256
|
||||
(base32 "07s4jqcv03s98hi6lvqpvmnnhl532qnvv11mjy2xc08rbmsgmfvr"))
|
||||
(base32 "0f9qj05i02aj17lhk97fqyknb1jx3h9xr8d569mhp44xq7qziyxq"))
|
||||
(snippet
|
||||
#~(begin
|
||||
;; Delete files generated by Cython. We used to have a regex that
|
||||
@@ -1057,6 +1001,38 @@ restic's REST backend API. It provides a secure and efficient way to backup
|
||||
data remotely, using the restic backup client and a @code{rest:} URL.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public zbackup
|
||||
(package
|
||||
(name "zbackup")
|
||||
(version "1.4.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/zbackup/zbackup")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "14l1kyxg7pccpax3d6qcpmdycb70kn3fxp1a59w64hqy2493hngl"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;no test
|
||||
(inputs
|
||||
(list lzo libressl protobuf-3.6 xz zlib))
|
||||
(home-page "http://zbackup.org")
|
||||
(synopsis "Versatile deduplicating backup tool")
|
||||
(description
|
||||
"ZBackup is a globally-deduplicating backup tool, based on the
|
||||
ideas found in Rsync. Feed a large @file{.tar} into it, and it will
|
||||
store duplicate regions of it only once, then compress and optionally
|
||||
encrypt the result. Feed another @file{.tar} file, and it will also
|
||||
re-use any data found in any previous backups. This way only new
|
||||
changes are stored, and as long as the files are not very different,
|
||||
the amount of storage required is very low. Any of the backup files
|
||||
stored previously can be read back in full at any time. The program
|
||||
is format-agnostic, so you can feed virtually any files to it.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public dump
|
||||
(package
|
||||
(name "dump")
|
||||
@@ -1265,42 +1241,39 @@ compression parameters used by Gzip.")
|
||||
(define-public borgmatic
|
||||
(package
|
||||
(name "borgmatic")
|
||||
(version "2.0.13")
|
||||
(version "2.0.7")
|
||||
(source
|
||||
(origin
|
||||
;; PyPI archive does not contain NEWS file needed for one test.
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://projects.torsion.org/borgmatic-collective/borgmatic")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "borgmatic" version))
|
||||
(sha256
|
||||
(base32
|
||||
"05w3j4knhsg4w0a0yrz8c7lvz3vp3nf95ddmql9i8mqknjqddm1v"))))
|
||||
(base32 "01l44ny2zyn7x1hhbvhhhwr12jipcjxl3j1cz13kf6c3bdfwms8y"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Set absolute store path to borg.
|
||||
(substitute* "borgmatic/commands/borgmatic.py"
|
||||
(("\\.get\\('local_path', 'borg'\\)")
|
||||
(string-append ".get('local_path', '"
|
||||
(search-input-file inputs "bin/borg")
|
||||
"')")))
|
||||
(substitute* "tests/unit/commands/test_borgmatic.py"
|
||||
(("(module.get_local_path.+ == )'borg'" all start)
|
||||
(string-append start "'"
|
||||
(search-input-file inputs "bin/borg")
|
||||
"'")))))
|
||||
(add-before 'check 'set-path
|
||||
(lambda _
|
||||
;; Tests require the installed executable.
|
||||
(setenv "PATH"
|
||||
(string-append #$output "/bin" ":"
|
||||
(getenv "PATH"))))))))
|
||||
;; XXX: all tests fail with error: AttributeError: module
|
||||
;; '_pytest.runner' has no attribute 'call_runtest_hook'.
|
||||
#:tests? #f
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Set absolute store path to borg.
|
||||
(substitute* "borgmatic/commands/borgmatic.py"
|
||||
(("\\.get\\('local_path', 'borg'\\)")
|
||||
(string-append ".get('local_path', '"
|
||||
(search-input-file inputs "bin/borg")
|
||||
"')")))
|
||||
(substitute* "tests/unit/commands/test_borgmatic.py"
|
||||
(("(module.get_local_path.+ == )'borg'" all start)
|
||||
(string-append start "'"
|
||||
(search-input-file inputs "bin/borg")
|
||||
"'")))))
|
||||
(add-before 'check 'set-path
|
||||
(lambda _
|
||||
;; Tests require the installed executable.
|
||||
(setenv "PATH"
|
||||
(string-append #$output "/bin" ":"
|
||||
(getenv "PATH"))))))))
|
||||
(native-inputs
|
||||
(list python-flexmock
|
||||
python-pytest
|
||||
@@ -1325,7 +1298,7 @@ borgmatic is powered by borg.")
|
||||
(define-public vorta
|
||||
(package
|
||||
(name "vorta")
|
||||
(version "0.11.1")
|
||||
(version "0.10.3")
|
||||
;; The test folder is not included in the PyPI archive.
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
@@ -1335,7 +1308,7 @@ borgmatic is powered by borg.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"16r9ch80i6nfngah634id16fqnmn62ayh60j62zxn5cfivcn3wsq"))))
|
||||
"0b4042a0lpbmwlmbh5559b2x9vr2055w6jjrs7088n45d7rkn4sn"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
||||
@@ -264,12 +264,6 @@ implementation offers several extensions over the standard utility.")
|
||||
",!chained renames"
|
||||
",!Directory"
|
||||
"'"))))
|
||||
;; 'storing sparse files > 8G' fails on powerpc-linux, likely
|
||||
;; due to the small HDD and RAM present on these devices.
|
||||
((target-ppc32?)
|
||||
'(#:make-flags (list (string-append "TESTSUITEFLAGS= -k "
|
||||
"'!tricky time stamps"
|
||||
",!storing sparse files > 8G'"))))
|
||||
;; https://lists.gnu.org/archive/html/bug-tar/2021-10/msg00007.html
|
||||
;; tar-1.34 isn't aware of 64-bit time_t and upstream suggests
|
||||
;; skipping the test for this release on 32-bit systems.
|
||||
|
||||
@@ -435,8 +435,9 @@ setup against another one.")
|
||||
(native-inputs
|
||||
(list coreutils
|
||||
python-lxml
|
||||
python-pynose
|
||||
python-setuptools))
|
||||
python-nose
|
||||
python-setuptools
|
||||
python-wheel))
|
||||
(home-page "https://github.com/sosy-lab/benchexec/")
|
||||
(synopsis "Framework for Reliable Benchmarking")
|
||||
(description
|
||||
|
||||
+1572
-1985
File diff suppressed because it is too large
Load Diff
+1414
-1387
File diff suppressed because it is too large
Load Diff
@@ -73,3 +73,16 @@ simple tools through complex programming languages.
|
||||
|
||||
Bison also provides an implementation of @command{yacc}, as specified by POSIX.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public bison-3.0
|
||||
(package
|
||||
(inherit bison)
|
||||
(version "3.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/bison/bison-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f7kjygrckkx8vas2nm673592jif0a9mw5g8207f6hj6h4pfyp07"))))))
|
||||
|
||||
+15
-46
@@ -23,7 +23,6 @@
|
||||
;;; Copyright © 2025 Tomas Volf <~@wolfsden.cz>
|
||||
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2025 Vinicius Monego <monego@posteo.net>
|
||||
;;; Copyright © 2025 Junker <dk@junkeria.club>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -86,7 +85,6 @@
|
||||
#: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 sqlite)
|
||||
#:use-module (gnu packages ssh)
|
||||
@@ -223,49 +221,6 @@ of the Transmission BitTorrent client, using its HTTP RPC protocol.")
|
||||
(home-page "https://github.com/transmission-remote-gtk/transmission-remote-gtk")
|
||||
(license l:gpl2+)))
|
||||
|
||||
(define-public stig
|
||||
(package
|
||||
(name "stig")
|
||||
(version "0.14.1a0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/rndusr/stig")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0196brcasdyn0mx3h2cqlgrx8x9fyv2n7bmx13nj58vnf3y4c1hg"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;tests require network access
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'loosen-version-restrictions
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("urwidtrees==1.0.3")
|
||||
"urwidtrees>=1.0.3")))))))
|
||||
(propagated-inputs
|
||||
(list python-urwid
|
||||
python-urwidtrees
|
||||
python-aiohttp
|
||||
python-aiohttp-socks
|
||||
python-pyxdg
|
||||
python-blinker
|
||||
python-natsort
|
||||
python-async-timeout
|
||||
python-setproctitle))
|
||||
(inputs (list python))
|
||||
(native-inputs (list python-setuptools))
|
||||
(synopsis "TUI and CLI for the BitTorrent client Transmission")
|
||||
(description
|
||||
"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)))
|
||||
|
||||
(define-public libtorrent
|
||||
(package
|
||||
(name "libtorrent")
|
||||
@@ -527,7 +482,7 @@ and will take advantage of multiple processor cores where possible.")
|
||||
"-E" exclude-regex
|
||||
"-j" jobs
|
||||
"--output-on-failure"))))))))
|
||||
(inputs (list boost-1.83 openssl))
|
||||
(inputs (list boost openssl))
|
||||
(native-inputs
|
||||
(list libfaketime
|
||||
python-wrapper
|
||||
@@ -540,6 +495,20 @@ focusing on efficiency and scalability. It runs on embedded devices as well as
|
||||
desktops.")
|
||||
(license l:bsd-2)))
|
||||
|
||||
(define-public libtorrent-rasterbar-1.2
|
||||
(package
|
||||
(inherit libtorrent-rasterbar)
|
||||
(version "1.2.20")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://github.com/arvidn/libtorrent/"
|
||||
"releases/download/v" version "/"
|
||||
"libtorrent-rasterbar-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1z5rdynzxcm6wb7v48ssfbwjairbjacb8rjix5fn70fw4668xgyc"))))))
|
||||
|
||||
(define-public qbittorrent
|
||||
(package
|
||||
(name "qbittorrent")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user