mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-07-16 04:14:05 +02:00
Compare commits
171 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 721c51ceb3 | |||
| 3c8170f65f | |||
| f927cc48e1 | |||
| 9d40ec0fcd | |||
| 83842db321 | |||
| cc625c9b1e | |||
| 7d21e9a8c4 | |||
| a524b98c67 | |||
| 062185b678 | |||
| 5e05e0f56f | |||
| 3b84bafcf7 | |||
| ebef32e07b | |||
| a49dd5b0ba | |||
| ab5334e4c6 | |||
| 8963701e2f | |||
| 6c65906c9a | |||
| ba4fb0c975 | |||
| 2c6136b6e3 | |||
| 579e3712b0 | |||
| ed906c84c7 | |||
| 4984e737b7 | |||
| 257ca91787 | |||
| f9293be58e | |||
| a7e7f29090 | |||
| 83ddbe0477 | |||
| 6ff0f60dab | |||
| 7a6a8ee7e0 | |||
| b8f4ed8f5d | |||
| 46fbea36ea | |||
| 2d8e56ac16 | |||
| 43d18521e8 | |||
| 3f2b0e12f1 | |||
| 189b1c4f27 | |||
| 6b6fb78724 | |||
| edb9a5b835 | |||
| 08bb73749e | |||
| e7f1e1a78d | |||
| a59afdc92e | |||
| c6b5161e97 | |||
| 01647fc80c | |||
| b77ec228af | |||
| a973d72355 | |||
| 387a9772c2 | |||
| dbc5b51cb9 | |||
| 2f7ab8e373 | |||
| 8e3d4f05df | |||
| d8a7e37b86 | |||
| a9429c8f22 | |||
| f0136b36ae | |||
| 1594aaecd5 | |||
| 95630d2d74 | |||
| e42753fd86 | |||
| 97a5819643 | |||
| 6bf2fa8d1c | |||
| ee2f074d0b | |||
| ca6993af91 | |||
| 892aac72a2 | |||
| 0db2a6e749 | |||
| 5268bd97b1 | |||
| 4c19c3eb06 | |||
| 806824c2c0 | |||
| 2d206cd3dc | |||
| 9223b81071 | |||
| 296398e672 | |||
| 7e2e7a34d1 | |||
| 3a29ec6d32 | |||
| fa5a062572 | |||
| 359636a408 | |||
| 4810804e72 | |||
| 4f407029bf | |||
| cddaf93e22 | |||
| 280097b71f | |||
| 36685334a0 | |||
| 38ec52136f | |||
| c63566c5cf | |||
| 09deb8a570 | |||
| b47d8363f9 | |||
| df8a042de8 | |||
| b3fb3c10b8 | |||
| 774042fede | |||
| 98bd43095c | |||
| 47f87b2e48 | |||
| 11302036f7 | |||
| b2907f5b25 | |||
| 4270d3cf98 | |||
| ec9d9bddc7 | |||
| e6db86b337 | |||
| 5418275398 | |||
| ca9527845f | |||
| 5e9018b389 | |||
| c2777bb64f | |||
| 91aa20e237 | |||
| 006538c527 | |||
| e7cf0ea660 | |||
| d293162615 | |||
| 970b7a949d | |||
| f833399811 | |||
| 94268d5021 | |||
| 83c3332758 | |||
| 5e796bfc22 | |||
| 69f284a35f | |||
| f172118ca4 | |||
| b31ef5638b | |||
| 521e0d32e3 | |||
| 10ee2542e8 | |||
| 0989c839dd | |||
| 65df5a4eb2 | |||
| d5f8bfcd14 | |||
| 6c4c0f16a6 | |||
| 5f628d773b | |||
| 6ac6a7e020 | |||
| 0d41fe4855 | |||
| 7c57821c68 | |||
| bca1157e47 | |||
| 9bf69d38aa | |||
| 3dc776cb71 | |||
| 8313f741a8 | |||
| bbb08831e0 | |||
| 1236a563b9 | |||
| e25ff31663 | |||
| 80194d9e47 | |||
| bc5654af82 | |||
| fab871ae7a | |||
| 94f8ba37cc | |||
| 6ccf8ea81f | |||
| 9f916d1476 | |||
| de86aaa097 | |||
| fcaed5b81e | |||
| 77b98bf187 | |||
| a7bc1c8dd3 | |||
| d3d6e8b31a | |||
| ea5039c765 | |||
| 296599dac5 | |||
| 4acddaa659 | |||
| 97cd9b73a6 | |||
| 65e5f1475d | |||
| a4c40efa05 | |||
| 40e07889d1 | |||
| 9c96dfd43c | |||
| c2f5510730 | |||
| c3417f0754 | |||
| 2d9c06c61d | |||
| d8ff47a75e | |||
| 2f817ab6ab | |||
| 90fb289b69 | |||
| 744bfc61da | |||
| 1f7cf5834c | |||
| cf7c7e2596 | |||
| 9ccb0cf70a | |||
| bbb5243817 | |||
| 7f3da8f882 | |||
| e8176d3152 | |||
| f73758f6c2 | |||
| 7b71cd6dab | |||
| 9bf44750dc | |||
| 0fe0a3a8ee | |||
| 283bc45649 | |||
| 9ca2f94b1b | |||
| 034459cc67 | |||
| e3d61d2082 | |||
| 8a55fde935 | |||
| 9bf0652b08 | |||
| 5d8515b337 | |||
| 385ba2f369 | |||
| fae2fcdbc9 | |||
| 0cccc2f52c | |||
| 22f7d4bce1 | |||
| 426038df3b | |||
| 693d75e859 | |||
| 8419221620 | |||
| 041a12c46b |
+2
-3
@@ -6,9 +6,9 @@
|
||||
(sentence-end-double-space . t)
|
||||
|
||||
;; For use with 'bug-reference-prog-mode'.
|
||||
(bug-reference-url-format . "http://bugs.gnu.org/%s")
|
||||
(bug-reference-bug-regexp
|
||||
. "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)")
|
||||
(bug-reference-url-format . "https://bugs.gnu.org/%s")
|
||||
. "<https?://\\(debbugs\\|bugs\\)\\.gnu\\.org/\\([0-9]+\\)>")
|
||||
|
||||
;; Emacs-Guix
|
||||
(eval . (setq-local guix-directory
|
||||
@@ -121,7 +121,6 @@
|
||||
(eval . (put 'run-with-store 'scheme-indent-function 1))
|
||||
(eval . (put 'run-with-state 'scheme-indent-function 1))
|
||||
(eval . (put 'wrap-program 'scheme-indent-function 1))
|
||||
(eval . (put 'wrap-script 'scheme-indent-function 1))
|
||||
(eval . (put 'with-imported-modules 'scheme-indent-function 1))
|
||||
(eval . (put 'with-extensions 'scheme-indent-function 1))
|
||||
(eval . (put 'with-parameters 'scheme-indent-function 1))
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
/doc/version.texi
|
||||
/doc/version-*.texi
|
||||
/etc/committer.scm
|
||||
/etc/teams.scm
|
||||
/etc/gnu-store.mount
|
||||
/etc/guix-daemon.cil
|
||||
/etc/guix-daemon.conf
|
||||
@@ -158,4 +157,3 @@ tmp
|
||||
/gnu/packages/bootstrap
|
||||
/gnu/packages/aux-files/guile-guile-launcher.o
|
||||
/guile
|
||||
.DS_Store
|
||||
|
||||
@@ -64,8 +64,6 @@
|
||||
(;; primary: "4F71 6F9A 8FA2 C80E F1B5 E1BA 5E35 F231 DE1A C5E0"
|
||||
"B051 5948 F1E7 D3C1 B980 38A0 2646 FA30 BACA 7F08"
|
||||
(name "lfam"))
|
||||
("925C 8EBD F446 931D 1B64 4498 2D58 A112 6E2D FC90"
|
||||
(name "magali"))
|
||||
("CBF5 9755 CBE7 E7EF EF18 3FB1 DD40 9A15 D822 469D"
|
||||
(name "marusich"))
|
||||
("BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
|
||||
|
||||
+12
-44
@@ -97,6 +97,7 @@ MODULES = \
|
||||
guix/discovery.scm \
|
||||
guix/android-repo-download.scm \
|
||||
guix/bzr-download.scm \
|
||||
guix/extracting-download.scm \
|
||||
guix/git-download.scm \
|
||||
guix/hg-download.scm \
|
||||
guix/hash.scm \
|
||||
@@ -129,14 +130,7 @@ MODULES = \
|
||||
guix/cache.scm \
|
||||
guix/cve.scm \
|
||||
guix/workers.scm \
|
||||
guix/least-authority.scm \
|
||||
guix/ipfs.scm \
|
||||
guix/platform.scm \
|
||||
guix/platforms/arm.scm \
|
||||
guix/platforms/mips.scm \
|
||||
guix/platforms/powerpc.scm \
|
||||
guix/platforms/riscv.scm \
|
||||
guix/platforms/x86.scm \
|
||||
guix/build-system.scm \
|
||||
guix/build-system/android-ndk.scm \
|
||||
guix/build-system/ant.scm \
|
||||
@@ -146,11 +140,11 @@ MODULES = \
|
||||
guix/build-system/cmake.scm \
|
||||
guix/build-system/dub.scm \
|
||||
guix/build-system/dune.scm \
|
||||
guix/build-system/elm.scm \
|
||||
guix/build-system/emacs.scm \
|
||||
guix/build-system/font.scm \
|
||||
guix/build-system/go.scm \
|
||||
guix/build-system/meson.scm \
|
||||
guix/build-system/mozilla.scm \
|
||||
guix/build-system/minify.scm \
|
||||
guix/build-system/minetest.scm \
|
||||
guix/build-system/asdf.scm \
|
||||
@@ -171,7 +165,6 @@ MODULES = \
|
||||
guix/build-system/waf.scm \
|
||||
guix/build-system/r.scm \
|
||||
guix/build-system/rakudo.scm \
|
||||
guix/build-system/rebar.scm \
|
||||
guix/build-system/ruby.scm \
|
||||
guix/build-system/scons.scm \
|
||||
guix/build-system/texlive.scm \
|
||||
@@ -199,7 +192,6 @@ MODULES = \
|
||||
guix/build/cmake-build-system.scm \
|
||||
guix/build/dub-build-system.scm \
|
||||
guix/build/dune-build-system.scm \
|
||||
guix/build/elm-build-system.scm \
|
||||
guix/build/emacs-build-system.scm \
|
||||
guix/build/meson-build-system.scm \
|
||||
guix/build/minify-build-system.scm \
|
||||
@@ -226,7 +218,6 @@ MODULES = \
|
||||
guix/build/r-build-system.scm \
|
||||
guix/build/renpy-build-system.scm \
|
||||
guix/build/rakudo-build-system.scm \
|
||||
guix/build/rebar-build-system.scm \
|
||||
guix/build/ruby-build-system.scm \
|
||||
guix/build/scons-build-system.scm \
|
||||
guix/build/texlive-build-system.scm \
|
||||
@@ -266,7 +257,6 @@ MODULES = \
|
||||
guix/import/cran.scm \
|
||||
guix/import/crate.scm \
|
||||
guix/import/egg.scm \
|
||||
guix/import/elm.scm \
|
||||
guix/import/elpa.scm \
|
||||
guix/import/gem.scm \
|
||||
guix/import/git.scm \
|
||||
@@ -275,7 +265,6 @@ MODULES = \
|
||||
guix/import/gnu.scm \
|
||||
guix/import/go.scm \
|
||||
guix/import/hackage.scm \
|
||||
guix/import/hexpm.scm \
|
||||
guix/import/json.scm \
|
||||
guix/import/kde.scm \
|
||||
guix/import/launchpad.scm \
|
||||
@@ -310,24 +299,20 @@ MODULES = \
|
||||
guix/scripts/describe.scm \
|
||||
guix/scripts/style.scm \
|
||||
guix/scripts/system.scm \
|
||||
guix/scripts/system/edit.scm \
|
||||
guix/scripts/system/reconfigure.scm \
|
||||
guix/scripts/system/search.scm \
|
||||
guix/scripts/system/reconfigure.scm \
|
||||
guix/scripts/home.scm \
|
||||
guix/scripts/home/edit.scm \
|
||||
guix/scripts/home/import.scm \
|
||||
guix/scripts/lint.scm \
|
||||
guix/scripts/challenge.scm \
|
||||
guix/scripts/import/crate.scm \
|
||||
guix/scripts/import/cran.scm \
|
||||
guix/scripts/import/egg.scm \
|
||||
guix/scripts/import/elm.scm \
|
||||
guix/scripts/import/elpa.scm \
|
||||
guix/scripts/import/gem.scm \
|
||||
guix/scripts/import/gnu.scm \
|
||||
guix/scripts/import/go.scm \
|
||||
guix/scripts/import/hackage.scm \
|
||||
guix/scripts/import/hexpm.scm \
|
||||
guix/scripts/import/json.scm \
|
||||
guix/scripts/import/minetest.scm \
|
||||
guix/scripts/import/opam.scm \
|
||||
@@ -341,7 +326,6 @@ MODULES = \
|
||||
guix/scripts/size.scm \
|
||||
guix/scripts/git.scm \
|
||||
guix/scripts/git/authenticate.scm \
|
||||
guix/scripts/git/log.scm \
|
||||
guix/scripts/graph.scm \
|
||||
guix/scripts/weather.scm \
|
||||
guix/scripts/container.scm \
|
||||
@@ -396,10 +380,10 @@ AUX_FILES = \
|
||||
gnu/packages/aux-files/chromium/master-preferences.json \
|
||||
gnu/packages/aux-files/emacs/guix-emacs.el \
|
||||
gnu/packages/aux-files/guix.vim \
|
||||
gnu/packages/aux-files/linux-libre/5.18-arm.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.18-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.18-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.18-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.16-arm.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.16-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.16-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.16-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.15-arm.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.15-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.15-i686.conf \
|
||||
@@ -421,6 +405,8 @@ AUX_FILES = \
|
||||
gnu/packages/aux-files/linux-libre/4.14-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/4.9-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/4.9-x86_64.conf \
|
||||
gnu/packages/aux-files/linux-libre/4.4-i686.conf \
|
||||
gnu/packages/aux-files/linux-libre/4.4-x86_64.conf \
|
||||
gnu/packages/aux-files/pack-audit.c \
|
||||
gnu/packages/aux-files/python/sanity-check.py \
|
||||
gnu/packages/aux-files/python/sitecustomize.py \
|
||||
@@ -473,7 +459,6 @@ SCM_TESTS = \
|
||||
tests/boot-parameters.scm \
|
||||
tests/bournish.scm \
|
||||
tests/builders.scm \
|
||||
tests/build-emacs-utils.scm \
|
||||
tests/build-utils.scm \
|
||||
tests/cache.scm \
|
||||
tests/challenge.scm \
|
||||
@@ -489,7 +474,6 @@ SCM_TESTS = \
|
||||
tests/derivations.scm \
|
||||
tests/discovery.scm \
|
||||
tests/egg.scm \
|
||||
tests/elm.scm \
|
||||
tests/elpa.scm \
|
||||
tests/file-systems.scm \
|
||||
tests/gem.scm \
|
||||
@@ -503,7 +487,6 @@ SCM_TESTS = \
|
||||
tests/gremlin.scm \
|
||||
tests/hackage.scm \
|
||||
tests/home-import.scm \
|
||||
tests/home-services.scm \
|
||||
tests/http-client.scm \
|
||||
tests/import-git.scm \
|
||||
tests/import-github.scm \
|
||||
@@ -586,7 +569,6 @@ SH_TESTS = \
|
||||
tests/guix-environment.sh \
|
||||
tests/guix-environment-container.sh \
|
||||
tests/guix-shell.sh \
|
||||
tests/guix-shell-export-manifest.sh \
|
||||
tests/guix-graph.sh \
|
||||
tests/guix-describe.sh \
|
||||
tests/guix-repl.sh \
|
||||
@@ -1087,35 +1069,21 @@ WEBLATE_REPO = https://framagit.org/tyreunom/guix-translations
|
||||
# form.
|
||||
download-po:
|
||||
dir=$$(mktemp -d); \
|
||||
git clone --depth 1 "$(WEBLATE_REPO)" "$$dir/translations" && \
|
||||
git clone --depth 1 "$(WEBLATE_REPO)" "$$dir/translations"; \
|
||||
for domain in po/doc po/guix po/packages; do \
|
||||
for po in "$$dir/translations/$$domain"/*.po; do \
|
||||
translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | cut -f1 -d' '); \
|
||||
untranslated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | rev | cut -f3 -d' ' | rev); \
|
||||
untranslated=$${untranslated:-0}; \
|
||||
total=$$(($$translated+$$untranslated)); \
|
||||
target=$$(basename "$$po"); \
|
||||
target="$$domain/$$target"; \
|
||||
msgfmt -c "$$po"; \
|
||||
if msgfmt -c "$$po" && [ "$$translated" != "0" ] && ([ "$$domain" != "po/doc" ] || [ "$$translated" -gt $$(($$total/10)) ] || [ -f $$target ]); then \
|
||||
if msgfmt -c "$$po" && [ "$$translated" != "0" ]; then \
|
||||
msgfilter --no-wrap -i "$$po" cat > "$$po".tmp; \
|
||||
mv "$$po".tmp "$$target"; \
|
||||
echo "copied $$target."; \
|
||||
else \
|
||||
echo "WARN: $$target ($$translated translated messages ($$((translated/total*100))%)) was not added/updated."; \
|
||||
echo "WARN: $$target ($$translated translated messages) was not added/updated."; \
|
||||
fi; \
|
||||
done; \
|
||||
done; \
|
||||
for po in po/doc/*.po; do \
|
||||
translated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | cut -f1 -d' '); \
|
||||
untranslated=$$(LANG=en_US.UTF-8 msgfmt --statistics "$$po" 2>&1 | rev | cut -f3 -d' ' | rev); \
|
||||
untranslated=$${untranslated:-0}; \
|
||||
total=$$(($$translated + $$untranslated)); \
|
||||
if [ "$$translated" -lt "$$(($$total/20))" ]; then \
|
||||
echo "WARN: $$po was removed because it is below the 5% threshold: $$((translated/total*100))%"; \
|
||||
rm $$po; \
|
||||
fi; \
|
||||
done; \
|
||||
rm -rf "$$dir"
|
||||
.PHONY: download-po
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016-2018, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
|
||||
;;;
|
||||
@@ -78,35 +78,28 @@
|
||||
;; up the evaluation speed as the evaluations can be performed
|
||||
;; concurrently. It also decreases the amount of memory needed per
|
||||
;; evaluation process.
|
||||
;;
|
||||
;; Fork inferior processes upfront before we have created any
|
||||
;; threads.
|
||||
(let ((inferiors (map (lambda _
|
||||
(open-inferior (derivation->output-path derivation)))
|
||||
%cuirass-supported-systems)))
|
||||
(n-par-for-each
|
||||
(min (length %cuirass-supported-systems)
|
||||
(current-processor-count))
|
||||
(lambda (system inferior)
|
||||
(with-store store
|
||||
(let ((channels (map channel-instance->sexp instances)))
|
||||
(inferior-eval '(use-modules (gnu ci)) inferior)
|
||||
(let ((jobs
|
||||
(inferior-eval-with-store
|
||||
inferior store
|
||||
`(lambda (store)
|
||||
(cuirass-jobs store
|
||||
'((subset . all)
|
||||
(systems . ,(list system))
|
||||
(channels . ,channels))))))
|
||||
(file
|
||||
(string-append directory "/jobs-" system ".scm")))
|
||||
(close-inferior inferior)
|
||||
(call-with-output-file file
|
||||
(lambda (port)
|
||||
(write jobs port)))))))
|
||||
%cuirass-supported-systems
|
||||
inferiors)))))))
|
||||
(n-par-for-each
|
||||
(/ (current-processor-count) 2)
|
||||
(lambda (system)
|
||||
(with-store store
|
||||
(let ((inferior
|
||||
(open-inferior (derivation->output-path derivation)))
|
||||
(channels (map channel-instance->sexp instances)))
|
||||
(inferior-eval '(use-modules (gnu ci)) inferior)
|
||||
(let ((jobs
|
||||
(inferior-eval-with-store
|
||||
inferior store
|
||||
`(lambda (store)
|
||||
(cuirass-jobs store
|
||||
'((subset . all)
|
||||
(systems . ,(list system))
|
||||
(channels . ,channels))))))
|
||||
(file
|
||||
(string-append directory "/jobs-" system ".scm")))
|
||||
(call-with-output-file file
|
||||
(lambda (port)
|
||||
(write jobs port)))))))
|
||||
%cuirass-supported-systems))))))
|
||||
(x
|
||||
(format (current-error-port) "Wrong command: ~a~%." x)
|
||||
(exit 1)))
|
||||
|
||||
@@ -274,7 +274,6 @@ AC_CONFIG_FILES([Makefile
|
||||
guix/config.scm])
|
||||
|
||||
AC_CONFIG_FILES([etc/committer.scm], [chmod +x etc/committer.scm])
|
||||
AC_CONFIG_FILES([etc/teams.scm], [chmod +x etc/teams.scm])
|
||||
AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
|
||||
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
|
||||
[chmod +x pre-inst-env])
|
||||
|
||||
+31
-40
@@ -1,7 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -31,7 +30,6 @@
|
||||
(guix gexp)
|
||||
(guix git)
|
||||
(guix git-download)
|
||||
(guix profiles)
|
||||
(guix utils)
|
||||
(git)
|
||||
(gnu packages base)
|
||||
@@ -64,19 +62,11 @@
|
||||
(or (getenv "GUIX_MANUAL")
|
||||
"guix"))
|
||||
|
||||
(define %manual-languages
|
||||
;; Available translations for the 'guix-manual' text domain.
|
||||
'("de" "en" "es" "fr" "ru" "zh_CN"))
|
||||
|
||||
(define %cookbook-languages
|
||||
;; Available translations for the 'guix-cookbook' text domain.
|
||||
'("de" "en" "fr" "sk"))
|
||||
|
||||
(define %languages
|
||||
;; Available translations for the document being built.
|
||||
;; The cookbook is not translated in the same languages as the manual
|
||||
(if (string=? %manual "guix-cookbook")
|
||||
%cookbook-languages
|
||||
%manual-languages))
|
||||
'("de" "en" "fr" "sk")
|
||||
'("de" "en" "es" "fr" "ru" "zh_CN")))
|
||||
|
||||
(define (texinfo-manual-images source)
|
||||
"Return a directory containing all the images used by the user manual, taken
|
||||
@@ -311,9 +301,8 @@ actual file name."
|
||||
(define (html-files directory)
|
||||
;; Return the list of HTML files under DIRECTORY.
|
||||
(map (cut string-append directory "/" <>)
|
||||
(or (scandir #$manual (lambda (file)
|
||||
(string-suffix? ".html" file)))
|
||||
'())))
|
||||
(scandir #$manual (lambda (file)
|
||||
(string-suffix? ".html" file)))))
|
||||
|
||||
(define anchors
|
||||
(sort (concatenate
|
||||
@@ -892,22 +881,14 @@ makeinfo OPTIONS."
|
||||
#:languages languages
|
||||
#:date date))
|
||||
|
||||
(define texinfo-profile
|
||||
(profile
|
||||
(content (packages->manifest
|
||||
;; texi2dvi requires various command line tools.
|
||||
(list coreutils
|
||||
diffutils
|
||||
gawk
|
||||
grep
|
||||
sed
|
||||
tar
|
||||
texinfo
|
||||
texlive-base
|
||||
texlive-bin ;for GUIX_TEXMF
|
||||
texlive-epsf
|
||||
texlive-fonts-ec
|
||||
texlive-tex-texinfo)))))
|
||||
;; FIXME: This union works, except for the table of contents of non-English
|
||||
;; manuals, which contains escape sequences like "^^ca^^fe" instead of
|
||||
;; accented letters.
|
||||
;;
|
||||
;; (define texlive
|
||||
;; (texlive-updmap.cfg (list texlive-tex-texinfo
|
||||
;; texlive-generic-epsf
|
||||
;; texlive-fonts-ec)))
|
||||
|
||||
(define build
|
||||
(with-imported-modules '((guix build utils))
|
||||
@@ -924,12 +905,21 @@ makeinfo OPTIONS."
|
||||
(string-downcase language)))
|
||||
|
||||
;; Install a UTF-8 locale so that 'makeinfo' is at ease.
|
||||
(setenv "GUIX_LOCPATH" #+(file-append glibc-utf8-locales
|
||||
"/lib/locale"))
|
||||
(setenv "GUIX_LOCPATH"
|
||||
#+(file-append glibc-utf8-locales "/lib/locale"))
|
||||
(setenv "LC_ALL" "en_US.utf8")
|
||||
(setenv "PATH" #+(file-append texinfo-profile "/bin"))
|
||||
(setenv "GUIX_TEXMF" #+(file-append texinfo-profile
|
||||
"/share/texmf-dist"))
|
||||
(setenv "PATH"
|
||||
(string-append #+(file-append texlive "/bin") ":"
|
||||
#+(file-append texinfo "/bin") ":"
|
||||
|
||||
;; Below are command-line tools needed by
|
||||
;; 'texi2dvi' and friends.
|
||||
#+(file-append sed "/bin") ":"
|
||||
#+(file-append grep "/bin") ":"
|
||||
#+(file-append coreutils "/bin") ":"
|
||||
#+(file-append gawk "/bin") ":"
|
||||
#+(file-append tar "/bin") ":"
|
||||
#+(file-append diffutils "/bin")))
|
||||
|
||||
(setvbuf (current-output-port) 'line)
|
||||
(setvbuf (current-error-port) 'line)
|
||||
@@ -979,8 +969,7 @@ PDF for language '~a'!~%~%"
|
||||
(computed-file (string-append manual "-pdf-manual") build
|
||||
#:local-build? #f))
|
||||
|
||||
(define* (guix-manual-text-domain source
|
||||
#:optional (languages %manual-languages))
|
||||
(define (guix-manual-text-domain source languages)
|
||||
"Return the PO files for LANGUAGES of the 'guix-manual' text domain taken
|
||||
from SOURCE."
|
||||
(define po-directory
|
||||
@@ -1053,7 +1042,9 @@ must be the Guix top-level source directory, from which PO files are taken."
|
||||
(define exp
|
||||
`(begin
|
||||
(bindtextdomain "guix-manual"
|
||||
#+(guix-manual-text-domain source))
|
||||
#+(guix-manual-text-domain
|
||||
source
|
||||
languages))
|
||||
(bindtextdomain "iso_639-3" ;language names
|
||||
#+(file-append iso-codes
|
||||
"/share/locale"))
|
||||
|
||||
@@ -447,7 +447,6 @@ needed is to review and apply the patch.
|
||||
* Perl Modules:: Little pearls.
|
||||
* Java Packages:: Coffee break.
|
||||
* Rust Crates:: Beware of oxidation.
|
||||
* Elm Packages:: Trees of browser code
|
||||
* Fonts:: Fond of fonts.
|
||||
@end menu
|
||||
|
||||
@@ -899,87 +898,6 @@ developed for a different Operating System, depend on features from the Nightly
|
||||
Rust compiler, or the test suite may have atrophied since it was released.
|
||||
|
||||
|
||||
@node Elm Packages
|
||||
@subsection Elm Packages
|
||||
|
||||
@cindex Elm
|
||||
Elm applications can be named like other software: their names need not
|
||||
mention Elm.
|
||||
|
||||
Packages in the Elm sense (see @code{elm-build-system} under @ref{Build
|
||||
Systems}) are required use names of the format
|
||||
@var{author}@code{/}@var{project}, where both the @var{author} and the
|
||||
@var{project} may contain hyphens internally, and the @var{author} sometimes
|
||||
contains uppercase letters.
|
||||
|
||||
To form the Guix package name from the upstream name, we follow a convention
|
||||
similar to Python packages (@pxref{Python Modules}), adding an @code{elm-}
|
||||
prefix unless the name would already begin with @code{elm-}.
|
||||
|
||||
In many cases we can reconstruct an Elm package's upstream name heuristically,
|
||||
but, since conversion to a Guix-style name involves a loss of information,
|
||||
this is not always possible. Care should be taken to add the
|
||||
@code{'upstream-name} property when necessary so that @samp{guix import elm}
|
||||
will work correctly (@pxref{Invoking guix import}). The most notable scenarios
|
||||
when explicitly specifying the upstream name is necessary are:
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
When the @var{author} is @code{elm} and the @var{project} contains one or more
|
||||
hyphens, as with @code{elm/virtual-dom}; and
|
||||
|
||||
@item
|
||||
When the @var{author} contains hyphens or uppercase letters, as with
|
||||
@code{Elm-Canvas/raster-shapes}---unless the @var{author} is
|
||||
@code{elm-explorations}, which is handled as a special case, so packages like
|
||||
@code{elm-explorations/markdown} do @emph{not} need to use the
|
||||
@code{'upstream-name} property.
|
||||
@end enumerate
|
||||
|
||||
The module @code{(guix build-system elm)} provides the following utilities for
|
||||
working with names and related conventions:
|
||||
|
||||
@deffn {Scheme procedure} elm-package-origin @var{elm-name} @var{version} @
|
||||
@var{hash}
|
||||
Returns a Git origin using the repository naming and tagging regime required
|
||||
for a published Elm package with the upstream name @var{elm-name} at version
|
||||
@var{version} with sha256 checksum @var{hash}.
|
||||
|
||||
For example:
|
||||
@lisp
|
||||
(package
|
||||
(name "elm-html")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(elm-package-origin
|
||||
"elm/html"
|
||||
version
|
||||
(base32 "15k1679ja57vvlpinpv06znmrxy09lbhzfkzdc89i01qa8c4gb4a")))
|
||||
...)
|
||||
@end lisp
|
||||
@end deffn
|
||||
|
||||
@deffn {Scheme procedure} elm->package-name @var{elm-name}
|
||||
Returns the Guix-style package name for an Elm package with upstream name
|
||||
@var{elm-name}.
|
||||
|
||||
Note that there is more than one possible @var{elm-name} for which
|
||||
@code{elm->package-name} will produce a given result.
|
||||
@end deffn
|
||||
|
||||
@deffn {Scheme procedure} guix-package->elm-name @var{package}
|
||||
Given an Elm @var{package}, returns the possibly-inferred upstream name, or
|
||||
@code{#f} the upstream name is not specified via the @code{'upstream-name}
|
||||
property and can not be inferred by @code{infer-elm-package-name}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Scheme procedure} infer-elm-package-name @var{guix-name}
|
||||
Given the @var{guix-name} of an Elm package, returns the inferred upstream
|
||||
name, or @code{#f} if the upstream name can't be inferred. If the result is
|
||||
not @code{#f}, supplying it to @code{elm->package-name} would produce
|
||||
@var{guix-name}.
|
||||
@end deffn
|
||||
|
||||
@node Fonts
|
||||
@subsection Fonts
|
||||
|
||||
@@ -1993,28 +1911,6 @@ Currently, some parts of Guix cannot be translated on Weblate, help wanted!
|
||||
translated.
|
||||
@end itemize
|
||||
|
||||
@subsubheading Conditions for Inclusion
|
||||
|
||||
There are no conditions for adding new translations of the @code{guix} and
|
||||
@code{guix-packages} components, other than they need at least one translated
|
||||
string. New languages will be added to Guix as soon as possible. The
|
||||
files may be removed if they fall out of sync and have no more translated
|
||||
strings.
|
||||
|
||||
Given that the web site is dedicated to new users, we want its translation
|
||||
to be as complete as possible before we include it in the language menu.
|
||||
For a new language to be included, it needs to reach at least 80% completion.
|
||||
When a language is included, it may be removed in the future if it stays
|
||||
out of sync and falls below 60% completion.
|
||||
|
||||
The manual and cookbook are automatically added in the default compilation
|
||||
target. Every time we synchronize translations, developers need to
|
||||
recompile all the translated manuals and cookbooks. This is useless for what
|
||||
is essentially the English manual or cookbook. Therefore, we will only
|
||||
include a new language when it reaches 10% completion in the component.
|
||||
When a language is included, it may be removed in the future if it stays
|
||||
out of sync and falls below 5% completion.
|
||||
|
||||
@subsubheading Translation Infrastructure
|
||||
|
||||
Weblate is backed by a git repository from which it discovers new strings to
|
||||
|
||||
@@ -296,7 +296,7 @@ online}, together with
|
||||
@uref{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/,
|
||||
videos of the lectures by the authors}. The book is available in Texinfo
|
||||
format as the @code{sicp} Guix package. Go ahead, run @code{guix install
|
||||
sicp} and start reading with @code{info sicp} (@pxref{Top,,, sicp, Structure and Interpretation of Computer Programs}).
|
||||
sicp} and start reading with @code{info sicp} (@pxref{,,, sicp, Structure and Interpretation of Computer Programs}).
|
||||
An @uref{https://sarabander.github.io/sicp/, unofficial ebook is also
|
||||
available}.
|
||||
|
||||
@@ -903,7 +903,7 @@ Installed in the store and in the profile, as well as
|
||||
being present at build time.
|
||||
@end table
|
||||
|
||||
@xref{package Reference,,, guix, GNU Guix Reference Manual} for more details.
|
||||
@xref{Package Reference,,, guix, GNU Guix Reference Manual} for more details.
|
||||
|
||||
The distinction between the various inputs is important: if a dependency can be
|
||||
handled as an @emph{input} instead of a @emph{propagated input}, it should be done so, or
|
||||
@@ -2533,9 +2533,8 @@ Let's dive in the set up!
|
||||
@node Basic setup with manifests
|
||||
@subsection Basic setup with manifests
|
||||
|
||||
A Guix profile can be set up @i{via} a @dfn{manifest}. A manifest is a
|
||||
snippet of Scheme code that specifies the set of packages you want to
|
||||
have in your profile; it looks like this:
|
||||
A Guix profile can be set up @emph{via} a so-called @emph{manifest specification} that looks like
|
||||
this:
|
||||
|
||||
@lisp
|
||||
(specifications->manifest
|
||||
@@ -2548,8 +2547,8 @@ have in your profile; it looks like this:
|
||||
"package-N"))
|
||||
@end lisp
|
||||
|
||||
@xref{Writing Manifests,,, guix, GNU Guix Reference Manual}, for
|
||||
more information about the syntax.
|
||||
@pxref{Invoking guix package,,, guix, GNU Guix Reference Manual}, for
|
||||
the syntax details.
|
||||
|
||||
We can create a manifest specification per profile and install them this way:
|
||||
|
||||
|
||||
+277
-1686
File diff suppressed because it is too large
Load Diff
@@ -13,13 +13,12 @@
|
||||
(service home-bash-service-type
|
||||
(home-bash-configuration
|
||||
(guix-defaults? #t)
|
||||
(bash-profile (list (plain-file "bash-profile" "\
|
||||
export HISTFILE=$XDG_CACHE_HOME/.bash_history")))))
|
||||
(bash-profile '("\
|
||||
export HISTFILE=$XDG_CACHE_HOME/.bash_history"))))
|
||||
|
||||
(simple-service 'test-config
|
||||
home-xdg-configuration-files-service-type
|
||||
(list `("test.conf"
|
||||
home-files-service-type
|
||||
(list `("config/test.conf"
|
||||
,(plain-file "tmp-file.txt"
|
||||
"the content of
|
||||
~/.config/test.conf")))))))
|
||||
"the content of ~/.config/test.conf")))))))
|
||||
|
||||
|
||||
+6
-5
@@ -1,9 +1,9 @@
|
||||
# htmlxref.cnf - reference file for free Texinfo manuals on the web.
|
||||
# Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual.
|
||||
|
||||
htmlxrefversion=2022-06-16.15; # UTC
|
||||
htmlxrefversion=2021-09-24.23; # UTC
|
||||
|
||||
# Copyright 2010-2020, 2022 Free Software Foundation, Inc.
|
||||
# Copyright 2010-2020 Free Software Foundation, Inc.
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification,
|
||||
# are permitted in any medium without royalty provided the copyright
|
||||
@@ -291,6 +291,8 @@ gdbm chapter ${GDBM}/html_chapter/
|
||||
gdbm section ${GDBM}/html_section/
|
||||
gdbm node ${GDBM}/html_node/
|
||||
|
||||
# XXX: These are actually pages created by texi2html, so no quite following
|
||||
# the expected naming scheme.
|
||||
geiser chapter http://geiser.nongnu.org/
|
||||
|
||||
gettext mono ${GS}/gettext/manual/gettext.html
|
||||
@@ -412,8 +414,7 @@ guile-gtk node ${GS}/guile-gtk/docs/guile-gtk/
|
||||
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}/guix/manual
|
||||
GUIX = ${GS}/guix/manual
|
||||
guix.de mono ${GUIX}/de/guix.de.html
|
||||
guix.de node ${GUIX}/de/html_node/
|
||||
guix.es mono ${GUIX}/es/guix.es.html
|
||||
@@ -427,7 +428,7 @@ GUIX = ${GUIX_ROOT}/guix/manual
|
||||
guix mono ${GUIX}/en/guix.html
|
||||
guix node ${GUIX}/en/html_node/
|
||||
|
||||
GUIX_COOKBOOK = ${GUIX_ROOT}/cookbook
|
||||
GUIX_COOKBOOK = ${GS}/guix/cookbook
|
||||
guix-cookbook.de mono ${GUIX_COOKBOOK}/de/guix-cookbook.html
|
||||
guix-cookbook.de node ${GUIX_COOKBOOK}/de/html_node/
|
||||
guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.html
|
||||
|
||||
+15
-3
@@ -22,8 +22,8 @@
|
||||
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# If adding a language, update the following variables, and info_TEXINFOS.
|
||||
MANUAL_LANGUAGES = de es fr pt_BR ru zh_CN
|
||||
COOKBOOK_LANGUAGES = de fr ko sk
|
||||
MANUAL_LANGUAGES = de es fa fi fr it ko pt_BR ru sk zh_CN
|
||||
COOKBOOK_LANGUAGES = de es fa fi fr ko pt_BR ru sk uk zh_Hans
|
||||
|
||||
# Arg1: A list of languages codes.
|
||||
# Arg2: The file name stem.
|
||||
@@ -34,15 +34,27 @@ lang_to_texinfo = $(foreach lang,$(1),%D%/$(2).$(lang).texi)
|
||||
info_TEXINFOS = %D%/guix.texi \
|
||||
%D%/guix.de.texi \
|
||||
%D%/guix.es.texi \
|
||||
%D%/guix.fa.texi \
|
||||
%D%/guix.fi.texi \
|
||||
%D%/guix.fr.texi \
|
||||
%D%/guix.it.texi \
|
||||
%D%/guix.ko.texi \
|
||||
%D%/guix.pt_BR.texi \
|
||||
%D%/guix.ru.texi \
|
||||
%D%/guix.sk.texi \
|
||||
%D%/guix.zh_CN.texi \
|
||||
%D%/guix-cookbook.texi \
|
||||
%D%/guix-cookbook.de.texi \
|
||||
%D%/guix-cookbook.es.texi \
|
||||
%D%/guix-cookbook.fa.texi \
|
||||
%D%/guix-cookbook.fi.texi \
|
||||
%D%/guix-cookbook.fr.texi \
|
||||
%D%/guix-cookbook.ko.texi \
|
||||
%D%/guix-cookbook.sk.texi
|
||||
%D%/guix-cookbook.pt_BR.texi \
|
||||
%D%/guix-cookbook.ru.texi \
|
||||
%D%/guix-cookbook.sk.texi \
|
||||
%D%/guix-cookbook.uk.texi \
|
||||
%D%/guix-cookbook.zh_Hans.texi
|
||||
|
||||
%C%_guix_TEXINFOS = \
|
||||
%D%/contributing.texi \
|
||||
|
||||
+90
-109
@@ -6,7 +6,6 @@
|
||||
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
|
||||
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -29,19 +28,19 @@
|
||||
|
||||
;;; Code:
|
||||
|
||||
(use-modules ((sxml xpath) #:prefix xpath:)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-2)
|
||||
(srfi srfi-9)
|
||||
(srfi srfi-11)
|
||||
(srfi srfi-26)
|
||||
(ice-9 format)
|
||||
(ice-9 popen)
|
||||
(ice-9 match)
|
||||
(ice-9 rdelim)
|
||||
(ice-9 regex)
|
||||
(ice-9 textual-ports)
|
||||
(guix gexp))
|
||||
(import (sxml xpath)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-2)
|
||||
(srfi srfi-9)
|
||||
(srfi srfi-11)
|
||||
(srfi srfi-26)
|
||||
(ice-9 format)
|
||||
(ice-9 popen)
|
||||
(ice-9 match)
|
||||
(ice-9 rdelim)
|
||||
(ice-9 regex)
|
||||
(ice-9 textual-ports)
|
||||
(guix gexp))
|
||||
|
||||
(define* (break-string str #:optional (max-line-length 70))
|
||||
"Break the string STR into lines that are no longer than MAX-LINE-LENGTH.
|
||||
@@ -101,16 +100,12 @@ LINE-NO in PORT."
|
||||
(read-line port)
|
||||
(loop (1- i) last-top-level-sexp))))))
|
||||
|
||||
;;; Whether the hunk contains a newly added package (definition), a removed
|
||||
;;; package (removal) or something else (#false).
|
||||
(define hunk-types '(addition removal #false))
|
||||
|
||||
(define-record-type <hunk>
|
||||
(make-hunk file-name
|
||||
old-line-number
|
||||
new-line-number
|
||||
diff-lines
|
||||
type)
|
||||
definition?)
|
||||
hunk?
|
||||
(file-name hunk-file-name)
|
||||
;; Line number before the change
|
||||
@@ -119,8 +114,8 @@ LINE-NO in PORT."
|
||||
(new-line-number hunk-new-line-number)
|
||||
;; The full diff to be used with "git apply --cached"
|
||||
(diff-lines hunk-diff-lines)
|
||||
;; Does this hunk add or remove a package?
|
||||
(type hunk-type)) ;one of 'hunk-types'
|
||||
;; Does this hunk add a definition?
|
||||
(definition? hunk-definition?))
|
||||
|
||||
(define* (hunk->patch hunk #:optional (port (current-output-port)))
|
||||
(let ((file-name (hunk-file-name hunk)))
|
||||
@@ -138,30 +133,25 @@ LINE-NO in PORT."
|
||||
;; new definitions with changes to existing
|
||||
;; definitions.
|
||||
"--unified=1"
|
||||
"--" "gnu")))
|
||||
"gnu")))
|
||||
(define (extract-line-number line-tag)
|
||||
(abs (string->number
|
||||
(car (string-split line-tag #\,)))))
|
||||
(define (read-hunk)
|
||||
(let loop ((lines '())
|
||||
(type #false))
|
||||
(definition? #false))
|
||||
(let ((line (read-line port 'concat)))
|
||||
(cond
|
||||
((eof-object? line)
|
||||
(values (reverse lines) type))
|
||||
(values (reverse lines) definition?))
|
||||
((or (string-prefix? "@@ " line)
|
||||
(string-prefix? "diff --git" line))
|
||||
(unget-string port line)
|
||||
(values (reverse lines) type))
|
||||
(values (reverse lines) definition?))
|
||||
(else
|
||||
(loop (cons line lines)
|
||||
(or type
|
||||
(cond
|
||||
((string-prefix? "+(define" line)
|
||||
'addition)
|
||||
((string-prefix? "-(define" line)
|
||||
'removal)
|
||||
(else #false)))))))))
|
||||
(or definition?
|
||||
(string-prefix? "+(define" line))))))))
|
||||
(define info
|
||||
(let loop ((acc '())
|
||||
(file-name #f))
|
||||
@@ -176,13 +166,13 @@ LINE-NO in PORT."
|
||||
(match (string-split line #\space)
|
||||
((_ old-start new-start . _)
|
||||
(let-values
|
||||
(((diff-lines type) (read-hunk)))
|
||||
(((diff-lines definition?) (read-hunk)))
|
||||
(loop (cons (make-hunk file-name
|
||||
(extract-line-number old-start)
|
||||
(extract-line-number new-start)
|
||||
(cons (string-append line "\n")
|
||||
diff-lines)
|
||||
type) acc)
|
||||
definition?) acc)
|
||||
file-name)))))
|
||||
(else (loop acc file-name))))))
|
||||
(close-pipe port)
|
||||
@@ -224,10 +214,10 @@ corresponding to the top-level definition containing the staged changes."
|
||||
(define* (change-commit-message file-name old new #:optional (port (current-output-port)))
|
||||
"Print ChangeLog commit message for changes between OLD and NEW."
|
||||
(define (get-values expr field)
|
||||
(match ((xpath:sxpath `(// ,field quasiquote *)) expr)
|
||||
(match ((sxpath `(// ,field quasiquote *)) expr)
|
||||
(()
|
||||
;; New-style plain lists
|
||||
(match ((xpath:sxpath `(// ,field list *)) expr)
|
||||
(match ((sxpath `(// ,field list *)) expr)
|
||||
((inner) inner)
|
||||
(_ '())))
|
||||
;; Old-style labelled inputs
|
||||
@@ -244,7 +234,7 @@ corresponding to the top-level definition containing the staged changes."
|
||||
(define variable-name
|
||||
(second old))
|
||||
(define version
|
||||
(and=> ((xpath:sxpath '(// version *any*)) new)
|
||||
(and=> ((sxpath '(// version *any*)) new)
|
||||
first))
|
||||
(format port
|
||||
"gnu: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%"
|
||||
@@ -272,18 +262,10 @@ corresponding to the top-level definition containing the staged changes."
|
||||
(listify added))))))))))
|
||||
'(inputs propagated-inputs native-inputs)))
|
||||
|
||||
(define* (add-commit-message file-name variable-name
|
||||
#:optional (port (current-output-port)))
|
||||
"Print ChangeLog commit message for a change to FILE-NAME adding a
|
||||
definition."
|
||||
(format port "gnu: Add ~a.~%~%* ~a (~a): New variable.~%"
|
||||
variable-name file-name variable-name))
|
||||
|
||||
(define* (remove-commit-message file-name variable-name
|
||||
#:optional (port (current-output-port)))
|
||||
"Print ChangeLog commit message for a change to FILE-NAME removing a
|
||||
definition."
|
||||
(format port "gnu: Remove ~a.~%~%* ~a (~a): Delete variable.~%"
|
||||
(define* (add-commit-message file-name variable-name #:optional (port (current-output-port)))
|
||||
"Print ChangeLog commit message for a change to FILE-NAME adding a definition."
|
||||
(format port
|
||||
"gnu: Add ~a.~%~%* ~a (~a): New variable.~%"
|
||||
variable-name file-name variable-name))
|
||||
|
||||
(define* (custom-commit-message file-name variable-name message changelog
|
||||
@@ -362,67 +344,66 @@ modifying."
|
||||
(()
|
||||
(display "Nothing to be done.\n" (current-error-port)))
|
||||
(hunks
|
||||
(let-values (((definitions changes) (partition hunk-type hunks)))
|
||||
;; Additions/removals.
|
||||
(for-each
|
||||
(lambda (hunk)
|
||||
(and-let* ((define-line (find (cut string-match "(\\+|-)\\(define" <>)
|
||||
(hunk-diff-lines hunk)))
|
||||
(variable-name (and=> (string-tokenize define-line)
|
||||
second))
|
||||
(commit-message-proc (match (hunk-type hunk)
|
||||
('addition add-commit-message)
|
||||
('removal remove-commit-message))))
|
||||
(commit-message-proc (hunk-file-name hunk) variable-name)
|
||||
(let ((port (open-pipe* OPEN_WRITE
|
||||
"git" "apply"
|
||||
"--cached"
|
||||
"--unidiff-zero")))
|
||||
(hunk->patch hunk port)
|
||||
(unless (eqv? 0 (status:exit-val (close-pipe port)))
|
||||
(error "Cannot apply")))
|
||||
(let-values
|
||||
(((definitions changes)
|
||||
(partition hunk-definition? hunks)))
|
||||
|
||||
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
|
||||
(commit-message-proc (hunk-file-name hunk) variable-name port)
|
||||
(usleep %delay)
|
||||
(unless (eqv? 0 (status:exit-val (close-pipe port)))
|
||||
(error "Cannot commit"))))
|
||||
(usleep %delay))
|
||||
definitions))
|
||||
|
||||
;; Changes.
|
||||
(for-each
|
||||
(match-lambda
|
||||
((new old . hunks)
|
||||
(for-each (lambda (hunk)
|
||||
(let ((port (open-pipe* OPEN_WRITE
|
||||
"git" "apply"
|
||||
"--cached"
|
||||
"--unidiff-zero")))
|
||||
(hunk->patch hunk port)
|
||||
(unless (eqv? 0 (status:exit-val (close-pipe port)))
|
||||
;; Additions.
|
||||
(for-each (lambda (hunk)
|
||||
(and-let*
|
||||
((define-line (find (cut string-prefix? "+(define" <>)
|
||||
(hunk-diff-lines hunk)))
|
||||
(variable-name (and=> (string-tokenize define-line) second)))
|
||||
(add-commit-message (hunk-file-name hunk) variable-name)
|
||||
(let ((port (open-pipe* OPEN_WRITE
|
||||
"git" "apply"
|
||||
"--cached"
|
||||
"--unidiff-zero")))
|
||||
(hunk->patch hunk port)
|
||||
(unless (eqv? 0 (status:exit-val (close-pipe port)))
|
||||
(error "Cannot apply")))
|
||||
(usleep %delay))
|
||||
hunks)
|
||||
(define copyright-line
|
||||
(any (lambda (line) (and=> (string-prefix? "+;;; Copyright ©" line)
|
||||
(const line)))
|
||||
(hunk-diff-lines (first hunks))))
|
||||
(cond
|
||||
(copyright-line
|
||||
(add-copyright-line copyright-line))
|
||||
(else
|
||||
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
|
||||
(change-commit-message* (hunk-file-name (first hunks))
|
||||
old new)
|
||||
(change-commit-message* (hunk-file-name (first hunks))
|
||||
old new
|
||||
port)
|
||||
(usleep %delay)
|
||||
(unless (eqv? 0 (status:exit-val (close-pipe port)))
|
||||
(error "Cannot commit")))))))
|
||||
;; XXX: we recompute the hunks here because previous
|
||||
;; insertions lead to offsets.
|
||||
(new+old+hunks (diff-info))))))
|
||||
|
||||
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
|
||||
(add-commit-message (hunk-file-name hunk)
|
||||
variable-name port)
|
||||
(usleep %delay)
|
||||
(unless (eqv? 0 (status:exit-val (close-pipe port)))
|
||||
(error "Cannot commit"))))
|
||||
(usleep %delay))
|
||||
definitions)
|
||||
|
||||
;; Changes.
|
||||
(for-each (match-lambda
|
||||
((new old . hunks)
|
||||
(for-each (lambda (hunk)
|
||||
(let ((port (open-pipe* OPEN_WRITE
|
||||
"git" "apply"
|
||||
"--cached"
|
||||
"--unidiff-zero")))
|
||||
(hunk->patch hunk port)
|
||||
(unless (eqv? 0 (status:exit-val (close-pipe port)))
|
||||
(error "Cannot apply")))
|
||||
(usleep %delay))
|
||||
hunks)
|
||||
(define copyright-line
|
||||
(any (lambda (line) (and=> (string-prefix? "+;;; Copyright ©" line)
|
||||
(const line)))
|
||||
(hunk-diff-lines (first hunks))))
|
||||
(cond
|
||||
(copyright-line
|
||||
(add-copyright-line copyright-line))
|
||||
(else
|
||||
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
|
||||
(change-commit-message* (hunk-file-name (first hunks))
|
||||
old new)
|
||||
(change-commit-message* (hunk-file-name (first hunks))
|
||||
old new
|
||||
port)
|
||||
(usleep %delay)
|
||||
(unless (eqv? 0 (status:exit-val (close-pipe port)))
|
||||
(error "Cannot commit")))))))
|
||||
;; XXX: we recompute the hunks here because previous
|
||||
;; insertions lead to offsets.
|
||||
(new+old+hunks (diff-info)))))))
|
||||
|
||||
(apply main (cdr (command-line)))
|
||||
|
||||
+30
-31
@@ -117,59 +117,58 @@ _guix_is_removing ()
|
||||
$result
|
||||
}
|
||||
|
||||
_guix_is_short_option ()
|
||||
{
|
||||
case "${COMP_WORDS[$COMP_CWORD - 1]}" in
|
||||
--*) false;;
|
||||
-*$1) true ;;
|
||||
*) false ;;
|
||||
esac
|
||||
}
|
||||
|
||||
_guix_is_long_option ()
|
||||
{
|
||||
# Don't handle (non-GNU?) ‘--long-option VALUE’, as Guix doesn't either.
|
||||
case "${COMP_WORDS[$COMP_CWORD]}" in
|
||||
--$1=*) true ;;
|
||||
*) false ;;
|
||||
esac
|
||||
}
|
||||
|
||||
_guix_is_dash_f ()
|
||||
{
|
||||
_guix_is_short_option f ||
|
||||
_guix_is_long_option file ||
|
||||
_guix_is_long_option install-from-file
|
||||
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-f" ] \
|
||||
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
|
||||
--file=*|--install-from-file=*) true;;
|
||||
*) false;;
|
||||
esac }
|
||||
}
|
||||
|
||||
_guix_is_dash_l ()
|
||||
{
|
||||
_guix_is_short_option l ||
|
||||
_guix_is_long_option load
|
||||
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-l" ] \
|
||||
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
|
||||
--load=*) true;;
|
||||
*) false;;
|
||||
esac }
|
||||
}
|
||||
|
||||
_guix_is_dash_L ()
|
||||
{
|
||||
_guix_is_short_option L ||
|
||||
_guix_is_long_option load-path
|
||||
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-L" ] \
|
||||
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
|
||||
--load-path=*) true;;
|
||||
*) false;;
|
||||
esac }
|
||||
}
|
||||
|
||||
_guix_is_dash_m ()
|
||||
{
|
||||
_guix_is_short_option m ||
|
||||
_guix_is_long_option manifest
|
||||
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-m" ] \
|
||||
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
|
||||
--manifest=*) true;;
|
||||
*) false;;
|
||||
esac }
|
||||
}
|
||||
|
||||
_guix_is_dash_C ()
|
||||
{
|
||||
_guix_is_short_option C ||
|
||||
_guix_is_long_option channels
|
||||
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-C" ] \
|
||||
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
|
||||
--channels=*) true;;
|
||||
*) false;;
|
||||
esac }
|
||||
}
|
||||
|
||||
_guix_is_dash_p ()
|
||||
{
|
||||
_guix_is_short_option p ||
|
||||
_guix_is_long_option profile
|
||||
[ "${COMP_WORDS[$COMP_CWORD - 1]}" = "-p" ] \
|
||||
|| { case "${COMP_WORDS[$COMP_CWORD]}" in
|
||||
--profile=*) true;;
|
||||
*) false;;
|
||||
esac }
|
||||
}
|
||||
|
||||
_guix_complete_file ()
|
||||
|
||||
+1
-198
@@ -13,7 +13,7 @@
|
||||
;; Copyright © 2021 Leo Famulari <leo@famulari.name>
|
||||
;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
|
||||
;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
|
||||
;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
|
||||
;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
||||
;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||
;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
|
||||
;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
@@ -25,203 +25,6 @@
|
||||
(channel-news
|
||||
(version 0)
|
||||
|
||||
(entry (commit "2ec7ab2610eb67e26dab52b671eb29e46f64ea0f")
|
||||
(title
|
||||
(en "Linux-libre kernel updated to 5.18")
|
||||
(de "Linux-libre-Kernel wird auf 5.18 aktualisiert"))
|
||||
(body
|
||||
(en "The default version of the linux-libre kernel has been
|
||||
updated to the 5.18 release series.")
|
||||
(de "Der standardmäßig verwendete @code{linux-libre}-Kernel basiert
|
||||
jetzt auf der 5.18-Versionsreihe.")))
|
||||
|
||||
(entry (commit "bdf422176739b473add66eb8cac9fdd8c654f794")
|
||||
(title
|
||||
(en "@option{-L} option of @command{guix refresh} repurposed")
|
||||
(de "Option @option{-L} von @command{guix refresh} wechselt Bedeutung")
|
||||
(fr "Option @option{-L} de @command{guix refresh} réutilisée"))
|
||||
(body
|
||||
(en "The @option{-L} option of @command{guix refresh} has been
|
||||
repurposed: it used to be synonymous with @option{--list-updaters}; it is now
|
||||
synonymous with @option{--load-path} as is the case with most other commands.
|
||||
|
||||
Run @command{info \"(guix) Invoking guix refresh\"} for more info.")
|
||||
(de "Die Befehlszeilenoption @option{-L} von @command{guix refresh} hat
|
||||
einen anderen Zweck bekommen: Früher war sie gleichbedeutend mit
|
||||
@option{--list-updaters}; jetzt ist sie gleichbedeutend mit
|
||||
@option{--load-path}, wie bereits beim Großteil der anderen Befehle.
|
||||
|
||||
Führen Sie @command{info \"(guix.de) Aufruf von guix refresh\"} aus, wenn Sie
|
||||
mehr wissen möchten.")
|
||||
(fr "L'option @option{-L} de @command{guix refresh} a changé de
|
||||
signification : elle était auparavant synonyme de @option{--list-updaters} ;
|
||||
elle est maintenant synonyme de @option{--load-path} comme c'est le cas pour
|
||||
la plupart des autres commandes.
|
||||
|
||||
Lancer @command{info \"(guix.fr) Invoquer guix refresh\"} pour plus
|
||||
d'informations.")))
|
||||
|
||||
(entry (commit "35c1edb20ad07250728d3bdcd0296bd0cedaf6bb")
|
||||
(title
|
||||
(en "New @command{edit} sub-commands for services")
|
||||
(de "Neue @command{edit}-Unterbefehle für Dienste")
|
||||
(fr "Nouvelles commandes @command{edit} pour les services")
|
||||
(nl "Nieuwe deelopdracht @command{edit} voor diensten"))
|
||||
(body
|
||||
(en "The new @command{guix system edit} and @command{guix home edit} commands
|
||||
allow you to view or edit service types defined for Guix System or Guix Home.
|
||||
For example, here is how you would open the definition of the OpenSSH system
|
||||
service:
|
||||
|
||||
@example
|
||||
guix system edit openssh
|
||||
@end example
|
||||
|
||||
Run @command{info \"(guix) Invoking guix system\"} or @command{info \"(guix)
|
||||
Invoking guix home\"} for more info.")
|
||||
(de "Mit den neuen Befehlen @command{guix system edit} und
|
||||
@command{guix home edit} können Sie Diensttypen für Guix System oder Guix Home
|
||||
betrachten und bearbeiten. Zum Beispiel würden Sie die Definition des
|
||||
OpenSSH-Systemdienstes wie folgt öffnen:
|
||||
|
||||
@example
|
||||
guix system edit openssh
|
||||
@end example
|
||||
|
||||
Führen Sie @command{info \"(guix.de) Aufruf von guix system\"} oder
|
||||
@command{info \"(guix.de) Aufruf von guix home\"} aus, um mehr zu erfahren.")
|
||||
(fr "Les nouvelles commandes @command{guix system edit} et
|
||||
@command{guix home edit} permettent de visualiser ou d'éditer les types de
|
||||
services définis pour Guix System ou Guix Home. Par exemple, voici comment
|
||||
ouvrir la définition du service système OpenSSH :
|
||||
|
||||
@example
|
||||
guix system edit openssh
|
||||
@end example
|
||||
|
||||
Lancer @command{info \"(guix.fr) Invoquer guix system\"} ou @command{info
|
||||
\"(guix.fr) Invoquer guix home\"} pour plus d'informations.")
|
||||
;; TODO: pas verwijzingen naar de handleiding aan wanneer ze vertaald is
|
||||
(nl "Met de nieuwe bewerkingen @command{guix system edit} en
|
||||
@command{guix home edit} kan je dienstsoorten van Guix System en Guix
|
||||
Home bekijken en bewerken. Je kan bijvoorbeeld de definitie van de
|
||||
systeemdienst OpenSSH als volgt openen:
|
||||
|
||||
@example
|
||||
guix system edit openssh
|
||||
@end example
|
||||
|
||||
Voer @command{info \"(guix) Invoking guix system\"} of @command{info
|
||||
\"(guix)Invoking guix home\"} uit voor meer informatie.")))
|
||||
|
||||
(entry (commit "903c82583e1cec4c9ff09d5895c5cc646c37b661")
|
||||
(title
|
||||
(en "New @command{guix import elm} command")
|
||||
(de "Neuer Befehl @command{guix import elm}")
|
||||
(fr "Nouvelle commande @command{guix import elm}"))
|
||||
(body
|
||||
(en "The new @command{guix import elm} command allows packagers to
|
||||
generate a package definition or given the name of a package for Elm, a
|
||||
functional programming language for the Web:
|
||||
|
||||
@example
|
||||
guix import elm elm/bytes
|
||||
@end example
|
||||
|
||||
Run @command{info \"(guix) Invoking guix import\"} for more info.
|
||||
|
||||
This comes with a new build system for Elm packages---run @command{info
|
||||
\"(guix) Build Systems\"} for details.")
|
||||
(de "Mit dem neuen Befehl @command{guix import elm} können Paketautoren
|
||||
eine Paketdefinition anhand des Namens eines Pakets für Elm, einer funktionalen
|
||||
Programmiersprache für das Web, erzeugen:
|
||||
|
||||
@example
|
||||
guix import elm elm/bytes
|
||||
@end example
|
||||
|
||||
Führen Sie @command{info \"(guix.de) Aufruf von guix import\"} aus, um mehr
|
||||
Informationen zu bekommen.
|
||||
|
||||
Dazu kommt ein neues Erstellungssystem für Elm-Pakete. Führen Sie
|
||||
@command{info \"(guix.de) Erstellungssysteme\"} aus, um mehr zu erfahren.")
|
||||
(fr "La nouvelle commande @command{guix import elm} permet de générer
|
||||
une définition de paquet reposant sur Elm, un langage de programmation
|
||||
fonctionnelle pour le Web:
|
||||
|
||||
@example
|
||||
guix import elm elm/bytes
|
||||
@end example
|
||||
|
||||
Lancer @command{info \"(guix.fr) Invoquer guix import\"} pour plus
|
||||
d'informations.
|
||||
|
||||
Cela vient avec un nouveau système de construction pour paquets Elm---lancer
|
||||
@command{info \"(guix.fr) Systèmes de construction\"} pour plus de détails.")))
|
||||
|
||||
(entry (commit "b6b2de2a0d52530bc1ee128c61580bed662ee15c")
|
||||
(title (en "Linux-libre kernel updated to 5.17")
|
||||
(de "Linux-libre-Kernel wird auf 5.17 aktualisiert"))
|
||||
(body
|
||||
(en "The default version of the linux-libre kernel has been
|
||||
updated to the 5.17 release series.")
|
||||
(de "Der standardmäßig verwendete @code{linux-libre}-Kernel basiert
|
||||
jetzt auf der 5.17-Versionsreihe.")))
|
||||
|
||||
(entry (commit "c42b7baf13c7633b4512e94da7445299c57b247d")
|
||||
(title
|
||||
(en "New @option{--export-manifest} option for @command{guix shell}")
|
||||
(de "Neue Option @option{--export-manifest} für @command{guix shell}")
|
||||
(fr "Nouvelle option @option{--export-manifest} de @command{guix shell}"))
|
||||
(body
|
||||
(en "If you use @command{guix shell}, you might wonder how to
|
||||
``translate'' a command line into a manifest file that you can keep under
|
||||
version control, share with others, and pass to @command{guix shell -m} and in
|
||||
fact to most @command{guix} commands. This is what the new
|
||||
@option{--export-manifest} option does.
|
||||
|
||||
For example, the command below prints a manifest for the given packages:
|
||||
|
||||
@lisp
|
||||
guix shell --export-manifest \\
|
||||
-D guile git emacs emacs-geiser emacs-geiser-guile
|
||||
@end lisp
|
||||
|
||||
Run @code{info \"(guix) Invoking guix shell\"} for more information.")
|
||||
(de "Wenn Sie @command{guix shell} benutzen, haben Sie sich vielleicht
|
||||
einmal gefragt, wie Sie eine Befehlszeile in eine Manifest-Datei „übersetzen“
|
||||
können, die Sie unter Versionskontrolle stellen können, mit anderen teilen
|
||||
können und an @command{guix shell -m} oder tatsächlich die meisten anderen
|
||||
@command{guix}-Befehle übergeben können. Die Antwort ist die neue
|
||||
Befehlszeilenoption @option{--export-manifest}.
|
||||
|
||||
Zum Beispiel gibt der folgende Befehl ein Manifest mit den genannten Paketen
|
||||
aus:
|
||||
|
||||
@lisp
|
||||
guix shell --export-manifest \\
|
||||
-D guile git emacs emacs-geiser emacs-geiser-guile
|
||||
@end lisp
|
||||
|
||||
Führen Sie @command{info \"(guix.de) Aufruf von guix shell\"} aus, um mehr
|
||||
zu erfahren.")
|
||||
(fr "Si tu utilises @command{guix shell}, tu t'es peut-être déjà
|
||||
demandé comment « traduire » une ligne de commande en un fichier manifeste que
|
||||
tu puisse garder en gestion de version, partager et passer à @command{guix
|
||||
shell -m} et autres commandes @command{guix}. C'est ce que la nouvelle option
|
||||
@option{--export-manifest} fait.
|
||||
|
||||
Par exemple, la commande ci-dessous affiche un manifeste pour les paquets
|
||||
donnés :
|
||||
|
||||
@lisp
|
||||
guix shell --export-manifest \\
|
||||
-D guile git emacs emacs-geiser emacs-geiser-guile
|
||||
@end lisp
|
||||
|
||||
Lancer @code{info \"(guix.fr) Invoquer guix shell\"} pour plus
|
||||
d'informations.")))
|
||||
|
||||
(entry (commit "094a2cfbe45c104d0da30ff9d975d052ca0c118c")
|
||||
(title
|
||||
(en "New @command{guix home container} command")
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
(use-modules (gnu packages)
|
||||
(guix packages)
|
||||
(guix profiles)
|
||||
((guix platform) #:select (targets))
|
||||
((gnu ci) #:select (%cross-targets))
|
||||
((gnu services xorg) #:select (%default-xorg-modules))
|
||||
(guix utils)
|
||||
(srfi srfi-1)
|
||||
@@ -144,7 +144,7 @@ TARGET."
|
||||
%packages-to-cross-build)))
|
||||
;; XXX: Important bits like libsigsegv and libffi don't support
|
||||
;; RISCV at the moment, so don't require RISCV support.
|
||||
(delete "riscv64-linux-gnu" (targets)))))
|
||||
(delete "riscv64-linux-gnu" %cross-targets))))
|
||||
|
||||
(define %cross-bootstrap-manifest
|
||||
(manifest
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- mode: snippet -*-
|
||||
# name: guix-commit-message-remove-package
|
||||
# key: remove
|
||||
# condition: git-commit-mode
|
||||
# --
|
||||
gnu: Remove ${1:`(with-temp-buffer
|
||||
(magit-git-wash #'magit-diff-wash-diffs
|
||||
"diff" "--staged")
|
||||
(goto-char (point-min))
|
||||
(when (re-search-forward "\\-(define-public \\(\\S-+\\)" nil 'noerror)
|
||||
(match-string-no-properties 1)))`}.
|
||||
|
||||
* `(car (magit-staged-files))` ($1): Delete variable.
|
||||
+9
-30
@@ -18,8 +18,6 @@
|
||||
|
||||
(use-modules (gnu tests)
|
||||
(gnu packages package-management)
|
||||
(guix monads)
|
||||
(guix store)
|
||||
((gnu ci) #:select (channel-source->package))
|
||||
((guix git-download) #:select (git-predicate))
|
||||
((guix utils) #:select (current-source-directory))
|
||||
@@ -43,21 +41,6 @@ determined."
|
||||
(repository-close! repository))
|
||||
#f))))
|
||||
|
||||
(define-syntax mparameterize
|
||||
(syntax-rules ()
|
||||
"This form implements dynamic scoping, similar to 'parameterize', but in a
|
||||
monadic context."
|
||||
((_ monad ((parameter value) rest ...) body ...)
|
||||
(let ((old-value (parameter)))
|
||||
(mbegin monad
|
||||
;; XXX: Non-local exits are not correctly handled.
|
||||
(return (parameter value))
|
||||
(mlet monad ((result (mparameterize monad (rest ...) body ...)))
|
||||
(parameter old-value)
|
||||
(return result)))))
|
||||
((_ monad () body ...)
|
||||
(mbegin monad body ...))))
|
||||
|
||||
(define (tests-for-current-guix source commit)
|
||||
"Return a list of tests for perform, using Guix built from SOURCE, a channel
|
||||
instance."
|
||||
@@ -65,19 +48,15 @@ instance."
|
||||
;; of tests to run in the usual way:
|
||||
;;
|
||||
;; make check-system TESTS=installed-os
|
||||
(let ((guix (channel-source->package source #:commit commit)))
|
||||
(map (lambda (test)
|
||||
(system-test
|
||||
(inherit test)
|
||||
(value (mparameterize %store-monad ((current-guix-package guix))
|
||||
(system-test-value test)))))
|
||||
(match (getenv "TESTS")
|
||||
(#f
|
||||
(all-system-tests))
|
||||
((= string-tokenize (tests ...))
|
||||
(filter (lambda (test)
|
||||
(member (system-test-name test) tests))
|
||||
(all-system-tests)))))))
|
||||
(parameterize ((current-guix-package
|
||||
(channel-source->package source #:commit commit)))
|
||||
(match (getenv "TESTS")
|
||||
(#f
|
||||
(all-system-tests))
|
||||
((= string-tokenize (tests ...))
|
||||
(filter (lambda (test)
|
||||
(member (system-test-name test) tests))
|
||||
(all-system-tests))))))
|
||||
|
||||
(define (system-test->manifest-entry test)
|
||||
"Return a manifest entry for TEST, a system test."
|
||||
|
||||
@@ -1,264 +0,0 @@
|
||||
#!@GUILE@ \
|
||||
--no-auto-compile -s
|
||||
!#
|
||||
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This code defines development teams and team members.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(use-modules (srfi srfi-1)
|
||||
(srfi srfi-9)
|
||||
(ice-9 format)
|
||||
(ice-9 match)
|
||||
(guix ui))
|
||||
|
||||
(define-record-type <team>
|
||||
(make-team id name description members)
|
||||
team?
|
||||
(id team-id)
|
||||
(name team-name)
|
||||
(description team-description)
|
||||
(members team-members set-team-members!))
|
||||
|
||||
(define-record-type <person>
|
||||
(make-person name email)
|
||||
person?
|
||||
(name person-name)
|
||||
(email person-email))
|
||||
|
||||
(define* (person name #:optional email)
|
||||
(make-person name email))
|
||||
|
||||
(define* (team id #:key name description (members '()))
|
||||
(make-team id
|
||||
(or name (symbol->string id))
|
||||
description
|
||||
members))
|
||||
|
||||
(define %teams
|
||||
(make-hash-table))
|
||||
|
||||
(define-syntax define-team
|
||||
(lambda (x)
|
||||
(syntax-case x ()
|
||||
((_ id value)
|
||||
#`(begin
|
||||
(define-public id value)
|
||||
(hash-set! %teams 'id id))))))
|
||||
|
||||
(define-syntax-rule (define-member person teams ...)
|
||||
(let ((p person))
|
||||
(for-each (lambda (team-id)
|
||||
(let ((team
|
||||
(hash-ref %teams team-id
|
||||
(lambda ()
|
||||
(error (format #false
|
||||
"Unknown team ~a for ~a~%"
|
||||
team-id p))))))
|
||||
(set-team-members!
|
||||
team (cons p (team-members team)))))
|
||||
(quote (teams ...)))))
|
||||
|
||||
|
||||
(define-team python
|
||||
(team 'python
|
||||
#:name "Python team"
|
||||
#:description
|
||||
"Python, Python packages, the \"pypi\" importer, and the python-build-system."))
|
||||
|
||||
(define-team haskell
|
||||
(team 'haskell
|
||||
#:name "Haskell team"
|
||||
#:description
|
||||
"GHC, Hugs, Haskell packages, the \"hackage\" and \"stackage\" importers, and
|
||||
the haskell-build-system."))
|
||||
|
||||
(define-team r
|
||||
(team 'r
|
||||
#:name "R team"
|
||||
#:description
|
||||
"The R language, CRAN and Bioconductor repositories, the \"cran\" importer,
|
||||
and the r-build-system."))
|
||||
|
||||
(define-team julia
|
||||
(team 'julia
|
||||
#:name "Julia team"
|
||||
#:description
|
||||
"The Julia language, Julia packages, and the julia-build-system."))
|
||||
|
||||
(define-team ocaml
|
||||
(team 'ocaml
|
||||
#:name "OCaml and Dune team"
|
||||
#:description
|
||||
"The OCaml language, the Dune build system, OCaml packages, the \"opam\"
|
||||
importer, and the ocaml-build-system."))
|
||||
|
||||
(define-team java
|
||||
(team 'java
|
||||
#:name "Java and Maven team"
|
||||
#:description
|
||||
"The JDK and JRE, the Maven build system, Java packages, the ant-build-system,
|
||||
and the maven-build-system."))
|
||||
|
||||
(define-team science
|
||||
(team 'science
|
||||
#:name "Science team"))
|
||||
|
||||
(define-team emacs
|
||||
(team 'emacs
|
||||
#:name "Emacs team"))
|
||||
|
||||
(define-team lisp
|
||||
(team 'lisp
|
||||
#:name "Lisp team"))
|
||||
|
||||
(define-team ruby
|
||||
(team 'ruby
|
||||
#:name "Ruby team"))
|
||||
|
||||
(define-team go
|
||||
(team 'go
|
||||
#:name "Go team"))
|
||||
|
||||
(define-team embedded-bootstrap
|
||||
(team 'embedded-bootstrap
|
||||
#:name "Embedded / Bootstrap"))
|
||||
|
||||
(define-team rust
|
||||
(team 'rust
|
||||
#:name "Rust"))
|
||||
|
||||
(define-team kernel
|
||||
(team 'kernel
|
||||
#:name "Linux-libre kernel team"))
|
||||
|
||||
(define-team core
|
||||
(team 'core
|
||||
#:name "Core / Tools / Internals"))
|
||||
|
||||
(define-team games
|
||||
(team 'games
|
||||
#:name "Games and Videos"))
|
||||
|
||||
(define-team translations
|
||||
(team 'translations
|
||||
#:name "Translations"))
|
||||
|
||||
(define-team installer
|
||||
(team 'installer
|
||||
#:name "Installer script and system installer"))
|
||||
|
||||
(define-team home
|
||||
(team 'home
|
||||
#:name "Team for \"guix home\""))
|
||||
|
||||
(define-team mentors
|
||||
(team 'mentors
|
||||
#:name "Mentors"
|
||||
#:description
|
||||
"A group of mentors who chaperone contributions by newcomers."))
|
||||
|
||||
|
||||
(define-member (person "Ludovic Courtès"
|
||||
"ludo@gnu.org")
|
||||
core home embedded-bootstrap mentors)
|
||||
|
||||
(define-member (person "Andreas Enge"
|
||||
"andreas@enge.fr")
|
||||
science)
|
||||
|
||||
(define-member (person "Liliana Marie Prikler"
|
||||
"liliana.prikler@gmail.com")
|
||||
emacs games)
|
||||
|
||||
(define-member (person "Ricardo Wurmus"
|
||||
"rekado@elephly.net")
|
||||
r core mentors)
|
||||
|
||||
|
||||
(define (find-team name)
|
||||
(or (hash-ref %teams (string->symbol name))
|
||||
(error (format #false
|
||||
"no such team: ~a~%" name))))
|
||||
|
||||
(define (cc . teams)
|
||||
"Return arguments for `git send-email' to notify the members of the given
|
||||
TEAMS when a patch is received by Debbugs."
|
||||
(format #true
|
||||
"~{--add-header=\"X-Debbugs-Cc: ~a\"~^ ~}"
|
||||
(map person-email
|
||||
(delete-duplicates (append-map team-members teams) equal?))))
|
||||
|
||||
(define* (list-members team #:optional port (prefix ""))
|
||||
"Print the members of the given TEAM."
|
||||
(define port* (or port (current-output-port)))
|
||||
(for-each
|
||||
(lambda (member)
|
||||
(format port*
|
||||
"~a~a <~a>~%"
|
||||
prefix
|
||||
(person-name member)
|
||||
(person-email member)))
|
||||
(team-members team)))
|
||||
|
||||
(define (list-teams)
|
||||
"Print all teams and their members."
|
||||
(define port* (current-output-port))
|
||||
(define width* (%text-width))
|
||||
(hash-for-each
|
||||
(lambda (key team)
|
||||
(format port*
|
||||
"\
|
||||
id: ~a
|
||||
name: ~a
|
||||
description: ~a
|
||||
members:
|
||||
"
|
||||
(team-id team)
|
||||
(team-name team)
|
||||
(or (and=> (team-description team)
|
||||
(lambda (text)
|
||||
(string->recutils
|
||||
(fill-paragraph text width*
|
||||
(string-length "description: ")))))
|
||||
"<none>"))
|
||||
(list-members team port* "+ ")
|
||||
(newline))
|
||||
%teams))
|
||||
|
||||
(define (main . args)
|
||||
(match args
|
||||
(("cc" . team-names)
|
||||
(apply cc (map find-team team-names)))
|
||||
(("list-teams" . args)
|
||||
(list-teams))
|
||||
(("list-members" . team-names)
|
||||
(for-each
|
||||
(lambda (team-name)
|
||||
(list-members (find-team team-name)))
|
||||
team-names))
|
||||
(anything
|
||||
(format (current-error-port)
|
||||
"Usage: etc/teams.scm <command> [<args>]~%"))))
|
||||
|
||||
(apply main (cdr (command-line)))
|
||||
@@ -7,8 +7,6 @@
|
||||
;;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
|
||||
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de>
|
||||
;;; Copyright © 2022 Karl Hallsby <karl@hallsby.com>
|
||||
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -52,13 +50,10 @@
|
||||
grub-theme-color-highlight
|
||||
grub-theme-gfxmode
|
||||
|
||||
install-grub-efi-removable
|
||||
install-grub-efi-netboot
|
||||
|
||||
grub-bootloader
|
||||
grub-efi-bootloader
|
||||
grub-efi-removable-bootloader
|
||||
grub-efi32-bootloader
|
||||
grub-efi-netboot-bootloader
|
||||
grub-mkrescue-bootloader
|
||||
grub-minimal-bootloader
|
||||
@@ -613,54 +608,6 @@ fi~%"))))
|
||||
"--bootloader-id=Guix"
|
||||
"--efi-directory" target-esp)))))
|
||||
|
||||
(define install-grub-efi-removable
|
||||
#~(lambda (bootloader efi-dir mount-point)
|
||||
;; NOTE: mount-point is /mnt in guix system init /etc/config.scm /mnt/point
|
||||
;; NOTE: efi-dir comes from target list of booloader configuration
|
||||
;; There is nothing useful to do when called in the context of a disk
|
||||
;; image generation.
|
||||
(when efi-dir
|
||||
;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the
|
||||
;; system whose root is mounted at MOUNT-POINT.
|
||||
(let ((grub-install (string-append bootloader "/sbin/grub-install"))
|
||||
(install-dir (string-append mount-point "/boot"))
|
||||
;; When installing Guix, it's common to mount EFI-DIR below
|
||||
;; MOUNT-POINT rather than /boot/efi on the live image.
|
||||
(target-esp (if (file-exists? (string-append mount-point efi-dir))
|
||||
(string-append mount-point efi-dir)
|
||||
efi-dir)))
|
||||
;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
|
||||
;; root partition.
|
||||
(setenv "GRUB_ENABLE_CRYPTODISK" "y")
|
||||
(invoke/quiet grub-install "--boot-directory" install-dir
|
||||
"--removable"
|
||||
;; "--no-nvram"
|
||||
"--bootloader-id=Guix"
|
||||
"--efi-directory" target-esp)))))
|
||||
|
||||
(define install-grub-efi32
|
||||
#~(lambda (bootloader efi-dir mount-point)
|
||||
;; There is nothing useful to do when called in the context of a disk
|
||||
;; image generation.
|
||||
(when efi-dir
|
||||
;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the
|
||||
;; system whose root is mounted at MOUNT-POINT.
|
||||
(let ((grub-install (string-append bootloader "/sbin/grub-install"))
|
||||
(install-dir (string-append mount-point "/boot"))
|
||||
;; When installing Guix, it's common to mount EFI-DIR below
|
||||
;; MOUNT-POINT rather than /boot/efi on the live image.
|
||||
(target-esp (if (file-exists? (string-append mount-point efi-dir))
|
||||
(string-append mount-point efi-dir)
|
||||
efi-dir)))
|
||||
;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or
|
||||
;; root partition.
|
||||
(setenv "GRUB_ENABLE_CRYPTODISK" "y")
|
||||
(invoke/quiet grub-install "--boot-directory" install-dir
|
||||
"--bootloader-id=Guix"
|
||||
(cond ((target-x86?) "--target=i386-efi")
|
||||
((target-arm?) "--target=arm-efi"))
|
||||
"--efi-directory" target-esp)))))
|
||||
|
||||
(define (install-grub-efi-netboot subdir)
|
||||
"Define a grub-efi-netboot bootloader installer for installation in SUBDIR,
|
||||
which is usually efi/Guix or efi/boot."
|
||||
@@ -787,19 +734,6 @@ considered for security aspects."
|
||||
(name 'grub-efi)
|
||||
(package grub-efi)))
|
||||
|
||||
(define grub-efi-removable-bootloader
|
||||
(bootloader
|
||||
(inherit grub-efi-bootloader)
|
||||
(name 'grub-efi-removable-bootloader)
|
||||
(installer install-grub-efi-removable)))
|
||||
|
||||
(define grub-efi32-bootloader
|
||||
(bootloader
|
||||
(inherit grub-efi-bootloader)
|
||||
(installer install-grub-efi32)
|
||||
(name 'grub-efi32)
|
||||
(package grub-efi32)))
|
||||
|
||||
(define grub-efi-netboot-bootloader
|
||||
(bootloader
|
||||
(inherit grub-efi-bootloader)
|
||||
|
||||
+13
-24
@@ -1,8 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;; Copyright © 2022 Timothy Sample <samplet@ngyro.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -56,12 +54,8 @@
|
||||
;;; EFI bootloader.
|
||||
;;;
|
||||
|
||||
(define* (install-efi grub grub-config esp #:key targets)
|
||||
"Write a self-contained GRUB EFI loader to the mounted ESP using
|
||||
GRUB-CONFIG.
|
||||
|
||||
If TARGETS is set, use its car as the GRUB image format and its cdr as
|
||||
the output filename. Otherwise, use defaults for the host platform."
|
||||
(define (install-efi grub grub-config esp)
|
||||
"Write a self-contained GRUB EFI loader to the mounted ESP using GRUB-CONFIG."
|
||||
(let* ((system %host-type)
|
||||
;; Hard code the output location to a well-known path recognized by
|
||||
;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour":
|
||||
@@ -69,15 +63,14 @@ the output filename. Otherwise, use defaults for the host platform."
|
||||
(grub-mkstandalone (string-append grub "/bin/grub-mkstandalone"))
|
||||
(efi-directory (string-append esp "/EFI/BOOT"))
|
||||
;; Map grub target names to boot file names.
|
||||
(efi-targets (or targets
|
||||
(cond ((string-prefix? "x86_64" system)
|
||||
'("x86_64-efi" . "BOOTX64.EFI"))
|
||||
((string-prefix? "i686" system)
|
||||
'("i386-efi" . "BOOTIA32.EFI"))
|
||||
((string-prefix? "armhf" system)
|
||||
'("arm-efi" . "BOOTARM.EFI"))
|
||||
((string-prefix? "aarch64" system)
|
||||
'("arm64-efi" . "BOOTAA64.EFI"))))))
|
||||
(efi-targets (cond ((string-prefix? "x86_64" system)
|
||||
'("x86_64-efi" . "BOOTX64.EFI"))
|
||||
((string-prefix? "i686" system)
|
||||
'("i386-efi" . "BOOTIA32.EFI"))
|
||||
((string-prefix? "armhf" system)
|
||||
'("arm-efi" . "BOOTARM.EFI"))
|
||||
((string-prefix? "aarch64" system)
|
||||
'("arm64-efi" . "BOOTAA64.EFI")))))
|
||||
;; grub-mkstandalone requires a TMPDIR to prepare the firmware image.
|
||||
(setenv "TMPDIR" esp)
|
||||
|
||||
@@ -88,12 +81,9 @@ the output filename. Otherwise, use defaults for the host platform."
|
||||
;; Graft the configuration file onto the image.
|
||||
(string-append "boot/grub/grub.cfg=" grub-config))))
|
||||
|
||||
(define* (install-efi-loader grub-efi esp #:key targets)
|
||||
(define (install-efi-loader grub-efi esp)
|
||||
"Install in ESP directory the given GRUB-EFI bootloader. Configure it to
|
||||
load the Grub bootloader located in the 'Guix_image' root partition.
|
||||
|
||||
If TARGETS is set, use its car as the GRUB image format and its cdr as
|
||||
the output filename. Otherwise, use defaults for the host platform."
|
||||
load the Grub bootloader located in the 'Guix_image' root partition."
|
||||
(let ((grub-config "grub.cfg"))
|
||||
(call-with-output-file grub-config
|
||||
(lambda (port)
|
||||
@@ -107,6 +97,5 @@ the output filename. Otherwise, use defaults for the host platform."
|
||||
insmod part_gpt~@
|
||||
search --set=root --label Guix_image~@
|
||||
configfile /boot/grub/grub.cfg~%")))
|
||||
(install-efi grub-efi grub-config esp #:targets targets)
|
||||
(install-efi grub-efi grub-config esp)
|
||||
(delete-file grub-config)))
|
||||
|
||||
|
||||
@@ -1,213 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; 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/>.
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; This module contains procedures to interact with D-Bus via the 'dbus-send'
|
||||
;;; command line utility. Before using any public procedure
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define-module (gnu build dbus-service)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:autoload (d-bus protocol connections) (d-bus-conn?
|
||||
d-bus-conn-flush
|
||||
d-bus-connect
|
||||
d-bus-disconnect
|
||||
d-bus-session-bus-address
|
||||
d-bus-system-bus-address)
|
||||
#:autoload (d-bus protocol messages) (MESSAGE_TYPE_METHOD_CALL
|
||||
d-bus-headers-ref
|
||||
d-bus-message-body
|
||||
d-bus-message-headers
|
||||
d-bus-read-message
|
||||
d-bus-write-message
|
||||
header-PATH
|
||||
header-DESTINATION
|
||||
header-INTERFACE
|
||||
header-MEMBER
|
||||
header-SIGNATURE
|
||||
make-d-bus-message)
|
||||
#:export (%dbus-query-timeout
|
||||
|
||||
initialize-dbus-connection!
|
||||
%current-dbus-connection
|
||||
send-dbus
|
||||
call-dbus-method
|
||||
|
||||
dbus-available-services
|
||||
dbus-service-available?
|
||||
|
||||
with-retries))
|
||||
|
||||
(define %dbus-query-timeout 2) ;in seconds
|
||||
|
||||
;;; Use Fibers' sleep to enable cooperative scheduling in Shepherd >= 0.9.0,
|
||||
;;; which is required at least for the Jami service.
|
||||
(define sleep*
|
||||
(lambda () ;delay execution
|
||||
(if (resolve-module '(fibers) #f)
|
||||
(module-ref (resolve-interface '(fibers)) 'sleep)
|
||||
(begin
|
||||
(format #f "fibers not available -- blocking 'sleep' in use")
|
||||
sleep))))
|
||||
|
||||
;;;
|
||||
;;; Utilities.
|
||||
;;;
|
||||
|
||||
(define-syntax-rule (with-retries n delay body ...)
|
||||
"Retry the code in BODY up to N times until it doesn't raise an exception nor
|
||||
return #f, else raise an error. A delay of DELAY seconds is inserted before
|
||||
each retry."
|
||||
(let loop ((attempts 0))
|
||||
(catch #t
|
||||
(lambda ()
|
||||
(let ((result (begin body ...)))
|
||||
(if (not result)
|
||||
(error "failed attempt" attempts)
|
||||
result)))
|
||||
(lambda args
|
||||
(if (< attempts n)
|
||||
(begin
|
||||
((sleep*) delay) ;else wait and retry
|
||||
(loop (+ 1 attempts)))
|
||||
(error "maximum number of retry attempts reached"
|
||||
body ... args))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Low level wrappers above AC/D-Bus.
|
||||
;;;
|
||||
|
||||
;; The active D-Bus connection (a parameter) used by the other procedures.
|
||||
(define %current-dbus-connection (make-parameter #f))
|
||||
|
||||
(define* (initialize-dbus-connection!
|
||||
#:key (address (or (d-bus-session-bus-address)
|
||||
(d-bus-system-bus-address))))
|
||||
"Initialize the D-Bus connection. ADDRESS should be the address of the D-Bus
|
||||
session, e.g. \"unix:path=/var/run/dbus/system_bus_socket\", the default value
|
||||
if ADDRESS is not provided and DBUS_SESSION_BUS_ADDRESS is not set. Return
|
||||
the initialized D-Bus connection."
|
||||
;; Clear current correction if already active.
|
||||
(when (d-bus-conn? (%current-dbus-connection))
|
||||
(d-bus-disconnect (%current-dbus-connection)))
|
||||
|
||||
(let ((connection (d-bus-connect address)))
|
||||
(%current-dbus-connection connection) ;update connection parameter
|
||||
(call-dbus-method "Hello")) ;initial handshake
|
||||
|
||||
(%current-dbus-connection))
|
||||
|
||||
(define* (send-dbus message #:key
|
||||
(connection (%current-dbus-connection))
|
||||
timeout)
|
||||
"Send a D-Bus MESSAGE to CONNECTION and return the body of its reply. Up to
|
||||
READ-RETRIES replies are read until a matching reply is found, else an error
|
||||
is raised. MESSAGE is to be constructed with `make-d-bus-message'. When the
|
||||
body contains a single element, it is returned directly, else the body
|
||||
elements are returned as a list. TIMEOUT is a timeout value in seconds."
|
||||
(let ((serial (d-bus-write-message connection message))
|
||||
(start-time (current-time time-monotonic))
|
||||
(timeout* (or timeout %dbus-query-timeout)))
|
||||
(d-bus-conn-flush connection)
|
||||
(let retry ()
|
||||
(when (> (time-second (time-difference (current-time time-monotonic)
|
||||
start-time))
|
||||
timeout*)
|
||||
(error 'dbus "fail to get reply in timeout" timeout*))
|
||||
(let* ((reply (d-bus-read-message connection))
|
||||
(reply-headers (d-bus-message-headers reply))
|
||||
(reply-serial (d-bus-headers-ref reply-headers 'REPLY_SERIAL))
|
||||
(error-name (d-bus-headers-ref reply-headers 'ERROR_NAME))
|
||||
(body (d-bus-message-body reply)))
|
||||
;; Validate the reply matches the message.
|
||||
(when error-name
|
||||
(error 'dbus "method failed with error" error-name body))
|
||||
;; Some replies do not include a serial header, such as the for the
|
||||
;; org.freedesktop.DBus NameAcquired one.
|
||||
(if (and reply-serial (= serial reply-serial))
|
||||
(match body
|
||||
((x x* ..1) ;contains 2 ore more elements
|
||||
body)
|
||||
((x)
|
||||
x) ;single element; return it directly
|
||||
(#f #f))
|
||||
(retry))))))
|
||||
|
||||
(define (argument->signature-type argument)
|
||||
"Infer the D-Bus signature type from ARGUMENT."
|
||||
;; XXX: avoid ..1 when using vectors due to a bug (?) in (ice-9 match).
|
||||
(match argument
|
||||
((? boolean?) "b")
|
||||
((? string?) "s")
|
||||
(#((? string?) (? string?) ...) "as")
|
||||
(#(((? string?) . (? string?))
|
||||
((? string?) . (? string?)) ...) "a{ss}")
|
||||
(_ (error 'dbus "no rule to infer type from argument" argument))))
|
||||
|
||||
(define* (call-dbus-method method
|
||||
#:key
|
||||
(path "/org/freedesktop/DBus")
|
||||
(destination "org.freedesktop.DBus")
|
||||
(interface "org.freedesktop.DBus")
|
||||
(connection (%current-dbus-connection))
|
||||
arguments
|
||||
timeout)
|
||||
"Call the D-Bus method specified by METHOD, PATH, DESTINATION and INTERFACE.
|
||||
The currently active D-Bus CONNECTION is used unless explicitly provided.
|
||||
Method arguments may be provided via ARGUMENTS sent as the message body.
|
||||
TIMEOUT limit the maximum time to allow for the reply. Return the body of the
|
||||
reply."
|
||||
(let ((message (make-d-bus-message
|
||||
MESSAGE_TYPE_METHOD_CALL 0 #f '()
|
||||
`#(,(header-PATH path)
|
||||
,(header-DESTINATION destination)
|
||||
,(header-INTERFACE interface)
|
||||
,(header-MEMBER method)
|
||||
,@(if arguments
|
||||
(list (header-SIGNATURE
|
||||
(string-join
|
||||
(map argument->signature-type arguments)
|
||||
"")))
|
||||
'()))
|
||||
arguments)))
|
||||
(send-dbus message #:connection connection #:timeout timeout)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Higher-level, D-Bus procedures.
|
||||
;;;
|
||||
|
||||
(define (dbus-available-services)
|
||||
"Return the list of available (acquired) D-Bus services."
|
||||
(let ((names (vector->list (call-dbus-method "ListNames"))))
|
||||
;; Remove entries such as ":1.7".
|
||||
(remove (cut string-prefix? ":" <>) names)))
|
||||
|
||||
(define (dbus-service-available? service)
|
||||
"Predicate to check for the D-Bus SERVICE availability."
|
||||
(member service (dbus-available-services)))
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'with-retries 'scheme-indent-function 2)
|
||||
;; End:
|
||||
+45
-97
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
@@ -52,11 +52,8 @@
|
||||
read-partition-uuid
|
||||
read-luks-partition-uuid
|
||||
|
||||
cleanly-unmounted-ext2?
|
||||
|
||||
bind-mount
|
||||
|
||||
system*/tty
|
||||
mount-flags->bit-mask
|
||||
check-file-system
|
||||
mount-file-system
|
||||
@@ -70,33 +67,6 @@
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define (system*/console program . args)
|
||||
"Run PROGRAM with ARGS in a tty on top of /dev/console. The return value is
|
||||
as for 'system*'."
|
||||
(match (primitive-fork)
|
||||
(0
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(login-tty (open-fdes "/dev/console" O_RDWR))
|
||||
(apply execlp program program args))
|
||||
(lambda ()
|
||||
(primitive-_exit 127))))
|
||||
(pid
|
||||
(cdr (waitpid pid)))))
|
||||
|
||||
(define (system*/tty program . args)
|
||||
"Run PROGRAM with ARGS, creating a tty if its standard input isn't one.
|
||||
The return value is as for 'system*'.
|
||||
|
||||
This is necessary for commands such as 'cryptsetup open' or 'fsck' that may
|
||||
need to interact with the user but might be invoked from shepherd, where
|
||||
standard input is /dev/null."
|
||||
(apply (if (isatty? (current-input-port))
|
||||
system*
|
||||
system*/console)
|
||||
program args))
|
||||
|
||||
(define (bind-mount source target)
|
||||
"Bind-mount SOURCE at TARGET."
|
||||
(mount source target "" MS_BIND))
|
||||
@@ -195,23 +165,6 @@ NUL terminator, return the size of the bytevector."
|
||||
if DEVICE does not contain an ext2 file system."
|
||||
(read-superblock device 1024 264 ext2-superblock?))
|
||||
|
||||
(define (ext2-superblock-cleanly-unmounted? sblock)
|
||||
"Return true if SBLOCK denotes a file system that was cleanly unmounted,
|
||||
false otherwise."
|
||||
(define EXT2_VALID_FS 1) ;cleanly unmounted
|
||||
(define EXT2_ERROR_FS 2) ;errors detected
|
||||
|
||||
(define EXT3_FEATURE_INCOMPAT_RECOVER #x0004) ;journal needs recovery
|
||||
|
||||
(let ((state (bytevector-u16-ref sblock 58 %ext2-endianness)))
|
||||
(cond ((= state EXT2_VALID_FS)
|
||||
(let ((incompatible-features
|
||||
(bytevector-u32-ref sblock 96 %ext2-endianness)))
|
||||
(zero? (logand incompatible-features
|
||||
EXT3_FEATURE_INCOMPAT_RECOVER))))
|
||||
((= state EXT2_ERROR_FS) #f)
|
||||
(else (error "invalid ext2 superblock state" state)))))
|
||||
|
||||
(define (ext2-superblock-uuid sblock)
|
||||
"Return the UUID of ext2 superblock SBLOCK as a 16-byte bytevector."
|
||||
(sub-bytevector sblock 104 16))
|
||||
@@ -227,23 +180,18 @@ true, check the file system even if it's marked as clean. If REPAIR is false,
|
||||
do not write to the file system to fix errors. If it's #t, fix all
|
||||
errors. Otherwise, fix only those considered safe to repair automatically."
|
||||
(match (status:exit-val
|
||||
(apply system*/tty "e2fsck" "-v" "-C" "0"
|
||||
`(,@(if force? '("-f") '())
|
||||
,@(match repair
|
||||
(#f '("-n"))
|
||||
(#t '("-y"))
|
||||
(_ '("-p")))
|
||||
,device)))
|
||||
(apply system* `("e2fsck" "-v" "-C" "0"
|
||||
,@(if force? '("-f") '())
|
||||
,@(match repair
|
||||
(#f '("-n"))
|
||||
(#t '("-y"))
|
||||
(_ '("-p")))
|
||||
,device)))
|
||||
(0 'pass)
|
||||
(1 'errors-corrected)
|
||||
(2 'reboot-required)
|
||||
(_ 'fatal-error)))
|
||||
|
||||
(define (cleanly-unmounted-ext2? device) ;convenience procedure
|
||||
"Return true if DEVICE is an ext2 file system and if it was cleanly
|
||||
unmounted."
|
||||
(ext2-superblock-cleanly-unmounted? (read-ext2-superblock device)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Linux swap.
|
||||
@@ -364,14 +312,14 @@ errors. Otherwise, fix only those considered safe to repair automatically."
|
||||
(status
|
||||
;; A number, or #f on abnormal termination (e.g., assertion failure).
|
||||
(status:exit-val
|
||||
(apply system*/tty "bcachefs" "fsck" "-v"
|
||||
`(,@(if force? '("-f") '())
|
||||
,@(match repair
|
||||
(#f '("-n"))
|
||||
(#t '("-y"))
|
||||
(_ '("-p")))
|
||||
;; Make each multi-device member a separate argument.
|
||||
,@(string-split device #\:))))))
|
||||
(apply system* `("bcachefs" "fsck" "-v"
|
||||
,@(if force? '("-f") '())
|
||||
,@(match repair
|
||||
(#f '("-n"))
|
||||
(#t '("-y"))
|
||||
(_ '("-p")))
|
||||
;; Make each multi-device member a separate argument.
|
||||
,@(string-split device #\:))))))
|
||||
(match (and=> status (cut logand <> (lognot ignored-bits)))
|
||||
(0 'pass)
|
||||
(1 'errors-corrected)
|
||||
@@ -416,17 +364,17 @@ false, do not write to DEVICE. If it's #t, fix any errors found. Otherwise,
|
||||
fix only those considered safe to repair automatically."
|
||||
(if force?
|
||||
(match (status:exit-val
|
||||
(apply system*/tty "btrfs" "check" "--progress"
|
||||
;; Btrfs's ‘--force’ is not relevant to us here.
|
||||
`(,@(match repair
|
||||
;; Upstream considers ALL repairs dangerous
|
||||
;; and will warn the user at run time.
|
||||
(#t '("--repair"))
|
||||
(_ '("--readonly" ; a no-op for clarity
|
||||
;; A 466G file system with 180G used is
|
||||
;; enough to kill btrfs with 6G of RAM.
|
||||
"--mode" "lowmem")))
|
||||
,device)))
|
||||
(apply system* `("btrfs" "check" "--progress"
|
||||
;; Btrfs's ‘--force’ is not relevant to us here.
|
||||
,@(match repair
|
||||
;; Upstream considers ALL repairs dangerous
|
||||
;; and will warn the user at run time.
|
||||
(#t '("--repair"))
|
||||
(_ '("--readonly" ; a no-op for clarity
|
||||
;; A 466G file system with 180G used is
|
||||
;; enough to kill btrfs with 6G of RAM.
|
||||
"--mode" "lowmem")))
|
||||
,device)))
|
||||
(0 'pass)
|
||||
(_ 'fatal-error))
|
||||
'pass))
|
||||
@@ -464,11 +412,11 @@ ignored: a full file system scan is always performed. If REPAIR is false, do
|
||||
not write to the file system to fix errors. Otherwise, automatically fix them
|
||||
using the least destructive approach."
|
||||
(match (status:exit-val
|
||||
(system*/tty "fsck.vfat" "-v"
|
||||
(match repair
|
||||
(#f "-n")
|
||||
(_ "-a")) ;no 'safe/#t distinction
|
||||
device))
|
||||
(apply system* `("fsck.vfat" "-v"
|
||||
,@(match repair
|
||||
(#f '("-n"))
|
||||
(_ '("-a"))) ; no 'safe/#t distinction
|
||||
,device)))
|
||||
(0 'pass)
|
||||
(1 'errors-corrected)
|
||||
(_ 'fatal-error)))
|
||||
@@ -597,7 +545,7 @@ do not write to the file system to fix errors, and replay the transaction log
|
||||
only if FORCE? is true. Otherwise, replay the transaction log before checking
|
||||
and automatically fix found errors."
|
||||
(match (status:exit-val
|
||||
(apply system*/tty
|
||||
(apply system*
|
||||
`("jfs_fsck" "-v"
|
||||
;; The ‘LEVEL’ logic is convoluted. To quote fsck/xchkdsk.c
|
||||
;; (‘-p’, ‘-a’, and ‘-r’ are aliases in every way):
|
||||
@@ -673,10 +621,10 @@ REPAIR are true, automatically fix found errors."
|
||||
"warning: forced check of F2FS ~a implies repairing any errors~%"
|
||||
device))
|
||||
(match (status:exit-val
|
||||
(apply system*/tty "fsck.f2fs"
|
||||
`(,@(if force? '("-f") '())
|
||||
,@(if repair '("-p") '("--dry-run"))
|
||||
,device)))
|
||||
(apply system* `("fsck.f2fs"
|
||||
,@(if force? '("-f") '())
|
||||
,@(if repair '("-p") '("--dry-run"))
|
||||
,device)))
|
||||
;; 0 and -1 are the only two possibilities according to the man page.
|
||||
(0 'pass)
|
||||
(_ 'fatal-error)))
|
||||
@@ -761,9 +709,9 @@ ignored: a full check is always performed. Repair is not possible: if REPAIR is
|
||||
true and the volume has been repaired by an external tool, clear the volume
|
||||
dirty flag to indicate that it's now safe to mount."
|
||||
(match (status:exit-val
|
||||
(system*/tty "ntfsfix"
|
||||
(if repair "--clear-dirty" "--no-action")
|
||||
device))
|
||||
(apply system* `("ntfsfix"
|
||||
,@(if repair '("--clear-dirty") '("--no-action"))
|
||||
,device)))
|
||||
(0 'pass)
|
||||
(_ 'fatal-error)))
|
||||
|
||||
@@ -806,11 +754,11 @@ write to DEVICE. If it's #t, replay the log, check, and fix any errors found.
|
||||
Otherwise, only replay the log, and check without attempting further repairs."
|
||||
(define (xfs_repair)
|
||||
(status:exit-val
|
||||
(system*/tty "xfs_repair" "-Pv"
|
||||
(match repair
|
||||
(#t "-e")
|
||||
(_ "-n")) ;will miss some errors
|
||||
device)))
|
||||
(apply system* `("xfs_repair" "-Pv"
|
||||
,@(match repair
|
||||
(#t '("-e"))
|
||||
(_ '("-n"))) ; will miss some errors
|
||||
,device))))
|
||||
(if force?
|
||||
;; xfs_repair fails with exit status 2 if the log is dirty, which is
|
||||
;; likely in situations where you're running xfs_repair. Only the kernel
|
||||
|
||||
+12
-33
@@ -5,8 +5,6 @@
|
||||
;;; 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 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -28,7 +26,6 @@
|
||||
#:use-module (guix build syscalls)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix store database)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu build bootloader)
|
||||
#:use-module (gnu build install)
|
||||
#:use-module (gnu build linux-boot)
|
||||
@@ -43,7 +40,6 @@
|
||||
convert-disk-image
|
||||
genimage
|
||||
initialize-efi-partition
|
||||
initialize-efi32-partition
|
||||
initialize-root-partition
|
||||
|
||||
make-iso9660-image))
|
||||
@@ -52,13 +48,12 @@
|
||||
"Take SEXP, a tuple as returned by 'partition->gexp', and turn it into a
|
||||
<partition> record."
|
||||
(match sexp
|
||||
((size file-system file-system-options label uuid flags)
|
||||
((size file-system file-system-options label uuid)
|
||||
(partition (size size)
|
||||
(file-system file-system)
|
||||
(file-system-options file-system-options)
|
||||
(label label)
|
||||
(uuid uuid)
|
||||
(flags flags)))))
|
||||
(uuid uuid)))))
|
||||
|
||||
(define (size-in-kib size)
|
||||
"Convert SIZE expressed in bytes, to kilobytes and return it as a string."
|
||||
@@ -83,7 +78,6 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
|
||||
(fs-options (partition-file-system-options partition))
|
||||
(label (partition-label partition))
|
||||
(uuid (partition-uuid partition))
|
||||
(flags (partition-flags partition))
|
||||
(journal-options "lazy_itable_init=1,lazy_journal_init=1"))
|
||||
(apply invoke
|
||||
`("fakeroot" "mke2fs" "-t" ,fs "-d" ,root
|
||||
@@ -98,18 +92,16 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
|
||||
(estimate-partition-size root)
|
||||
size)))))))
|
||||
|
||||
(define* (make-vfat-image partition target root fs-bits)
|
||||
(define* (make-vfat-image partition target root)
|
||||
"Handle the creation of VFAT partition images. See 'make-partition-image'."
|
||||
(let ((size (partition-size partition))
|
||||
(label (partition-label partition))
|
||||
(flags (partition-flags partition)))
|
||||
(apply invoke "fakeroot" "mkdosfs" "-n" label "-C" target
|
||||
"-F" (number->string fs-bits)
|
||||
(size-in-kib
|
||||
(if (eq? size 'guess)
|
||||
(estimate-partition-size root)
|
||||
size))
|
||||
(if (member 'esp flags) (list "-S" "1024") '()))
|
||||
(label (partition-label partition)))
|
||||
(invoke "fakeroot" "mkdosfs" "-n" label "-C" target
|
||||
"-F" "16" "-S" "1024"
|
||||
(size-in-kib
|
||||
(if (eq? size 'guess)
|
||||
(estimate-partition-size root)
|
||||
size)))
|
||||
(for-each (lambda (file)
|
||||
(unless (member file '("." ".."))
|
||||
(invoke "mcopy" "-bsp" "-i" target
|
||||
@@ -125,10 +117,8 @@ ROOT directory to populate the image."
|
||||
(cond
|
||||
((string-prefix? "ext" type)
|
||||
(make-ext-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=? type "vfat")
|
||||
(make-vfat-image partition target root))
|
||||
(else
|
||||
(raise (condition
|
||||
(&message
|
||||
@@ -172,17 +162,6 @@ produced by #:references-graphs. Pass WAL-MODE? to call-with-database."
|
||||
"Install in ROOT directory, an EFI loader using GRUB-EFI."
|
||||
(install-efi-loader grub-efi root))
|
||||
|
||||
(define* (initialize-efi32-partition root
|
||||
#:key
|
||||
grub-efi32
|
||||
#:allow-other-keys)
|
||||
"Install in ROOT directory, an EFI 32bit loader using GRUB-EFI32."
|
||||
(install-efi-loader grub-efi32 root
|
||||
#:targets (cond ((target-x86?)
|
||||
'("i386-efi" . "BOOTIA32.EFI"))
|
||||
((target-arm?)
|
||||
'("arm-efi" . "BOOTARM.EFI")))))
|
||||
|
||||
(define* (initialize-root-partition root
|
||||
#:key
|
||||
bootcfg
|
||||
|
||||
+322
-66
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -24,16 +24,16 @@
|
||||
;;; Code:
|
||||
|
||||
(define-module (gnu build jami-service)
|
||||
#:use-module (gnu build dbus-service)
|
||||
#:use-module (ice-9 format)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 peg)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (rnrs io ports)
|
||||
#:autoload (shepherd service) (fork+exec-command)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (jami-service-available?
|
||||
|
||||
account-fingerprint?
|
||||
#:export (account-fingerprint?
|
||||
account-details->recutil
|
||||
get-accounts
|
||||
get-usernames
|
||||
@@ -51,12 +51,43 @@
|
||||
set-all-moderators
|
||||
set-moderator
|
||||
username->all-moderators?
|
||||
username->moderators))
|
||||
username->moderators
|
||||
|
||||
dbus-available-services
|
||||
dbus-service-available?
|
||||
|
||||
%send-dbus-binary
|
||||
%send-dbus-bus
|
||||
%send-dbus-user
|
||||
%send-dbus-group
|
||||
%send-dbus-debug
|
||||
send-dbus
|
||||
|
||||
with-retries))
|
||||
|
||||
;;;
|
||||
;;; Utilities.
|
||||
;;;
|
||||
|
||||
(define-syntax-rule (with-retries n delay body ...)
|
||||
"Retry the code in BODY up to N times until it doesn't raise an exception
|
||||
nor return #f, else raise an error. A delay of DELAY seconds is inserted
|
||||
before each retry."
|
||||
(let loop ((attempts 0))
|
||||
(catch #t
|
||||
(lambda ()
|
||||
(let ((result (begin body ...)))
|
||||
(if (not result)
|
||||
(error "failed attempt" attempts)
|
||||
result)))
|
||||
(lambda args
|
||||
(if (< attempts n)
|
||||
(begin
|
||||
(sleep delay) ;else wait and retry
|
||||
(loop (+ 1 attempts)))
|
||||
(error "maximum number of retry attempts reached"
|
||||
body ... args))))))
|
||||
|
||||
(define (alist->list alist)
|
||||
"Flatten ALIST into a list."
|
||||
(append-map (match-lambda
|
||||
@@ -73,34 +104,212 @@ hexadecimal characters."
|
||||
(and (string? val)
|
||||
(regexp-exec account-fingerprint-rx val)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; D-Bus reply parser.
|
||||
;;;
|
||||
|
||||
(define (parse-dbus-reply reply)
|
||||
"Return the parse tree of REPLY, a string returned by the 'dbus-send'
|
||||
command."
|
||||
;; Refer to 'man 1 dbus-send' for the grammar reference. Note that the
|
||||
;; format of the replies doesn't match the format of the input, which is the
|
||||
;; one documented, but it gives an idea. For an even better reference, see
|
||||
;; the `print_iter' procedure of the 'dbus-print-message.c' file from the
|
||||
;; 'dbus' package sources.
|
||||
(define-peg-string-patterns
|
||||
"contents <- header (item / container (item / container*)?)
|
||||
item <-- WS type WS value NL
|
||||
container <- array / dict / variant
|
||||
array <-- array-start (item / container)* array-end
|
||||
dict <-- array-start dict-entry* array-end
|
||||
dict-entry <-- dict-entry-start item item dict-entry-end
|
||||
variant <-- variant-start item
|
||||
type <-- 'string' / 'int16' / 'uint16' / 'int32' / 'uint32' / 'int64' /
|
||||
'uint64' / 'double' / 'byte' / 'boolean' / 'objpath'
|
||||
value <-- (!NL .)* NL
|
||||
header < (!NL .)* NL
|
||||
variant-start < WS 'variant'
|
||||
array-start < WS 'array [' NL
|
||||
array-end < WS ']' NL
|
||||
dict-entry-start < WS 'dict entry(' NL
|
||||
dict-entry-end < WS ')' NL
|
||||
DQ < '\"'
|
||||
WS < ' '*
|
||||
NL < '\n'*")
|
||||
|
||||
(peg:tree (match-pattern contents reply)))
|
||||
|
||||
(define (strip-quotes text)
|
||||
"Strip the leading and trailing double quotes (\") characters from TEXT."
|
||||
(let* ((text* (if (string-prefix? "\"" text)
|
||||
(string-drop text 1)
|
||||
text))
|
||||
(text** (if (string-suffix? "\"" text*)
|
||||
(string-drop-right text* 1)
|
||||
text*)))
|
||||
text**))
|
||||
|
||||
(define (deserialize-item item)
|
||||
"Return the value described by the ITEM parse tree as a Guile object."
|
||||
;; Strings are printed wrapped in double quotes (see the print_iter
|
||||
;; procedure in dbus-print-message.c).
|
||||
(match item
|
||||
(('item ('type "string") ('value value))
|
||||
(strip-quotes value))
|
||||
(('item ('type "boolean") ('value value))
|
||||
(if (string=? "true" value)
|
||||
#t
|
||||
#f))
|
||||
(('item _ ('value value))
|
||||
value)))
|
||||
|
||||
(define (serialize-boolean bool)
|
||||
"Return the serialized format expected by dbus-send for BOOL."
|
||||
(format #f "boolean:~:[false~;true~]" bool))
|
||||
|
||||
(define (dict->alist dict-parse-tree)
|
||||
"Translate a dict parse tree to an alist."
|
||||
(define (tuples->alist tuples)
|
||||
(map (lambda (x) (apply cons x)) tuples))
|
||||
|
||||
(match dict-parse-tree
|
||||
('dict
|
||||
'())
|
||||
(('dict ('dict-entry keys values) ...)
|
||||
(let ((keys* (map deserialize-item keys))
|
||||
(values* (map deserialize-item values)))
|
||||
(tuples->alist (zip keys* values*))))))
|
||||
|
||||
(define (array->list array-parse-tree)
|
||||
"Translate an array parse tree to a list."
|
||||
(match array-parse-tree
|
||||
('array
|
||||
'())
|
||||
(('array items ...)
|
||||
(map deserialize-item items))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Low-level, D-Bus-related procedures.
|
||||
;;;
|
||||
|
||||
;;; The following parameters are used in the jami-service-type service
|
||||
;;; definition to conveniently customize the behavior of the send-dbus helper,
|
||||
;;; even when called indirectly.
|
||||
(define %send-dbus-binary (make-parameter "dbus-send"))
|
||||
(define %send-dbus-bus (make-parameter #f))
|
||||
(define %send-dbus-user (make-parameter #f))
|
||||
(define %send-dbus-group (make-parameter #f))
|
||||
(define %send-dbus-debug (make-parameter #f))
|
||||
|
||||
(define* (send-dbus #:key service path interface method
|
||||
bus
|
||||
dbus-send
|
||||
user group
|
||||
timeout
|
||||
arguments)
|
||||
"Return the response of DBUS-SEND, else raise an error. Unless explicitly
|
||||
provided, DBUS-SEND takes the value of the %SEND-DBUS-BINARY parameter. BUS
|
||||
can be used to specify the bus address, such as 'unix:path=/var/run/jami/bus'.
|
||||
Alternatively, the %SEND-DBUS-BUS parameter can be used. ARGUMENTS can be
|
||||
used to pass input values to a D-Bus method call. TIMEOUT is the amount of
|
||||
time to wait for a reply in milliseconds before giving up with an error. USER
|
||||
and GROUP allow choosing under which user/group the DBUS-SEND command is
|
||||
executed. Alternatively, the %SEND-DBUS-USER and %SEND-DBUS-GROUP parameters
|
||||
can be used instead."
|
||||
(let* ((command `(,(if dbus-send
|
||||
dbus-send
|
||||
(%send-dbus-binary))
|
||||
,@(if (or bus (%send-dbus-bus))
|
||||
(list (string-append "--bus="
|
||||
(or bus (%send-dbus-bus))))
|
||||
'())
|
||||
"--print-reply"
|
||||
,@(if timeout
|
||||
(list (format #f "--reply-timeout=~d" timeout))
|
||||
'())
|
||||
,(string-append "--dest=" service) ;e.g., cx.ring.Ring
|
||||
,path ;e.g., /cx/ring/Ring/ConfigurationManager
|
||||
,(string-append interface "." method)
|
||||
,@(or arguments '())))
|
||||
(temp-port (mkstemp! (string-copy "/tmp/dbus-send-output-XXXXXXX")))
|
||||
(temp-file (port-filename temp-port)))
|
||||
(dynamic-wind
|
||||
(lambda ()
|
||||
(let* ((uid (or (and=> (or user (%send-dbus-user))
|
||||
(compose passwd:uid getpwnam)) -1))
|
||||
(gid (or (and=> (or group (%send-dbus-group))
|
||||
(compose group:gid getgrnam)) -1)))
|
||||
(chown temp-port uid gid)))
|
||||
(lambda ()
|
||||
(let ((pid (fork+exec-command command
|
||||
#:user (or user (%send-dbus-user))
|
||||
#:group (or group (%send-dbus-group))
|
||||
#:log-file temp-file)))
|
||||
(match (waitpid pid)
|
||||
((_ . status)
|
||||
(let ((exit-status (status:exit-val status))
|
||||
(output (call-with-port temp-port get-string-all)))
|
||||
(if (= 0 exit-status)
|
||||
output
|
||||
(error "the send-dbus command exited with: "
|
||||
command exit-status output)))))))
|
||||
(lambda ()
|
||||
(false-if-exception (delete-file temp-file))))))
|
||||
|
||||
(define (parse-account-ids reply)
|
||||
"Return the Jami account IDs from REPLY, which is assumed to be the output
|
||||
of the Jami D-Bus `getAccountList' method."
|
||||
(array->list (parse-dbus-reply reply)))
|
||||
|
||||
(define (parse-account-details reply)
|
||||
"Parse REPLY, which is assumed to be the output of the Jami D-Bus
|
||||
`getAccountDetails' method, and return its content as an alist."
|
||||
(dict->alist (parse-dbus-reply reply)))
|
||||
|
||||
(define (parse-contacts reply)
|
||||
"Parse REPLY, which is assumed to be the output of the Jamid D-Bus
|
||||
`getContacts' method, and return its content as an alist."
|
||||
(match (parse-dbus-reply reply)
|
||||
('array
|
||||
'())
|
||||
(('array dicts ...)
|
||||
(map dict->alist dicts))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Higher-level, D-Bus-related procedures.
|
||||
;;;
|
||||
|
||||
(define (validate-fingerprint fingerprint)
|
||||
"Validate that fingerprint is 40 characters long."
|
||||
(unless (account-fingerprint? fingerprint)
|
||||
(error "Account fingerprint is not valid:" fingerprint)))
|
||||
|
||||
(define (jami-service-available?)
|
||||
"Whether the Jami D-Bus service was acquired by the D-Bus daemon."
|
||||
(unless (%current-dbus-connection)
|
||||
(initialize-dbus-connection!))
|
||||
(dbus-service-available? "cx.ring.Ring"))
|
||||
(define (dbus-available-services)
|
||||
"Return the list of available (acquired) D-Bus services."
|
||||
(let ((reply (parse-dbus-reply
|
||||
(send-dbus #:service "org.freedesktop.DBus"
|
||||
#:path "/org/freedesktop/DBus"
|
||||
#:interface "org.freedesktop.DBus"
|
||||
#:method "ListNames"))))
|
||||
;; Remove entries such as ":1.7".
|
||||
(remove (cut string-prefix? ":" <>)
|
||||
(array->list reply))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Bindings for the Jami D-Bus API.
|
||||
;;;
|
||||
(define (dbus-service-available? service)
|
||||
"Predicate to check for the D-Bus SERVICE availability."
|
||||
(member service (dbus-available-services)))
|
||||
|
||||
(define* (call-configuration-manager-method method #:optional arguments
|
||||
#:key timeout)
|
||||
"Query the Jami D-Bus ConfigurationManager interface with METHOD applied to
|
||||
ARGUMENTS. TIMEOUT can optionally be provided as a value in seconds."
|
||||
(unless (%current-dbus-connection)
|
||||
(initialize-dbus-connection!))
|
||||
(call-dbus-method method
|
||||
#:path "/cx/ring/Ring/ConfigurationManager"
|
||||
#:destination "cx.ring.Ring"
|
||||
#:interface "cx.ring.Ring.ConfigurationManager"
|
||||
#:arguments arguments
|
||||
#:timeout timeout))
|
||||
(define* (send-dbus/configuration-manager #:key method arguments timeout)
|
||||
"Query the Jami D-Bus ConfigurationManager service."
|
||||
(send-dbus #:service "cx.ring.Ring"
|
||||
#:path "/cx/ring/Ring/ConfigurationManager"
|
||||
#:interface "cx.ring.Ring.ConfigurationManager"
|
||||
#:method method
|
||||
#:arguments arguments
|
||||
#:timeout timeout))
|
||||
|
||||
;;; The following methods are for internal use; they make use of the account
|
||||
;;; ID, an implementation detail of Jami the user should not need to be
|
||||
@@ -108,17 +317,22 @@ ARGUMENTS. TIMEOUT can optionally be provided as a value in seconds."
|
||||
(define (get-account-ids)
|
||||
"Return the available Jami account identifiers (IDs). Account IDs are an
|
||||
implementation detail used to identify the accounts in Jami."
|
||||
(vector->list (call-configuration-manager-method "getAccountList")))
|
||||
(parse-account-ids
|
||||
(send-dbus/configuration-manager #:method "getAccountList")))
|
||||
|
||||
(define (id->account-details id)
|
||||
"Retrieve the account data associated with the given account ID."
|
||||
(vector->list (call-configuration-manager-method "getAccountDetails"
|
||||
(list id))))
|
||||
(parse-account-details
|
||||
(send-dbus/configuration-manager
|
||||
#:method "getAccountDetails"
|
||||
#:arguments (list (string-append "string:" id)))))
|
||||
|
||||
(define (id->volatile-account-details id)
|
||||
"Retrieve the account data associated with the given account ID."
|
||||
(vector->list (call-configuration-manager-method "getVolatileAccountDetails"
|
||||
(list id))))
|
||||
(parse-account-details
|
||||
(send-dbus/configuration-manager
|
||||
#:method "getVolatileAccountDetails"
|
||||
#:arguments (list (string-append "string:" id)))))
|
||||
|
||||
(define (id->account id)
|
||||
"Retrieve the complete account data associated with the given account ID."
|
||||
@@ -148,8 +362,8 @@ implementation detail used to identify the accounts in Jami."
|
||||
'()))))
|
||||
(get-account-ids))))
|
||||
(or (assoc-ref %username-to-id-cache username)
|
||||
(let ((message (format #f "no account ID for ~:[username~;fingerprint~]"
|
||||
(account-fingerprint? username))))
|
||||
(let ((message (format #f "Could not retrieve a local account ID\
|
||||
for ~:[username~;fingerprint~]" (account-fingerprint? username))))
|
||||
(error message username))))
|
||||
|
||||
(define (account->username account)
|
||||
@@ -186,21 +400,27 @@ registered username."
|
||||
should *not* be encrypted with a password. Return the username associated
|
||||
with the account."
|
||||
(invalidate-username-to-id-cache!)
|
||||
(let ((id (call-configuration-manager-method
|
||||
"addAccount" (list `#(("Account.archivePath" . ,archive)
|
||||
("Account.type" . "RING"))))))
|
||||
(let ((reply (send-dbus/configuration-manager
|
||||
#:method "addAccount"
|
||||
#:arguments (list (string-append
|
||||
"dict:string:string:Account.archivePath,"
|
||||
archive
|
||||
",Account.type,RING")))))
|
||||
;; The account information takes some time to be populated.
|
||||
(with-retries 20 1
|
||||
(let ((username (id->username id)))
|
||||
(if (and=> username (negate string-null?))
|
||||
username
|
||||
#f)))))
|
||||
(let ((id (deserialize-item (parse-dbus-reply reply))))
|
||||
(with-retries 20 1
|
||||
(let ((username (id->username id)))
|
||||
(if (string-null? username)
|
||||
#f
|
||||
username))))))
|
||||
|
||||
(define (remove-account username)
|
||||
"Delete the Jami account associated with USERNAME, the account 40 characters
|
||||
fingerprint or a registered username."
|
||||
(let ((id (username->id username)))
|
||||
(call-configuration-manager-method "removeAccount" (list id)))
|
||||
(send-dbus/configuration-manager
|
||||
#:method "removeAccount"
|
||||
#:arguments (list (string-append "string:" id))))
|
||||
(invalidate-username-to-id-cache!))
|
||||
|
||||
(define* (username->contacts username)
|
||||
@@ -210,16 +430,15 @@ contacts. USERNAME can be either the account 40 characters public key
|
||||
fingerprint or a registered username. The contacts returned are represented
|
||||
using their 40 characters fingerprint."
|
||||
(let* ((id (username->id username))
|
||||
;; The contacts are returned as "aa{ss}", that is, an array of arrays
|
||||
;; containing (string . string) pairs.
|
||||
(contacts (map vector->list
|
||||
(vector->list (call-configuration-manager-method
|
||||
"getContacts" (list id)))))
|
||||
(reply (send-dbus/configuration-manager
|
||||
#:method "getContacts"
|
||||
#:arguments (list (string-append "string:" id))))
|
||||
(all-contacts (parse-contacts reply))
|
||||
(banned? (lambda (contact)
|
||||
(and=> (assoc-ref contact "banned")
|
||||
(cut string=? "true" <>))))
|
||||
(banned (filter banned? contacts))
|
||||
(not-banned (filter (negate banned?) contacts))
|
||||
(banned (filter banned? all-contacts))
|
||||
(not-banned (filter (negate banned?) all-contacts))
|
||||
(fingerprint (cut assoc-ref <> "id")))
|
||||
(values (map fingerprint not-banned)
|
||||
(map fingerprint banned))))
|
||||
@@ -230,20 +449,27 @@ the account associated with USERNAME (either a fingerprint or a registered
|
||||
username). When BAN? is true, also mark the contact as banned."
|
||||
(validate-fingerprint contact)
|
||||
(let ((id (username->id username)))
|
||||
(call-configuration-manager-method "removeContact" (list id contact ban?))))
|
||||
(send-dbus/configuration-manager
|
||||
#:method "removeContact"
|
||||
#:arguments (list (string-append "string:" id)
|
||||
(string-append "string:" contact)
|
||||
(serialize-boolean ban?)))))
|
||||
|
||||
(define (add-contact contact username)
|
||||
"Add CONTACT, the 40 characters public key fingerprint of a contact, to the
|
||||
account of USERNAME (either a fingerprint or a registered username)."
|
||||
(validate-fingerprint contact)
|
||||
(let ((id (username->id username)))
|
||||
(call-configuration-manager-method "addContact" (list id contact))))
|
||||
(send-dbus/configuration-manager
|
||||
#:method "addContact"
|
||||
#:arguments (list (string-append "string:" id)
|
||||
(string-append "string:" contact)))))
|
||||
|
||||
(define* (set-account-details details username #:key timeout)
|
||||
"Set DETAILS, an alist containing the key value pairs to set for the account
|
||||
of USERNAME, a registered username or account fingerprint. The value of the
|
||||
parameters not provided are unchanged. TIMEOUT is a value in milliseconds to
|
||||
pass to the `call-configuration-manager-method' procedure."
|
||||
pass to the `send-dbus/configuration-manager' procedure."
|
||||
(let* ((id (username->id username))
|
||||
(current-details (id->account-details id))
|
||||
(updated-details (map (match-lambda
|
||||
@@ -251,29 +477,52 @@ pass to the `call-configuration-manager-method' procedure."
|
||||
(or (and=> (assoc-ref details key)
|
||||
(cut cons key <>))
|
||||
(cons key value))))
|
||||
current-details)))
|
||||
(call-configuration-manager-method
|
||||
"setAccountDetails" (list id (list->vector updated-details))
|
||||
#:timeout timeout)))
|
||||
current-details))
|
||||
;; dbus-send does not permit sending null strings (it throws a
|
||||
;; "malformed dictionary" error). Luckily they seem to have the
|
||||
;; semantic of "default account value" in Jami; so simply drop them.
|
||||
(updated-details* (remove (match-lambda
|
||||
((_ . value)
|
||||
(string-null? value)))
|
||||
updated-details)))
|
||||
(send-dbus/configuration-manager
|
||||
#:timeout timeout
|
||||
#:method "setAccountDetails"
|
||||
#:arguments
|
||||
(list (string-append "string:" id)
|
||||
(string-append "dict:string:string:"
|
||||
(string-join (alist->list updated-details*)
|
||||
","))))))
|
||||
|
||||
(define (set-all-moderators enabled? username)
|
||||
"Set the 'AllModerators' property to enabled? for the account of USERNAME, a
|
||||
registered username or account fingerprint."
|
||||
(let ((id (username->id username)))
|
||||
(call-configuration-manager-method "setAllModerators" (list id enabled?))))
|
||||
(send-dbus/configuration-manager
|
||||
#:method "setAllModerators"
|
||||
#:arguments
|
||||
(list (string-append "string:" id)
|
||||
(serialize-boolean enabled?)))))
|
||||
|
||||
(define (username->all-moderators? username)
|
||||
"Return the 'AllModerators' property for the account of USERNAME, a
|
||||
registered username or account fingerprint."
|
||||
(let ((id (username->id username)))
|
||||
(call-configuration-manager-method "isAllModerators" (list id))))
|
||||
(let* ((id (username->id username))
|
||||
(reply (send-dbus/configuration-manager
|
||||
#:method "isAllModerators"
|
||||
#:arguments
|
||||
(list (string-append "string:" id)))))
|
||||
(deserialize-item (parse-dbus-reply reply))))
|
||||
|
||||
(define (username->moderators username)
|
||||
"Return the moderators for the account of USERNAME, a registered username or
|
||||
account fingerprint."
|
||||
(let* ((id (username->id username)))
|
||||
(vector->list (call-configuration-manager-method "getDefaultModerators"
|
||||
(list id)))))
|
||||
(let* ((id (username->id username))
|
||||
(reply (send-dbus/configuration-manager
|
||||
#:method "getDefaultModerators"
|
||||
#:arguments
|
||||
(list (string-append "string:" id)))))
|
||||
(array->list (parse-dbus-reply reply))))
|
||||
|
||||
(define (set-moderator contact enabled? username)
|
||||
"Set the moderator flag to ENABLED? for CONTACT, the 40 characters public
|
||||
@@ -281,8 +530,11 @@ key fingerprint of a contact for the account of USERNAME, a registered
|
||||
username or account fingerprint."
|
||||
(validate-fingerprint contact)
|
||||
(let* ((id (username->id username)))
|
||||
(call-configuration-manager-method "setDefaultModerator"
|
||||
(list id contact enabled?))))
|
||||
(send-dbus/configuration-manager #:method "setDefaultModerator"
|
||||
#:arguments
|
||||
(list (string-append "string:" id)
|
||||
(string-append "string:" contact)
|
||||
(serialize-boolean enabled?)))))
|
||||
|
||||
(define (disable-account username)
|
||||
"Disable the account known by USERNAME, a registered username or account
|
||||
@@ -291,7 +543,7 @@ fingerprint."
|
||||
;; Waiting for the reply on this command takes a very
|
||||
;; long time that trips the default D-Bus timeout value
|
||||
;; (25 s), for some reason.
|
||||
#:timeout 60))
|
||||
#:timeout 60000))
|
||||
|
||||
(define (enable-account username)
|
||||
"Enable the account known by USERNAME, a registered username or account
|
||||
@@ -329,3 +581,7 @@ requirements."
|
||||
(fold alist-delete account-details first-items))))
|
||||
|
||||
(string-join (map pair->recutil-property sorted-account-details) "\n"))
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'with-retries 'scheme-indent-function 2)
|
||||
;; End:
|
||||
|
||||
@@ -301,28 +301,8 @@ delete it when leaving the dynamic extent of this call."
|
||||
(lambda ()
|
||||
(false-if-exception (delete-file-recursively tmp-dir))))))
|
||||
|
||||
(define (wait-child-process)
|
||||
"Wait for one child process and return a pair, like 'waitpid', or return #f
|
||||
if there are no child processes left."
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(waitpid WAIT_ANY))
|
||||
(lambda args
|
||||
(if (= ECHILD (system-error-errno args))
|
||||
#f
|
||||
(apply throw args)))))
|
||||
|
||||
(define (status->exit-status status)
|
||||
"Reify STATUS as an exit status."
|
||||
(or (status:exit-val status)
|
||||
;; See <http://www.tldp.org/LDP/abs/html/exitcodes.html#EXITCODESREF>.
|
||||
(+ 128 (or (status:term-sig status)
|
||||
(status:stop-sig status)))))
|
||||
|
||||
(define* (call-with-container mounts thunk #:key (namespaces %namespaces)
|
||||
(host-uids 1) (guest-uid 0) (guest-gid 0)
|
||||
(relayed-signals (list SIGINT SIGTERM))
|
||||
(child-is-pid1? #t)
|
||||
(process-spawned-hook (const #t)))
|
||||
"Run THUNK in a new container process and return its exit status; call
|
||||
PROCESS-SPAWNED-HOOK with the PID of the new process that has been spawned.
|
||||
@@ -340,64 +320,20 @@ can map more than a single uid/gid.
|
||||
GUEST-UID and GUEST-GID specify the first UID (respectively GID) that host
|
||||
UIDs (respectively GIDs) map to in the namespace.
|
||||
|
||||
RELAYED-SIGNALS is the list of signals that are \"relayed\" to the container
|
||||
process when caught by its parent.
|
||||
|
||||
When CHILD-IS-PID1? is true, and if NAMESPACES contains 'pid', then the child
|
||||
process runs directly as PID 1. As such, it is responsible for (1) installing
|
||||
signal handlers and (2) reaping terminated processes by calling 'waitpid'.
|
||||
When CHILD-IS-PID1? is false, a new intermediate process is created instead
|
||||
that takes this responsibility.
|
||||
|
||||
Note that if THUNK needs to load any additional Guile modules, the relevant
|
||||
module files must be present in one of the mappings in MOUNTS and the Guile
|
||||
load path must be adjusted as needed."
|
||||
(define thunk*
|
||||
(if (and (memq 'pid namespaces)
|
||||
(not child-is-pid1?))
|
||||
(lambda ()
|
||||
;; Behave like an init process: create a sub-process that calls
|
||||
;; THUNK, and wait for child processes. Furthermore, forward
|
||||
;; RELAYED-SIGNALS to the child process.
|
||||
(match (primitive-fork)
|
||||
(0
|
||||
(call-with-clean-exit thunk))
|
||||
(pid
|
||||
(install-signal-handlers pid)
|
||||
(let loop ()
|
||||
(match (wait-child-process)
|
||||
((child . status)
|
||||
(if (= child pid)
|
||||
(primitive-exit (status->exit-status status))
|
||||
(loop)))
|
||||
(#f
|
||||
(primitive-exit 128))))))) ;cannot happen
|
||||
thunk))
|
||||
|
||||
(define (periodically-schedule-asyncs)
|
||||
;; XXX: In Guile there's a time window where a signal-handling async could
|
||||
;; be queued without being processed by the time we enter a blocking
|
||||
;; syscall like waitpid(2) (info "(guile) Signals"). This terrible hack
|
||||
;; ensures pending asyncs get a chance to run periodically.
|
||||
(sigaction SIGALRM (lambda _ (alarm 1)))
|
||||
(alarm 1))
|
||||
|
||||
(define (install-signal-handlers pid)
|
||||
;; Install handlers that forward signals to PID.
|
||||
(define (relay-signal signal)
|
||||
(false-if-exception (kill pid signal)))
|
||||
|
||||
(periodically-schedule-asyncs)
|
||||
(for-each (lambda (signal)
|
||||
(sigaction signal relay-signal))
|
||||
relayed-signals))
|
||||
|
||||
(call-with-temporary-directory
|
||||
(lambda (root)
|
||||
(let ((pid (run-container root mounts namespaces host-uids thunk*
|
||||
(let ((pid (run-container root mounts namespaces host-uids thunk
|
||||
#:guest-uid guest-uid
|
||||
#:guest-gid guest-gid)))
|
||||
(install-signal-handlers pid)
|
||||
;; Catch SIGINT and kill the container process.
|
||||
(sigaction SIGINT
|
||||
(lambda (signum)
|
||||
(false-if-exception
|
||||
(kill pid SIGKILL))))
|
||||
|
||||
(process-spawned-hook pid)
|
||||
(match (waitpid pid)
|
||||
((_ . status) status))))))
|
||||
|
||||
+19
-26
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@@ -196,38 +196,31 @@ FILE has not shown up after TIMEOUT seconds, raise an error."
|
||||
(error "file didn't show up" file))))
|
||||
|
||||
(define* (wait-for-tcp-port port marionette
|
||||
#:key
|
||||
(timeout 20)
|
||||
(address `(make-socket-address AF_INET
|
||||
INADDR_LOOPBACK
|
||||
,port)))
|
||||
#:key (timeout 20))
|
||||
"Wait for up to TIMEOUT seconds for PORT to accept connections in
|
||||
MARIONETTE. ADDRESS must be an expression that returns a socket address,
|
||||
typically a call to 'make-socket-address'. Raise an error on failure."
|
||||
MARIONETTE. Raise an error on failure."
|
||||
;; Note: The 'connect' loop has to run within the guest because, when we
|
||||
;; forward ports to the host, connecting to the host never raises
|
||||
;; ECONNREFUSED.
|
||||
(match (marionette-eval
|
||||
`(let* ((address ,address)
|
||||
(sock (socket (sockaddr:fam address) SOCK_STREAM 0)))
|
||||
(let loop ((i 0))
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(connect sock address)
|
||||
(close-port sock)
|
||||
'success)
|
||||
(lambda args
|
||||
(if (< i ,timeout)
|
||||
(begin
|
||||
(sleep 1)
|
||||
(loop (+ 1 i)))
|
||||
(list 'failure address))))))
|
||||
`(begin
|
||||
(let ((sock (socket PF_INET SOCK_STREAM 0)))
|
||||
(let loop ((i 0))
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(connect sock AF_INET INADDR_LOOPBACK ,port)
|
||||
(close-port sock)
|
||||
'success)
|
||||
(lambda args
|
||||
(if (< i ,timeout)
|
||||
(begin
|
||||
(sleep 1)
|
||||
(loop (+ 1 i)))
|
||||
'failure))))))
|
||||
marionette)
|
||||
('success #t)
|
||||
(('failure address)
|
||||
(error "nobody's listening on port"
|
||||
(list (inet-ntop (sockaddr:fam address) (sockaddr:addr address))
|
||||
(sockaddr:port address))))))
|
||||
('failure
|
||||
(error "nobody's listening on port" port))))
|
||||
|
||||
(define* (wait-for-unix-socket file-name marionette
|
||||
#:key (timeout 20))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@@ -47,52 +47,6 @@
|
||||
;; to syslog.
|
||||
#'(format (current-output-port) fmt args ...))))))
|
||||
|
||||
(define-syntax with-modules
|
||||
(syntax-rules ()
|
||||
"Dynamically load the given MODULEs at run time, making the chosen
|
||||
bindings available within the lexical scope of BODY."
|
||||
((_ ((module #:select (bindings ...)) rest ...) body ...)
|
||||
(let* ((iface (resolve-interface 'module))
|
||||
(bindings (module-ref iface 'bindings))
|
||||
...)
|
||||
(with-modules (rest ...) body ...)))
|
||||
((_ () body ...)
|
||||
(begin body ...))))
|
||||
|
||||
(define (wait-for-readable-fd port timeout)
|
||||
"Wait until PORT has data available for reading or TIMEOUT has expired.
|
||||
Return #t in the former case and #f in the latter case."
|
||||
(match (resolve-module '(fibers) #f) ;using Fibers?
|
||||
(#f
|
||||
(log "blocking on socket...~%")
|
||||
(match (select (list port) '() '() timeout)
|
||||
(((_) () ()) #t)
|
||||
((() () ()) #f)))
|
||||
(fibers
|
||||
;; We're running on the Shepherd 0.9+ with Fibers. Arrange to make a
|
||||
;; non-blocking wait so that other fibers can be scheduled in while we
|
||||
;; wait for PORT.
|
||||
(with-modules (((fibers) #:select (spawn-fiber sleep))
|
||||
((fibers channels)
|
||||
#:select (make-channel put-message get-message)))
|
||||
;; Make PORT non-blocking.
|
||||
(let ((flags (fcntl port F_GETFL)))
|
||||
(fcntl port F_SETFL (logior O_NONBLOCK flags)))
|
||||
|
||||
(let ((channel (make-channel)))
|
||||
(spawn-fiber
|
||||
(lambda ()
|
||||
(sleep timeout) ;suspends the fiber
|
||||
(put-message channel 'timeout)))
|
||||
(spawn-fiber
|
||||
(lambda ()
|
||||
(lookahead-u8 port) ;suspends the fiber
|
||||
(put-message channel 'readable)))
|
||||
(log "suspending fiber on socket...~%")
|
||||
(match (get-message channel)
|
||||
('readable #t)
|
||||
('timeout #f)))))))
|
||||
|
||||
(define* (secret-service-send-secrets port secret-root
|
||||
#:key (retry 60)
|
||||
(handshake-timeout 120))
|
||||
@@ -120,10 +74,7 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
|
||||
|
||||
(log "sending secrets to ~a~%" port)
|
||||
(let ((sock (socket AF_INET SOCK_STREAM 0))
|
||||
(addr (make-socket-address AF_INET INADDR_LOOPBACK port))
|
||||
(sleep (if (resolve-module '(fibers) #f)
|
||||
(module-ref (resolve-interface '(fibers)) 'sleep)
|
||||
sleep)))
|
||||
(addr (make-socket-address AF_INET INADDR_LOOPBACK port)))
|
||||
;; Connect to QEMU on the forwarded port. The 'connect' call succeeds as
|
||||
;; soon as QEMU is ready, even if there's no server listening on the
|
||||
;; forward port inside the guest.
|
||||
@@ -142,22 +93,23 @@ wait for at most HANDSHAKE-TIMEOUT seconds for handshake to complete. Return
|
||||
|
||||
;; Wait for "hello" message from the server. This is the only way to know
|
||||
;; that we're really connected to the server inside the guest.
|
||||
(if (wait-for-readable-fd sock handshake-timeout)
|
||||
(match (read sock)
|
||||
(('secret-service-server ('version version ...))
|
||||
(log "sending files from ~s...~%" secret-root)
|
||||
(send-files sock)
|
||||
(log "done sending files to port ~a~%" port)
|
||||
(close-port sock)
|
||||
secret-root)
|
||||
(x
|
||||
(log "invalid handshake ~s~%" x)
|
||||
(close-port sock)
|
||||
#f))
|
||||
(begin ;timeout
|
||||
(log "timeout while sending files to ~a~%" port)
|
||||
(close-port sock)
|
||||
#f))))
|
||||
(match (select (list sock) '() '() handshake-timeout)
|
||||
(((_) () ())
|
||||
(match (read sock)
|
||||
(('secret-service-server ('version version ...))
|
||||
(log "sending files from ~s...~%" secret-root)
|
||||
(send-files sock)
|
||||
(log "done sending files to port ~a~%" port)
|
||||
(close-port sock)
|
||||
secret-root)
|
||||
(x
|
||||
(log "invalid handshake ~s~%" x)
|
||||
(close-port sock)
|
||||
#f)))
|
||||
((() () ()) ;timeout
|
||||
(log "timeout while sending files to ~a~%" port)
|
||||
(close-port sock)
|
||||
#f))))
|
||||
|
||||
(define (delete-file* file)
|
||||
"Ensure FILE does not exist."
|
||||
@@ -250,8 +202,4 @@ and #f otherwise."
|
||||
(close-port port))
|
||||
result))
|
||||
|
||||
;;; Local Variables:
|
||||
;;; eval: (put 'with-modules 'scheme-indent-function 1)
|
||||
;;; End:
|
||||
|
||||
;;; secret-service.scm ends here
|
||||
|
||||
+30
-62
@@ -1,7 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017, 2018, 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
|
||||
;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -31,8 +30,7 @@
|
||||
exec-command
|
||||
%precious-signals)
|
||||
#:autoload (shepherd system) (unblock-signals)
|
||||
#:export (default-mounts
|
||||
make-forkexec-constructor/container
|
||||
#:export (make-forkexec-constructor/container
|
||||
fork+exec-command/container))
|
||||
|
||||
;;; Commentary:
|
||||
@@ -105,13 +103,8 @@
|
||||
separate mount and PID name space. Return the \"outer\" PID. "
|
||||
(match (container-excursion* pid
|
||||
(lambda ()
|
||||
;; XXX: Trick for Shepherd 0.9: prevent 'read-pid-file' from
|
||||
;; using (@ (fibers) sleep), which would try to suspend the
|
||||
;; current task, which doesn't work in this extra process.
|
||||
(with-continuation-barrier
|
||||
(lambda ()
|
||||
(read-pid-file pid-file
|
||||
#:max-delay max-delay)))))
|
||||
(read-pid-file pid-file
|
||||
#:max-delay max-delay)))
|
||||
(#f
|
||||
;; Send SIGTERM to the whole process group.
|
||||
(catch-system-error (kill (- pid) SIGTERM))
|
||||
@@ -121,28 +114,6 @@ separate mount and PID name space. Return the \"outer\" PID. "
|
||||
;; PID is always 1, but that's not what Shepherd needs to know.
|
||||
pid)))
|
||||
|
||||
(define* (exec-command* command #:key user group log-file pid-file
|
||||
(supplementary-groups '())
|
||||
(directory "/") (environment-variables (environ)))
|
||||
"Like 'exec-command', but first restore signal handles modified by
|
||||
shepherd (PID 1)."
|
||||
;; First restore the default handlers.
|
||||
(for-each (cut sigaction <> SIG_DFL) %precious-signals)
|
||||
|
||||
;; Unblock any signals that have been blocked by the parent process.
|
||||
(unblock-signals %precious-signals)
|
||||
|
||||
(mkdir-p "/var/run")
|
||||
(clean-up pid-file)
|
||||
|
||||
(exec-command command
|
||||
#:user user
|
||||
#:group group
|
||||
#:supplementary-groups supplementary-groups
|
||||
#:log-file log-file
|
||||
#:directory directory
|
||||
#:environment-variables environment-variables))
|
||||
|
||||
(define* (make-forkexec-constructor/container command
|
||||
#:key
|
||||
(namespaces
|
||||
@@ -150,7 +121,6 @@ shepherd (PID 1)."
|
||||
(mappings '())
|
||||
(user #f)
|
||||
(group #f)
|
||||
(supplementary-groups '())
|
||||
(log-file #f)
|
||||
pid-file
|
||||
(pid-file-timeout 5)
|
||||
@@ -194,16 +164,24 @@ namespace, in addition to essential bind-mounts such /proc."
|
||||
(let ((pid (run-container container-directory
|
||||
mounts namespaces 1
|
||||
(lambda ()
|
||||
(exec-command* command
|
||||
#:user user
|
||||
#:group group
|
||||
#:supplementary-groups
|
||||
supplementary-groups
|
||||
#:pid-file pid-file
|
||||
#:log-file log-file
|
||||
#:directory directory
|
||||
#:environment-variables
|
||||
environment-variables)))))
|
||||
;; First restore the default handlers.
|
||||
(for-each (cut sigaction <> SIG_DFL)
|
||||
%precious-signals)
|
||||
|
||||
;; Unblock any signals that have been blocked
|
||||
;; by the parent process.
|
||||
(unblock-signals %precious-signals)
|
||||
|
||||
(mkdir-p "/var/run")
|
||||
(clean-up pid-file)
|
||||
|
||||
(exec-command command
|
||||
#:user user
|
||||
#:group group
|
||||
#:log-file log-file
|
||||
#:directory directory
|
||||
#:environment-variables
|
||||
environment-variables)))))
|
||||
(if pid-file
|
||||
(if (or (memq 'mnt namespaces) (memq 'pid namespaces))
|
||||
(read-pid-file/container pid pid-file
|
||||
@@ -231,24 +209,14 @@ on Hurd systems for instance, fallback to direct forking."
|
||||
((head . rest)
|
||||
(loop rest (cons head result))))))
|
||||
|
||||
(let ((container-support? (file-exists? "/proc/self/ns")))
|
||||
(if (and container-support?
|
||||
(not (and pid (= pid (getpid)))))
|
||||
(container-excursion* pid
|
||||
(lambda ()
|
||||
;; Note: In the Shepherd 0.9, 'fork+exec-command' expects to be
|
||||
;; called from the shepherd process (because it creates a pipe to
|
||||
;; capture stdout/stderr and spawns a logging fiber) so we cannot
|
||||
;; use it here.
|
||||
(match (primitive-fork)
|
||||
(0 (dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(apply exec-command* command (strip-pid args)))
|
||||
(lambda ()
|
||||
(primitive-_exit 127))))
|
||||
(pid pid)))) ;XXX: assuming the same PID namespace
|
||||
(apply fork+exec-command command (strip-pid args)))))
|
||||
(let ((container-support?
|
||||
(file-exists? "/proc/self/ns"))
|
||||
(fork-proc (lambda ()
|
||||
(apply fork+exec-command command
|
||||
(strip-pid args)))))
|
||||
(if container-support?
|
||||
(container-excursion* pid fork-proc)
|
||||
(fork-proc))))
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'container-excursion* 'scheme-indent-function 1)
|
||||
|
||||
+13
-2
@@ -55,7 +55,6 @@
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages make-bootstrap)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (guix platform)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system image)
|
||||
#:use-module (gnu system vm)
|
||||
@@ -72,6 +71,7 @@
|
||||
image->job
|
||||
|
||||
%core-packages
|
||||
%cross-targets
|
||||
channel-source->package
|
||||
|
||||
arguments->systems
|
||||
@@ -169,6 +169,17 @@ SYSTEM."
|
||||
(drop-right %core-packages 6)
|
||||
%core-packages))
|
||||
|
||||
(define %cross-targets
|
||||
'("mips64el-linux-gnu"
|
||||
"arm-linux-gnueabihf"
|
||||
"aarch64-linux-gnu"
|
||||
"powerpc-linux-gnu"
|
||||
"powerpc64le-linux-gnu"
|
||||
"riscv64-linux-gnu"
|
||||
"i586-pc-gnu" ;aka. GNU/Hurd
|
||||
"i686-w64-mingw32"
|
||||
"x86_64-w64-mingw32"))
|
||||
|
||||
(define (cross-jobs store system)
|
||||
"Return a list of cross-compilation jobs for SYSTEM."
|
||||
(define (from-32-to-64? target)
|
||||
@@ -210,7 +221,7 @@ SYSTEM."
|
||||
package target system))
|
||||
(packages-to-cross-build target)))
|
||||
(remove (either from-32-to-64? same? pointless?)
|
||||
(targets))))
|
||||
%cross-targets)))
|
||||
|
||||
(define* (guix-jobs store systems #:key source commit)
|
||||
"Return a list of jobs for Guix itself."
|
||||
|
||||
+4
-41
@@ -33,14 +33,12 @@
|
||||
#:use-module (guix modules)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 vlist)
|
||||
|
||||
#:export (home-service-type
|
||||
home-profile-service-type
|
||||
home-environment-variables-service-type
|
||||
home-files-service-type
|
||||
home-xdg-configuration-files-service-type
|
||||
home-xdg-data-files-service-type
|
||||
home-run-on-first-login-service-type
|
||||
home-activation-service-type
|
||||
home-run-on-change-service-type
|
||||
@@ -48,10 +46,8 @@
|
||||
|
||||
home-files-directory
|
||||
xdg-configuration-files-directory
|
||||
xdg-data-files-directory
|
||||
|
||||
fold-home-service-types
|
||||
lookup-home-service-types
|
||||
home-provenance
|
||||
|
||||
%initialize-gettext)
|
||||
@@ -289,10 +285,10 @@ directory containing FILES."
|
||||
(description "Files that will be put in
|
||||
@file{~~/.guix-home/files}, and further processed during activation.")))
|
||||
|
||||
(define xdg-configuration-files-directory ".config")
|
||||
(define xdg-configuration-files-directory "config")
|
||||
|
||||
(define (xdg-configuration-files files)
|
||||
"Add .config/ prefix to each file-path in FILES."
|
||||
"Add config/ prefix to each file-path in FILES."
|
||||
(map (match-lambda
|
||||
((file-path . rest)
|
||||
(cons (string-append xdg-configuration-files-directory "/" file-path)
|
||||
@@ -300,7 +296,7 @@ directory containing FILES."
|
||||
files))
|
||||
|
||||
(define home-xdg-configuration-files-service-type
|
||||
(service-type (name 'home-xdg-configuration)
|
||||
(service-type (name 'home-files)
|
||||
(extensions
|
||||
(list (service-extension home-files-service-type
|
||||
xdg-configuration-files)))
|
||||
@@ -308,30 +304,7 @@ directory containing FILES."
|
||||
(extend append)
|
||||
(default-value '())
|
||||
(description "Files that will be put in
|
||||
@file{~~/.guix-home/files/.config}, and further processed during activation.")))
|
||||
|
||||
(define xdg-data-files-directory ".local/share")
|
||||
|
||||
(define (xdg-data-files files)
|
||||
"Add .local/share prefix to each file-path in FILES."
|
||||
(map (match-lambda
|
||||
((file-path . rest)
|
||||
(cons (string-append xdg-data-files-directory "/" file-path)
|
||||
rest)))
|
||||
files))
|
||||
|
||||
(define home-xdg-data-files-service-type
|
||||
(service-type (name 'home-xdg-data)
|
||||
(extensions
|
||||
(list (service-extension home-files-service-type
|
||||
xdg-data-files)))
|
||||
(compose concatenate)
|
||||
(extend append)
|
||||
(default-value '())
|
||||
(description "Files that will be put in
|
||||
@file{~~/.guix-home/files/.local/share}, and further processed during
|
||||
activation.")))
|
||||
|
||||
@file{~~/.guix-home/files/config}, and further processed during activation.")))
|
||||
|
||||
(define %initialize-gettext
|
||||
#~(begin
|
||||
@@ -607,13 +580,3 @@ environment, and its configuration file, when available.")))
|
||||
|
||||
(define* (fold-home-service-types proc seed)
|
||||
(fold-service-types proc seed (all-home-service-modules)))
|
||||
|
||||
(define lookup-home-service-types
|
||||
(let ((table
|
||||
(delay (fold-home-service-types (lambda (type result)
|
||||
(vhash-consq (service-type-name type)
|
||||
type result))
|
||||
vlist-null))))
|
||||
(lambda (name)
|
||||
"Return the list of services with the given NAME (a symbol)."
|
||||
(vhash-foldq* cons '() name (force table)))))
|
||||
|
||||
@@ -91,26 +91,26 @@ queried for location information.")
|
||||
"Nighttime color temperature (kelvins).")
|
||||
|
||||
(daytime-brightness
|
||||
maybe-inexact-number
|
||||
(maybe-inexact-number 'disabled)
|
||||
"Daytime screen brightness, between 0.1 and 1.0.")
|
||||
(nighttime-brightness
|
||||
maybe-inexact-number
|
||||
(maybe-inexact-number 'disabled)
|
||||
"Nighttime screen brightness, between 0.1 and 1.0.")
|
||||
|
||||
(latitude
|
||||
maybe-inexact-number
|
||||
(maybe-inexact-number 'disabled)
|
||||
"Latitude, when @code{location-provider} is @code{'manual}.")
|
||||
(longitude
|
||||
maybe-inexact-number
|
||||
(maybe-inexact-number 'disabled)
|
||||
"Longitude, when @code{location-provider} is @code{'manual}.")
|
||||
|
||||
(dawn-time
|
||||
maybe-string
|
||||
(maybe-string 'disabled)
|
||||
"Custom time for the transition from night to day in the
|
||||
morning---@code{\"HH:MM\"} format. When specified, solar elevation is not
|
||||
used to determine the daytime/nighttime period.")
|
||||
(dusk-time
|
||||
maybe-string
|
||||
(maybe-string 'disabled)
|
||||
"Likewise, custom time for the transition from day to night in the
|
||||
evening.")
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ user's customizations. Extend home-shell-profile service only if you
|
||||
really know what you do."))
|
||||
|
||||
(define (add-shell-profile-file config)
|
||||
`((".profile"
|
||||
`(("profile"
|
||||
,(mixed-text-file
|
||||
"shell-profile"
|
||||
"\
|
||||
@@ -211,18 +211,18 @@ source ~/.profile
|
||||
(zsh-serialize-field config field)))))
|
||||
|
||||
(define (zsh-get-configuration-files config)
|
||||
`((".zprofile" ,(zsh-file-by-field config 'zprofile)) ;; Always non-empty
|
||||
,@(if (or (zsh-field-not-empty? config 'zshenv)
|
||||
(zsh-field-not-empty? config 'environment-variables))
|
||||
`((".zshenv" ,(zsh-file-by-field config 'zshenv))) '())
|
||||
`(("zprofile" ,(zsh-file-by-field config 'zprofile)) ;; Always non-empty
|
||||
,@(if (and (zsh-field-not-empty? config 'zshenv)
|
||||
(zsh-field-not-empty? config 'environment-variables))
|
||||
`(("zshenv" ,(zsh-file-by-field config 'zshenv))) '())
|
||||
,@(if (zsh-field-not-empty? config 'zshrc)
|
||||
`((".zshrc" ,(zsh-file-by-field config 'zshrc))) '())
|
||||
`(("zshrc" ,(zsh-file-by-field config 'zshrc))) '())
|
||||
,@(if (zsh-field-not-empty? config 'zlogin)
|
||||
`((".zlogin" ,(zsh-file-by-field config 'zlogin))) '())
|
||||
`(("zlogin" ,(zsh-file-by-field config 'zlogin))) '())
|
||||
,@(if (zsh-field-not-empty? config 'zlogout)
|
||||
`((".zlogout" ,(zsh-file-by-field config 'zlogout))) '())))
|
||||
`(("zlogout" ,(zsh-file-by-field config 'zlogout))) '())))
|
||||
|
||||
(define (add-zsh-dot-configuration config)
|
||||
(define (zsh-home-files config)
|
||||
(define zshenv-auxiliary-file
|
||||
(mixed-text-file
|
||||
"zshenv-auxiliary"
|
||||
@@ -230,14 +230,14 @@ source ~/.profile
|
||||
"[[ -f $ZDOTDIR/.zshenv ]] && source $ZDOTDIR/.zshenv\n"))
|
||||
|
||||
(if (home-zsh-configuration-xdg-flavor? config)
|
||||
`((".zshenv" ,zshenv-auxiliary-file))
|
||||
`(("zshenv" ,zshenv-auxiliary-file))
|
||||
(zsh-get-configuration-files config)))
|
||||
|
||||
(define (add-zsh-xdg-configuration config)
|
||||
(define (zsh-xdg-configuration-files config)
|
||||
(if (home-zsh-configuration-xdg-flavor? config)
|
||||
(map
|
||||
(lambda (lst)
|
||||
(cons (string-append "zsh/" (car lst))
|
||||
(cons (string-append "zsh/." (car lst))
|
||||
(cdr lst)))
|
||||
(zsh-get-configuration-files config))
|
||||
'()))
|
||||
@@ -298,10 +298,10 @@ source ~/.profile
|
||||
(extensions
|
||||
(list (service-extension
|
||||
home-files-service-type
|
||||
add-zsh-dot-configuration)
|
||||
zsh-home-files)
|
||||
(service-extension
|
||||
home-xdg-configuration-files-service-type
|
||||
add-zsh-xdg-configuration)
|
||||
zsh-xdg-configuration-files)
|
||||
(service-extension
|
||||
home-profile-service-type
|
||||
add-zsh-packages)))
|
||||
@@ -430,7 +430,7 @@ alias grep='grep --color=auto'\n")
|
||||
(field-obj (car (filter-fields field))))
|
||||
(if (or extra-content
|
||||
(not (null? ((configuration-field-getter field-obj) config))))
|
||||
`(,(string-append "." (object->snake-case-string file-name))
|
||||
`(,(object->snake-case-string file-name)
|
||||
,(apply mixed-text-file
|
||||
(object->snake-case-string file-name)
|
||||
(append (or extra-content '())
|
||||
@@ -439,7 +439,7 @@ alias grep='grep --color=auto'\n")
|
||||
|
||||
(filter
|
||||
(compose not null?)
|
||||
`((".bash_profile"
|
||||
`(("bash_profile"
|
||||
,(mixed-text-file
|
||||
"bash_profile"
|
||||
"\
|
||||
@@ -555,9 +555,9 @@ with text blocks from other extensions and the base service."))
|
||||
((key . #f)
|
||||
"")
|
||||
((key . #t)
|
||||
#~(string-append "set -x " #$key "\n"))
|
||||
#~(string-append "set " #$key "\n"))
|
||||
((key . value)
|
||||
#~(string-append "set -x " #$key " " #$value "\n")))
|
||||
#~(string-append "set " #$key " " #$value "\n")))
|
||||
val)))
|
||||
|
||||
(define-configuration home-fish-configuration
|
||||
@@ -586,7 +586,7 @@ when typed in the shell, will automatically expand to the full text."
|
||||
serialize-fish-abbreviations))
|
||||
|
||||
(define (fish-files-service config)
|
||||
`(("fish/config.fish"
|
||||
`(("config/fish/config.fish"
|
||||
,(mixed-text-file
|
||||
"fish-config.fish"
|
||||
#~(string-append "\
|
||||
@@ -650,7 +650,7 @@ end\n\n")
|
||||
(service-type (name 'home-fish)
|
||||
(extensions
|
||||
(list (service-extension
|
||||
home-xdg-configuration-files-service-type
|
||||
home-files-service-type
|
||||
fish-files-service)
|
||||
(service-extension
|
||||
home-profile-service-type
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
home-shepherd-configuration make-home-shepherd-configuration
|
||||
home-shepherd-configuration?
|
||||
(shepherd home-shepherd-configuration-shepherd
|
||||
(default shepherd-0.9)) ; package
|
||||
(default shepherd)) ; package
|
||||
(auto-start? home-shepherd-configuration-auto-start?
|
||||
(default #t))
|
||||
(services home-shepherd-configuration-services
|
||||
@@ -78,16 +78,12 @@ as shepherd package."
|
||||
'#$files))
|
||||
(action 'root 'daemonize)
|
||||
(format #t "Starting services...~%")
|
||||
(let ((services-to-start
|
||||
'#$(append-map shepherd-service-provision
|
||||
(filter shepherd-service-auto-start?
|
||||
services))))
|
||||
(if (defined? 'start-in-the-background)
|
||||
(start-in-the-background services-to-start)
|
||||
(for-each start services-to-start))
|
||||
|
||||
(redirect-port (open-input-file "/dev/null")
|
||||
(current-input-port)))))
|
||||
(for-each
|
||||
(lambda (service) (start service))
|
||||
'#$(append-map shepherd-service-provision
|
||||
(filter shepherd-service-auto-start?
|
||||
services)))
|
||||
(newline)))
|
||||
|
||||
(scheme-file "shepherd.conf" config)))
|
||||
|
||||
@@ -96,21 +92,17 @@ as shepherd package."
|
||||
(services (home-shepherd-configuration-services config)))
|
||||
(if (home-shepherd-configuration-auto-start? config)
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(unless (file-exists?
|
||||
(string-append
|
||||
(or (getenv "XDG_RUNTIME_DIR")
|
||||
(format #f "/run/user/~a" (getuid)))
|
||||
"/shepherd/socket"))
|
||||
(let ((log-dir (or (getenv "XDG_LOG_HOME")
|
||||
(format #f "~a/.local/var/log"
|
||||
(getenv "HOME")))))
|
||||
((@ (guix build utils) mkdir-p) log-dir)
|
||||
(system*
|
||||
#$(file-append shepherd "/bin/shepherd")
|
||||
"--logfile"
|
||||
(string-append log-dir "/shepherd.log")
|
||||
"--config"
|
||||
#$(home-shepherd-configuration-file services shepherd)))))
|
||||
#~(let ((log-dir (or (getenv "XDG_LOG_HOME")
|
||||
(format #f "~a/.local/var/log" (getenv "HOME")))))
|
||||
((@ (guix build utils) mkdir-p) log-dir)
|
||||
(system*
|
||||
#$(file-append shepherd "/bin/shepherd")
|
||||
"--logfile"
|
||||
(string-append
|
||||
log-dir
|
||||
"/shepherd.log")
|
||||
"--config"
|
||||
#$(home-shepherd-configuration-file services shepherd))))
|
||||
#~"")))
|
||||
|
||||
(define (reload-configuration-gexp config)
|
||||
|
||||
@@ -1,254 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu home services ssh)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix diagnostics)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services configuration)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (gnu home services)
|
||||
#:use-module ((gnu home services utils)
|
||||
#:select (object->camel-case-string))
|
||||
#:autoload (gnu packages base) (glibc-utf8-locales)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (home-openssh-configuration
|
||||
home-openssh-configuration-authorized-keys
|
||||
home-openssh-configuration-known-hosts
|
||||
home-openssh-configuration-hosts
|
||||
|
||||
openssh-host
|
||||
openssh-host-host-name
|
||||
openssh-host-identity-file
|
||||
openssh-host-name
|
||||
openssh-host-port
|
||||
openssh-host-user
|
||||
openssh-host-forward-x11?
|
||||
openssh-host-forward-x11-trusted?
|
||||
openssh-host-forward-agent?
|
||||
openssh-host-compression?
|
||||
openssh-host-proxy-command
|
||||
openssh-host-host-key-algorithms
|
||||
openssh-host-accepted-key-types
|
||||
openssh-host-extra-content
|
||||
|
||||
home-openssh-service-type))
|
||||
|
||||
(define (serialize-field-name name)
|
||||
(match name
|
||||
('accepted-key-types "PubkeyAcceptedKeyTypes")
|
||||
(_
|
||||
(let ((name (let ((str (symbol->string name)))
|
||||
(if (string-suffix? "?" str)
|
||||
(string->symbol (string-drop-right str 1))
|
||||
name))))
|
||||
(object->camel-case-string name 'upper)))))
|
||||
|
||||
(define (serialize-string field value)
|
||||
(string-append " " (serialize-field-name field)
|
||||
" " value "\n"))
|
||||
|
||||
(define (address-family? obj)
|
||||
(memv obj (list *unspecified* AF_INET AF_INET6)))
|
||||
|
||||
(define (serialize-address-family field family)
|
||||
(if (unspecified? family)
|
||||
""
|
||||
(string-append " " (serialize-field-name field) " "
|
||||
(cond ((= family AF_INET) "inet")
|
||||
((= family AF_INET6) "inet6")
|
||||
;; The 'else' branch is unreachable.
|
||||
(else (raise (condition (&error)))))
|
||||
"\n")))
|
||||
|
||||
(define (natural-number? obj)
|
||||
(and (integer? obj) (exact? obj) (> obj 0)))
|
||||
|
||||
(define (serialize-natural-number field value)
|
||||
(string-append " " (serialize-field-name field) " "
|
||||
(number->string value) "\n"))
|
||||
|
||||
(define (serialize-boolean field value)
|
||||
(string-append " " (serialize-field-name field) " "
|
||||
(if value "yes" "no") "\n"))
|
||||
|
||||
(define-maybe string)
|
||||
(define-maybe natural-number)
|
||||
|
||||
(define (serialize-raw-configuration-string field value)
|
||||
(string-append value "\n"))
|
||||
(define raw-configuration-string? string?)
|
||||
|
||||
(define (string-list? lst)
|
||||
(and (pair? lst) (every string? lst)))
|
||||
(define (serialize-string-list field lst)
|
||||
(string-append " " (serialize-field-name field) " "
|
||||
(string-join lst ",") "\n"))
|
||||
|
||||
(define-maybe string-list)
|
||||
|
||||
(define-configuration openssh-host
|
||||
(name
|
||||
(string)
|
||||
"Name of this host declaration.")
|
||||
(host-name
|
||||
maybe-string
|
||||
"Host name---e.g., @code{\"foo.example.org\"} or @code{\"192.168.1.2\"}.")
|
||||
(address-family
|
||||
address-family
|
||||
"Address family to use when connecting to this host: one of
|
||||
@code{AF_INET} (for IPv4 only), @code{AF_INET6} (for IPv6 only), or
|
||||
@code{*unspecified*} (allowing any address family).")
|
||||
(identity-file
|
||||
maybe-string
|
||||
"The identity file to use---e.g.,
|
||||
@code{\"/home/charlie/.ssh/id_ed25519\"}.")
|
||||
(port
|
||||
maybe-natural-number
|
||||
"TCP port number to connect to.")
|
||||
(user
|
||||
maybe-string
|
||||
"User name on the remote host.")
|
||||
(forward-x11?
|
||||
(boolean #f)
|
||||
"Whether to forward remote client connections to the local X11 graphical
|
||||
display.")
|
||||
(forward-x11-trusted?
|
||||
(boolean #f)
|
||||
"Whether remote X11 clients have full access to the original X11 graphical
|
||||
display.")
|
||||
(forward-agent?
|
||||
(boolean #f)
|
||||
"Whether the authentication agent (if any) is forwarded to the remote
|
||||
machine.")
|
||||
(compression?
|
||||
(boolean #f)
|
||||
"Whether to compress data in transit.")
|
||||
(proxy-command
|
||||
maybe-string
|
||||
"The command to use to connect to the server. As an example, a command
|
||||
to connect via an HTTP proxy at 192.0.2.0 would be: @code{\"nc -X
|
||||
connect -x 192.0.2.0:8080 %h %p\"}.")
|
||||
(host-key-algorithms
|
||||
maybe-string-list
|
||||
"The list of accepted host key algorithms---e.g.,
|
||||
@code{'(\"ssh-ed25519\")}.")
|
||||
(accepted-key-types
|
||||
maybe-string-list
|
||||
"The list of accepted user public key types.")
|
||||
(extra-content
|
||||
(raw-configuration-string "")
|
||||
"Extra content appended as-is to this @code{Host} block in
|
||||
@file{~/.ssh/config}."))
|
||||
|
||||
(define (serialize-openssh-host config)
|
||||
(define (openssh-host-name-field? field)
|
||||
(eq? (configuration-field-name field) 'name))
|
||||
|
||||
(string-append
|
||||
"Host " (openssh-host-name config) "\n"
|
||||
(string-concatenate
|
||||
(map (lambda (field)
|
||||
((configuration-field-serializer field)
|
||||
(configuration-field-name field)
|
||||
((configuration-field-getter field) config)))
|
||||
(remove openssh-host-name-field?
|
||||
openssh-host-fields)))))
|
||||
|
||||
(define-record-type* <home-openssh-configuration>
|
||||
home-openssh-configuration make-home-openssh-configuration
|
||||
home-openssh-configuration?
|
||||
(authorized-keys home-openssh-configuration-authorized-keys ;list of file-like
|
||||
(default '()))
|
||||
(known-hosts home-openssh-configuration-known-hosts ;unspec | list of file-like
|
||||
(default *unspecified*))
|
||||
(hosts home-openssh-configuration-hosts ;list of <openssh-host>
|
||||
(default '())))
|
||||
|
||||
(define (openssh-configuration->string config)
|
||||
(string-join (map serialize-openssh-host
|
||||
(home-openssh-configuration-hosts config))
|
||||
"\n"))
|
||||
|
||||
(define* (file-join name files #:optional (delimiter " "))
|
||||
"Return a file in the store called @var{name} that is the concatenation
|
||||
of all the file-like objects listed in @var{files}, with @var{delimited}
|
||||
inserted after each of them."
|
||||
(computed-file name
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
;; Support non-ASCII file names.
|
||||
(setenv "GUIX_LOCPATH"
|
||||
#+(file-append glibc-utf8-locales
|
||||
"/lib/locale"))
|
||||
(setlocale LC_ALL "en_US.utf8")
|
||||
|
||||
(call-with-output-file #$output
|
||||
(lambda (output)
|
||||
(for-each (lambda (file)
|
||||
(call-with-input-file file
|
||||
(lambda (input)
|
||||
(dump-port input output)))
|
||||
(display #$delimiter output))
|
||||
'#$files)))))))
|
||||
|
||||
(define (openssh-configuration-files config)
|
||||
(let ((config (plain-file "ssh.conf"
|
||||
(openssh-configuration->string config)))
|
||||
(known-hosts (home-openssh-configuration-known-hosts config))
|
||||
(authorized-keys (file-join
|
||||
"authorized_keys"
|
||||
(home-openssh-configuration-authorized-keys config)
|
||||
"\n")))
|
||||
`((".ssh/authorized_keys" ,authorized-keys)
|
||||
,@(if (unspecified? known-hosts)
|
||||
'()
|
||||
`((".ssh/known_hosts"
|
||||
,(file-join "known_hosts" known-hosts "\n"))))
|
||||
(".ssh/config" ,config))))
|
||||
|
||||
(define openssh-activation
|
||||
(with-imported-modules (source-module-closure
|
||||
'((gnu build activation)))
|
||||
#~(begin
|
||||
(use-modules (gnu build activation))
|
||||
|
||||
;; Make sure ~/.ssh is #o700.
|
||||
(let* ((home (getenv "HOME"))
|
||||
(dot-ssh (string-append home "/.ssh")))
|
||||
(mkdir-p/perms dot-ssh (getpw (getuid)) #o700)))))
|
||||
|
||||
(define home-openssh-service-type
|
||||
(service-type
|
||||
(name 'home-openssh)
|
||||
(extensions
|
||||
(list (service-extension home-files-service-type
|
||||
openssh-configuration-files)
|
||||
(service-extension home-activation-service-type
|
||||
(const openssh-activation))))
|
||||
(description "Configure the OpenSSH @acronym{SSH, secure shell} client
|
||||
by providing a @file{~/.ssh/config} file, which is honored by the OpenSSH
|
||||
client,@command{ssh}, and by other tools such as @command{guix deploy}.")
|
||||
(default-value (home-openssh-configuration))))
|
||||
@@ -54,10 +54,6 @@
|
||||
(or (getenv "XDG_CONFIG_HOME")
|
||||
(string-append (getenv "HOME") "/.config")))
|
||||
|
||||
(define xdg-data-home
|
||||
(or (getenv "XDG_DATA_HOME")
|
||||
(string-append (getenv "HOME") "/.local/share")))
|
||||
|
||||
(define backup-directory
|
||||
(string-append home-directory "/" (number->string (current-time))
|
||||
"-guix-home-legacy-configs-backup"))
|
||||
@@ -65,30 +61,19 @@
|
||||
(define (preprocess-file file)
|
||||
"If file is in XDG-CONFIGURATION-FILES-DIRECTORY use
|
||||
subdirectory from XDG_CONFIG_HOME to generate a target path."
|
||||
(cond
|
||||
((string-prefix? #$xdg-configuration-files-directory file)
|
||||
(string-append
|
||||
(substring xdg-config-home
|
||||
(1+ (string-length home-directory)))
|
||||
(substring file
|
||||
(string-length #$xdg-configuration-files-directory))))
|
||||
((string-prefix? #$xdg-data-files-directory file)
|
||||
(string-append
|
||||
(substring xdg-data-home
|
||||
(1+ (string-length home-directory)))
|
||||
(substring file
|
||||
(string-length #$xdg-data-files-directory))))
|
||||
(else file)))
|
||||
(if (string-prefix? #$xdg-configuration-files-directory file)
|
||||
(string-append
|
||||
(substring xdg-config-home
|
||||
(1+ (string-length home-directory)))
|
||||
(substring file
|
||||
(string-length #$xdg-configuration-files-directory)))
|
||||
(string-append "." file)))
|
||||
|
||||
(define (target-file file)
|
||||
;; Return the target of FILE, a config file name sans leading dot
|
||||
;; such as "config/fontconfig/fonts.conf" or "bashrc".
|
||||
(string-append home-directory "/" (preprocess-file file)))
|
||||
|
||||
(define (no-follow-file-exists? file)
|
||||
"Return #t if file exists, even if it's a dangling symlink."
|
||||
(->bool (false-if-exception (lstat file))))
|
||||
|
||||
(define (symlink-to-store? file)
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
@@ -127,7 +112,7 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
|
||||
(const #t)
|
||||
(lambda (file stat _) ;leaf
|
||||
(let ((file (target-file (strip file))))
|
||||
(when (no-follow-file-exists? file)
|
||||
(when (file-exists? file)
|
||||
;; DO NOT remove the file if it is no longer a symlink to
|
||||
;; the store, it will be backed up later during
|
||||
;; create-symlinks phase.
|
||||
@@ -157,7 +142,6 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
|
||||
#t
|
||||
(G_ "Skipping ~a (not an empty directory)... done\n")
|
||||
directory))
|
||||
((= ENOENT errno) #t)
|
||||
((= ENOTDIR errno) #t)
|
||||
(else
|
||||
(apply throw args)))))))))
|
||||
@@ -187,7 +171,7 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
|
||||
(lambda (file stat result) ;leaf
|
||||
(let ((source (source-file (strip file)))
|
||||
(target (target-file (strip file))))
|
||||
(when (no-follow-file-exists? target)
|
||||
(when (file-exists? target)
|
||||
(backup-file (strip file)))
|
||||
(format #t (G_ "Symlinking ~a -> ~a...")
|
||||
target source)
|
||||
@@ -196,7 +180,7 @@ subdirectory from XDG_CONFIG_HOME to generate a target path."
|
||||
(lambda (directory stat result) ;down
|
||||
(unless (string=? directory config-file-directory)
|
||||
(let ((target (target-file (strip directory))))
|
||||
(when (and (no-follow-file-exists? target)
|
||||
(when (and (file-exists? target)
|
||||
(not (file-is-directory? target)))
|
||||
(backup-file (strip directory)))
|
||||
|
||||
|
||||
@@ -421,8 +421,7 @@ that the application cannot open the specified MIME type.")
|
||||
(define (add-xdg-desktop-entry-file entry)
|
||||
(let ((file (first entry))
|
||||
(config (second entry)))
|
||||
;; TODO: Use xdg-data-files instead of home-files here
|
||||
(list (format #f "applications/~a" file)
|
||||
(list (format #f "local/share/applications/~a" file)
|
||||
(apply mixed-text-file
|
||||
(format #f "xdg-desktop-~a-entry" file)
|
||||
config))))
|
||||
@@ -469,7 +468,7 @@ that the application cannot open the specified MIME type.")
|
||||
(service-type (name 'home-xdg-mime-applications)
|
||||
(extensions
|
||||
(list (service-extension
|
||||
home-xdg-data-files-service-type
|
||||
home-files-service-type
|
||||
home-xdg-mime-applications-files)
|
||||
(service-extension
|
||||
home-xdg-configuration-files-service-type
|
||||
|
||||
+4
-28
@@ -17,12 +17,8 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu image)
|
||||
#:use-module (guix platform)
|
||||
#:use-module (gnu platform)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix diagnostics)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:export (partition
|
||||
partition?
|
||||
partition-device
|
||||
@@ -74,38 +70,19 @@
|
||||
(label partition-label (default #f))
|
||||
(uuid partition-uuid (default #f))
|
||||
(flags partition-flags (default '()))
|
||||
(initializer partition-initializer (default #f))) ;gexp | #f
|
||||
(initializer partition-initializer (default #f)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Image record.
|
||||
;;;
|
||||
|
||||
(define-syntax-rule (define-set-sanitizer name field set)
|
||||
"Define NAME as a procedure or macro that raises an error if passed a value
|
||||
that is not in SET, mentioning FIELD in the error message."
|
||||
(define-with-syntax-properties (name (value properties))
|
||||
(unless (memq value 'set)
|
||||
(raise
|
||||
(make-compound-condition
|
||||
(condition
|
||||
(&error-location
|
||||
(location (source-properties->location properties))))
|
||||
(formatted-message (G_ "~s: invalid '~a' value") value 'field))))
|
||||
value))
|
||||
|
||||
(define-set-sanitizer validate-image-format format
|
||||
(disk-image compressed-qcow2 docker iso9660))
|
||||
(define-set-sanitizer validate-partition-table-type partition-table-type
|
||||
(mbr gpt))
|
||||
|
||||
(define-record-type* <image>
|
||||
image make-image
|
||||
image?
|
||||
(name image-name ;symbol
|
||||
(default #f))
|
||||
(format image-format ;symbol
|
||||
(sanitize validate-image-format))
|
||||
(format image-format) ;symbol
|
||||
(platform image-platform ;<platform>
|
||||
(default #f))
|
||||
(size image-size ;size in bytes as integer
|
||||
@@ -113,8 +90,7 @@ that is not in SET, mentioning FIELD in the error message."
|
||||
(operating-system image-operating-system ;<operating-system>
|
||||
(default #f))
|
||||
(partition-table-type image-partition-table-type ; 'mbr or 'gpt
|
||||
(default 'mbr)
|
||||
(sanitize validate-partition-table-type))
|
||||
(default 'mbr))
|
||||
(partitions image-partitions ;list of <partition>
|
||||
(default '()))
|
||||
(compression? image-compression? ;boolean
|
||||
|
||||
+18
-31
@@ -40,9 +40,6 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
|
||||
(define (pad-label label)
|
||||
(string-pad-right label 25))
|
||||
|
||||
(define (root-account? name)
|
||||
(string=? name "root"))
|
||||
|
||||
(let* ((label-name
|
||||
(make-label -1 -1 (pad-label (G_ "Name"))))
|
||||
(label-real-name
|
||||
@@ -119,14 +116,10 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
|
||||
GRID-ELEMENT-SUBGRID button-grid)
|
||||
title)
|
||||
|
||||
(let ((error-empty-field-page
|
||||
(let ((error-page
|
||||
(lambda ()
|
||||
(run-error-page (G_ "Empty inputs are not allowed.")
|
||||
(G_ "Empty input"))))
|
||||
(error-root-page
|
||||
(lambda ()
|
||||
(run-error-page (G_ "Root account is automatically created.")
|
||||
(G_ "Root account")))))
|
||||
(G_ "Empty input")))))
|
||||
(receive (exit-reason argument)
|
||||
(run-form form)
|
||||
(dynamic-wind
|
||||
@@ -139,28 +132,22 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
|
||||
(real-name (entry-value entry-real-name))
|
||||
(home-directory (entry-value entry-home-directory))
|
||||
(password (entry-value entry-password)))
|
||||
(cond
|
||||
;; Empty field.
|
||||
((or (string=? name "")
|
||||
(string=? home-directory ""))
|
||||
(error-empty-field-page)
|
||||
(run-user-add-page))
|
||||
;; Reject root account.
|
||||
((root-account? name)
|
||||
(error-root-page)
|
||||
(run-user-add-page))
|
||||
(else
|
||||
(let ((password (confirm-password password)))
|
||||
(if password
|
||||
(user
|
||||
(name name)
|
||||
(real-name real-name)
|
||||
(home-directory home-directory)
|
||||
(password (make-secret password)))
|
||||
(run-user-add-page #:name name
|
||||
#:real-name real-name
|
||||
#:home-directory
|
||||
home-directory))))))))))
|
||||
(if (or (string=? name "")
|
||||
(string=? home-directory ""))
|
||||
(begin
|
||||
(error-page)
|
||||
(run-user-add-page))
|
||||
(let ((password (confirm-password password)))
|
||||
(if password
|
||||
(user
|
||||
(name name)
|
||||
(real-name real-name)
|
||||
(home-directory home-directory)
|
||||
(password (make-secret password)))
|
||||
(run-user-add-page #:name name
|
||||
#:real-name real-name
|
||||
#:home-directory
|
||||
home-directory)))))))))
|
||||
(lambda ()
|
||||
(destroy-form-and-pop form)))))))
|
||||
|
||||
|
||||
+71
-65
@@ -1,6 +1,6 @@
|
||||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2012-2021, 2021-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022 Andreas Enge <andreas@enge.fr>
|
||||
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 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>
|
||||
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
@@ -49,7 +49,6 @@
|
||||
# Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
# Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
|
||||
# Copyright © 2022 Remco van 't Veer <remco@remworks.net>
|
||||
# Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
@@ -85,11 +84,11 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/home/services/fontutils.scm \
|
||||
%D%/home/services/shells.scm \
|
||||
%D%/home/services/shepherd.scm \
|
||||
%D%/home/services/ssh.scm \
|
||||
%D%/home/services/mcron.scm \
|
||||
%D%/home/services/utils.scm \
|
||||
%D%/home/services/xdg.scm \
|
||||
%D%/image.scm \
|
||||
%D%/platform.scm \
|
||||
%D%/packages.scm \
|
||||
%D%/packages/abduco.scm \
|
||||
%D%/packages/abiword.scm \
|
||||
@@ -120,7 +119,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/autotools.scm \
|
||||
%D%/packages/avahi.scm \
|
||||
%D%/packages/avr.scm \
|
||||
%D%/packages/avr-xyz.scm \
|
||||
%D%/packages/axoloti.scm \
|
||||
%D%/packages/backup.scm \
|
||||
%D%/packages/base.scm \
|
||||
@@ -182,7 +180,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/cvassistant.scm \
|
||||
%D%/packages/cybersecurity.scm \
|
||||
%D%/packages/cyrus-sasl.scm \
|
||||
%D%/packages/darwin.scm \
|
||||
%D%/packages/databases.scm \
|
||||
%D%/packages/datamash.scm \
|
||||
%D%/packages/datastructures.scm \
|
||||
@@ -192,7 +189,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/debian.scm \
|
||||
%D%/packages/debug.scm \
|
||||
%D%/packages/dejagnu.scm \
|
||||
%D%/packages/dezyne.scm \
|
||||
%D%/packages/dhall.scm \
|
||||
%D%/packages/dico.scm \
|
||||
%D%/packages/dictionaries.scm \
|
||||
@@ -476,7 +472,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/phabricator.scm \
|
||||
%D%/packages/php.scm \
|
||||
%D%/packages/piet.scm \
|
||||
%D%/packages/pikchr.scm \
|
||||
%D%/packages/pkg-config.scm \
|
||||
%D%/packages/plan9.scm \
|
||||
%D%/packages/plotutils.scm \
|
||||
@@ -614,6 +609,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/web-browsers.scm \
|
||||
%D%/packages/webkit.scm \
|
||||
%D%/packages/wget.scm \
|
||||
%D%/packages/wicd.scm \
|
||||
%D%/packages/wine.scm \
|
||||
%D%/packages/wireservice.scm \
|
||||
%D%/packages/wm.scm \
|
||||
@@ -631,6 +627,9 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/zile.scm \
|
||||
%D%/packages/zwave.scm \
|
||||
\
|
||||
%D%/platforms/arm.scm \
|
||||
%D%/platforms/hurd.scm \
|
||||
\
|
||||
%D%/services.scm \
|
||||
%D%/services/admin.scm \
|
||||
%D%/services/audio.scm \
|
||||
@@ -717,7 +716,6 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/build/bootloader.scm \
|
||||
%D%/build/chromium-extension.scm \
|
||||
%D%/build/cross-toolchain.scm \
|
||||
%D%/build/dbus-service.scm \
|
||||
%D%/build/image.scm \
|
||||
%D%/build/jami-service.scm \
|
||||
%D%/build/file-systems.scm \
|
||||
@@ -828,6 +826,8 @@ MODULES_NOT_COMPILED += \
|
||||
|
||||
patchdir = $(guilemoduledir)/%D%/packages/patches
|
||||
dist_patch_DATA = \
|
||||
%D%/packages/patches/4store-fix-buildsystem.patch \
|
||||
%D%/packages/patches/4store-unset-preprocessor-directive.patch \
|
||||
%D%/packages/patches/a2ps-CVE-2001-1593.patch \
|
||||
%D%/packages/patches/a2ps-CVE-2014-0466.patch \
|
||||
%D%/packages/patches/a2ps-CVE-2015-8107.patch \
|
||||
@@ -851,6 +851,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/akonadi-not-relocatable.patch \
|
||||
%D%/packages/patches/akonadi-timestamps.patch \
|
||||
%D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \
|
||||
%D%/packages/patches/alpine-fix-privacy-policy-crash.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 \
|
||||
@@ -916,7 +917,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/bloomberg-bde-cmake-module-path.patch \
|
||||
%D%/packages/patches/bloomberg-bde-tools-fix-install-path.patch \
|
||||
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
|
||||
%D%/packages/patches/breezy-fix-gio.patch \
|
||||
%D%/packages/patches/byobu-writable-status.patch \
|
||||
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
|
||||
%D%/packages/patches/cabal-install-base16-bytestring1.0.patch \
|
||||
@@ -926,6 +926,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/calibre-no-updates-dialog.patch \
|
||||
%D%/packages/patches/calibre-remove-test-sqlite.patch \
|
||||
%D%/packages/patches/calibre-remove-test-unrar.patch \
|
||||
%D%/packages/patches/casync-renameat2-declaration.patch \
|
||||
%D%/packages/patches/catdoc-CVE-2017-11110.patch \
|
||||
%D%/packages/patches/circos-remove-findbin.patch \
|
||||
%D%/packages/patches/cdparanoia-fpic.patch \
|
||||
@@ -950,7 +951,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/clang-11.0-libc-search-path.patch \
|
||||
%D%/packages/patches/clang-12.0-libc-search-path.patch \
|
||||
%D%/packages/patches/clang-13.0-libc-search-path.patch \
|
||||
%D%/packages/patches/clang-14.0-libc-search-path.patch \
|
||||
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \
|
||||
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \
|
||||
%D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \
|
||||
@@ -962,7 +962,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/cling-use-shared-library.patch \
|
||||
%D%/packages/patches/clucene-pkgconfig.patch \
|
||||
%D%/packages/patches/cmake-curl-certificates.patch \
|
||||
%D%/packages/patches/cmh-support-fplll.patch \
|
||||
%D%/packages/patches/coda-use-system-libs.patch \
|
||||
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
|
||||
%D%/packages/patches/combinatorial-blas-awpm.patch \
|
||||
@@ -977,7 +976,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/crda-optional-gcrypt.patch \
|
||||
%D%/packages/patches/clucene-contribs-lib.patch \
|
||||
%D%/packages/patches/cube-nocheck.patch \
|
||||
%D%/packages/patches/curl-easy-lock.patch \
|
||||
%D%/packages/patches/curl-use-ssl-cert-env.patch \
|
||||
%D%/packages/patches/cursynth-wave-rand.patch \
|
||||
%D%/packages/patches/cvs-CVE-2017-12836.patch \
|
||||
@@ -992,6 +990,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/dbus-c++-gcc-compat.patch \
|
||||
%D%/packages/patches/dbus-c++-threading-mutex.patch \
|
||||
%D%/packages/patches/dbxfs-remove-sentry-sdk.patch \
|
||||
%D%/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch \
|
||||
%D%/packages/patches/dealii-fix-sundials.patch \
|
||||
%D%/packages/patches/debops-constants-for-external-program-names.patch \
|
||||
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
|
||||
%D%/packages/patches/dee-vapi.patch \
|
||||
@@ -1005,6 +1005,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/docbook-xsl-support-old-url.patch \
|
||||
%D%/packages/patches/doc++-include-directives.patch \
|
||||
%D%/packages/patches/doc++-segfault-fix.patch \
|
||||
%D%/packages/patches/docker-fix-tests.patch \
|
||||
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
|
||||
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
|
||||
%D%/packages/patches/dstat-skip-devices-without-io.patch \
|
||||
@@ -1014,34 +1015,29 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ecl-16-ignore-stderr-write-error.patch \
|
||||
%D%/packages/patches/ecl-16-libffi.patch \
|
||||
%D%/packages/patches/efibootmgr-remove-extra-decl.patch \
|
||||
%D%/packages/patches/efivar-211.patch \
|
||||
%D%/packages/patches/eigen-remove-openmp-error-counting.patch \
|
||||
%D%/packages/patches/eigen-stabilise-sparseqr-test.patch \
|
||||
%D%/packages/patches/einstein-build.patch \
|
||||
%D%/packages/patches/elfutils-tests-ptrace.patch \
|
||||
%D%/packages/patches/elixir-path-length.patch \
|
||||
%D%/packages/patches/elm-offline-package-registry.patch \
|
||||
%D%/packages/patches/elm-reactor-static-files.patch \
|
||||
%D%/packages/patches/elm-compiler-disable-reactor.patch \
|
||||
%D%/packages/patches/elm-compiler-fix-map-key.patch \
|
||||
%D%/packages/patches/elogind-revert-polkit-detection.patch \
|
||||
%D%/packages/patches/emacs-deferred-fix-number-of-arguments.patch \
|
||||
%D%/packages/patches/emacs-exec-path.patch \
|
||||
%D%/packages/patches/emacs-ess-fix-obsolete-function-alias.patch \
|
||||
%D%/packages/patches/emacs-git-email-missing-parens.patch \
|
||||
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
|
||||
%D%/packages/patches/emacs-ignore-empty-xim-styles.patch \
|
||||
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \
|
||||
%D%/packages/patches/emacs-helpful-fix-docstring-test.patch \
|
||||
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
|
||||
%D%/packages/patches/emacs-hyperbole-toggle-messaging.patch \
|
||||
%D%/packages/patches/emacs-libgit-use-system-libgit2.patch \
|
||||
%D%/packages/patches/emacs-lispy-fix-thread-last-test.patch \
|
||||
%D%/packages/patches/emacs-source-date-epoch.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 \
|
||||
%D%/packages/patches/emacs-yasnippet-fix-tests.patch \
|
||||
%D%/packages/patches/enjarify-setup-py.patch \
|
||||
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
|
||||
%D%/packages/patches/eog-update-libportal-usage.patch \
|
||||
%D%/packages/patches/epiphany-update-libportal-usage.patch \
|
||||
%D%/packages/patches/erlang-man-path.patch \
|
||||
%D%/packages/patches/esmtp-add-lesmtp.patch \
|
||||
%D%/packages/patches/eudev-rules-directory.patch \
|
||||
@@ -1069,13 +1065,13 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/findutils-localstatedir.patch \
|
||||
%D%/packages/patches/flann-cmake-3.11.patch \
|
||||
%D%/packages/patches/flatpak-fix-path.patch \
|
||||
%D%/packages/patches/flatpak-unset-gdk-pixbuf-for-sandbox.patch \
|
||||
%D%/packages/patches/fontconfig-cache-ignore-mtime.patch \
|
||||
%D%/packages/patches/foobillard++-pkg-config.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
|
||||
%D%/packages/patches/fp16-system-libraries.patch \
|
||||
%D%/packages/patches/fpc-reproducibility.patch \
|
||||
%D%/packages/patches/fplll-std-fenv.patch \
|
||||
%D%/packages/patches/freedink-engine-fix-sdl-hints.patch \
|
||||
%D%/packages/patches/freeglut-gcc-compat.patch \
|
||||
%D%/packages/patches/freeimage-unbundle.patch \
|
||||
@@ -1083,16 +1079,17 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/fxdiv-system-libraries.patch \
|
||||
%D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \
|
||||
%D%/packages/patches/ganeti-disable-version-symlinks.patch \
|
||||
%D%/packages/patches/ganeti-haskell-compat.patch \
|
||||
%D%/packages/patches/ganeti-haskell-pythondir.patch \
|
||||
%D%/packages/patches/ganeti-pyyaml-compat.patch \
|
||||
%D%/packages/patches/ganeti-shepherd-master-failover.patch \
|
||||
%D%/packages/patches/ganeti-shepherd-support.patch \
|
||||
%D%/packages/patches/gash-utils-ls-test.patch \
|
||||
%D%/packages/patches/ganeti-sphinx-compat.patch \
|
||||
%D%/packages/patches/gawk-shell.patch \
|
||||
%D%/packages/patches/gcc-arm-bug-71399.patch \
|
||||
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
|
||||
%D%/packages/patches/gcc-asan-missing-include.patch \
|
||||
%D%/packages/patches/gcc-boot-2.95.3.patch \
|
||||
%D%/packages/patches/gcc-boot-2.95.3-arm.patch \
|
||||
%D%/packages/patches/gcc-boot-4.6.4.patch \
|
||||
%D%/packages/patches/gcc-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-cross-gxx-include-dir.patch \
|
||||
@@ -1128,10 +1125,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gcc-8-strmov-store-file-names.patch \
|
||||
%D%/packages/patches/gcc-9-asan-fix-limits-include.patch \
|
||||
%D%/packages/patches/gcc-9-strmov-store-file-names.patch \
|
||||
%D%/packages/patches/gcc-12-strmov-store-file-names.patch \
|
||||
%D%/packages/patches/gcc-10-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-12-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcolor3-update-libportal-usage.patch \
|
||||
%D%/packages/patches/gd-fix-tests-on-i686.patch \
|
||||
%D%/packages/patches/gd-brect-bounds.patch \
|
||||
%D%/packages/patches/gd-Revert-fix-303-gdlib.pc.patch \
|
||||
@@ -1164,6 +1158,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
|
||||
%D%/packages/patches/glibc-boot-2.16.0.patch \
|
||||
%D%/packages/patches/glibc-boot-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-arm-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system-2.2.5.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system-2.16.0.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system.patch \
|
||||
@@ -1213,7 +1208,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
|
||||
%D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
|
||||
%D%/packages/patches/go-skip-gc-test.patch \
|
||||
%D%/packages/patches/gourmet-sqlalchemy-compat.patch \
|
||||
%D%/packages/patches/gpaste-fix-paths.patch \
|
||||
%D%/packages/patches/gpm-glibc-2.26.patch \
|
||||
%D%/packages/patches/gpodder-disable-updater.patch \
|
||||
@@ -1236,7 +1230,6 @@ dist_patch_DATA = \
|
||||
%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-cross-compilation.patch \
|
||||
%D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
|
||||
%D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
|
||||
@@ -1253,6 +1246,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
|
||||
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
|
||||
%D%/packages/patches/gtk-doc-respect-xml-catalog.patch \
|
||||
%D%/packages/patches/gtk-introspection-test.patch \
|
||||
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
|
||||
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
|
||||
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
|
||||
@@ -1278,7 +1272,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/hueplusplus-mbedtls.patch \
|
||||
%D%/packages/patches/hurd-cross.patch \
|
||||
%D%/packages/patches/hurd-xattr.patch \
|
||||
%D%/packages/patches/hwloc-1-test-btrfs.patch \
|
||||
%D%/packages/patches/i7z-gcc-10.patch \
|
||||
%D%/packages/patches/icecat-makeicecat.patch \
|
||||
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
|
||||
@@ -1288,7 +1281,9 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.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/idris-disable-test.patch \
|
||||
%D%/packages/patches/idris-build-with-haskeline-0.8.patch \
|
||||
%D%/packages/patches/idris-build-with-megaparsec-9.patch \
|
||||
%D%/packages/patches/ilmbase-fix-tests.patch \
|
||||
%D%/packages/patches/imagemagick-CVE-2020-27829.patch \
|
||||
%D%/packages/patches/imagemagick-ReadDCMImage-fix.patch \
|
||||
@@ -1300,9 +1295,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/iputils-libcap-compat.patch \
|
||||
%D%/packages/patches/ipxe-reproducible-geniso.patch \
|
||||
%D%/packages/patches/irrlicht-use-system-libs.patch \
|
||||
%D%/packages/patches/irrlicht-link-against-needed-libs.patch \
|
||||
%D%/packages/patches/isc-dhcp-gcc-compat.patch \
|
||||
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
|
||||
%D%/packages/patches/itk-snap-alt-glibc-compat.patch \
|
||||
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
|
||||
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
|
||||
%D%/packages/patches/jsoncpp-pkg-config-version.patch \
|
||||
@@ -1320,7 +1314,6 @@ 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-jeromq-fix-tests.patch \
|
||||
%D%/packages/patches/java-openjfx-build-jdk_version.patch \
|
||||
%D%/packages/patches/java-powermock-fix-java-files.patch \
|
||||
@@ -1338,7 +1331,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
|
||||
%D%/packages/patches/libffi-3.3-powerpc-fixes.patch \
|
||||
%D%/packages/patches/libffi-float128-powerpc64le.patch \
|
||||
%D%/packages/patches/libobjc2-unbundle-robin-map.patch \
|
||||
%D%/packages/patches/librime-fix-build-with-gcc10.patch \
|
||||
%D%/packages/patches/libvirt-add-install-prefix.patch \
|
||||
%D%/packages/patches/libziparchive-add-includes.patch \
|
||||
@@ -1351,7 +1343,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/kinit-kdeinit-extra_libs.patch \
|
||||
%D%/packages/patches/kinit-kdeinit-libpath.patch \
|
||||
%D%/packages/patches/kio-search-smbd-on-PATH.patch \
|
||||
%D%/packages/patches/kismet-unbundle-boost.patch \
|
||||
%D%/packages/patches/kmail-Fix-missing-link-libraries.patch \
|
||||
%D%/packages/patches/kmod-module-directory.patch \
|
||||
%D%/packages/patches/kmscon-runtime-keymap-switch.patch \
|
||||
@@ -1407,6 +1398,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/libmad-length-check.patch \
|
||||
%D%/packages/patches/libmad-md_size.patch \
|
||||
%D%/packages/patches/libmad-mips-newgcc.patch \
|
||||
%D%/packages/patches/libmicrohttpd-0.9.73-test-ssl3.patch \
|
||||
%D%/packages/patches/libmp4v2-c++11.patch \
|
||||
%D%/packages/patches/libmpeg2-arm-private-symbols.patch \
|
||||
%D%/packages/patches/libmpeg2-global-symbol-test.patch \
|
||||
@@ -1434,7 +1426,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/libxml2-terminating-newline.patch \
|
||||
%D%/packages/patches/libxml2-xpath-recursion-limit.patch \
|
||||
%D%/packages/patches/libxml2-xpath0-Add-option-xpath0.patch \
|
||||
%D%/packages/patches/libxmlb-install-xb-tool-into-bindir.patch \
|
||||
%D%/packages/patches/libxslt-generated-ids.patch \
|
||||
%D%/packages/patches/libxt-guix-search-paths.patch \
|
||||
%D%/packages/patches/lierolibre-check-unaligned-access.patch \
|
||||
@@ -1446,6 +1437,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/linphone-desktop-without-sdk.patch \
|
||||
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
|
||||
%D%/packages/patches/linux-pam-no-setfsuid.patch \
|
||||
%D%/packages/patches/linux-pam-unix_chkpwd.patch \
|
||||
%D%/packages/patches/linuxdcpp-openssl-1.1.patch \
|
||||
%D%/packages/patches/lirc-localstatedir.patch \
|
||||
%D%/packages/patches/lirc-reproducible-build.patch \
|
||||
@@ -1455,8 +1447,9 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/llvm-9-fix-bitcast-miscompilation.patch \
|
||||
%D%/packages/patches/llvm-9-fix-lpad-miscompilation.patch \
|
||||
%D%/packages/patches/llvm-9-fix-scev-miscompilation.patch \
|
||||
%D%/packages/patches/llvm-roc-3.0.0-add_libraries.patch \
|
||||
%D%/packages/patches/llvm-roc-4.0.0-remove-isystem-usr-include.patch \
|
||||
%D%/packages/patches/llvm-roc-5.0.0-linkdl.patch \
|
||||
%D%/packages/patches/llvm-roc-4.2.0-add_Object.patch \
|
||||
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
|
||||
%D%/packages/patches/lrcalc-includes.patch \
|
||||
%D%/packages/patches/lsh-fix-x11-forwarding.patch \
|
||||
@@ -1478,12 +1471,9 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/mars-sfml-2.3.patch \
|
||||
%D%/packages/patches/mathjax-disable-webpack.patch \
|
||||
%D%/packages/patches/mathjax-no-a11y.patch \
|
||||
%D%/packages/patches/mathjax-3.1.2-no-a11y.patch \
|
||||
%D%/packages/patches/maxima-defsystem-mkdir.patch \
|
||||
%D%/packages/patches/maven-generate-component-xml.patch \
|
||||
%D%/packages/patches/maven-generate-javax-inject-named.patch \
|
||||
%D%/packages/patches/mcrl2-fix-1687.patch \
|
||||
%D%/packages/patches/mcrl2-fix-counterexample.patch \
|
||||
%D%/packages/patches/mcrypt-CVE-2012-4409.patch \
|
||||
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \
|
||||
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
|
||||
@@ -1495,7 +1485,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/mesa-skip-tests.patch \
|
||||
%D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch \
|
||||
%D%/packages/patches/mhash-keygen-test-segfault.patch \
|
||||
%D%/packages/patches/mia-fix-boost-headers.patch \
|
||||
%D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch \
|
||||
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
|
||||
%D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch \
|
||||
%D%/packages/patches/mingw-w64-reproducible-gendef.patch \
|
||||
@@ -1511,6 +1501,13 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/monero-use-system-miniupnpc.patch \
|
||||
%D%/packages/patches/mono-mdoc-timestamping.patch \
|
||||
%D%/packages/patches/mosaicatcher-unbundle-htslib.patch \
|
||||
%D%/packages/patches/mozjs17-aarch64-support.patch \
|
||||
%D%/packages/patches/mozjs24-aarch64-support.patch \
|
||||
%D%/packages/patches/mozjs38-pkg-config-version.patch \
|
||||
%D%/packages/patches/mozjs38-shell-version.patch \
|
||||
%D%/packages/patches/mozjs38-tracelogger.patch \
|
||||
%D%/packages/patches/mozjs38-version-detection.patch \
|
||||
%D%/packages/patches/mozjs60-riscv64-support.patch \
|
||||
%D%/packages/patches/mrrescue-support-love-11.patch \
|
||||
%D%/packages/patches/mtools-mformat-uninitialized.patch \
|
||||
%D%/packages/patches/mumps-build-parallelism.patch \
|
||||
@@ -1524,7 +1521,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/m4-gnulib-libio.patch \
|
||||
%D%/packages/patches/nautilus-add-libportal-gtk3.patch \
|
||||
%D%/packages/patches/ncompress-fix-softlinks.patch \
|
||||
%D%/packages/patches/ncftp-reproducible.patch \
|
||||
%D%/packages/patches/netcdf-date-time.patch \
|
||||
%D%/packages/patches/netpbm-CVE-2017-2586.patch \
|
||||
%D%/packages/patches/netpbm-CVE-2017-2587.patch \
|
||||
@@ -1565,14 +1561,11 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/onnx-skip-model-downloads.patch \
|
||||
%D%/packages/patches/openboardview-use-system-imgui.patch \
|
||||
%D%/packages/patches/openboardview-use-system-utf8.patch \
|
||||
%D%/packages/patches/openbox-python3.patch \
|
||||
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \
|
||||
%D%/packages/patches/openfoam-4.1-cleanup.patch \
|
||||
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
|
||||
%D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch \
|
||||
%D%/packages/patches/openmpi-mtl-priorities.patch \
|
||||
%D%/packages/patches/openssh-hurd.patch \
|
||||
%D%/packages/patches/openssh-trust-guix-store-directory.patch \
|
||||
%D%/packages/patches/openresolv-restartcmd-guix.patch \
|
||||
%D%/packages/patches/openrgb-unbundle-hueplusplus.patch \
|
||||
%D%/packages/patches/opensles-add-license-file.patch \
|
||||
@@ -1599,7 +1592,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/python-chai-drop-python2.patch \
|
||||
%D%/packages/patches/python-random2-getrandbits-test.patch \
|
||||
%D%/packages/patches/python-poppler-qt5-fix-build.patch \
|
||||
%D%/packages/patches/python-w3lib-fix-test-failure.patch \
|
||||
%D%/packages/patches/sdcc-disable-non-free-code.patch \
|
||||
%D%/packages/patches/sdl-pango-api_additions.patch \
|
||||
%D%/packages/patches/sdl-pango-blit_overflow.patch \
|
||||
@@ -1609,6 +1601,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/sdl-pango-sans-serif.patch \
|
||||
%D%/packages/patches/smalltalk-multiplication-overflow.patch \
|
||||
%D%/packages/patches/sqlite-hurd.patch \
|
||||
%D%/packages/patches/sssd-collision-with-external-nss-symbol.patch \
|
||||
%D%/packages/patches/sssd-fix-samba-4.15.3.patch \
|
||||
%D%/packages/patches/strace-readlink-tests.patch \
|
||||
%D%/packages/patches/sunxi-tools-remove-sys-io.patch \
|
||||
%D%/packages/patches/p11-kit-hurd.patch \
|
||||
@@ -1627,12 +1621,16 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/perl-reproducible-build-date.patch \
|
||||
%D%/packages/patches/perl-www-curl-fix-struct-void.patch \
|
||||
%D%/packages/patches/perl-www-curl-remove-symbol.patch \
|
||||
%D%/packages/patches/phoronix-test-suite-fsdg.patch \
|
||||
%D%/packages/patches/php-bug-74093-test.patch \
|
||||
%D%/packages/patches/php-openssl_x509_checkpurpose_basic.patch \
|
||||
%D%/packages/patches/picard-fix-id3-rename-test.patch \
|
||||
%D%/packages/patches/picprog-non-intel-support.patch \
|
||||
%D%/packages/patches/pidgin-add-search-path.patch \
|
||||
%D%/packages/patches/pigx-bsseq-no-citeproc.patch \
|
||||
%D%/packages/patches/pigx-chipseq-no-citeproc.patch \
|
||||
%D%/packages/patches/pigx-rnaseq-no-citeproc.patch \
|
||||
%D%/packages/patches/pigx-sars-cov2-ww-no-citeproc.patch \
|
||||
%D%/packages/patches/pigx-scrnaseq-no-citeproc.patch \
|
||||
%D%/packages/patches/pinball-system-ltdl.patch \
|
||||
%D%/packages/patches/pingus-boost-headers.patch \
|
||||
%D%/packages/patches/pingus-sdl-libs-config.patch \
|
||||
@@ -1657,7 +1655,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/psm-disable-memory-stats.patch \
|
||||
%D%/packages/patches/psm-ldflags.patch \
|
||||
%D%/packages/patches/psm-repro.patch \
|
||||
%D%/packages/patches/public-inbox-fix-spawn-test.patch \
|
||||
%D%/packages/patches/pulseaudio-fix-mult-test.patch \
|
||||
%D%/packages/patches/pulseaudio-longer-test-timeout.patch \
|
||||
%D%/packages/patches/pulseview-qt515-compat.patch \
|
||||
@@ -1683,13 +1680,10 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \
|
||||
%D%/packages/patches/python-cross-compile.patch \
|
||||
%D%/packages/patches/python-configobj-setuptools.patch \
|
||||
%D%/packages/patches/python-debugpy-unbundle-pydevd.patch \
|
||||
%D%/packages/patches/python-docopt-pytest6-compat.patch \
|
||||
%D%/packages/patches/python-execnet-read-only-fix.patch \
|
||||
%D%/packages/patches/python-fixtures-remove-monkeypatch-test.patch \
|
||||
%D%/packages/patches/python-flask-restful-werkzeug-compat.patch \
|
||||
%D%/packages/patches/python-ipython-documentation-chars.patch \
|
||||
%D%/packages/patches/python-ipython-documentation-repro.patch \
|
||||
%D%/packages/patches/python-keras-integration-test.patch \
|
||||
%D%/packages/patches/python-pdoc3-tests.patch \
|
||||
%D%/packages/patches/python-peachpy-determinism.patch \
|
||||
@@ -1705,28 +1699,29 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/python-mox3-python3.6-compat.patch \
|
||||
%D%/packages/patches/python-typing-inspect-fix.patch \
|
||||
%D%/packages/patches/python-packaging-test-arch.patch \
|
||||
%D%/packages/patches/python2-parameterized-docstring-test.patch \
|
||||
%D%/packages/patches/python-paste-remove-timing-test.patch \
|
||||
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
|
||||
%D%/packages/patches/python-pycrypto-time-clock.patch \
|
||||
%D%/packages/patches/python-pyan3-fix-absolute-path-bug.patch \
|
||||
%D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
|
||||
%D%/packages/patches/python2-pygobject-2-deprecation.patch \
|
||||
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
|
||||
%D%/packages/patches/python-pytorch-runpath.patch \
|
||||
%D%/packages/patches/python-pytorch-system-libraries.patch \
|
||||
%D%/packages/patches/python-pytorch-1.9.0-system-libraries.patch \
|
||||
%D%/packages/patches/python-robotframework-atest.patch \
|
||||
%D%/packages/patches/python-robotframework-source-date-epoch.patch \
|
||||
%D%/packages/patches/python-robotframework-ug2html.patch \
|
||||
%D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
|
||||
%D%/packages/patches/python-seaborn-kde-test.patch \
|
||||
%D%/packages/patches/python-seaborn-2690.patch \
|
||||
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
|
||||
%D%/packages/patches/python-unittest2-python3-compat.patch \
|
||||
%D%/packages/patches/python-unittest2-remove-argparse.patch \
|
||||
%D%/packages/patches/python-versioneer-guix-support.patch \
|
||||
%D%/packages/patches/python-waitress-fix-tests.patch \
|
||||
%D%/packages/patches/python-werkzeug-tests.patch \
|
||||
%D%/packages/patches/python-mypy-12332.patch \
|
||||
%D%/packages/patches/python-mypy-use-sys-path.patch \
|
||||
%D%/packages/patches/python-zeep-Fix-pytest_httpx-test-cases.patch \
|
||||
%D%/packages/patches/qemu-build-info-manual.patch \
|
||||
%D%/packages/patches/qemu-glibc-2.27.patch \
|
||||
%D%/packages/patches/qemu-glibc-2.30.patch \
|
||||
@@ -1747,6 +1742,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ragel-char-signedness.patch \
|
||||
%D%/packages/patches/randomjungle-disable-static-build.patch \
|
||||
%D%/packages/patches/range-v3-build-with-gcc10.patch \
|
||||
%D%/packages/patches/rapicorn-isnan.patch \
|
||||
%D%/packages/patches/rapidjson-gcc-compat.patch \
|
||||
%D%/packages/patches/raptor2-heap-overflow.patch \
|
||||
%D%/packages/patches/ratpoints-sturm_and_rp_private.patch \
|
||||
@@ -1761,6 +1757,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ripperx-missing-file.patch \
|
||||
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
|
||||
%D%/packages/patches/rtags-separate-rct.patch \
|
||||
%D%/packages/patches/racket-enable-scheme-backport.patch \
|
||||
%D%/packages/patches/racket-gui-tethered-launcher-backport.patch \
|
||||
%D%/packages/patches/racket-minimal-sh-via-rktio.patch \
|
||||
%D%/packages/patches/remake-impure-dirs.patch \
|
||||
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
|
||||
@@ -1769,7 +1767,9 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/rnp-disable-ruby-rnp-tests.patch \
|
||||
%D%/packages/patches/rnp-unbundle-googletest.patch \
|
||||
%D%/packages/patches/rocm-comgr-3.1.0-dependencies.patch \
|
||||
%D%/packages/patches/rocm-opencl-runtime-3.10.0-includes.patch \
|
||||
%D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.patch \
|
||||
%D%/packages/patches/rocm-opencl-runtime-4.3-nocltrace.patch \
|
||||
%D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
|
||||
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
|
||||
%D%/packages/patches/ruby-sanitize-system-libxml.patch \
|
||||
@@ -1778,7 +1778,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/i3status-rust-enable-unstable-features.patch \
|
||||
%D%/packages/patches/rust-ndarray-remove-blas-src-dep.patch \
|
||||
%D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \
|
||||
%D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch \
|
||||
%D%/packages/patches/rust-nettle-disable-vendor.patch \
|
||||
%D%/packages/patches/rust-nettle-sys-disable-vendor.patch \
|
||||
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
|
||||
@@ -1818,7 +1817,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/snappy-add-inline-for-GCC.patch \
|
||||
%D%/packages/patches/sphinxbase-fix-doxygen.patch \
|
||||
%D%/packages/patches/spice-vdagent-glib-2.68.patch \
|
||||
%D%/packages/patches/sssd-optional-systemd.patch \
|
||||
%D%/packages/patches/sssd-fix-samba.patch \
|
||||
%D%/packages/patches/sssd-system-directories.patch \
|
||||
%D%/packages/patches/steghide-fixes.patch \
|
||||
%D%/packages/patches/suitesparse-mongoose-cmake.patch \
|
||||
@@ -1850,7 +1849,6 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/texi2html-i18n.patch \
|
||||
%D%/packages/patches/thefuck-test-environ.patch \
|
||||
%D%/packages/patches/tidy-CVE-2015-5522+5523.patch \
|
||||
%D%/packages/patches/timescaledb-flaky-test.patch \
|
||||
%D%/packages/patches/tinyxml-use-stl.patch \
|
||||
%D%/packages/patches/tipp10-disable-downloader.patch \
|
||||
%D%/packages/patches/tipp10-fix-compiling.patch \
|
||||
@@ -1861,9 +1859,11 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/tlf-support-hamlib-4.2+.patch \
|
||||
gnu/packages/patches/tootle-glib-object-naming.patch \
|
||||
gnu/packages/patches/tootle-reason-phrase.patch \
|
||||
%D%/packages/patches/tor-sandbox-i686.patch \
|
||||
%D%/packages/patches/transcode-ffmpeg.patch \
|
||||
%D%/packages/patches/transfig-gcc10-fno-common.patch \
|
||||
%D%/packages/patches/transmission-honor-localedir.patch \
|
||||
%D%/packages/patches/tremc-fix-decodestring.patch \
|
||||
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
|
||||
%D%/packages/patches/trytond-add-guix_trytond_path.patch \
|
||||
%D%/packages/patches/ttf2eot-cstddef.patch \
|
||||
@@ -1874,6 +1874,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/u-boot-nintendo-nes-serial.patch \
|
||||
%D%/packages/patches/u-boot-rockchip-inno-usb.patch \
|
||||
%D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch \
|
||||
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
|
||||
%D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \
|
||||
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
|
||||
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
|
||||
@@ -1921,26 +1922,27 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/util-linux-tests.patch \
|
||||
%D%/packages/patches/util-linux-CVE-2021-3995.patch \
|
||||
%D%/packages/patches/util-linux-CVE-2021-3996.patch \
|
||||
%D%/packages/patches/valgrind-enable-arm.patch \
|
||||
%D%/packages/patches/valgrind-fix-default-debuginfo-path.patch \
|
||||
%D%/packages/patches/valgrind-enable-arm.patch \
|
||||
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \
|
||||
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
|
||||
%D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
|
||||
%D%/packages/patches/vinagre-newer-freerdp.patch \
|
||||
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \
|
||||
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
|
||||
%D%/packages/patches/virtuoso-ose-remove-pre-built-jar-files.patch \
|
||||
%D%/packages/patches/vsearch-unbundle-cityhash.patch \
|
||||
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
|
||||
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
|
||||
%D%/packages/patches/vtk-fix-freetypetools-build-failure.patch \
|
||||
%D%/packages/patches/vtk-7-gcc-10-compat.patch \
|
||||
%D%/packages/patches/vtk-7-hdf5-compat.patch \
|
||||
%D%/packages/patches/vtk-7-python-compat.patch \
|
||||
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
|
||||
%D%/packages/patches/webkitgtk-bind-all-fonts.patch \
|
||||
%D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
|
||||
%D%/packages/patches/webkitgtk-canonicalize-paths.patch \
|
||||
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
|
||||
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
|
||||
%D%/packages/patches/wicd-bitrate-none-fix.patch \
|
||||
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
|
||||
%D%/packages/patches/wicd-urwid-1.3.patch \
|
||||
%D%/packages/patches/wicd-wpa2-ttls.patch \
|
||||
%D%/packages/patches/widelands-add-missing-map-include.patch \
|
||||
%D%/packages/patches/widelands-system-wide_minizip.patch \
|
||||
%D%/packages/patches/wmctrl-64-fix.patch \
|
||||
@@ -1976,9 +1978,13 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \
|
||||
%D%/packages/patches/xsane-support-ipv6.patch \
|
||||
%D%/packages/patches/xsane-tighten-default-umask.patch \
|
||||
%D%/packages/patches/xterm-370-explicit-xcursor.patch \
|
||||
%D%/packages/patches/xygrib-fix-finding-data.patch \
|
||||
%D%/packages/patches/yggdrasil-extra-config.patch \
|
||||
%D%/packages/patches/ytfzf-programs.patch \
|
||||
%D%/packages/patches/ytfzf-updates.patch \
|
||||
%D%/packages/patches/ytnef-CVE-2021-3403.patch \
|
||||
%D%/packages/patches/ytnef-CVE-2021-3404.patch \
|
||||
%D%/packages/patches/zig-disable-libc-note-test.patch \
|
||||
%D%/packages/patches/zig-use-system-paths.patch
|
||||
|
||||
MISC_DISTRO_FILES = \
|
||||
|
||||
+13
-40
@@ -4,7 +4,6 @@
|
||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -40,11 +39,11 @@
|
||||
#:use-module (ice-9 binary-ports)
|
||||
#:autoload (system base compile) (compile)
|
||||
#: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 (srfi srfi-39)
|
||||
#:use-module (srfi srfi-71)
|
||||
#:export (search-patch
|
||||
search-patches
|
||||
search-auxiliary-file
|
||||
@@ -66,9 +65,6 @@
|
||||
specification->package+output
|
||||
specification->location
|
||||
specifications->manifest
|
||||
specifications->packages
|
||||
|
||||
package-unique-version-prefix
|
||||
|
||||
generate-package-cache))
|
||||
|
||||
@@ -143,10 +139,13 @@ flags."
|
||||
;; Search path for package modules. Each item must be either a directory
|
||||
;; name or a pair whose car is a directory and whose cdr is a sub-directory
|
||||
;; to narrow the search.
|
||||
(let* ((not-colon (char-set-complement (char-set #\:)))
|
||||
(environment (string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "")
|
||||
not-colon))
|
||||
(channels-scm channels-go (package-path-entries)))
|
||||
(let*-values (((not-colon)
|
||||
(char-set-complement (char-set #\:)))
|
||||
((environment)
|
||||
(string-tokenize (or (getenv "GUIX_PACKAGE_PATH") "")
|
||||
not-colon))
|
||||
((channels-scm channels-go)
|
||||
(package-path-entries)))
|
||||
;; Automatically add channels and items from $GUIX_PACKAGE_PATH to Guile's
|
||||
;; search path. For historical reasons, $GUIX_PACKAGE_PATH goes to the
|
||||
;; front; channels go to the back so that they don't override Guix' own
|
||||
@@ -499,13 +498,13 @@ return its return value."
|
||||
"Return a package matching SPEC. SPEC may be a package name, or a package
|
||||
name followed by an at-sign and a version number. If the version number is not
|
||||
present, return the preferred newest version."
|
||||
(let ((name version (package-name->name+version spec)))
|
||||
(let-values (((name version) (package-name->name+version spec)))
|
||||
(%find-package spec name version)))
|
||||
|
||||
(define (specification->location spec)
|
||||
"Return the location of the highest-numbered package matching SPEC, a
|
||||
specification such as \"guile@2\" or \"emacs\"."
|
||||
(let ((name version (package-name->name+version spec)))
|
||||
(let-values (((name version) (package-name->name+version spec)))
|
||||
(match (find-package-locations name version)
|
||||
(()
|
||||
(if version
|
||||
@@ -540,8 +539,8 @@ version; if SPEC does not specify an output, return OUTPUT.
|
||||
|
||||
When OUTPUT is false and SPEC does not specify any output, return #f as the
|
||||
output."
|
||||
(let ((name version sub-drv
|
||||
(package-specification->name+version+output spec output)))
|
||||
(let-values (((name version sub-drv)
|
||||
(package-specification->name+version+output spec output)))
|
||||
(match (%find-package spec name version)
|
||||
(#f
|
||||
(values #f #f))
|
||||
@@ -553,36 +552,10 @@ output."
|
||||
(package-full-name package)
|
||||
sub-drv))))))
|
||||
|
||||
(define (specifications->packages specs)
|
||||
"Given SPECS, a list of specifications such as \"emacs@25.2\" or
|
||||
\"guile:debug\", return a list of package/output tuples."
|
||||
;; This procedure exists so users of 'guix home' don't have to write out the
|
||||
;; (map (compose list specification->package+output)... boilerplate.
|
||||
(map (compose list specification->package+output) specs))
|
||||
|
||||
(define (specifications->manifest specs)
|
||||
"Given SPECS, a list of specifications such as \"emacs@25.2\" or
|
||||
\"guile:debug\", return a profile manifest."
|
||||
;; This procedure exists mostly so users of 'guix package -m' don't have to
|
||||
;; fiddle with multiple-value returns.
|
||||
(packages->manifest
|
||||
(specifications->packages specs)))
|
||||
|
||||
(define (package-unique-version-prefix name version)
|
||||
"Search among all the versions of package NAME that are available, and
|
||||
return the shortest unambiguous version prefix to designate VERSION. If only
|
||||
one version of the package is available, return the empty string."
|
||||
(match (map package-version (find-packages-by-name name))
|
||||
((_)
|
||||
;; A single version of NAME is available, so do not specify the version
|
||||
;; number, even if the available version doesn't match VERSION.
|
||||
"")
|
||||
(versions
|
||||
;; If VERSION is the latest version, don't specify any version.
|
||||
;; Otherwise return the shortest unique version prefix. Note that this
|
||||
;; is based on the currently available packages so the result may vary
|
||||
;; over time.
|
||||
(if (every (cut version>? version <>)
|
||||
(delete version versions))
|
||||
""
|
||||
(version-unique-prefix version versions)))))
|
||||
(map (compose list specification->package+output) specs)))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
|
||||
;;; Copyright © 2018, 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
|
||||
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
@@ -89,14 +89,14 @@ terminals.")
|
||||
(define-public brltty
|
||||
(package
|
||||
(name "brltty")
|
||||
(version "6.5")
|
||||
(version "6.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://brltty.app/archive/brltty-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1h62xzd5k0aaq2k4v3w93rizxnb8psvkxrlx62wr08ybwpspgp7z"))))
|
||||
(base32 "0zybi9i9izv25g0wphl0snddrhb6xl5879y4pkpjpnxq61wm9gry"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; No target
|
||||
|
||||
@@ -149,3 +149,32 @@ Ada system. Being an interpreter, it does not implement most representation
|
||||
clauses, and thus does not support systems programming close to the machine
|
||||
level.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public python2-langkit
|
||||
(let ((commit "fe0bc8bf60dbd2937759810df76ac420d99fc15f")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "python2-langkit")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/AdaCore/langkit")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1abqgw2p8pb1pm54my5kkbbixfhc6l0bwajdv1xlzyrh31xki3wx"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
(list python2-docutils python2-enum34 python2-funcy python2-mako))
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:tests? #f)) ; Tests would requite gprbuild (Ada).
|
||||
(synopsis "Semantic analysis tool generator in Python")
|
||||
(description "@code{Langkit} is a tool whose purpose is to make it easy
|
||||
to create syntactic and semantic analysis engines. Write a language
|
||||
specification in our Python DSL and Langkit will generate for you an
|
||||
Ada library with bindings for the C and Python programming languages.")
|
||||
(home-page "https://github.com/AdaCore/langkit/")
|
||||
(license license:gpl3+)))) ; and gcc runtime library exception
|
||||
|
||||
+140
-442
@@ -13,7 +13,7 @@
|
||||
;;; Copyright © 2016 Peter Feigl <peter.feigl@nexoid.at>
|
||||
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
|
||||
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
|
||||
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
|
||||
@@ -45,12 +45,8 @@
|
||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
||||
;;; Copyright © 2021 muradm <mail@muradm.net>
|
||||
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
|
||||
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
|
||||
;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
|
||||
;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -68,7 +64,6 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages admin)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
@@ -96,7 +91,6 @@
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crates-io)
|
||||
#:use-module (gnu packages cross-base)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages cryptsetup)
|
||||
@@ -105,7 +99,6 @@
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages gl)
|
||||
@@ -116,7 +109,6 @@
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages guile-xyz)
|
||||
#:use-module (gnu packages hurd)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages imagemagick)
|
||||
@@ -274,7 +266,7 @@ the percentage of copied data. It can also show estimated time and throughput,
|
||||
and provides a \"top-like\" mode (monitoring).")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public shepherd-0.8
|
||||
(define-public shepherd
|
||||
(package
|
||||
(name "shepherd")
|
||||
(version "0.8.1")
|
||||
@@ -315,60 +307,14 @@ interface and is based on GNU Guile.")
|
||||
(license license:gpl3+)
|
||||
(home-page "https://www.gnu.org/software/shepherd/")))
|
||||
|
||||
;; Update on the next rebuild cycle.
|
||||
(define-public shepherd shepherd-0.8)
|
||||
|
||||
(define-public shepherd-0.9
|
||||
(package
|
||||
(inherit shepherd)
|
||||
(version "0.9.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/shepherd/shepherd-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l2arn6gsyw88xk9phxnyplvv1mn8sqp3ipgyyb0nszdzvxlgd36"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Avoid continuation barriers so (@ (fibers) sleep) can be
|
||||
;; called from a service's 'stop' method
|
||||
'(substitute* "modules/shepherd/service.scm"
|
||||
(("call-with-blocked-asyncs") ;in 'stop' method
|
||||
"(lambda (thunk) (thunk))")
|
||||
(("\\(for-each-service\n") ;in 'shutdown-services'
|
||||
"((lambda (proc)
|
||||
(for-each proc
|
||||
(fold-services cons '())))\n")))))
|
||||
(arguments
|
||||
(list #:configure-flags #~'("--localstatedir=/var")
|
||||
#:make-flags #~'("GUILE_AUTO_COMPILE=0")
|
||||
#:phases (if (%current-target-system)
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-fibers-directory
|
||||
(lambda _
|
||||
;; When cross-compiling, refer to the target
|
||||
;; Fibers, not the native one.
|
||||
(substitute* '("herd.in" "shepherd.in")
|
||||
(("%FIBERS_SOURCE_DIRECTORY%")
|
||||
#$(file-append
|
||||
(this-package-input "guile-fibers")
|
||||
"/share/guile/site/3.0"))
|
||||
(("%FIBERS_OBJECT_DIRECTORY%")
|
||||
#$(file-append
|
||||
(this-package-input "guile-fibers")
|
||||
"/lib/guile/3.0/site-ccache"))))))
|
||||
#~%standard-phases)))
|
||||
(native-inputs (list pkg-config guile-3.0
|
||||
guile-fibers-1.1)) ;for cross-compilation
|
||||
(inputs (list guile-3.0 guile-fibers-1.1))))
|
||||
|
||||
(define-public guile2.2-shepherd
|
||||
(package
|
||||
(inherit shepherd-0.9)
|
||||
(inherit shepherd)
|
||||
(name "guile2.2-shepherd")
|
||||
(native-inputs (list pkg-config guile-2.2))
|
||||
(inputs (list guile-2.2 guile2.2-fibers))))
|
||||
(native-inputs
|
||||
(list pkg-config guile-2.2))
|
||||
(inputs
|
||||
(list guile-2.2 guile2.2-readline))))
|
||||
|
||||
(define-public guile2.0-shepherd
|
||||
(package
|
||||
@@ -424,7 +370,7 @@ inspired by @command{vi}.")
|
||||
(define-public cloud-utils
|
||||
(package
|
||||
(name "cloud-utils")
|
||||
(version "0.33")
|
||||
(version "0.32")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -436,11 +382,7 @@ inspired by @command{vi}.")
|
||||
"0xxdi55lzw7j91zfajw7jhd2ilsqj2dy04i9brlk8j3pvb5ma8hk"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:modules
|
||||
((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-26))
|
||||
#:make-flags
|
||||
'(#:make-flags
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(list (string-append "BINDIR=" out "/bin")
|
||||
(string-append "MANDIR=" out "/share/man/man1")
|
||||
@@ -454,15 +396,11 @@ inspired by @command{vi}.")
|
||||
(let ((growpart (string-append (assoc-ref outputs "out")
|
||||
"/bin/growpart")))
|
||||
(wrap-program growpart
|
||||
`("PATH" ":" prefix
|
||||
,(map dirname
|
||||
(map (cut search-input-file inputs <>)
|
||||
(list "bin/readlink"
|
||||
"sbin/sfdisk")))))))))))
|
||||
`("PATH" ":" prefix (,(dirname (which "sfdisk"))
|
||||
,(dirname (which "readlink"))))))
|
||||
#t)))))
|
||||
(inputs
|
||||
(list coreutils ; for readlink
|
||||
python
|
||||
util-linux)) ; sfdisk for growpart
|
||||
(list python util-linux)) ; contains sfdisk for growpart
|
||||
(home-page "https://launchpad.net/cloud-utils")
|
||||
(synopsis "Set of utilities for cloud computing environments")
|
||||
(description
|
||||
@@ -550,7 +488,7 @@ services.")
|
||||
(base32 "0w4g0iyssyw7dd0061881z8s5czcl01mz6v00znax57zfxjqpvnm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:tests? #f)) ; No tests available.
|
||||
(home-page "https://software.clapper.org/daemonize/")
|
||||
(home-page "http://software.clapper.org/daemonize/")
|
||||
(synopsis "Command line utility to run a program as a daemon")
|
||||
(description
|
||||
"daemonize runs a command as a Unix daemon. It will close all open file
|
||||
@@ -696,7 +634,7 @@ console.")
|
||||
(define-public htop
|
||||
(package
|
||||
(name "htop")
|
||||
(version "3.2.1")
|
||||
(version "3.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -704,7 +642,7 @@ console.")
|
||||
(url "https://github.com/htop-dev/htop")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "0yfmkw3y4qyd42svhpiijif7krvmnb8z88y6h9g4fwf7sfynq2rk"))
|
||||
(base32 "024qhrlmqgwmn6bwb5yiff9bhhdabryiphzx8y654k8r8vqi59j4"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
@@ -1093,7 +1031,7 @@ would need and has several interesting built-in capabilities.")
|
||||
(define-public netcat-openbsd
|
||||
(package
|
||||
(name "netcat-openbsd")
|
||||
(version "1.218-5")
|
||||
(version "1.218-2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -1102,7 +1040,7 @@ would need and has several interesting built-in capabilities.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hpbmz9m2q22a6qgbn9590z2x96xgffim8g0m1v47mariz3pqhlc"))))
|
||||
"1rj4nx0jdism1idc4fghahqbafhv72cpk7zlyq9czgvbps10d1kh"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
@@ -1143,76 +1081,6 @@ IPv6, proxies, and Unix sockets.")
|
||||
(license (list license:bsd-3
|
||||
license:bsd-2)))) ; atomicio.*, socks.c
|
||||
|
||||
(define-public nmon
|
||||
(package
|
||||
(name "nmon")
|
||||
(version "16n")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/nmon/lmon" version ".c"))
|
||||
(sha256
|
||||
(base32 "1wpm2f30414b87kpbr9hbidblr5cmfby5skwqd0fkpi5v712q0f0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f ; no test suite
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda _
|
||||
(copy-file #$(package-source this-package) "lmon.c")))
|
||||
(delete 'configure) ; no build system
|
||||
(replace 'build
|
||||
;; There is an example ‘Makefile’ in the .c file.
|
||||
(lambda _
|
||||
;; These #defines aren't well-documented and, e.g., POWER was
|
||||
;; not actually tested on every possible TARGET-POWERPC?.
|
||||
(let* ((system #$(cond ((target-x86?) "X86")
|
||||
((target-arm?) "ARM")
|
||||
((target-powerpc?) "POWER")
|
||||
(else "CROSS_FINGERS"))))
|
||||
(format #t "Building for ~a~%" system)
|
||||
(invoke #$(cc-for-target) "-o" "nmon" "lmon.c"
|
||||
"-g" "-Wall" "-D" system
|
||||
"-lncurses" "-lm"))))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let ((bin (string-append #$output "/bin"))
|
||||
(man1 (string-append #$output "/share/man/man1")))
|
||||
(install-file "nmon" bin)
|
||||
(mkdir-p man1)
|
||||
(copy-file #$(this-package-native-input "man-page")
|
||||
(string-append man1 "/nmon.1"))))))))
|
||||
(native-inputs
|
||||
(list `("man-page"
|
||||
,(origin
|
||||
;; There is no man page upstream, so install Debian's.
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://salsa.debian.org/carnil/nmon/"
|
||||
"-/raw/debian/" version "+debian-1/"
|
||||
"debian/nmon.1"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gpvd2kjyhs18sh6sga5bk9wj8s78blfd4c0m38r0wl92jx2yv1b"))))))
|
||||
(inputs
|
||||
(list ncurses))
|
||||
(home-page "http://nmon.sourceforge.net/")
|
||||
(synopsis
|
||||
"Monitor system performance in a terminal or to a @file{.csv} log file")
|
||||
(description
|
||||
"@acronym{Nmon, Nigel's performance monitor} is yet another system monitor
|
||||
useful in systems administration, debugging, tuning, and benchmarking.
|
||||
|
||||
The configurable ncurses interface displays all the classic resource usage
|
||||
statistics (CPU, memory, network, disk, ...) as real-time graphs or numbers.
|
||||
It can also list the processes responsible in a @command{top}-like table.
|
||||
|
||||
A less common nmon feature is its ability to create highly detailed log files
|
||||
in @acronym{CSV, comma-separated values} format. These can be imported into
|
||||
spreadsheets or fed straight into an @acronym{RRD, round-robin database} using
|
||||
@command{rrdtool} for further analyisis, or to create colourful graphs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public sipcalc
|
||||
(package
|
||||
(name "sipcalc")
|
||||
@@ -1327,14 +1195,15 @@ connection alive.")
|
||||
bind-release-version)))
|
||||
(package
|
||||
(name "isc-dhcp")
|
||||
(version "4.4.3")
|
||||
(version "4.4.2-P1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ftp.isc.org/isc/dhcp/"
|
||||
version "/dhcp-" version ".tar.gz"))
|
||||
(patches (search-patches "isc-dhcp-gcc-compat.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"062q2g8cj2zv0zv22x6pg21m21bdlscxkg3li0ac0pm0qasccghf"))))
|
||||
"06jsr0cg5rsmyibshrpcb9za0qgwvqccashdma7mlm1rflrh8pmh"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:parallel-build? #f
|
||||
@@ -1448,7 +1317,7 @@ connection alive.")
|
||||
(list config perl file))
|
||||
|
||||
(inputs `(("inetutils" ,inetutils)
|
||||
("bash" ,(canonical-package bash-minimal)) ;for wrap-program
|
||||
("bash" ,bash-minimal)
|
||||
,@(if (hurd-target?) '()
|
||||
`(("net-tools" ,net-tools)
|
||||
("iproute" ,iproute)))
|
||||
@@ -1855,7 +1724,7 @@ system administrator.")
|
||||
(define-public sudo
|
||||
(package
|
||||
(name "sudo")
|
||||
(version "1.9.11p3")
|
||||
(version "1.9.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
@@ -1865,7 +1734,7 @@ system administrator.")
|
||||
version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0w0z9w4vnhjsc4jjghi6wlyv4v055hsy38ncb67p08b7yp9fg1s6"))
|
||||
"1x34k8sd2msfjjsahff1q143gr5j9z19jx2rmkkbiiz7k084d8a4"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -2123,16 +1992,10 @@ command.")
|
||||
(add-after 'install-documentation 'install-dbus-conf
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(interfaces (string-append out "/etc/dbus-1/system.d"))
|
||||
(services (string-append out
|
||||
"/share/dbus-1/system-services")))
|
||||
(mkdir-p interfaces)
|
||||
(dir (string-append out "/etc/dbus-1/system.d")))
|
||||
(mkdir-p dir)
|
||||
(copy-file "dbus/dbus-wpa_supplicant.conf"
|
||||
(string-append interfaces "/wpa_supplicant.conf"))
|
||||
(mkdir-p services)
|
||||
(copy-file "dbus/fi.w1.wpa_supplicant1.service"
|
||||
(string-append services
|
||||
"/fi.w1.wpa_supplicant1.service")))
|
||||
(string-append dir "/wpa_supplicant.conf")))
|
||||
#t))))))))
|
||||
|
||||
(define-public wpa-supplicant-gui
|
||||
@@ -2311,7 +2174,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
|
||||
(define-public acpica
|
||||
(package
|
||||
(name "acpica")
|
||||
(version "20220331")
|
||||
(version "20211217")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -2319,7 +2182,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yjcl00nnnlw01sz6a1i5d3v75gr17mkbxkxfx2v344al33abk8w"))))
|
||||
"0521hmaw2zhi0mpgnaf2i83dykfgql4bx98cg7xqy8wmj649z194"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list flex bison))
|
||||
(arguments
|
||||
@@ -2596,7 +2459,7 @@ track changes in important system configuration files.")
|
||||
(define-public libcap-ng
|
||||
(package
|
||||
(name "libcap-ng")
|
||||
(version "0.8.3")
|
||||
(version "0.8.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -2604,12 +2467,11 @@ track changes in important system configuration files.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ba9dfga7chwf6lf7a03x1a30fgdy2pb4r7pnn1jzfr2is2gdmmy"))))
|
||||
"1sasp1n154aqy9fz0knlb966svm7xg1zjhg1vr4q839bgjvq7h2j"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--disable-static"
|
||||
"--without-python")))
|
||||
(list "--without-python")))
|
||||
(home-page "https://people.redhat.com/sgrubb/libcap-ng/")
|
||||
(synopsis "Library for more easily working with POSIX capabilities")
|
||||
(description
|
||||
@@ -2668,6 +2530,42 @@ degradation and failure.")
|
||||
specified directories.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public graphios
|
||||
(package
|
||||
(name "graphios")
|
||||
(version "2.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "graphios" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1h87hvc315wg6lklbf4l7csd3n5pgljwrfli1p3nasdi0izgn66i"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; Be warned: Building with Python 3 succeeds, but the build process
|
||||
;; throws a syntax error that is ignored.
|
||||
`(#:python ,python-2
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'fix-setup.py
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Fix hardcoded, unprefixed file names.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* '("setup.py")
|
||||
(("/etc") (string-append out "/etc"))
|
||||
(("/usr") out)
|
||||
(("distro_ver = .*") "distro_ver = ''"))
|
||||
#t))))))
|
||||
(home-page "https://github.com/shawn-sterling/graphios")
|
||||
(synopsis "Emit Nagios metrics to Graphite, Statsd, and Librato")
|
||||
(description
|
||||
"Graphios is a script to emit nagios perfdata to various upstream metrics
|
||||
processing and time-series systems. It's currently compatible with Graphite,
|
||||
Statsd, Librato and InfluxDB. Graphios can emit Nagios metrics to any number
|
||||
of supported upstream metrics systems simultaneously.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public ansible-core
|
||||
(package
|
||||
(name "ansible-core")
|
||||
@@ -2808,15 +2706,15 @@ provides the following commands:
|
||||
(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
|
||||
;; Python is not present in the profile.
|
||||
;; The Ansible collections are found by ansible-core via PYTHONPATH; the
|
||||
;; following search path ensures that they are found even when Python is
|
||||
;; not present in the profile.
|
||||
(native-search-paths
|
||||
;; XXX: Attempting to use (package-native-search-paths python)
|
||||
;; here would cause an error about python being an unbound
|
||||
;; variable in the tests/cpan.scm test.
|
||||
(list (search-path-specification
|
||||
(variable "GUIX_PYTHONPATH")
|
||||
(variable "PYTHONPATH")
|
||||
(files (list "lib/python3.9/site-packages")))))
|
||||
(home-page "https://www.ansible.com/")
|
||||
(synopsis "Radically simple IT automation")
|
||||
@@ -3119,17 +3017,10 @@ displays a table of current bandwidth usage by pairs of hosts.")
|
||||
(list openssl libgcrypt))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'(#:configure-flags
|
||||
(list "--localstatedir=/var"
|
||||
(string-append "--with-pkgconfigdir="
|
||||
(assoc-ref %outputs "out") "/lib/pkgconfig")
|
||||
(string-append "--with-libgcrypt-prefix="
|
||||
(assoc-ref %build-inputs "libgcrypt"))
|
||||
,@(if (%current-target-system)
|
||||
;; Assume yes on pipes when cross compiling.
|
||||
`("ac_cv_file__dev_spx=yes"
|
||||
"x_ac_cv_check_fifo_recvfd=yes")
|
||||
'()))
|
||||
(assoc-ref %outputs "out") "/lib/pkgconfig"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; XXX Many test series fail. Some might be fixable, others do no-no
|
||||
@@ -3165,13 +3056,13 @@ platform-specific methods.")
|
||||
(package
|
||||
(name "audit")
|
||||
(home-page "https://people.redhat.com/sgrubb/audit/")
|
||||
(version "3.0.8")
|
||||
(version "3.0.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "audit-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04w9m9ffvi58z11i344wa1hji9ba68cdklrkizhiwf39mnwxkx5m"))))
|
||||
"15r5lrrkv2zj3dvpqssd46w61hmrq27y7c2rz33s20ck59iphk4b"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--with-python=no"
|
||||
@@ -3256,12 +3147,10 @@ rules is done with the @code{auditctl} utility.")
|
||||
(,(python-path ndiff)))))))
|
||||
;; These are the tests that do not require network access.
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "make"
|
||||
"check-nse"
|
||||
"check-ndiff"
|
||||
"check-dns")))))
|
||||
(lambda _ (invoke "make"
|
||||
"check-nse"
|
||||
"check-ndiff"
|
||||
"check-dns"))))
|
||||
;; Nmap can't cope with out-of-source building.
|
||||
#:out-of-source? #f))
|
||||
(home-page "https://nmap.org/")
|
||||
@@ -3801,32 +3690,6 @@ used in screenshots to show other users what operating system or distribution
|
||||
you are running, what theme or icon set you are using, etc.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public hyfetch
|
||||
(package
|
||||
(name "hyfetch")
|
||||
(version "1.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "HyFetch" version))
|
||||
(sha256
|
||||
(base32 "1bfkycdhsyzkk6q24gdy1xwvyz0rvkr7xk2khbn74b3nk6kp83r2"))))
|
||||
(build-system python-build-system)
|
||||
(inputs (list python-hypy-utils python-typing-extensions))
|
||||
(arguments `(#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'set-HOME
|
||||
(lambda _ ;; Tries to set files in .config
|
||||
(setenv "HOME" "/tmp"))))))
|
||||
(home-page "https://github.com/hykilpikonna/HyFetch")
|
||||
(synopsis "@code{neofetch} with pride flags <3")
|
||||
(description "HyFetch is a command-line system information tool fork of
|
||||
@code{neofetch}. HyFetch displays information about your system next to your
|
||||
OS logo in ASCII representation. The ASCII representation is then colored in
|
||||
the pattern of the pride flag of your choice. The main purpose of HyFetch is to
|
||||
be used in screenshots to show other users what operating system or distribution
|
||||
you are running, what theme or icon set you are using, etc.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public screenfetch
|
||||
(package
|
||||
(name "screenfetch")
|
||||
@@ -3970,29 +3833,30 @@ information tool.")
|
||||
(define-public nnn
|
||||
(package
|
||||
(name "nnn")
|
||||
(version "4.5")
|
||||
(version "4.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/jarun/nnn/releases/download/v"
|
||||
version "/nnn-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1aj9hzhpwxl2v1dlf3jpd3rp81z689dq8iycbipc0024dnyibp7s"))))
|
||||
(base32 "0lqn7pyy8c1vy29vn8ad4x23cw67cy1d21ghns6f3w9a1h7kyjp0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list ncurses readline))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(arguments
|
||||
(list #:tests? #f ; no tests
|
||||
#:make-flags
|
||||
#~(list
|
||||
(string-append "PREFIX=" #$output)
|
||||
(string-append "CC=" #$(cc-for-target))
|
||||
(string-append "PKG_CONFIG=" #$(pkg-config-for-target)))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)))) ; no configure script
|
||||
`(#:tests? #f ; no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)) ; no configure script
|
||||
#:make-flags
|
||||
(list
|
||||
(string-append "PREFIX="
|
||||
(assoc-ref %outputs "out"))
|
||||
(string-append "CC=" ,(cc-for-target))
|
||||
(string-append "PKG_CONFIG=" ,(pkg-config-for-target)))))
|
||||
(home-page "https://github.com/jarun/nnn")
|
||||
(synopsis "Terminal file browser")
|
||||
(description
|
||||
@@ -4194,7 +4058,7 @@ Python loading in HPC environments.")
|
||||
(let ((real-name "inxi"))
|
||||
(package
|
||||
(name "inxi-minimal")
|
||||
(version "3.3.15-1")
|
||||
(version "3.3.11-1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4203,7 +4067,7 @@ Python loading in HPC environments.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name real-name version))
|
||||
(sha256
|
||||
(base32 "02zy94bd6ayfl9y7ka6gk32q254k49cbq3a6wgi31r2fcvybyrf7"))))
|
||||
(base32 "1nk3q2xg0myykq1myasxhvhhr0vk8qv3m7pb3icw81r3ydasnls0"))))
|
||||
(build-system trivial-build-system)
|
||||
(inputs
|
||||
`(("bash" ,bash-minimal)
|
||||
@@ -4253,7 +4117,7 @@ Python loading in HPC environments.")
|
||||
(string-append dir "/lib/perl5/site_perl"))
|
||||
(_ ""))
|
||||
%build-inputs)))))
|
||||
(invoke "gzip" "-n" "inxi.1")
|
||||
(invoke "gzip" "inxi.1")
|
||||
(install-file "inxi.1.gz"
|
||||
(string-append %output "/share/man/man1"))))))
|
||||
(home-page "https://smxi.org/docs/inxi.htm")
|
||||
@@ -4434,7 +4298,7 @@ Logitech Unifying Receiver.")
|
||||
(package
|
||||
(name "lynis")
|
||||
;; Also update the ‘lynis-sdk’ input to the commit matching this release.
|
||||
(version "3.0.8")
|
||||
(version "3.0.6")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4443,7 +4307,7 @@ Logitech Unifying Receiver.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "19kz1ffbbd431cdfw7fjcl5hjkks3gfkwk3w2zkwsxgyiky1gx3w"))
|
||||
(base32 "1a1n8alcq6zil1rwk9940cg3x2nz3igcxfad99505pdh7ccz9324"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -4459,20 +4323,13 @@ Logitech Unifying Receiver.")
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/CISOfy/lynis-sdk")
|
||||
(commit "dffe5d352e4d6029ea95a84d50604ccd97cb8999")))
|
||||
(commit "1c4e5f60a03e29a1525ca9ec17c793461058253d")))
|
||||
(file-name (git-file-name "lynis-sdk" version))
|
||||
(sha256
|
||||
(base32 "05qq4395x8f0kyl1ppm74npsf8sb3hhgz0ck4fya91sy6a26b4ja"))))))
|
||||
(base32 "060k8k1q4c7nvrv3cwscxq8md2v75q3nrwwim1hgfw20divw3npy"))))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
;; XXX Remove after fixing <https://issues.guix.gnu.org/55287>.
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(mkdir "source")
|
||||
(chdir "source")
|
||||
(copy-recursively source "."
|
||||
#:keep-mtime? #t)))
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(substitute* "lynis"
|
||||
@@ -4608,7 +4465,7 @@ supplied by the user when logging in.")
|
||||
(define-public jc
|
||||
(package
|
||||
(name "jc")
|
||||
(version "1.19.0")
|
||||
(version "1.13.4")
|
||||
(source
|
||||
(origin
|
||||
;; The PyPI tarball lacks the test suite.
|
||||
@@ -4618,16 +4475,8 @@ supplied by the user when logging in.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "021zk0y8kb6v3qf3hwfg8qjzzmrca039nz3fjywiy2njmbhr8hyi"))))
|
||||
(base32 "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
;; XXX Guix's America/Los_Angeles time zone is somehow broken.
|
||||
(add-before 'check 'hack-time-zone
|
||||
(lambda _
|
||||
(substitute* (find-files "tests" "^test.*\\.py$")
|
||||
(("America/Los_Angeles") "PST8PDT")))))))
|
||||
(propagated-inputs
|
||||
(list python-pygments python-ruamel.yaml python-xmltodict))
|
||||
(home-page "https://github.com/kellyjonbrazil/jc")
|
||||
@@ -4775,40 +4624,49 @@ Netgear devices.")
|
||||
(define-public atop
|
||||
(package
|
||||
(name "atop")
|
||||
(version "2.7.1")
|
||||
(version "2.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.atoptool.nl/download/atop-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kjwgf94skbrndv1krlmsrq34smzi3iwk73fbsnyw787gvqx4j6a"))))
|
||||
"0wlg0n0h9vwpjp2dcb623jvvqck422jrjpq9mbpzg4hnawxcmhly"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ; no test suite
|
||||
`(#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
(string-append "DESTDIR=" #$output)
|
||||
(string-append "SYSDPATH=/etc/systemd/system")
|
||||
(string-append "PMPATHD=/etc/systemd/system-sleep")
|
||||
;; Or else it tries to create /var/log/atop...
|
||||
(string-append "LOGPATH="))
|
||||
(list (string-append "CC=" ,(cc-for-target))
|
||||
;; The installer requires a choice between systemd or SysV.
|
||||
"systemdinstall"
|
||||
(string-append "DESTDIR=" (assoc-ref %outputs "out"))
|
||||
(string-append "BINPATH=/bin")
|
||||
(string-append "SBINPATH=/sbin")
|
||||
(string-append "SYSDPATH=/etc/systemd/system")
|
||||
(string-append "PMPATHD=/etc/systemd/system-sleep")
|
||||
(string-append "MAN1PATH=/share/man/man1")
|
||||
(string-append "MAN5PATH=/share/man/man5")
|
||||
(string-append "MAN8PATH=/share/man/man8")
|
||||
;; Or else it tries to create /var/log/atop...
|
||||
(string-append "LOGPATH="))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure) ; No ./configure script
|
||||
(add-before 'build 'patch-build
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
;; Don't use /usr as a prefix.
|
||||
(("/usr") "")
|
||||
;; Otherwise, it creates a blank configuration file as a "default".
|
||||
(("touch.*DEFPATH)/atop") "")
|
||||
(("chmod.*DEFPATH)/atop") "")))))))
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; No ./configure script
|
||||
(add-before 'build 'patch-build
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "Makefile"
|
||||
;; We don't need to chown things in the build environment.
|
||||
(("chown.*$") "")
|
||||
;; We can't toggle the setuid bit in the build environment.
|
||||
(("chmod 04711") "chmod 0711")
|
||||
;; Otherwise, it creates a blank configuration file as a "default".
|
||||
(("touch.*DEFPATH)/atop") "")
|
||||
(("chmod.*DEFPATH)/atop") ""))
|
||||
#t)))))
|
||||
(inputs
|
||||
(list ncurses
|
||||
python-wrapper ; for `atopgpud`
|
||||
zlib))
|
||||
`(("ncurses" ,ncurses)
|
||||
("python" ,python-wrapper) ; for `atopgpud`
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://www.atoptool.nl/")
|
||||
(synopsis "Linux performance monitoring console")
|
||||
(description "Atop is an ASCII full-screen performance monitor for Linux
|
||||
@@ -4819,8 +4677,6 @@ using colors, etc. At regular intervals, it shows system-level activity related
|
||||
to the CPU, memory, swap, disks (including LVM) and network layers, and for
|
||||
every process (and thread) it shows e.g. the CPU utilization, memory growth,
|
||||
disk utilization, priority, username, state, and exit code.")
|
||||
(properties
|
||||
`((release-monitoring-url . "https://www.atoptool.nl/downloadatop.php")))
|
||||
(license license:gpl2+)))
|
||||
|
||||
;; TODO: Unvendor u-root (pkg: forth, golang, testutil).
|
||||
@@ -4942,7 +4798,7 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
|
||||
(define-public nq
|
||||
(package
|
||||
(name "nq")
|
||||
(version "0.5")
|
||||
(version "0.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4951,17 +4807,16 @@ the XMODEM/YMODEM/ZMODEM file transfer protocols.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0szbndvwl6ghwjzb165s09977s0r1yq8h0ziknm0h6xndkcjspl3"))))
|
||||
(base32 "0sdamjzvmf6cxhjmd1rjvn7zm6k10fp5n6vabyxd3yl30cgrxw2i"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list perl))
|
||||
(arguments
|
||||
(list #:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
`(#:make-flags (list (string-append "CC=" ,(cc-for-target))
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
(synopsis "Unix command line queue utility")
|
||||
(description
|
||||
"@code{nq} can create very lightweight job queue systems which require no
|
||||
@@ -5073,161 +4928,4 @@ it won't take longer to install 15 machines than it would to install just 2.")
|
||||
(home-page "https://www.udpcast.linux.lu")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public greetd
|
||||
(package
|
||||
(name "greetd")
|
||||
(version "0.8.0")
|
||||
(home-page "https://git.sr.ht/~kennylevinsen/greetd")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:cargo-inputs
|
||||
(("rust-nix" ,rust-nix-0.19)
|
||||
("rust-pam-sys" ,rust-pam-sys-0.5)
|
||||
("rust-rpassword" ,rust-rpassword-5)
|
||||
("rust-users" ,rust-users-0.11)
|
||||
("rust-serde" ,rust-serde-1)
|
||||
("rust-serde-json" ,rust-serde-json-1)
|
||||
("rust-libc" ,rust-libc-0.2)
|
||||
("rust-tokio" ,rust-tokio-1)
|
||||
("rust-getopts" ,rust-getopts-0.2)
|
||||
("rust-thiserror" ,rust-thiserror-1)
|
||||
("rust-async-trait" ,rust-async-trait-0.1)
|
||||
("rust-enquote" ,rust-enquote-1))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'package)
|
||||
(add-after 'build 'build-man-pages
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(define (scdoc-cmd doc lvl)
|
||||
(system (string-append "scdoc < "
|
||||
doc "-" lvl ".scd > "
|
||||
doc "." lvl)))
|
||||
(with-directory-excursion "man"
|
||||
(scdoc-cmd "greetd" "1")
|
||||
(scdoc-cmd "greetd" "5")
|
||||
(scdoc-cmd "greetd-ipc" "7")
|
||||
(scdoc-cmd "agreety" "1"))))
|
||||
(replace 'install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(sbin (string-append out "/sbin"))
|
||||
(share (string-append out "/share"))
|
||||
(man (string-append share "/man"))
|
||||
(man1 (string-append man "/man1"))
|
||||
(man5 (string-append man "/man5"))
|
||||
(man7 (string-append man "/man7"))
|
||||
(release "target/release")
|
||||
(greetd-bin (string-append release "/greetd"))
|
||||
(agreety-bin (string-append release "/agreety")))
|
||||
(install-file greetd-bin sbin)
|
||||
(install-file agreety-bin bin)
|
||||
(with-directory-excursion "man"
|
||||
(install-file "greetd.1" man1)
|
||||
(install-file "greetd.5" man5)
|
||||
(install-file "greetd-ipc.7" man7)
|
||||
(install-file "agreety.1" man1))))))))
|
||||
(native-inputs
|
||||
`(("linux-pam" ,linux-pam)
|
||||
("scdoc" ,scdoc)))
|
||||
(synopsis "minimal and flexible login manager daemon")
|
||||
(description
|
||||
"greetd is a minimal and flexible login manager daemon
|
||||
that makes no assumptions about what you want to launch.
|
||||
|
||||
If you can run it from your shell in a TTY, greetd can start it.
|
||||
|
||||
If it can be taught to speak a simple JSON-based IPC protocol,
|
||||
then it can be a greeter.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public greetd-pam-mount
|
||||
(package
|
||||
(inherit pam-mount)
|
||||
(name "greetd-pam-mount")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments pam-mount)
|
||||
((#:configure-flags flags ''())
|
||||
#~(cons* "--with-rundir=/run/greetd" #$flags))
|
||||
((#:phases phases)
|
||||
#~(modify-phases #$phases
|
||||
(add-after 'unpack 'patch-config-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/pam_mount.c"
|
||||
((".*define CONFIGFILE .*$")
|
||||
"#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n")
|
||||
(("pam_mount_config") "greetd_pam_mount_config")
|
||||
(("pam_mount_system_authtok") "greetd_pam_mount_system_authtok"))))))))
|
||||
(synopsis "pam-mount specifically compiled for use with greetd")
|
||||
(description
|
||||
"Pam-mount is a PAM module that can mount volumes when a user logs in.
|
||||
It supports mounting local filesystems of any kind the normal mount utility
|
||||
supports. It can also mount encrypted LUKS volumes using the password
|
||||
supplied by the user when logging in.
|
||||
|
||||
This package inherits pam-mount in the way that it is compiled specifically
|
||||
for use with greetd daemon. It uses different configuration location and
|
||||
name space for storing data in PAM.
|
||||
|
||||
greetd-pam-mount is used in configuration of greetd to provide
|
||||
auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not
|
||||
interfere with default pam-mount configuration.")))
|
||||
|
||||
(define-public libseat
|
||||
(package
|
||||
(name "libseat")
|
||||
(version "0.7.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.sr.ht/~kennylevinsen/seatd")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"10f8387yy5as547xjjhl0cna6iywdgjmw0iq2nvcs8q6vlpnik4v"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-Dlibseat-logind=elogind"
|
||||
"-Dserver=disabled")))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("elogind" ,elogind)))
|
||||
(home-page "https://sr.ht/~kennylevinsen/seatd")
|
||||
(synopsis "Seat management library")
|
||||
(description
|
||||
"This package provides a universal seat management library that
|
||||
allows applications to use whatever seat management is available.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public seatd
|
||||
(package
|
||||
(inherit libseat)
|
||||
(name "seatd")
|
||||
(arguments
|
||||
`(#:configure-flags '("-Dlibseat-logind=elogind")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'remove-libs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(with-directory-excursion (assoc-ref outputs "out")
|
||||
(for-each delete-file-recursively '("lib" "include"))))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("scdoc" ,scdoc)))
|
||||
(inputs '())
|
||||
(synopsis "Seat management daemon")
|
||||
(description
|
||||
"This package provides a minimal seat management daemon whose task is to
|
||||
mediate access to shared devices, such as graphics and input, for applications
|
||||
that require it.")
|
||||
(license license:expat)))
|
||||
|
||||
@@ -76,9 +76,7 @@ scripts.")
|
||||
"0gcincjvpll2qmlc906jx6mfq97s87mgi0zby0753ki0rr2ch0s8"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(;; FIXME: Some tests require network access
|
||||
#:tests? #f
|
||||
#:phases
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'filter-live-tests
|
||||
(lambda _
|
||||
|
||||
+19
-20
@@ -2,7 +2,7 @@
|
||||
;;; Copyright © 2018 Alex ter Weele <alex.ter.weele@gmail.com>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2018, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 John Soo <jsoo1@asu.edu>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
@@ -29,7 +29,6 @@
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system haskell)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
@@ -38,7 +37,7 @@
|
||||
(define-public agda
|
||||
(package
|
||||
(name "agda")
|
||||
(version "2.6.2.2")
|
||||
(version "2.6.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -46,7 +45,7 @@
|
||||
"https://hackage.haskell.org/package/Agda/Agda-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0yjjbhc593ylrm4mq4j01nkdvh7xqsg5in30wxj4y53vf5hkggp5"))))
|
||||
(base32 "03dw7jfqr3ffik6avigm525djqh2gn5c3qwnb2h6298zkr9lch9w"))))
|
||||
(build-system haskell-build-system)
|
||||
(inputs
|
||||
(list ghc-aeson
|
||||
@@ -72,22 +71,22 @@
|
||||
ghc-uri-encode
|
||||
ghc-zlib))
|
||||
(arguments
|
||||
(list #:modules `((guix build haskell-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
;; This allows us to call the 'agda' binary before installing.
|
||||
(add-after 'unpack 'set-ld-library-path
|
||||
(lambda _
|
||||
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))))
|
||||
(add-after 'compile 'agda-compile
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((agda-compiler (string-append #$output "/bin/agda")))
|
||||
(for-each (cut invoke agda-compiler <>)
|
||||
(find-files (string-append #$output "/share")
|
||||
"\\.agda$"))))))))
|
||||
`(#:modules ((guix build haskell-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; This allows us to call the 'agda' binary before installing.
|
||||
(add-after 'unpack 'set-ld-library-path
|
||||
(lambda _
|
||||
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))))
|
||||
(add-after 'compile 'agda-compile
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(agda-compiler (string-append out "/bin/agda")))
|
||||
(for-each (cut invoke agda-compiler <>)
|
||||
(find-files (string-append out "/share") "\\.agda$"))))))))
|
||||
(home-page "https://wiki.portal.chalmers.se/agda/")
|
||||
(synopsis
|
||||
"Dependently typed functional programming language and proof assistant")
|
||||
|
||||
+31
-28
@@ -1,10 +1,10 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2019, 2021, 2022 Eric Bavier <bavier@posteo.net>
|
||||
@@ -127,7 +127,7 @@ greatest common divisor operations.")
|
||||
(define-public cm
|
||||
(package
|
||||
(name "cm")
|
||||
(version "0.4.0")
|
||||
(version "0.3.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -135,7 +135,7 @@ greatest common divisor operations.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04l3inafql40n0r5rq8rmp21zplgdrzblil2kgkpx5s0jbs9i8rr"))))
|
||||
"0qq6b1kwb1byj8ws33ya5awq0ilkpm32037pi1l4cf2737fg9m42"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
(list mpfrcx zlib)) ; Header files included from cm_common.h.
|
||||
@@ -154,7 +154,7 @@ line applications.")
|
||||
(define-public fplll
|
||||
(package
|
||||
(name "fplll")
|
||||
(version "5.4.2")
|
||||
(version "5.3.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -163,7 +163,8 @@ line applications.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0044nyfnwzgyfrsikbcbh00f54dd61hwn3fb6711rrskkfnw977a"))))
|
||||
"06nyfidagp8pc2kfcw88ldgb2b1xm0a8z31n0sln7j72ihlmd8zj"))
|
||||
(patches (search-patches "fplll-std-fenv.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list autoconf automake libtool pkg-config))
|
||||
@@ -198,14 +199,19 @@ the real span of the lattice.")
|
||||
(define-public python-fpylll
|
||||
(package
|
||||
(name "python-fpylll")
|
||||
(version "0.5.7")
|
||||
(version "0.5.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "fpylll" version))
|
||||
;; Pypi contains and older release, so we use a tagged release from
|
||||
;; Github instead.
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fplll/fpylll")
|
||||
(commit (string-append version "dev"))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1xjqcwq90blgzvnbkbzdys8mdhi2b4li6faywm6yi8shxvz8iz0s"))))
|
||||
"1a25iibihph626jl4wbs4b77xc4a2c4nfc2ypscf9wpani3dnhjf"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
(list fplll gmp mpfr pari-gp))
|
||||
@@ -220,7 +226,7 @@ the real span of the lattice.")
|
||||
(define-public pari-gp
|
||||
(package
|
||||
(name "pari-gp")
|
||||
(version "2.13.4")
|
||||
(version "2.13.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -228,7 +234,7 @@ the real span of the lattice.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"11g1pkrj12dmggj1n6r00ijpnmk3f3dpqsf1h51q34hmmv79xpmw"))))
|
||||
"1jm1cz1687cz8pl8lgvmyk3l33cms1xbayv38ca4z1f60qb7zfnc"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("texlive" ,(texlive-updmap.cfg
|
||||
@@ -242,7 +248,6 @@ the real span of the lattice.")
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "./Configure"
|
||||
"--mt=pthread"
|
||||
(string-append "--prefix="
|
||||
(assoc-ref outputs "out"))))))))
|
||||
(synopsis "PARI/GP, a computer algebra system for number theory")
|
||||
@@ -302,8 +307,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531"))
|
||||
(patches (search-patches "cmh-support-fplll.patch"))))
|
||||
"1ws2yhzxmm2l5xqqqcjcimmg40f9qq5l9i6d4i5434an9v9s8531"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list gmp
|
||||
@@ -466,7 +470,7 @@ fast arithmetic.")
|
||||
(define-public arb
|
||||
(package
|
||||
(name "arb")
|
||||
(version "2.22.1")
|
||||
(version "2.21.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -475,7 +479,7 @@ fast arithmetic.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qcyf8a7w95yxap0r3sb7xibk53nbs5kkidja3ljvqpbpk5xvpax"))))
|
||||
"1lmcl122qy6mr1g1y65bm7dk9fj0sym7gzmvar5vdgk7ln03c5iq"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
(list flint)) ; flint.h is included by arf.h
|
||||
@@ -1017,18 +1021,17 @@ extends it by a set of algebraic capabilities.")
|
||||
|
||||
#:phases (modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(lambda _
|
||||
(let* ((cores (parallel-job-count))
|
||||
(dash-j (format #f "-j~a" cores)))
|
||||
(when tests?
|
||||
(setenv "EIGEN_SEED" "1") ;for reproducibility
|
||||
;; First build the tests, in parallel. See
|
||||
;; <http://eigen.tuxfamily.org/index.php?title=Tests>.
|
||||
(invoke "make" "buildtests" dash-j)
|
||||
(setenv "EIGEN_SEED" "1") ;for reproducibility
|
||||
;; First build the tests, in parallel. See
|
||||
;; <http://eigen.tuxfamily.org/index.php?title=Tests>.
|
||||
(invoke "make" "buildtests" dash-j)
|
||||
|
||||
;; Then run 'CTest' with -V so we get more
|
||||
;; details upon failure.
|
||||
(invoke "ctest" "-V" dash-j))))))))
|
||||
;; Then run 'CTest' with -V so we get more
|
||||
;; details upon failure.
|
||||
(invoke "ctest" "-V" dash-j)))))))
|
||||
(home-page "https://eigen.tuxfamily.org")
|
||||
(synopsis "C++ template library for linear algebra")
|
||||
(description
|
||||
@@ -1731,14 +1734,14 @@ no more than about 20 bits long).")
|
||||
(define-public sollya
|
||||
(package
|
||||
(name "sollya")
|
||||
(version "8.0")
|
||||
(version "7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.sollya.org/releases/"
|
||||
"sollya-" version "/sollya-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1sf1cjcr6x035n97l64ppzb9pzq5568h7waz0zfc3120894gcnjz"))))
|
||||
"11290ivi9h665cxi8f1shlavhy10vzb8s28m57hrcgnxyxqmhx0m"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list fplll
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2017, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2017, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019, 2020 Andreas Enge <andreas@enge.fr>
|
||||
@@ -1078,33 +1078,23 @@ backups. It supports encrypted archives.")
|
||||
(define-public python-miio
|
||||
(package
|
||||
(name "python-miio")
|
||||
(version "0.5.11")
|
||||
(version "0.5.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "python-miio" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1dyzzywfa5h6q8clmzxsqmszlby8757ajmvkhdyvq6719z4bn46n"))))
|
||||
"0a4f5ybjvibawwxcjm3r9nnrzf1yff6wwgy05yzyk0bb3rmc99fp"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'relax-requirements
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("cryptography>=35")
|
||||
"cryptography"))))
|
||||
(add-after 'unpack 'adjust-for-click-8
|
||||
(lambda _
|
||||
(substitute* '("miio/integrations/vacuum/roborock/vacuum.py"
|
||||
"miio/integrations/vacuum/roborock/vacuum_cli.py")
|
||||
(("resultcallback")
|
||||
"result_callback"))))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "pytest" "-vv" "miio")))))))
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(invoke "pytest" "miio")))))))
|
||||
(native-inputs
|
||||
(list python-pytest
|
||||
python-pytest-mock
|
||||
|
||||
+66
-66
@@ -21,7 +21,6 @@
|
||||
(define-module (gnu packages antivirus)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
@@ -45,14 +44,14 @@
|
||||
(define-public clamav
|
||||
(package
|
||||
(name "clamav")
|
||||
(version "0.103.6")
|
||||
(version "0.103.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.clamav.net/downloads/production/"
|
||||
"clamav-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cxsv5m9pqxxb56qd7hlj11pwmdgm07s3msh3hxk47czq4yjx8da"))
|
||||
"1sba4zccgwjqk29b5qkgfc9gm794hmk6j7bpj8wilgcz8hc3svlz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -60,7 +59,8 @@
|
||||
'("win32" ; unnecessary
|
||||
"libclamav/c++/llvm" ; use system llvm
|
||||
"libclamav/tomsfastmath" ; use system tomsfastmath
|
||||
"libclamunrar")))) ; non-free license
|
||||
"libclamunrar")) ; non-free license
|
||||
#t))
|
||||
(patches
|
||||
(search-patches "clamav-system-tomsfastmath.patch"
|
||||
"clamav-config-llvm-libs.patch"))))
|
||||
@@ -72,70 +72,70 @@
|
||||
libtool
|
||||
pkg-config))
|
||||
(inputs
|
||||
(list bzip2
|
||||
curl
|
||||
json-c
|
||||
libltdl
|
||||
libmspack
|
||||
llvm-3.6 ; requires <3.7, for JIT/verifier
|
||||
ncurses
|
||||
libressl
|
||||
pcre2
|
||||
cyrus-sasl ; for linking curl with libtool
|
||||
tomsfastmath
|
||||
libxml2
|
||||
zlib))
|
||||
`(("bzip2" ,bzip2)
|
||||
("libcurl" ,curl)
|
||||
("libjson" ,json-c)
|
||||
("libltdl" ,libltdl)
|
||||
("libmspack" ,libmspack)
|
||||
("llvm" ,llvm-3.6) ; requires <3.7, for JIT/verifier
|
||||
("ncurses" ,ncurses)
|
||||
("openssl" ,libressl)
|
||||
("pcre2" ,pcre2)
|
||||
("sasl" ,cyrus-sasl) ; for linking curl with libtool
|
||||
("tomsfastmath" ,tomsfastmath)
|
||||
("xml" ,libxml2)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
#~(let-syntax ((with (syntax-rules ()
|
||||
((_ name use)
|
||||
`(#:configure-flags
|
||||
(let-syntax ((with (syntax-rules ()
|
||||
((_ name)
|
||||
(string-append "--with-" name "="
|
||||
(assoc-ref %build-inputs use))))))
|
||||
(list "--disable-unrar"
|
||||
"--enable-llvm"
|
||||
"--with-system-llvm"
|
||||
"--with-system-libmspack"
|
||||
"--without-included-ltdl"
|
||||
(with "xml" "libxml2")
|
||||
(with "openssl" "libressl")
|
||||
(with "libjson" "json-c")
|
||||
(with "pcre2" "pcre2")
|
||||
(with "zlib" "zlib")
|
||||
(with "libcurl" "curl")
|
||||
;; For sanity, specifying --enable-* flags turns
|
||||
;; "support unavailable" warnings into errors.
|
||||
"--enable-bzip2"
|
||||
"--enable-check"
|
||||
"--sysconfdir=/etc/clamav"
|
||||
;; Default database directory needs to be writeable
|
||||
"--with-dbdir=/var/db/clamav"))
|
||||
;; install sample .conf files to %output/etc rather than /etc/clamav
|
||||
#:make-flags
|
||||
#~(list (string-append "sysconfdir=" %output "/etc"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
;; Regenerate configure script. Without this we don't get
|
||||
;; the correct value for LLVM linker variables.
|
||||
(add-after 'unpack 'reconf
|
||||
(lambda _ (invoke "autoreconf" "-vfi")))
|
||||
(add-before 'configure 'patch-llvm-config
|
||||
(lambda _
|
||||
(substitute* '("libclamav/c++/detect.cpp"
|
||||
"libclamav/c++/ClamBCRTChecks.cpp"
|
||||
"libclamav/c++/bytecode2llvm.cpp")
|
||||
(("llvm/Config/config.h") "llvm/Config/llvm-config.h"))
|
||||
;; `llvm-config --libfiles` inappropriately lists lib*.a
|
||||
;; libraries, rather than the lib*.so's that our llvm
|
||||
;; contains. They're used only for listing extra build
|
||||
;; dependencies, so ignore them until that's fixed.
|
||||
(substitute* "libclamav/c++/Makefile.in"
|
||||
(("@LLVMCONFIG_LIBFILES@") ""))))
|
||||
(add-before 'check 'skip-clamd-tests
|
||||
;; XXX: The check?_clamd tests fail inside the build
|
||||
;; chroot, but pass outside.
|
||||
(lambda _
|
||||
(substitute* "unit_tests/Makefile"
|
||||
(("check2_clamd.sh.*check4_clamd.sh") "")))))))
|
||||
(assoc-ref %build-inputs name))))))
|
||||
(list "--disable-unrar"
|
||||
"--enable-llvm"
|
||||
"--with-system-llvm"
|
||||
"--with-system-libmspack"
|
||||
"--without-included-ltdl"
|
||||
(with "xml")
|
||||
(with "openssl")
|
||||
(with "libjson")
|
||||
(with "pcre2")
|
||||
(with "zlib")
|
||||
(with "libcurl")
|
||||
;; For sanity, specifying --enable-* flags turns
|
||||
;; "support unavailable" warnings into errors.
|
||||
"--enable-bzip2"
|
||||
"--enable-check"
|
||||
"--sysconfdir=/etc/clamav"
|
||||
;; Default database directory needs to be writeable
|
||||
"--with-dbdir=/var/db/clamav"))
|
||||
;; install sample .conf files to %output/etc rather than /etc/clamav
|
||||
#:make-flags (list (string-append "sysconfdir=" %output "/etc"))
|
||||
#:phases (modify-phases %standard-phases
|
||||
;; Regenerate configure script. Without this we don't get
|
||||
;; the correct value for LLVM linker variables.
|
||||
(add-after 'unpack 'reconf
|
||||
(lambda _ (invoke "autoreconf" "-vfi")))
|
||||
(add-before 'configure 'patch-llvm-config
|
||||
(lambda _
|
||||
(substitute* '("libclamav/c++/detect.cpp"
|
||||
"libclamav/c++/ClamBCRTChecks.cpp"
|
||||
"libclamav/c++/bytecode2llvm.cpp")
|
||||
(("llvm/Config/config.h") "llvm/Config/llvm-config.h"))
|
||||
;; `llvm-config --libfiles` inappropriately lists lib*.a
|
||||
;; libraries, rather than the lib*.so's that our llvm
|
||||
;; contains. They're used only for listing extra build
|
||||
;; dependencies, so ignore them until that's fixed.
|
||||
(substitute* "libclamav/c++/Makefile.in"
|
||||
(("@LLVMCONFIG_LIBFILES@") ""))
|
||||
#t))
|
||||
(add-before 'check 'skip-clamd-tests
|
||||
;; XXX: The check?_clamd tests fail inside the build
|
||||
;; chroot, but pass outside.
|
||||
(lambda _
|
||||
(substitute* "unit_tests/Makefile"
|
||||
(("check2_clamd.sh.*check4_clamd.sh") ""))
|
||||
#t)))))
|
||||
(home-page "https://www.clamav.net")
|
||||
(synopsis "Antivirus engine")
|
||||
(description
|
||||
|
||||
+28
-47
@@ -2,7 +2,6 @@
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -20,11 +19,9 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages apl)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix svn-download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages maths)
|
||||
@@ -33,46 +30,30 @@
|
||||
#:use-module (gnu packages sqlite))
|
||||
|
||||
(define-public apl
|
||||
(let ((revision 1550))
|
||||
(package
|
||||
(name "apl")
|
||||
(version (string-append "1.8-r" (number->string revision)))
|
||||
(source
|
||||
(origin
|
||||
(method svn-fetch)
|
||||
(uri (svn-reference
|
||||
(url "svn://svn.savannah.gnu.org/apl/trunk")
|
||||
(revision revision)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1bgc3a09f35zrqq2irhm1hspppnxjqas0fmcw14hkc7910br9ip3"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.gnu.org/software/apl/")
|
||||
(inputs
|
||||
(list gettext-minimal
|
||||
lapack
|
||||
pcre2
|
||||
readline
|
||||
sqlite))
|
||||
(arguments
|
||||
(list #:configure-flags #~(list (string-append
|
||||
"--with-sqlite3="
|
||||
#$(this-package-input "sqlite")))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'configure 'fix-configure
|
||||
(lambda _
|
||||
(substitute* "buildtag.sh"
|
||||
;; Don't exit on failed SVN-related calls.
|
||||
(("^ +return 0\n") "")
|
||||
;; Manually set the SVN revision, since the directory is
|
||||
;; unversioned and we know it anyway.
|
||||
(("^SVNINFO=.*")
|
||||
(string-append "SVNINFO=" #$(number->string revision) "\n"))
|
||||
;; Requires running ‘svn info’ on a versioned directory.
|
||||
(("\\\\\"\\$ARCHIVE_SVNINFO\\\\\"") "\\\"\\\"")))))))
|
||||
(synopsis "APL interpreter")
|
||||
(description
|
||||
"GNU APL is a free interpreter for the programming language APL. It is
|
||||
(package
|
||||
(name "apl")
|
||||
(version "1.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/apl/apl-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jxvv2h3y1am1fw6r5sn3say1n0dj8shmscbybl0qhqdia2lqkql"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.gnu.org/software/apl/")
|
||||
(inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
("lapack" ,lapack)
|
||||
("pcre" ,pcre2)
|
||||
("sqlite" ,sqlite)
|
||||
("readline" ,readline)))
|
||||
(arguments
|
||||
`(#:configure-flags (list (string-append
|
||||
"--with-sqlite3="
|
||||
(assoc-ref %build-inputs "sqlite")))))
|
||||
(synopsis "APL interpreter")
|
||||
(description
|
||||
"GNU APL is a free interpreter for the programming language APL. It is
|
||||
an implementation of the ISO standard 13751.")
|
||||
(license license:gpl3+))))
|
||||
(license gpl3+)))
|
||||
|
||||
@@ -490,14 +490,14 @@ under permissive licensing terms. See the 'Copyright' file."))))
|
||||
(define-public ispell
|
||||
(package
|
||||
(name "ispell")
|
||||
(version "3.4.05")
|
||||
(version "3.4.04")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.cs.hmc.edu/~geoff/tars/ispell-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "00jni7gvdswjd9sdwip5ixnvjg2qzv56mn3m8gdgl9gxwgnns36g"))))
|
||||
(base32 "0gp1rwn8grkvz28wgisc2j9w9svldnaiahl3lyis118xabqddg47"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:parallel-build? #f
|
||||
@@ -520,7 +520,8 @@ under permissive licensing terms. See the 'Copyright' file."))))
|
||||
(format port "#define BINDIR \"~a/bin\"~%" out)
|
||||
(format port "#define LIBDIR \"~a/lib/ispell\"~%" out)
|
||||
(format port "#define MAN1DIR \"~a/share/man/man1\"~%" out)
|
||||
(format port "#define MAN45DIR \"~a/share/man/man5\"~%" out)))))))))
|
||||
(format port "#define MAN45DIR \"~a/share/man/man5\"~%" out))))
|
||||
#t)))))
|
||||
(inputs
|
||||
(list grep ncurses))
|
||||
(native-inputs
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
|
||||
;;; Copyright © 2019 Andy Tai <atai@atai.org>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
@@ -11,7 +11,6 @@
|
||||
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
|
||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2022 Felix Gruber <felgru@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -182,14 +181,14 @@ speed on x86, NEON on ARM, etc.).")
|
||||
(define-public fasm
|
||||
(package
|
||||
(name "fasm")
|
||||
(version "1.73.30")
|
||||
(version "1.73.29")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://flatassembler.net/fasm-"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32 "00giqb94z8cxhv20yiyk8axkd2kzjcg1c0841yzbn7c8lm8m06bm"))))
|
||||
(base32 "0ar1k1504cmwi49y6g254rkzayll0kn90vjd4zj09xv86kcg8a33"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests exist
|
||||
@@ -343,7 +342,7 @@ package for the Game Boy and Game Boy Color. It consists of:
|
||||
(define-public wla-dx
|
||||
(package
|
||||
(name "wla-dx")
|
||||
(version "10.1")
|
||||
(version "9.12")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -352,20 +351,12 @@ package for the Game Boy and Game Boy Color. It consists of:
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1nh2k2xn5fj389gq68f3fxgrxakgn8c6dw2ffqay86s3706hac9w"))))
|
||||
"1wlbqv2rgk9q6m9an1mi0i29250zl8lw7zipki2bbi9mczpyczli"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs (list python-sphinx)) ; to generate man pages
|
||||
(native-inputs
|
||||
`(("sphinx" ,python-sphinx))) ; to generate man pages
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'copy-tests-to-build-directory
|
||||
(lambda _
|
||||
(copy-recursively "../source/tests" "tests")))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(let ((sh (which "sh")))
|
||||
(when tests?
|
||||
(invoke sh "../source/run_tests.sh"))))))))
|
||||
`(#:tests? #f)) ; no tests
|
||||
(home-page "https://github.com/vhelin/wla-dx")
|
||||
(synopsis "Assemblers for various processors")
|
||||
(description "WLA DX is a set of tools to assemble assembly files to
|
||||
|
||||
+14
-143
@@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
|
||||
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
|
||||
@@ -26,17 +26,19 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages astronomy)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
@@ -46,20 +48,16 @@
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages netpbm)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages pretty-print)
|
||||
#: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-science)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages video)
|
||||
@@ -67,140 +65,12 @@
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public calceph
|
||||
(package
|
||||
(name "calceph")
|
||||
(version "3.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://www.imcce.fr/content/medias/recherche/equipes/asd/calceph/calceph-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "078wn773pwf4pg9m0h0l00g4aq744pq1rb6kz6plgdpzp3hhpk1k"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list gfortran))
|
||||
(home-page "https://www.imcce.fr/inpop/calceph")
|
||||
(properties `((release-monitoring-url . ,home-page)))
|
||||
(synopsis "Astronomical library to access the binary planetary ephemeris files")
|
||||
(description
|
||||
"The CALCEPH Library is designed to access the binary planetary ephemeris files,
|
||||
such INPOPxx and JPL DExxx ephemeris files, (called @code{original JPL binary} or
|
||||
@code{INPOP 2.0 or 3.0 binary} ephemeris files in the next sections) and the SPICE
|
||||
kernel files (called @code{SPICE} ephemeris files in the next sections). At the
|
||||
moment, supported SPICE files are:
|
||||
|
||||
@itemize
|
||||
@item text Planetary Constants Kernel (KPL/PCK) files;
|
||||
@item binary PCK (DAF/PCK) files;
|
||||
@item binary SPK (DAF/SPK) files containing segments of type 1, 2, 3, 5, 8, 9,
|
||||
12, 13, 17, 18, 19, 20, 21, 102, 103 and 120;
|
||||
@item meta kernel (KPL/MK) files;
|
||||
@item frame kernel (KPL/FK) files (only basic support).
|
||||
@end itemize\n")
|
||||
(license license:cecill)))
|
||||
|
||||
(define-public casacore
|
||||
(package
|
||||
(name "casacore")
|
||||
(version "3.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/casacore/casacore")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"05ar5gykgh4dm826xplj5ri5rw7znhxrvin2l67a3mjwfys7r2a0"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; Note: There are multiple failures in
|
||||
;; tests which require additional measures data. They are
|
||||
;; distributed via FTP without any license:
|
||||
;; ftp://ftp.astron.nl/outgoing/Measures/
|
||||
;; TODO: Check how to fix tests.
|
||||
#:tests? #f
|
||||
#:parallel-build? #t
|
||||
#:configure-flags
|
||||
#~(list "-DBUILD_PYTHON3=ON"
|
||||
"-DBUILD_PYTHON=OFF"
|
||||
"-DBUILD_TESTING=TRUE"
|
||||
"-DUSE_HDF5=ON"
|
||||
"-DUSE_OPENMP=OFF"
|
||||
"-DUSE_THREADS=ON"
|
||||
(string-append "-DDATA_DIR=" #$output "/data")
|
||||
(string-append "-DPYTHON3_EXECUTABLE="
|
||||
#$(this-package-input "python") "/bin")
|
||||
(string-append "-DPYTHON3_INCLUDE_DIR="
|
||||
#$(this-package-input "python") "/include")
|
||||
(string-append "-DPYTHON3_LIBRARY="
|
||||
#$(this-package-input "python") "/lib"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'set-env
|
||||
(lambda _
|
||||
(setenv "HOME" "/tmp")))
|
||||
(add-after 'unpack 'use-absolute-rm
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "casa/OS/test/tFile.run"
|
||||
(("/bin/rm")
|
||||
(search-input-file inputs "/bin/rm")))))
|
||||
(add-after 'unpack 'use-absolute-python3
|
||||
(lambda _
|
||||
(substitute* "build-tools/casacore_floatcheck"
|
||||
(("#!/usr/bin/env python")
|
||||
(string-append "#!" (which "python3"))))))
|
||||
;; NOTE: (Sharlatan-20220611T200837+0100): Workaround for casacore
|
||||
;; tests stuck with missing "qsub" issue.
|
||||
;; https://github.com/casacore/casacore/issues/1122
|
||||
(add-after 'unpack 'patch-pre-test-checks
|
||||
(lambda _
|
||||
(substitute* "build-tools/casacore_assay"
|
||||
(("QSUBP=.*$") "QSUBP=\n")
|
||||
(("YODP=.*$") "YODP=\n")))))))
|
||||
(native-inputs
|
||||
(list bison
|
||||
boost
|
||||
flex
|
||||
readline))
|
||||
(inputs
|
||||
(list cfitsio
|
||||
fftw
|
||||
fftwf
|
||||
gfortran
|
||||
hdf5
|
||||
lapack
|
||||
ncurses
|
||||
openblas
|
||||
python
|
||||
python-numpy
|
||||
wcslib))
|
||||
(home-page "http://casacore.github.io/casacore/")
|
||||
(synopsis "Suite of C++ libraries for radio astronomy data processing")
|
||||
(description
|
||||
"The casacore package contains the core libraries of the old
|
||||
AIPS++/CASA (Common Astronomy Software Application) package. This split was
|
||||
made to get a better separation of core libraries and applications.
|
||||
@url{https://casa.nrao.edu/, CASA} is now built on top of Casacore.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public cfitsio
|
||||
(package
|
||||
(name "cfitsio")
|
||||
@@ -237,20 +107,21 @@ in FITS files.")
|
||||
(define-public python-fitsio
|
||||
(package
|
||||
(name "python-fitsio")
|
||||
(version "1.1.7")
|
||||
(version "1.1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "fitsio" version))
|
||||
(sha256
|
||||
(base32 "0q8siijys9kmjnqvyipjgh6hkhf4fwvr1swhsf4if211i9b0m1xy"))
|
||||
(base32 "1llql2i6xr9lkdl81jx5nvz80kspamvira90546y32ldy551hq1l"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Remove the bundled cfitsio
|
||||
`(begin
|
||||
(delete-file-recursively "cfitsio3490")
|
||||
(substitute* "MANIFEST.in"
|
||||
(("recursive-include cfitsio3490.*$\n") ""))))))
|
||||
(("recursive-include cfitsio3490.*$\n") ""))
|
||||
#t))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@@ -877,13 +748,13 @@ astronomy and astrophysics.")
|
||||
(define-public python-astroquery
|
||||
(package
|
||||
(name "python-astroquery")
|
||||
(version "0.4.6")
|
||||
(version "0.4.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "astroquery" version))
|
||||
(sha256
|
||||
(base32 "1vhkzsqlgn3ji5by2rdf2gwklhbyzvpzb1iglalhqjkkrdaaaz1h"))))
|
||||
(base32 "06xy0qzqmps6z5vwfkh5fkhr151p7g94r2j0mvp1rc8zns22y010"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@@ -1495,13 +1366,13 @@ Moon position, etc.")
|
||||
(define-public python-jplephem
|
||||
(package
|
||||
(name "python-jplephem")
|
||||
(version "2.17")
|
||||
(version "2.16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "jplephem" version))
|
||||
(sha256
|
||||
(base32 "09xaibxnwbzzs3x9g3ibqa2la17z3r6in93321glh02dbibfbip1"))))
|
||||
(base32 "1xvivnsywjaf5lxn3kyg2jhhq393gcwkjrl634m8dn52ypidrcdb"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
||||
+227
-261
@@ -11,7 +11,7 @@
|
||||
;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2018 okapi <okapi@firemail.cc>
|
||||
;;; Copyright © 2018, 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2018, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Brett Gilio <brettg@gnu.org>
|
||||
;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
@@ -110,7 +110,6 @@
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages rdf)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages samba)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages sqlite)
|
||||
@@ -617,7 +616,8 @@ Filter) modules follow the convention of 1V / Octave.")
|
||||
"--enable-jack"
|
||||
"--enable-sndfile"
|
||||
"--enable-samplerate"
|
||||
"--enable-avcodec")))
|
||||
"--enable-avcodec")
|
||||
#:python ,python-2))
|
||||
(inputs
|
||||
(list jack-1 libsndfile libsamplerate fftwf ffmpeg)) ; for libavcodec
|
||||
(native-inputs
|
||||
@@ -1158,7 +1158,7 @@ envelope follower, distortion effects, tape effects and more.")
|
||||
(define-public snapcast
|
||||
(package
|
||||
(name "snapcast")
|
||||
(version "0.26.0")
|
||||
(version "0.24.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -1167,7 +1167,7 @@ envelope follower, distortion effects, tape effects and more.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"091gf3k1xv3k0m0kf2apr9bwiifw2czjcksd3vzwy544sfgrya08"))))
|
||||
"13yz8alplnqwkcns3mcli01qbyy6l3h62xx0v71ygcrz371l4g9g"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no included tests
|
||||
@@ -1914,40 +1914,6 @@ also play midifiles using a Soundfont.")
|
||||
"Faust is a programming language for realtime audio signal processing.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
;; This version is needed to build older synths that require the lv2synth.cpp
|
||||
;; architecture file, such as sorcer.
|
||||
(define-public faust-0.9.67
|
||||
(package
|
||||
(inherit faust)
|
||||
(name "faust")
|
||||
(version "0.9.67")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/grame-cncm/faust")
|
||||
(commit (string-append "v"
|
||||
(string-map (lambda (c)
|
||||
(if (char=? c #\.) #\- c))
|
||||
version)))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0856x666s6ymzk8v15f9gy402dbr8c9v2s40hyfadhraqljmqrm0"))
|
||||
(snippet
|
||||
;; Remove prebuilt library
|
||||
'(delete-file "architecture/android/libs/armeabi-v7a/libfaust_dsp.so"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:make-flags
|
||||
#~(list (string-append "prefix=" #$output))
|
||||
#:tests? #f
|
||||
#:phases
|
||||
'(modify-phases %standard-phases
|
||||
;; no "configure" script
|
||||
(delete 'configure))))
|
||||
(native-inputs (list unzip))))
|
||||
|
||||
(define-public faust-2
|
||||
(package
|
||||
(inherit faust)
|
||||
@@ -2014,51 +1980,6 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
|
||||
;; GPLv2+ with exception for compositions using these patches.
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public freepats-gm
|
||||
(package
|
||||
(name "freepats-gm")
|
||||
(version "20210329")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://freepats.zenvoid.org/SoundSets/"
|
||||
"FreePats-GeneralMIDI/FreePatsGM-SF2-" version ".7z"))
|
||||
(sha256
|
||||
(base32
|
||||
"19a1mp9yi33j2zff4mjvhrjz97dwwgjwzfdlf84j9xyydhx0crhc"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("p7zip" ,p7zip)))
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(let ((dir (string-append "FreePatsGM-SF2-" ,version))
|
||||
(file (string-append "FreePatsGM-" ,version ".sf2"))
|
||||
(out (string-append %output "/share/soundfonts"))
|
||||
(doc (string-append %output "/share/doc/freepats-gm-" ,version)))
|
||||
(use-modules (guix build utils))
|
||||
(invoke (string-append (assoc-ref %build-inputs "p7zip") "/bin/7z")
|
||||
"e" (assoc-ref %build-inputs "source")
|
||||
(string-append dir "/" file)
|
||||
(string-append dir "/gpl.txt")
|
||||
(string-append dir "/cc0.txt")
|
||||
(string-append dir "/readme.txt"))
|
||||
(mkdir-p out)
|
||||
(copy-file file (string-append out "/FreePatsGM.sf2"))
|
||||
(mkdir-p doc)
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(copy-file file (string-append doc "/" file)))
|
||||
(find-files "." "\\.txt$"))
|
||||
#t)))
|
||||
(home-page "https://freepats.zenvoid.org/SoundSets/general-midi.html")
|
||||
(synopsis "General MIDI sound set")
|
||||
(description "FreePats is a project to create a free (as in free software)
|
||||
collection of digital instruments for music production. This sound bank is a
|
||||
partial release of the General MIDI sound set.")
|
||||
(license (list
|
||||
license:gpl3+ ; with sampling exception
|
||||
license:cc0))))
|
||||
|
||||
(define-public guitarix
|
||||
(package
|
||||
(name "guitarix")
|
||||
@@ -2273,23 +2194,23 @@ synchronous execution of all clients, and low latency operation.")
|
||||
;; jack-2 implement the same API. JACK2 is provided primarily as a client
|
||||
;; program for users who might benefit from the D-BUS features.
|
||||
(define-public jack-2
|
||||
(package
|
||||
(inherit jack-1)
|
||||
(package (inherit jack-1)
|
||||
(name "jack2")
|
||||
(version "1.9.21")
|
||||
(version "1.9.14")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jackaudio/jack2")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0sbrffmdbajvrk7iqvsvrnwnpvmicvbjyq3f52r6ashdsznsz03b"))))
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/jackaudio/jack2/releases/"
|
||||
"download/v" version "/jack2-"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0z11hf55a6mi8h50hfz5wry9pshlwl4mzfwgslghdh40cwv342m2"))))
|
||||
(build-system waf-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
#:configure-flags '("--dbus" "--alsa")
|
||||
`(#:tests? #f ; no check target
|
||||
#:configure-flags '("--dbus"
|
||||
"--alsa")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-linkflags
|
||||
@@ -2303,13 +2224,16 @@ synchronous execution of all clients, and low latency operation.")
|
||||
((".*CFLAGS.*-Wall.*" m)
|
||||
(string-append m
|
||||
" conf.env.append_unique('LINKFLAGS',"
|
||||
"'-Wl,-rpath=" %output "/lib')\n")))))
|
||||
"'-Wl,-rpath=" %output "/lib')\n")))
|
||||
#t))
|
||||
(add-after 'install 'wrap-python-scripts
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Make sure 'jack_control' runs with the correct PYTHONPATH.
|
||||
(wrap-program (search-input-file outputs "bin/jack_control")
|
||||
`("GUIX_PYTHONPATH" ":"
|
||||
prefix (,(getenv "GUIX_PYTHONPATH")))))))))
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(path (getenv "GUIX_PYTHONPATH")))
|
||||
(wrap-program (string-append out "/bin/jack_control")
|
||||
`("GUIX_PYTHONPATH" ":" prefix (,path))))
|
||||
#t)))))
|
||||
(inputs
|
||||
(list alsa-lib
|
||||
dbus
|
||||
@@ -2336,15 +2260,17 @@ synchronous execution of all clients, and low latency operation.")
|
||||
"05lycfq0f06zjp5xqvzjz9hx9kmqx72yng1lghh76hv63dw43lcj"))))
|
||||
(build-system waf-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ; no check target
|
||||
`(#:tests? #f ; no check target
|
||||
#:python ,python-2))
|
||||
(inputs
|
||||
(list lv2
|
||||
lilv
|
||||
suil
|
||||
gtk
|
||||
gtkmm
|
||||
qtbase-5
|
||||
jack-1))
|
||||
`(("lv2" ,lv2)
|
||||
("lilv" ,lilv)
|
||||
("suil" ,suil)
|
||||
("gtk2" ,gtk+-2)
|
||||
("gtk3" ,gtk+)
|
||||
("gtkmm" ,gtkmm-2)
|
||||
("qtbase" ,qtbase-5)
|
||||
("jack" ,jack-1)))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(home-page "https://drobilla.net/software/jalv/")
|
||||
@@ -2596,6 +2522,9 @@ compensation, (de)interleaving, and byte-swapping
|
||||
cross-platform audio input/output stream library.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pyaudio
|
||||
(package-with-python2 python-pyaudio))
|
||||
|
||||
(define-public python-pyliblo
|
||||
(package
|
||||
(name "python-pyliblo")
|
||||
@@ -2622,6 +2551,9 @@ to send and receive OSC messages using a nice and simple Python API. Also
|
||||
included are the command line utilities @code{send_osc} and @code{dump_osc}.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public python2-pyliblo
|
||||
(package-with-python2 python-pyliblo))
|
||||
|
||||
(define-public python-soundfile
|
||||
(package
|
||||
(name "python-soundfile")
|
||||
@@ -2829,33 +2761,37 @@ software.")
|
||||
(description "An LV2 port of the mda EPiano VSTi.")))
|
||||
|
||||
(define-public lvtk
|
||||
;; Use the latest commit, as the latest release was made in 2014 and depends
|
||||
;; on Python 2.
|
||||
(let ((commit "a73feabe772f9650aa071e6a4df660e549ab7c48")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "lvtk")
|
||||
(version (git-version "1.2.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/lvtk/lvtk")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0scmv8b4jlm88d21dqqchjy98wb93zclc9x960h213gdi871vsaj"))))
|
||||
(build-system waf-build-system)
|
||||
(arguments (list #:tests? #f)) ;no check target
|
||||
(inputs (list boost gtkmm lv2))
|
||||
(native-inputs (list pkg-config))
|
||||
(home-page "https://github.com/lvtk/lvtk")
|
||||
(synopsis "C++ libraries for LV2 plugins")
|
||||
(description
|
||||
"The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
|
||||
(package
|
||||
(name "lvtk")
|
||||
(version "1.2.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/lvtk/lvtk")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1b01zvzl70ana6l1kn8fgyr7msnn3c7x61cgw7fdpp50322352p8"))))
|
||||
(build-system waf-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
#:python ,python-2
|
||||
#:configure-flags
|
||||
(list (string-append "--boost-includes="
|
||||
(assoc-ref %build-inputs "boost")
|
||||
"/include"))))
|
||||
(inputs
|
||||
(list boost gtkmm-2 lv2))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(home-page "https://github.com/lvtk/lvtk")
|
||||
(synopsis "C++ libraries for LV2 plugins")
|
||||
(description
|
||||
"The LV2 Toolkit (LVTK) contains libraries that wrap the LV2 C API and
|
||||
extensions into easy to use C++ classes. It is the successor of
|
||||
lv2-c++-tools.")
|
||||
(license license:isc))))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public openal
|
||||
(package
|
||||
@@ -2992,14 +2928,14 @@ different audio devices such as ALSA or PulseAudio.")
|
||||
(define-public qjackctl
|
||||
(package
|
||||
(name "qjackctl")
|
||||
(version "0.9.7")
|
||||
(version "0.9.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
|
||||
version "/qjackctl-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"104hfvr15v8cbkzil8slrqj48y3fl7lx060alj80q1sjh5hl6j2j"))))
|
||||
"0sqni9ppwadc01fnyqj6lkwy30ql1vccqglv9imd3zdchffjpjir"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no check target
|
||||
@@ -3181,6 +3117,49 @@ using Guix System.")
|
||||
;; GNU Library (not Lesser) General Public License.
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
(define-public raul
|
||||
(package
|
||||
(name "raul")
|
||||
(version "0.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.drobilla.net/raul-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"09ms40xc1x6qli6lxkwn5ibqh62nl9w7dq0b6jh1q2zvnrxwsd8b"))))
|
||||
(build-system waf-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:tests? #f)) ; no check target
|
||||
(inputs
|
||||
(list glib boost))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(home-page "https://drobilla.net/software/raul/")
|
||||
(synopsis "Real-time audio utility library")
|
||||
(description
|
||||
"Raul (Real-time Audio Utility Library) is a C++ utility library primarily
|
||||
aimed at audio/musical applications.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public raul-devel
|
||||
(let ((commit "4db870b2b20b0a608ec0283139056b836c5b1624")
|
||||
(revision "1"))
|
||||
(package (inherit raul)
|
||||
(name "raul")
|
||||
(version (string-append "0.8.9-" revision "."
|
||||
(string-take commit 9)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.drobilla.net/raul.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr")))))))
|
||||
|
||||
(define-public resample
|
||||
(package
|
||||
(name "resample")
|
||||
@@ -3244,7 +3223,7 @@ tempo and pitch of an audio recording independently of one another.")
|
||||
(define-public rtmidi
|
||||
(package
|
||||
(name "rtmidi")
|
||||
(version "5.0.0")
|
||||
(version "4.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
|
||||
@@ -3252,7 +3231,7 @@ tempo and pitch of an audio recording independently of one another.")
|
||||
(file-name (string-append "rtmidi-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ff2yfq3k4l209fr71v3w98fpjjv1chs09vkbmxj03lcikahxns8"))))
|
||||
"1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list jack-1 alsa-lib))
|
||||
@@ -3266,19 +3245,6 @@ classes) that provide a common cross-platform API for realtime MIDI
|
||||
input/output.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public rtmidi-4.0
|
||||
(package
|
||||
(inherit rtmidi)
|
||||
(version "4.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.music.mcgill.ca/~gary/rtmidi"
|
||||
"/release/rtmidi-" version ".tar.gz"))
|
||||
(file-name (string-append "rtmidi-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1k962ljpnwyjw9jjiky2372khhri1wqvrj5qsalfpys31xqzw31p"))))))
|
||||
|
||||
(define-public sratom
|
||||
(package
|
||||
(name "sratom")
|
||||
@@ -4335,6 +4301,9 @@ It is currently fairly complete for PCM devices, and has some support for
|
||||
mixers.")
|
||||
(license license:psfl)))
|
||||
|
||||
(define-public python2-pyalsaaudio
|
||||
(package-with-python2 python-pyalsaaudio))
|
||||
|
||||
(define-public ldacbt
|
||||
(package
|
||||
(name "ldacbt")
|
||||
@@ -4618,44 +4587,37 @@ representations.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
#~(begin
|
||||
(delete-file-recursively "iniparser")
|
||||
(substitute* "configure.ac"
|
||||
(("AC_CONFIG_FILES\\(iniparser/Makefile\\)") ""))
|
||||
(substitute* "Makefile.am"
|
||||
(("SUBDIRS = iniparser") ""))))))
|
||||
"1mziklmqifhnb4kg9ia2r56r8wjn6xp40bkpf484hsgqvnrccl86"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list autoconf automake libtool))
|
||||
(inputs (list fftw ncurses pulseaudio iniparser))
|
||||
(native-inputs
|
||||
(list autoconf automake libtool))
|
||||
(inputs
|
||||
(list fftw ncurses pulseaudio))
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
#~(list (string-append "PREFIX="
|
||||
#$output)
|
||||
(string-append "FONT_DIR="
|
||||
#$output "/share/consolefonts"))
|
||||
#:make-flags
|
||||
#~(let ((lib (string-append #$output "/lib")))
|
||||
(list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib " -lrt")))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
(setenv "HOME"
|
||||
(getcwd))
|
||||
(invoke "sh" "autogen.sh")))
|
||||
(add-before 'build 'make-cava-ldflags
|
||||
(lambda _
|
||||
(mkdir-p (string-append #$output "/lib"))))
|
||||
(add-after 'install 'data
|
||||
(lambda _
|
||||
(for-each (lambda (file)
|
||||
(install-file file
|
||||
(string-append #$output
|
||||
"/share/doc/examples")))
|
||||
(find-files "example_files")))))))
|
||||
`(#:configure-flags
|
||||
(list (string-append "PREFIX=" %output)
|
||||
(string-append "FONT_DIR=" %output "/share/consolefonts"))
|
||||
#:make-flags
|
||||
(let ((lib (string-append %output "/lib")))
|
||||
(list (string-append "cava_LDFLAGS = -L" lib " -Wl,-rpath " lib)))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'bootstrap
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(setenv "HOME" (getcwd))
|
||||
(invoke "sh" "autogen.sh")))
|
||||
(add-before 'build 'make-cava-ldflags
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
|
||||
#t))
|
||||
(add-after 'install 'data
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(for-each (lambda (file)
|
||||
(install-file file
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/share/doc/examples")))
|
||||
(find-files "example_files"))
|
||||
#t)))))
|
||||
(home-page "https://karlstav.github.io/cava/")
|
||||
(synopsis "Console audio visualizer for ALSA, MPD, and PulseAudio")
|
||||
(description "C.A.V.A. is a bar audio spectrum visualizer for the terminal
|
||||
@@ -4983,47 +4945,50 @@ as is the case with audio plugins.")
|
||||
(base32 "01ngkmfcxyg1bb4qmfvlkkjbx4lx62akxqhizl8zmqnhfcy4p9bx"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f ; no "check" target
|
||||
#:make-flags
|
||||
#~(list (string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure script
|
||||
(add-before 'build 'set-CC-variable-and-show-features
|
||||
(lambda _
|
||||
(setenv "CC" #$(cc-for-target))
|
||||
(invoke "make" "features")))
|
||||
(add-after 'install 'make-carla-executable
|
||||
(lambda _
|
||||
(chmod (string-append #$output "/share/carla/carla") #o555)))
|
||||
(add-after 'install 'wrap-executables
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(wrap-script (string-append #$output "/bin/carla")
|
||||
#:guile (search-input-file inputs "bin/guile")
|
||||
`("GUIX_PYTHONPATH" ":" prefix
|
||||
(,(getenv "GUIX_PYTHONPATH")))))))))
|
||||
`(#:tests? #f ; no "check" target
|
||||
#:make-flags
|
||||
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure script
|
||||
(add-before 'build 'set-CC-variable-and-show-features
|
||||
(lambda _
|
||||
(setenv "CC" "gcc")
|
||||
(invoke "make" "features")))
|
||||
(add-after 'install 'make-carla-executable
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(chmod (string-append out "/share/carla/carla") #o555)
|
||||
#t)))
|
||||
(add-after 'install 'wrap-executables
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(wrap-script (string-append out "/bin/carla")
|
||||
#:guile (search-input-file inputs "bin/guile")
|
||||
`("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))))
|
||||
#t))))))
|
||||
(inputs
|
||||
(list alsa-lib
|
||||
ffmpeg
|
||||
fluidsynth
|
||||
file
|
||||
liblo
|
||||
libsndfile
|
||||
libx11
|
||||
gtk+-2 ;needed for bridging GTK2 plugins in GTK3 hosts
|
||||
gtk+
|
||||
python-pyliblo
|
||||
python-pyqt
|
||||
python-rdflib
|
||||
;; python-pyqt shows the following error without python-wrapper:
|
||||
;; Error while finding module specification for 'PyQt5.uic.pyuic'
|
||||
;; (ModuleNotFoundError: No module named 'PyQt5')
|
||||
python-wrapper
|
||||
qtbase-5
|
||||
zlib
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
("fluidsynth" ,fluidsynth)
|
||||
("file" ,file)
|
||||
("liblo" ,liblo)
|
||||
("libsndfile" ,libsndfile)
|
||||
("gtk2" ,gtk+-2) ;needed for bridging GTK2 plugins in GTK3 hosts
|
||||
("gtk+" ,gtk+)
|
||||
("python-pyliblo" ,python-pyliblo)
|
||||
("python-pyqt" ,python-pyqt)
|
||||
("python-rdflib" ,python-rdflib)
|
||||
;; python-pyqt shows the following error without python-wrapper:
|
||||
;; Error while finding module specification for 'PyQt5.uic.pyuic'
|
||||
;; (ModuleNotFoundError: No module named 'PyQt5')
|
||||
("python-wrapper" ,python-wrapper)
|
||||
("libx11" ,libx11)
|
||||
("qtbase" ,qtbase-5)
|
||||
("zlib" ,zlib)
|
||||
|
||||
;; For WRAP-SCRIPT above.
|
||||
guile-2.2))
|
||||
;; For WRAP-SCRIPT above.
|
||||
("guile" ,guile-2.2)))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(home-page "https://kx.studio/Applications:Carla")
|
||||
@@ -5434,54 +5399,55 @@ while still staying in time.")
|
||||
(define-public butt
|
||||
(package
|
||||
(name "butt")
|
||||
(version "0.1.34")
|
||||
(version "0.1.32")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/butt/butt/butt-"
|
||||
version "/butt-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0zd1g1673pv8z437y34fllxska8dzpd7mygpham35pzwpdyc5c1p"))
|
||||
"1qwllkx9p1gb3syhbbck3agrk375m82l18fb81aqygi4g3dg3s9r"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(substitute* "src/butt.cpp"
|
||||
((".*zica.*") "")))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'install-documentation
|
||||
(lambda _
|
||||
(let ((doc (string-append #$output "/share/doc/" #$name)))
|
||||
(install-file "README" doc)
|
||||
(copy-file #$(this-package-native-input "manual")
|
||||
(string-append doc "/butt-manual.pdf"))))))))
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'install-documentation
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(manual (assoc-ref inputs "manual"))
|
||||
(doc (string-append out "/share/doc/" ,name "-" ,version)))
|
||||
(install-file "README" doc)
|
||||
(copy-file manual (string-append doc "/butt-manual.pdf"))))))))
|
||||
(inputs
|
||||
`(("dbus" ,dbus)
|
||||
("flac" ,flac)
|
||||
("fltk" ,fltk)
|
||||
("lame" ,lame)
|
||||
("libfdk" ,libfdk)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("libvorbis" ,libvorbis)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxft" ,libxft)
|
||||
("libxrender" ,libxrender)
|
||||
("ogg" ,libogg)
|
||||
("openssl" ,openssl)
|
||||
("opus" ,opus)
|
||||
("portaudio" ,portaudio)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("manual"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://danielnoethen.de/butt/butt-"
|
||||
version "_manual.pdf"))
|
||||
(sha256
|
||||
(base32 "0kadqzzbk25n0aqxgbqhg4mq4hsbjq44phzcx5qj1b8847yzz8si"))))))
|
||||
(inputs
|
||||
(list dbus
|
||||
flac
|
||||
fltk
|
||||
lame
|
||||
libfdk
|
||||
libsamplerate
|
||||
libvorbis
|
||||
libx11
|
||||
libxext
|
||||
libxfixes
|
||||
libxft
|
||||
libxrender
|
||||
libogg
|
||||
openssl
|
||||
opus
|
||||
portaudio))
|
||||
("manual" ,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://danielnoethen.de/butt/butt-"
|
||||
version "_manual.pdf"))
|
||||
(sha256
|
||||
(base32
|
||||
"0g70jyyxbx5nin3xs9q9zf878b2kyy7rn8gn9w91x1ychbjd6dhh"))))))
|
||||
(home-page "https://danielnoethen.de/butt/")
|
||||
(synopsis "Audio streaming tool")
|
||||
(description "Butt is a tool to stream audio to a ShoutCast or
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"def_bf[MAXNAMELEN + 10]")))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list pkg-config which))
|
||||
(inputs (list guile-3.0 perl)) ; for doc generator mdoc
|
||||
(inputs (list guile-2.2 perl)) ; for doc generator mdoc
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
;; XXX Needed to build 5.18.16. ./configure fails without it:
|
||||
@@ -62,28 +62,6 @@
|
||||
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'support-guile-3.0
|
||||
;; Upstream bug:
|
||||
;; https://sourceforge.net/p/autogen/bugs/196/
|
||||
;;
|
||||
;; Supported in Debian and openSUSE:
|
||||
;; https://salsa.debian.org/debian/autogen/-/blob/master/debian/patches/40_suse_04-guile-version.patch
|
||||
(lambda _
|
||||
(substitute* "agen5/guile-iface.h"
|
||||
(("#elif GUILE_VERSION < 203000") "#elif GUILE_VERSION < 301000"))
|
||||
(substitute* "configure"
|
||||
(("2.2 2.0 1.8") "3.0 2.2 2.0 1.8"))))
|
||||
(add-after 'unpack 'use-numeric-ids-in-tarball
|
||||
;; Pass arguments to tar to generate tarball with consistent uid
|
||||
;; and gid to ensure reproducible build
|
||||
(lambda _
|
||||
(substitute* "pkg/libopts/mklibsrc.sh"
|
||||
(("--sort=name --format=gnu")
|
||||
"--sort=name --format=gnu --owner=0 --group=0 --numeric-owner"))))
|
||||
(add-before 'build 'set-man-page-date
|
||||
;; Avoid embedding the current date for reproducible builds
|
||||
(lambda _
|
||||
(setenv "MAN_PAGE_DATE" "2012-04-18")))
|
||||
(add-before 'patch-source-shebangs 'patch-test-scripts
|
||||
(lambda _
|
||||
(let ((sh (which "sh")))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2012-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
|
||||
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
|
||||
@@ -324,14 +324,14 @@ output is indexed in many ways to simplify browsing.")
|
||||
(define-public automake
|
||||
(package
|
||||
(name "automake")
|
||||
(version "1.16.3")
|
||||
(version "1.16.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/automake/automake-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0fmz2fhmzcpacnprl5msphvaflwiy0hvpgmqlgfny72ddijzfazz"))
|
||||
"0v8kbw4fan7apbjwziylyjl5z708w452r5q6kpafcmssi04wryl0"))
|
||||
(patches
|
||||
(search-patches "automake-skip-amhello-tests.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
@@ -519,18 +519,6 @@ complexity of working with shared libraries across platforms.")
|
||||
(license gpl3+)
|
||||
(home-page "https://www.gnu.org/software/libtool/")))
|
||||
|
||||
(define-public libtool-2.4.7
|
||||
(package
|
||||
(inherit libtool)
|
||||
(version "2.4.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libtool/libtool-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pb3l4x37k6fj1lwnpzws55gi3pxl0hx56jm4bzmbrkw0mzj2zsg"))))))
|
||||
|
||||
(define-public config
|
||||
(let ((revision "1")
|
||||
(commit "c8ddc8472f8efcadafc1ef53ca1d863415fddd5f"))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5848,7 +5848,7 @@ CONFIG_DRM_AMD_DC=y
|
||||
CONFIG_DRM_AMD_DC_SI=y
|
||||
# end of Display Engine Configuration
|
||||
|
||||
CONFIG_HSA_AMD=y
|
||||
# CONFIG_HSA_AMD is not set
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
|
||||
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
|
||||
|
||||
@@ -6304,7 +6304,7 @@ CONFIG_DRM_AMD_DC_SI=y
|
||||
# CONFIG_DEBUG_KERNEL_DC is not set
|
||||
# end of Display Engine Configuration
|
||||
|
||||
CONFIG_HSA_AMD=y
|
||||
# CONFIG_HSA_AMD is not set
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
|
||||
CONFIG_NOUVEAU_DEBUG=5
|
||||
|
||||
@@ -6100,7 +6100,7 @@ CONFIG_DRM_AMD_DC=y
|
||||
CONFIG_DRM_AMD_DC_SI=y
|
||||
# end of Display Engine Configuration
|
||||
|
||||
CONFIG_HSA_AMD=y
|
||||
# CONFIG_HSA_AMD is not set
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
|
||||
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
|
||||
|
||||
@@ -6482,7 +6482,7 @@ CONFIG_DRM_AMD_DC_DCN=y
|
||||
CONFIG_DRM_AMD_SECURE_DISPLAY=y
|
||||
# end of Display Engine Configuration
|
||||
|
||||
CONFIG_HSA_AMD=y
|
||||
# CONFIG_HSA_AMD is not set
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
|
||||
CONFIG_NOUVEAU_DEBUG=5
|
||||
|
||||
+452
-673
File diff suppressed because it is too large
Load Diff
+516
-743
File diff suppressed because it is too large
Load Diff
+439
-700
File diff suppressed because it is too large
Load Diff
+450
-732
File diff suppressed because it is too large
Load Diff
@@ -5523,7 +5523,7 @@ CONFIG_DRM_AMD_DC=y
|
||||
# CONFIG_DEBUG_KERNEL_DC is not set
|
||||
# end of Display Engine Configuration
|
||||
|
||||
CONFIG_HSA_AMD=y
|
||||
# CONFIG_HSA_AMD is not set
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
|
||||
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
|
||||
|
||||
@@ -6108,7 +6108,7 @@ CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
|
||||
# CONFIG_DEBUG_KERNEL_DC is not set
|
||||
# end of Display Engine Configuration
|
||||
|
||||
CONFIG_HSA_AMD=y
|
||||
# CONFIG_HSA_AMD is not set
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
|
||||
CONFIG_NOUVEAU_DEBUG=5
|
||||
|
||||
@@ -1,29 +1,12 @@
|
||||
#! @PYTHON@
|
||||
# -*- mode: python -*-
|
||||
|
||||
import glob
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
import sys
|
||||
import warnings
|
||||
|
||||
def __renpy_files(directory):
|
||||
for pattern in ['*.rpa', '*.rpyc', '*.rpy']:
|
||||
for file in glob.iglob(pattern, root_dir=directory):
|
||||
yield file
|
||||
|
||||
def path_to_gamedir(basedir, name):
|
||||
candidates = [name, 'game', 'data', 'launcher/game']
|
||||
|
||||
if __renpy_files(basedir):
|
||||
return basedir
|
||||
|
||||
for candidate in candidates:
|
||||
gamedir = os.path.join(basedir, candidate)
|
||||
if __renpy_files(gamedir):
|
||||
return gamedir
|
||||
|
||||
return basedir
|
||||
|
||||
def path_to_common(renpy_base):
|
||||
return renpy_base + "/common"
|
||||
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages avr-xyz)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages avr)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages ruby))
|
||||
|
||||
(define-public simavr
|
||||
(package
|
||||
(name "simavr")
|
||||
(version "1.7")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/buserror/simavr")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "0njz03lkw5374x1lxrq08irz4b86lzj2hibx46ssp7zv712pq55q"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f
|
||||
#:modules '((guix build gnu-build-system)
|
||||
(guix build utils))
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? outputs #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "make"
|
||||
"-C"
|
||||
"tests"
|
||||
(string-append "CC=" #$(cc-for-target))
|
||||
"RELEASE=1"
|
||||
"run_tests")))))
|
||||
#:make-flags #~(list (string-append "CC=" #$(cc-for-target))
|
||||
"RELEASE=1"
|
||||
(string-append "PREFIX=" #$output)
|
||||
(string-append "DESTDIR=" #$output))))
|
||||
(propagated-inputs
|
||||
(list avr-toolchain))
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
which
|
||||
git
|
||||
automake
|
||||
pkg-config
|
||||
ncurses
|
||||
ruby))
|
||||
(inputs
|
||||
(list bash-minimal libelf freeglut))
|
||||
(home-page "https://github.com/buserror/simavr")
|
||||
(synopsis "Lean, mean and hackable simulator for AVR CPUs/MCUs")
|
||||
(description
|
||||
"simavr is a new AVR simulator for GNU/Linux or any platform that uses
|
||||
@command{avr-gcc}. It uses avr-gcc's own register definition to simplify
|
||||
creating new targets for supported AVR devices. The core was made to be small
|
||||
and compact, and hackable so allow quick prototyping of an AVR project. The
|
||||
AVR core is now stable for use with parts with <= 128KB flash, and with
|
||||
preliminary support for the bigger parts. The simulator loads ELF files
|
||||
directly, and there is even a way to specify simulation parameterps directly
|
||||
in the emulated code using an @code{.elf} section. You can also load
|
||||
multipart HEX files.")
|
||||
(license license:gpl3)))
|
||||
+45
-80
@@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net>
|
||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||
;;; Copyright © 2015, 2016, 2017, 2021, 2022 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
|
||||
@@ -22,7 +22,6 @@
|
||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
|
||||
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2022 Feng Shu <tumashu@163.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -63,7 +62,6 @@
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages datastructures)
|
||||
#:use-module (gnu packages digest)
|
||||
#:use-module (gnu packages dbm)
|
||||
#:use-module (gnu packages dejagnu)
|
||||
#:use-module (gnu packages ftp)
|
||||
@@ -72,7 +70,6 @@
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages guile-xyz)
|
||||
#:use-module (gnu packages linux)
|
||||
@@ -86,7 +83,6 @@
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages protobuf)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-check)
|
||||
#:use-module (gnu packages python-crypto)
|
||||
#:use-module (gnu packages python-web)
|
||||
@@ -633,13 +629,13 @@ detection, and lossless compression.")
|
||||
(define-public borg
|
||||
(package
|
||||
(name "borg")
|
||||
(version "1.2.1")
|
||||
(version "1.1.17")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "borgbackup" version))
|
||||
(sha256
|
||||
(base32 "0cy6chpa053rlvy4448vf9klb5v0v1vq3l76gqa3mcrwjb8y574z"))
|
||||
(base32 "0x0ncy0b0bmf586hbdgrif3gjmkdw760vfnfxndr493v07y29fbs"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -649,6 +645,8 @@ detection, and lossless compression.")
|
||||
;; generate the wrong list.
|
||||
(for-each delete-file
|
||||
'("src/borg/algorithms/checksums.c"
|
||||
"src/borg/algorithms/msgpack/_packer.cpp"
|
||||
"src/borg/algorithms/msgpack/_unpacker.cpp"
|
||||
"src/borg/chunker.c"
|
||||
"src/borg/compress.c"
|
||||
"src/borg/crypto/low_level.c"
|
||||
@@ -658,12 +656,11 @@ detection, and lossless compression.")
|
||||
"src/borg/platform/freebsd.c"
|
||||
"src/borg/platform/linux.c"
|
||||
"src/borg/platform/posix.c"
|
||||
"src/borg/platform/syncfilerange.c"
|
||||
"src/borg/platform/windows.c"))
|
||||
"src/borg/platform/syncfilerange.c"))
|
||||
;; Remove bundled shared libraries.
|
||||
(with-directory-excursion "src/borg/algorithms"
|
||||
(for-each delete-file-recursively
|
||||
(list "lz4" "xxh64" "zstd")))
|
||||
(list "blake2" "lz4" "zstd")))
|
||||
#t))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
@@ -675,12 +672,12 @@ detection, and lossless compression.")
|
||||
(add-after 'unpack 'set-env
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((openssl (assoc-ref inputs "openssl"))
|
||||
(libb2 (assoc-ref inputs "libb2"))
|
||||
(lz4 (assoc-ref inputs "lz4"))
|
||||
(xxhash (assoc-ref inputs "xxhash"))
|
||||
(zstd (assoc-ref inputs "zstd")))
|
||||
(setenv "BORG_OPENSSL_PREFIX" openssl)
|
||||
(setenv "BORG_LIBB2_PREFIX" libb2)
|
||||
(setenv "BORG_LIBLZ4_PREFIX" lz4)
|
||||
(setenv "BORG_LIBXXHASH_PREFIX" xxhash)
|
||||
(setenv "BORG_LIBZSTD_PREFIX" zstd)
|
||||
(setenv "PYTHON_EGG_CACHE" "/tmp")
|
||||
;; The test 'test_return_codes[python]' fails when
|
||||
@@ -690,37 +687,32 @@ detection, and lossless compression.")
|
||||
;; The tests need to be run after Borg is installed.
|
||||
(delete 'check)
|
||||
(add-after 'install 'check
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
;; Make the installed package available for the test suite.
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
;; The tests should be run in an empty directory.
|
||||
(mkdir-p "tests")
|
||||
(with-directory-excursion "tests"
|
||||
(invoke "py.test" "-v" "--pyargs" "borg.testsuite" "-k"
|
||||
(string-append
|
||||
;; These tests need to write to '/var'.
|
||||
"not test_get_cache_dir "
|
||||
"and not test_get_config_dir "
|
||||
"and not test_get_keys_dir "
|
||||
"and not test_get_security_dir "
|
||||
;; These tests assume there is a root user in '/etc/passwd'.
|
||||
"and not test_access_acl "
|
||||
"and not test_default_acl "
|
||||
"and not test_get_item_uid_gid "
|
||||
"and not test_non_ascii_acl "
|
||||
"and not test_create_content_from_command "
|
||||
"and not test_create_content_from_command_with_failed_command "
|
||||
"and not test_create_stdin "
|
||||
;; We don't need to run benchmarks
|
||||
"and not benchmark "
|
||||
;; These tests assume the kernel supports FUSE.
|
||||
"and not test_fuse "
|
||||
"and not test_fuse_allow_damaged_files "
|
||||
"and not test_mount_hardlinks "
|
||||
"and not test_readonly_mount "
|
||||
"and not test_fuse_versions_view "
|
||||
"and not test_migrate_lock_alive"))))))
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Make the installed package available for the test suite.
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
;; The tests should be run in an empty directory.
|
||||
(mkdir-p "tests")
|
||||
(with-directory-excursion "tests"
|
||||
(invoke "py.test" "-v" "--pyargs" "borg.testsuite" "-k"
|
||||
(string-append
|
||||
;; These tests need to write to '/var'.
|
||||
"not test_get_cache_dir "
|
||||
"and not test_get_config_dir "
|
||||
"and not test_get_keys_dir "
|
||||
"and not test_get_security_dir "
|
||||
;; These tests assume there is a root user in
|
||||
;; '/etc/passwd'.
|
||||
"and not test_access_acl "
|
||||
"and not test_default_acl "
|
||||
"and not test_non_ascii_acl "
|
||||
"and not test_create_stdin "
|
||||
;; This test needs the unpackaged pytest-benchmark.
|
||||
"and not benchmark "
|
||||
;; These tests assume the kernel supports FUSE.
|
||||
"and not test_fuse "
|
||||
"and not test_fuse_allow_damaged_files "
|
||||
"and not test_mount_hardlinks "
|
||||
"and not test_readonly_mount ")))))
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
@@ -728,10 +720,10 @@ detection, and lossless compression.")
|
||||
(misc (string-append out "/share/borg/misc")))
|
||||
(for-each (cut install-file <> misc)
|
||||
'("docs/misc/create_chunker-params.txt"
|
||||
"docs/misc/borg-data-flow.png"
|
||||
"docs/misc/internals-picture.txt"
|
||||
"docs/misc/prune-example.txt"))
|
||||
(copy-recursively "docs/man" man))))
|
||||
(copy-recursively "docs/man" man)
|
||||
#t)))
|
||||
(add-after 'install-docs 'install-shell-completions
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
@@ -743,27 +735,24 @@ detection, and lossless compression.")
|
||||
(install-file "zsh/_borg"
|
||||
(string-append share "/zsh/site-functions"))
|
||||
(install-file "fish/borg.fish"
|
||||
(string-append share "/fish/vendor_completions.d")))))))))
|
||||
(string-append share "/fish/vendor_completions.d")))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
(list python-cython python-dateutil python-setuptools-scm python-pytest))
|
||||
(list python-cython python-setuptools-scm python-pytest))
|
||||
(inputs
|
||||
(list acl
|
||||
libb2
|
||||
lz4
|
||||
openssl
|
||||
;; This is the latest version of msgpack accepted by 'setup.py'.
|
||||
python-msgpack-1.0.2
|
||||
;; FUSE 3 isn't working well, so we stick with FUSE 2 for now:
|
||||
;; <https://issues.guix.gnu.org/53407>
|
||||
python-llfuse
|
||||
`(,zstd "lib")
|
||||
xxhash))
|
||||
`(,zstd "lib")))
|
||||
(synopsis "Deduplicated, encrypted, authenticated and compressed backups")
|
||||
(description "Borg is a deduplicating backup program. Optionally, it
|
||||
supports compression and authenticated encryption. The main goal of Borg is to
|
||||
provide an efficient and secure way to backup data. The data deduplication
|
||||
technique used makes Borg suitable for daily backups since only changes are
|
||||
stored. The authenticated encryption technique makes it suitable for storing
|
||||
backups on untrusted computers.")
|
||||
stored. The authenticated encryption technique makes it suitable for
|
||||
storing backups on untrusted computers.")
|
||||
(home-page "https://www.borgbackup.org/")
|
||||
(license license:bsd-3)))
|
||||
|
||||
@@ -1199,7 +1188,7 @@ additional snapshots).")
|
||||
uthash
|
||||
zlib))
|
||||
(native-inputs
|
||||
(list autoconf automake check pkg-config))
|
||||
(list autoconf automake check-0.14 pkg-config))
|
||||
(home-page "https://burp.grke.org")
|
||||
(synopsis "Differential backup and restore")
|
||||
(description "Burp is a network backup and restore program. It attempts
|
||||
@@ -1343,27 +1332,3 @@ tool. It supports the use of remote backup repositories. It can perform
|
||||
scheduled backups, and has a graphical tool for browsing and extracting the Borg
|
||||
archives.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public grsync
|
||||
(package
|
||||
(name "grsync")
|
||||
(version "1.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.opbyte.it/release/"
|
||||
"grsync-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1z1m782b50x348kgynzf753apy8yszkl31y32y1jsc055skcdixp"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list intltool pkg-config))
|
||||
(inputs (list gtk+))
|
||||
(propagated-inputs (list rsync))
|
||||
(home-page "http://www.opbyte.it/grsync/")
|
||||
(synopsis "GTK frontend for rsync")
|
||||
(description
|
||||
"Grsync is a simple graphical interface using GTK for the @command{rsync}
|
||||
command line program. It currently supports only a limited set of the most
|
||||
important rsync features, but can be used effectively for local directory
|
||||
synchronization.")
|
||||
(license license:gpl2)))
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "19bwa9qidq2mxv1fkyxxc1xdmv3jx6bj35bkaaw70jzkblnfmlfs"))))
|
||||
(base32 "10xk9szxxnqgfym53mcd9hqj1cw2ipncmiixw3i3ajlj1vn88qh1"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
||||
+15
-74
@@ -1,11 +1,11 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
|
||||
@@ -85,14 +85,14 @@
|
||||
(define-public hello
|
||||
(package
|
||||
(name "hello")
|
||||
(version "2.12.1")
|
||||
(version "2.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/hello/hello-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"086vqwk2wl8zfs47sq2xpjc9k066ilmb8z6dn0q6ymwjzlm196cd"))))
|
||||
"1ayhp9v4m4rdhjmnl2bq3cibrbqqkgjbl3s7yk2nhlh8vj3ay16g"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Hello, GNU world: An example GNU package")
|
||||
(description
|
||||
@@ -105,14 +105,14 @@ command-line arguments, multiple languages, and so on.")
|
||||
(define-public grep
|
||||
(package
|
||||
(name "grep")
|
||||
(version "3.6")
|
||||
(version "3.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/grep/grep-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gipv6bzkm1aihj0ncqpyh164xrzgcxcv9r1kwzyk2g1mzl1azk6"))
|
||||
"0g42svbc1nq5bamxfj6x7320wli4dlj86padk0hwgbk04hqxl42w"))
|
||||
(patches (search-patches "grep-timing-sensitive-test.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list perl)) ;some of the tests require it
|
||||
@@ -293,14 +293,14 @@ interactive means to merge two files.")
|
||||
(define-public findutils
|
||||
(package
|
||||
(name "findutils")
|
||||
(version "4.8.0")
|
||||
(version "4.9.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/findutils/findutils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0r3i72hnw0a30khlczi9k2c51aamaj6kfmp5mk3844nrjxz7n4jp"))
|
||||
"1zk2sighc26bfdsm97bv7cd1cnvq7r4gll4zqpnp0rs3kp0bigx2"))
|
||||
(patches (search-patches "findutils-localstatedir.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
@@ -742,6 +742,10 @@ the store.")
|
||||
(guix build utils)
|
||||
(guix build gnu-build-system))
|
||||
|
||||
;; Strip binaries but preserve the symbol table needed by Valgrind:
|
||||
;; <https://lists.gnu.org/archive/html/help-guix/2022-03/msg00036.html>.
|
||||
#:strip-flags '("--strip-debug")
|
||||
|
||||
#:configure-flags
|
||||
(list "--sysconfdir=/etc"
|
||||
|
||||
@@ -930,60 +934,6 @@ with the Linux kernel.")
|
||||
|
||||
;; Below are old libc versions, which we use mostly to build locale data in
|
||||
;; the old format (which the new libc cannot cope with.)
|
||||
(define-public glibc-2.32
|
||||
(package
|
||||
(inherit glibc)
|
||||
(version "2.32")
|
||||
(source (origin
|
||||
(inherit (package-source glibc))
|
||||
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0di848ibffrnwq7g2dvgqrnn4xqhj3h96csn69q4da51ymafl9qn"))
|
||||
(patches (search-patches
|
||||
"glibc-skip-c++.patch"
|
||||
"glibc-ldd-powerpc.patch"
|
||||
"glibc-ldd-x86_64.patch"
|
||||
"glibc-dl-cache.patch"
|
||||
"glibc-hidden-visibility-ldconfig.patch"
|
||||
"glibc-versioned-locpath.patch"
|
||||
"glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-reinstate-prlimit64-fallback.patch"
|
||||
"glibc-supported-locales.patch"
|
||||
"glibc-hurd-clock_t_centiseconds.patch"
|
||||
"glibc-2.31-hurd-clock_gettime_monotonic.patch"
|
||||
"glibc-hurd-signal-sa-siginfo.patch"
|
||||
"glibc-hurd-mach-print.patch"
|
||||
"glibc-hurd-gettyent.patch"))
|
||||
#;
|
||||
(patches (search-patches "glibc-ldd-x86_64.patch"
|
||||
"glibc-hidden-visibility-ldconfig.patch"
|
||||
"glibc-versioned-locpath.patch"
|
||||
"glibc-allow-kernel-2.6.32.patch"
|
||||
"glibc-reinstate-prlimit64-fallback.patch"
|
||||
"glibc-supported-locales.patch"
|
||||
"glibc-hurd-clock_t_centiseconds.patch"
|
||||
"glibc-hurd-clock_gettime_monotonic.patch"
|
||||
"glibc-hurd-signal-sa-siginfo.patch"))))
|
||||
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments glibc)
|
||||
((#:make-flags flags '())
|
||||
;; Arrange so that /etc/rpc & co. go to $out/etc.
|
||||
`(list (string-append "sysconfdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/etc")))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'configure 'set-etc-rpc-installation-directory
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Install the rpc data base file under `$out/etc/rpc'.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "sunrpc/Makefile"
|
||||
(("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix)
|
||||
(string-append out "/etc/rpc" suffix "\n"))
|
||||
(("^install-others =.*$")
|
||||
(string-append "install-others = " out "/etc/rpc\n"))))))))))))
|
||||
|
||||
(define-public glibc-2.31
|
||||
(package
|
||||
@@ -1229,15 +1179,6 @@ test environments.")
|
||||
(make-glibc-utf8-locales glibc)))
|
||||
|
||||
;; Packages provided to ease use of binaries linked against the previous libc.
|
||||
(define-public glibc-locales-2.32
|
||||
(package (inherit (make-glibc-locales glibc-2.32))
|
||||
(name "glibc-locales-2.32")))
|
||||
(define-public glibc-locales-2.31
|
||||
(package (inherit (make-glibc-locales glibc-2.31))
|
||||
(name "glibc-locales-2.31")))
|
||||
(define-public glibc-locales-2.30
|
||||
(package (inherit (make-glibc-locales glibc-2.30))
|
||||
(name "glibc-locales-2.30")))
|
||||
(define-public glibc-locales-2.29
|
||||
(package (inherit (make-glibc-locales glibc-2.29))
|
||||
(name "glibc-locales-2.29")))
|
||||
@@ -1304,7 +1245,7 @@ command.")
|
||||
(name "tzdata")
|
||||
;; This package should be kept in sync with python-pytz in (gnu packages
|
||||
;; time).
|
||||
(version "2022a")
|
||||
(version "2021e")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -1312,7 +1253,7 @@ command.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0r0nhwpk9nyxj5kkvjy58nr5d85568m04dcb69c4y3zmykczyzzg"))))
|
||||
"1cdjdcxl0s9xf0dg1z64kh7llm80byxqlzrkkjzcdlyh6yvl5v07"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:tests? #f
|
||||
@@ -1380,7 +1321,7 @@ command.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1iysv8fdkm79k8wh8jizmjmq075q4qjhk090vxjy57my6dz5wmzq")))))
|
||||
"0x8pcfmjvxk29yfh8bklchv2f0vpl4yih0gc4wyx292l78wncijq")))))
|
||||
(home-page "https://www.iana.org/time-zones")
|
||||
(synopsis "Database of current and historical time zones")
|
||||
(description "The Time Zone Database (often called tz or zoneinfo)
|
||||
|
||||
+14
-5
@@ -1,8 +1,8 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012-2017, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
|
||||
@@ -72,7 +72,7 @@
|
||||
...))
|
||||
|
||||
(define %patch-series-5.1
|
||||
;; This is the current patches series for 5.0, generated using
|
||||
;; This is the current patches series for 5.1, generated using
|
||||
;; 'download-patches' below.
|
||||
(patch-series
|
||||
(1 "1ymm8ppss6gyh9ifznjwiabrb4k91npd09c10y7mk66xp8yppc7b")
|
||||
@@ -82,7 +82,15 @@
|
||||
(5 "19bdyigdr81824nxvqr6a7k0cax60wq7376j6b91afbnwvlvbjyc")
|
||||
(6 "051x8wlwrqk0yr0zg378vh824iklfl5g9pkmcdf62qp8gn9pvqbm")
|
||||
(7 "0fir80pp1gmlpadmqcgkrv4y119pc7xllchjzg05fd7px73viz5c")
|
||||
(8 "1lfjgshk8i9vch92p5wgc9r90j3phw79aa7gbai89w183b2z6b7j")))
|
||||
(8 "1lfjgshk8i9vch92p5wgc9r90j3phw79aa7gbai89w183b2z6b7j")
|
||||
(9 "1vn36dzd9g4y1h3jiss6418crla0rbcd0d6wwsyv9d5l7aaxlp74")
|
||||
(10 "0amfmvbzsand7bdypylkjdpcp88fa3cplfshn7vyzv2ff2rdgj52")
|
||||
(11 "0yq24abb4fzfxqnwl20b330sxl9lr9ds0nc4yi30f81l94b1y6aq")
|
||||
(12 "165bff97ffih49vfs4mkr5w3z5gn1w6zfyrf773iajkw6v48kw8h")
|
||||
(13 "1bfmgv3lagbk3aq9a831d29xv7jz4sjq7jhn9hq89limyinvdb67")
|
||||
(14 "1l43dw4kpddn7l41i8wmj406z9abxky1wb3rk8krcys33g4f0kka")
|
||||
(15 "1w40vzadzx019v0zhs4q6yqycrk04x1k8xs6qb73vk7ny4p6jdqv")
|
||||
(16 "0krqqljz4bkp9wrdnwfx51bxkb8rkwf8ivc93as1znx5fr7i96c8")))
|
||||
|
||||
(define (download-patches store count)
|
||||
"Download COUNT Bash patches into store. Return a list of
|
||||
@@ -109,7 +117,8 @@ number/base32-hash tuples, directly usable in the 'patch-series' form."
|
||||
"-DSSH_SOURCE_BASHRC")
|
||||
" "))
|
||||
(configure-flags
|
||||
``("--with-installed-readline"
|
||||
``("--without-bash-malloc"
|
||||
"--with-installed-readline"
|
||||
,,(string-append "CPPFLAGS=" cppflags)
|
||||
,(string-append
|
||||
"LDFLAGS=-Wl,-rpath -Wl,"
|
||||
|
||||
+39
-115
@@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016, 2017, 2021 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
||||
;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
|
||||
@@ -39,23 +39,20 @@
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages kde-frameworks)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages kde-frameworks)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages opencl)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages php)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-science)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
@@ -63,55 +60,49 @@
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
;; Lazily resolve the gcc-toolchain to avoid a circular dependency.
|
||||
(define gcc-toolchain*
|
||||
(delay (module-ref (resolve-interface '(gnu packages commencement))
|
||||
'gcc-toolchain)))
|
||||
|
||||
(define-public fio
|
||||
(package
|
||||
(name "fio")
|
||||
(version "3.30")
|
||||
(version "3.29")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://brick.kernel.dk/snaps/"
|
||||
"fio-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qjivkisn7dxk8irrb0rglmmdpbnai6n7vindf18ln0j24cc1x56"))))
|
||||
"11k7ksksnb8lcbz0qdc9g7zlzaa0515j7kx4mlhk75sfs43v9zxc"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:modules
|
||||
`(,@%gnu-build-system-modules
|
||||
(ice-9 textual-ports))
|
||||
#:test-target "test"
|
||||
#:configure-flags
|
||||
#~(list "--disable-native") ;don't generate code for the build CPU
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key (configure-flags ''()) #:allow-other-keys)
|
||||
;; The configure script doesn't understand some of the
|
||||
;; GNU options, so we can't use the stock phase.
|
||||
(apply invoke "./configure"
|
||||
(string-append "--prefix=" #$output)
|
||||
configure-flags)))
|
||||
;; The main `fio` executable is fairly small and self contained.
|
||||
;; Moving the auxiliary scripts to a separate output saves ~100 MiB
|
||||
;; on the closure.
|
||||
(add-after 'install 'move-outputs
|
||||
(lambda _
|
||||
(let ((oldbin (string-append #$output "/bin"))
|
||||
(newbin (string-append #$output:utils "/bin"))
|
||||
(script? (lambda* (file #:rest _)
|
||||
(call-with-input-file file
|
||||
(lambda (port)
|
||||
(char=? #\# (peek-char port)))))))
|
||||
(mkdir-p newbin)
|
||||
(for-each (lambda (file)
|
||||
(link file (string-append newbin "/" (basename file)))
|
||||
(delete-file file))
|
||||
(find-files oldbin script?))))))))
|
||||
`(#:modules (,@%gnu-build-system-modules
|
||||
(ice-9 textual-ports))
|
||||
#:test-target "test"
|
||||
#:configure-flags '("--disable-native") ;don't generate code for the build CPU
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key (configure-flags ''()) outputs #:allow-other-keys)
|
||||
;; The configure script doesn't understand some of the
|
||||
;; GNU options, so we can't use the stock phase.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(apply invoke "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
configure-flags))))
|
||||
;; The main `fio` executable is fairly small and self contained.
|
||||
;; Moving the auxiliary scripts to a separate output saves ~100 MiB
|
||||
;; on the closure.
|
||||
(add-after 'install 'move-outputs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((oldbin (string-append (assoc-ref outputs "out") "/bin"))
|
||||
(newbin (string-append (assoc-ref outputs "utils") "/bin"))
|
||||
(script? (lambda* (file #:rest _)
|
||||
(call-with-input-file file
|
||||
(lambda (port)
|
||||
(char=? #\# (peek-char port)))))))
|
||||
(mkdir-p newbin)
|
||||
(for-each (lambda (file)
|
||||
(link file (string-append newbin "/" (basename file)))
|
||||
(delete-file file))
|
||||
(find-files oldbin script?))))))))
|
||||
(outputs '("out" "utils"))
|
||||
(inputs
|
||||
(list libaio python zlib))
|
||||
@@ -271,81 +262,21 @@ speed, the number of seeks that can be performed per second, and the number of
|
||||
file metadata operations that can be performed per second.")
|
||||
(license license:gpl2))) ;GPL 2 only, see copyright.txt
|
||||
|
||||
(define-public phoronix-test-suite
|
||||
(package
|
||||
(name "phoronix-test-suite")
|
||||
(version "10.8.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://phoronix-test-suite.com/releases/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"105shk78jy46nwj6vnlmgp3y3lv9klar3dmcgasy4bslm4l2wx2b"))
|
||||
(patches (search-patches "phoronix-test-suite-fsdg.patch"))))
|
||||
(arguments
|
||||
(list
|
||||
#:tests? #f ;no test suite
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(invoke "./install-sh" #$output "--free-software-only")))
|
||||
(add-after 'install 'wrap-binary
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((pts (string-append #$output "/bin/phoronix-test-suite")))
|
||||
(wrap-program pts
|
||||
(list "PATH" 'prefix
|
||||
(map (lambda (binary)
|
||||
(dirname (search-input-file
|
||||
inputs (string-append "bin/" binary))))
|
||||
'("bash" "cat" ;coreutils
|
||||
"gzip" "make" "php" "sed" "tar" "which"))))))))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list python which))
|
||||
;; Wrap the most basic build tools needed by Phoronix Test Suite to build
|
||||
;; simple tests such as 'fio'.
|
||||
(inputs (list bash coreutils gnu-make gzip php sed tar which))
|
||||
;; Phoronix Test Suite builds and caches the benchmarking tools itself;
|
||||
;; the user is required to manually install extra libraries depending on
|
||||
;; the selected test; but at least a working C/C++ toolchain is assumed to
|
||||
;; be available.
|
||||
(propagated-inputs (list (force gcc-toolchain*)))
|
||||
(home-page "https://www.phoronix-test-suite.com/")
|
||||
(synopsis "Automated testing/benchmarking software")
|
||||
(description
|
||||
"The Phoronix Test Suite is a comprehensive testing and benchmarking platform
|
||||
that provides an extensible framework for which new tests can be easily added.
|
||||
It can carry out both qualitative and quantitative benchmarks in a clean,
|
||||
reproducible, and easy-to-use manner, making it easy to compare one particular
|
||||
setup against another one.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public python-locust
|
||||
(package
|
||||
(name "python-locust")
|
||||
(version "2.8.6")
|
||||
(version "2.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "locust" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gn13j758j36knlcdyyyggn60rpw98iqdkvl3kjsz34brysic6q1"))))
|
||||
"1516z6z5pikybg7pma2cgxgj3wxaaky7z6d30mxf81wd4krbq16s"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'relax-requirements
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("setuptools_scm<=6.0.1")
|
||||
"setuptools_scm")
|
||||
(("Jinja2<3.1.0")
|
||||
"Jinja2"))))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
@@ -367,10 +298,7 @@ setup against another one.")
|
||||
;; respectively (see:
|
||||
;; https://github.com/locustio/locust/issues/1708).
|
||||
"not test_custom_exit_code"
|
||||
"not test_webserver"
|
||||
;; This test fails with "AssertionError:
|
||||
;; 'stopped' != 'stopping'".
|
||||
"not test_distributed_shape") " and "))))))))
|
||||
"not test_webserver") " and "))))))))
|
||||
(propagated-inputs
|
||||
(list python-configargparse
|
||||
python-flask
|
||||
@@ -378,7 +306,6 @@ setup against another one.")
|
||||
python-flask-cors
|
||||
python-gevent
|
||||
python-geventhttpclient
|
||||
python-jinja2
|
||||
python-msgpack
|
||||
python-psutil
|
||||
python-pyzmq
|
||||
@@ -387,11 +314,8 @@ setup against another one.")
|
||||
python-typing-extensions
|
||||
python-werkzeug))
|
||||
(native-inputs
|
||||
(list python-mock
|
||||
python-pyquery
|
||||
python-pytest
|
||||
python-retry
|
||||
python-setuptools-scm))
|
||||
(list python-mock python-pyquery python-pytest
|
||||
python-retry python-setuptools-scm))
|
||||
(home-page "https://locust.io/")
|
||||
(synopsis "Distributed load testing framework")
|
||||
(description "Locust is a performance testing tool that aims to be easy to
|
||||
|
||||
+1252
-2413
File diff suppressed because it is too large
Load Diff
+1122
-985
File diff suppressed because it is too large
Load Diff
@@ -105,11 +105,6 @@
|
||||
#:glib-or-gtk-wrap-excluded-outputs '("out")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; Avoid embedding kernel version for reproducible build
|
||||
(add-after 'unpack 'remove-kernel-version
|
||||
(lambda _
|
||||
(substitute* "third-party/miniupnpc/updateminiupnpcstrings.sh"
|
||||
(("OS_VERSION=`uname -r`") "OS_VERSION=Guix"))))
|
||||
(add-after 'install 'move-gui
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Move the GUI to its own output, so that "out" doesn't
|
||||
@@ -231,7 +226,7 @@ XML-RPC over SCGI.")
|
||||
(define-public tremc
|
||||
(package
|
||||
(name "tremc")
|
||||
(version "0.9.3")
|
||||
(version "0.9.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -241,7 +236,8 @@ XML-RPC over SCGI.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"11izsgwj435skkgvw96an6ddcm1hk3ff1gji4ksnidlyv6g6npyv"))))
|
||||
"1fqspp2ckafplahgba54xmx0sjidx1pdzyjaqjhz0ivh98dkx2n5"))
|
||||
(patches (search-patches "tremc-fix-decodestring.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
@@ -260,6 +256,49 @@ Transmission BitTorrent daemon.")
|
||||
(home-page "https://github.com/tremc/tremc")
|
||||
(license l:gpl3+)))
|
||||
|
||||
(define-public transmission-remote-cli
|
||||
(package
|
||||
(name "transmission-remote-cli")
|
||||
(version "1.7.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fagga/transmission-remote-cli")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"09w9f8vrm61lapin8fmq4rgahr95y3c6wss10g0fgd0kl16f895v"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2 ; only supports Python 2
|
||||
#:tests? #f ; no test suite
|
||||
#:phases (modify-phases %standard-phases
|
||||
;; The software is just a Python script that must be
|
||||
;; copied into place.
|
||||
(delete 'build)
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man (string-append out "/share/man/man1"))
|
||||
;; FIXME install zsh completions
|
||||
(completions (string-append out "/etc/bash_completion.d")))
|
||||
(install-file "transmission-remote-cli" bin)
|
||||
(install-file "transmission-remote-cli.1" man)
|
||||
(install-file
|
||||
(string-append
|
||||
"completion/bash/"
|
||||
"transmission-remote-cli-bash-completion.sh")
|
||||
completions)))))))
|
||||
(synopsis "Console client for the Transmission BitTorrent daemon")
|
||||
(description "Transmission-remote-cli is a console client, with a curses
|
||||
interface, for the Transmission BitTorrent daemon. This package is no longer
|
||||
maintained upstream.")
|
||||
(home-page "https://github.com/fagga/transmission-remote-cli")
|
||||
(license l:gpl3+)
|
||||
(properties `((superseded . ,tremc)))))
|
||||
|
||||
(define-public aria2
|
||||
(package
|
||||
(name "aria2")
|
||||
|
||||
+16
-4
@@ -15,9 +15,8 @@
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
|
||||
;;; Copyright © 2021, 2022 Greg Hogan <code@greghogan.com>
|
||||
;;; Copyright © 2021 Franck Pérignon <franck.perignon@univ-grenoble-alpes.fr>
|
||||
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
|
||||
;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@@ -68,15 +67,21 @@
|
||||
(define-public boost
|
||||
(package
|
||||
(name "boost")
|
||||
(version "1.77.0")
|
||||
(version "1.79.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://boostorg.jfrog.io/artifactory/main/release/"
|
||||
version "/source/boost_"
|
||||
(version-with-underscores version) ".tar.bz2"))
|
||||
(patches
|
||||
(list (boost-patch
|
||||
;; 1.79.0 was released with a segmentation fault:
|
||||
;; <https://github.com/boostorg/json/issues/692>.
|
||||
"0001-json-array-erase-relocate.patch" version
|
||||
"1b0izwj8w92imr8ydzrh522syncprpf82n3kcy6apxn6p54b7p0f")))
|
||||
(sha256
|
||||
(base32
|
||||
"0m08hhk3l7zvzajyk39qlw566q3fhixayhc2j11328qf0gy8b7zw"))))
|
||||
"0fggarccddj6q4ifj3kn7g565rbhn4ia1vd45fxb7y57a6fmhpa7"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs (list icu4c zlib))
|
||||
(native-inputs
|
||||
@@ -278,6 +283,13 @@ across a broad spectrum of applications.")
|
||||
(define-public boost-with-python3
|
||||
(deprecated-package "boost-with-python3" boost))
|
||||
|
||||
(define-public boost-with-python2
|
||||
(package/inherit boost
|
||||
(name "boost-python2")
|
||||
(native-inputs
|
||||
`(("python" ,python-2)
|
||||
,@(alist-delete "python" (package-native-inputs boost))))))
|
||||
|
||||
(define-public boost-static
|
||||
(package
|
||||
(inherit boost)
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
|
||||
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -333,18 +332,6 @@ menu to select one of the installed operating systems.")
|
||||
"/bin/mcopy\"")))
|
||||
#t))))))))))
|
||||
|
||||
(define-public grub-efi32
|
||||
(package
|
||||
(inherit grub-efi)
|
||||
(name "grub-efi32")
|
||||
(synopsis "GRand Unified Boot loader (UEFI 32bit version)")
|
||||
(arguments
|
||||
`(,@(substitute-keyword-arguments (package-arguments grub-efi)
|
||||
((#:configure-flags flags
|
||||
''()) `(cons* ,(cond ((target-x86?) "--target=i386")
|
||||
((target-arm?) "--target=arm"))
|
||||
,flags)))))))
|
||||
|
||||
;; Because grub searches hardcoded paths it's easiest to just build grub
|
||||
;; again to make it find both grub-pc and grub-efi. There is a command
|
||||
;; line argument which allows you to specify ONE platform - but
|
||||
@@ -530,7 +517,7 @@ tree binary files. These are board description files used by Linux and BSD.")
|
||||
(define u-boot
|
||||
(package
|
||||
(name "u-boot")
|
||||
(version "2022.04")
|
||||
(version "2021.10")
|
||||
(source (origin
|
||||
(patches
|
||||
(list %u-boot-rockchip-inno-usb-patch
|
||||
@@ -543,22 +530,19 @@ tree binary files. These are board description files used by Linux and BSD.")
|
||||
"u-boot-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l5w13dznj0z1ibqv2d6ljx2ma1gnf5x5ay3dqkqwxr6750nbq38"))))
|
||||
"1m0bvwv8r62s4wk4w3cmvs888dhv9gnfa98dczr4drk2jbhj7ryd"))))
|
||||
(native-inputs
|
||||
`(("bc" ,bc)
|
||||
("bison" ,bison)
|
||||
("dtc" ,dtc)
|
||||
("gnutls" ,gnutls)
|
||||
("flex" ,flex)
|
||||
("lz4" ,lz4)
|
||||
("tinfo" ,ncurses/tinfo)
|
||||
("perl" ,perl)
|
||||
("python" ,python)
|
||||
("python-coverage" ,python-coverage)
|
||||
("python-pycryptodomex" ,python-pycryptodomex)
|
||||
("python-pytest" ,python-pytest)
|
||||
("swig" ,swig)
|
||||
("libuuid" ,util-linux "lib")))
|
||||
("swig" ,swig)))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.denx.de/wiki/U-Boot/")
|
||||
(synopsis "ARM bootloader")
|
||||
@@ -927,7 +911,14 @@ to Novena upstream, does not load u-boot.img from the first partition.")
|
||||
(make-u-boot-package "qemu-riscv64" "riscv64-linux-gnu"))
|
||||
|
||||
(define-public u-boot-qemu-riscv64-smode
|
||||
(make-u-boot-package "qemu-riscv64_smode" "riscv64-linux-gnu"))
|
||||
(let ((base (make-u-boot-package "qemu-riscv64_smode" "riscv64-linux-gnu")))
|
||||
(package
|
||||
(inherit base)
|
||||
(source (origin
|
||||
(inherit (package-source u-boot))
|
||||
(patches
|
||||
(search-patches "u-boot-riscv64-fix-extlinux.patch"
|
||||
%u-boot-allow-disabling-openssl-patch)))))))
|
||||
|
||||
(define-public u-boot-sifive-unleashed
|
||||
(make-u-boot-package "sifive_unleashed" "riscv64-linux-gnu"))
|
||||
@@ -995,37 +986,6 @@ to Novena upstream, does not load u-boot.img from the first partition.")
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "BL31"
|
||||
(search-input-file inputs "/bl31.elf"))))
|
||||
(add-after 'unpack 'patch-config
|
||||
(lambda _
|
||||
(substitute* "configs/rockpro64-rk3399_defconfig"
|
||||
(("CONFIG_USB=y") "\
|
||||
CONFIG_USB=y
|
||||
CONFIG_AHCI=y
|
||||
CONFIG_AHCI_PCI=y
|
||||
CONFIG_SATA=y
|
||||
CONFIG_SATA_SIL=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_AHCI=y
|
||||
CONFIG_DM_SCSI=y
|
||||
"))
|
||||
(substitute* "include/config_distro_bootcmd.h"
|
||||
(("\"scsi_need_init=false")
|
||||
"\"setenv scsi_need_init false")
|
||||
(("#define BOOTENV_SET_SCSI_NEED_INIT \"scsi_need_init=;")
|
||||
"#define BOOTENV_SET_SCSI_NEED_INIT \"setenv scsi_need_init;"))
|
||||
(substitute* "include/configs/rockchip-common.h"
|
||||
(("#define BOOT_TARGET_DEVICES\\(func\\)")
|
||||
"
|
||||
#if CONFIG_IS_ENABLED(CMD_SCSI)
|
||||
#define BOOT_TARGET_SCSI(func) func(SCSI, scsi, 0)
|
||||
#else
|
||||
#define BOOT_TARGET_SCSI(func)
|
||||
#endif
|
||||
#define BOOT_TARGET_DEVICES(func)")
|
||||
(("BOOT_TARGET_NVME\\(func\\) \\\\")
|
||||
"\
|
||||
BOOT_TARGET_NVME(func) \\
|
||||
BOOT_TARGET_SCSI(func) \\"))))
|
||||
;; Phases do not succeed on the bl31 ELF.
|
||||
(delete 'strip)
|
||||
(delete 'validate-runpath)))))
|
||||
@@ -1144,14 +1104,14 @@ tools, and more.")
|
||||
(define-public os-prober
|
||||
(package
|
||||
(name "os-prober")
|
||||
(version "1.80")
|
||||
(version "1.79")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://debian/pool/main/o/os-prober/os-prober_"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "13z3rshgz5xj0328a80wavdimjw925yha9s1ks398sq0kn5w6qw0"))))
|
||||
(base32 "1vhhk0bl2j4910513gn5h3z8nsaavyv3c8764bim2klc0xyk3rmb"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
@@ -1168,7 +1128,8 @@ tools, and more.")
|
||||
(substitute* (find-files ".")
|
||||
(("/usr") (assoc-ref outputs "out")))
|
||||
(substitute* (find-files "." "50mounted-tests$")
|
||||
(("mkdir") "mkdir -p"))))
|
||||
(("mkdir") "mkdir -p"))
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(define (find-files-non-recursive directory)
|
||||
@@ -1199,7 +1160,8 @@ tools, and more.")
|
||||
(append (find-files-non-recursive (string-append directory "/common"))
|
||||
(find-files-non-recursive (string-append directory "/x86")))))
|
||||
(list "os-probes" "os-probes/mounted" "os-probes/init"
|
||||
"linux-boot-probes" "linux-boot-probes/mounted"))))))))
|
||||
"linux-boot-probes" "linux-boot-probes/mounted"))
|
||||
#t))))))
|
||||
(home-page "https://joeyh.name/code/os-prober")
|
||||
(synopsis "Detect other operating systems")
|
||||
(description "os-prober probes disks on the system for other operating
|
||||
|
||||
+65
-35
@@ -26,7 +26,6 @@
|
||||
(define-module (gnu packages bootstrap)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix platform)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system)
|
||||
@@ -315,29 +314,33 @@ or false to signal an error."
|
||||
(%current-system))))
|
||||
"Return the name of Glibc's dynamic linker for SYSTEM."
|
||||
;; See the 'SYSDEP_KNOWN_INTERPRETER_NAMES' cpp macro in libc.
|
||||
(let ((platform (lookup-platform-by-system system)))
|
||||
(cond
|
||||
((platform? platform)
|
||||
(platform-glibc-dynamic-linker platform))
|
||||
(cond ((string=? system "x86_64-linux") "/lib/ld-linux-x86-64.so.2")
|
||||
((string=? system "i686-linux") "/lib/ld-linux.so.2")
|
||||
((string=? system "armhf-linux") "/lib/ld-linux-armhf.so.3")
|
||||
((string=? system "mips64el-linux") "/lib/ld.so.1")
|
||||
((string=? system "i586-gnu") "/lib/ld.so.1")
|
||||
((string=? system "i686-gnu") "/lib/ld.so.1")
|
||||
((string=? system "aarch64-linux") "/lib/ld-linux-aarch64.so.1")
|
||||
((string=? system "powerpc-linux") "/lib/ld.so.1")
|
||||
((string=? system "powerpc64-linux") "/lib/ld64.so.1")
|
||||
((string=? system "powerpc64le-linux") "/lib/ld64.so.2")
|
||||
((string=? system "alpha-linux") "/lib/ld-linux.so.2")
|
||||
((string=? system "s390x-linux") "/lib/ld64.so.1")
|
||||
((string=? system "riscv64-linux") "/lib/ld-linux-riscv64-lp64d.so.1")
|
||||
|
||||
;; TODO: Define those as platforms.
|
||||
((string=? system "i686-gnu") "/lib/ld.so.1")
|
||||
((string=? system "powerpc64-linux") "/lib/ld64.so.1")
|
||||
((string=? system "alpha-linux") "/lib/ld-linux.so.2")
|
||||
;; XXX: This one is used bare-bones, without a libc, so add a case
|
||||
;; here just so we can keep going.
|
||||
((string=? system "arm-elf") "no-ld.so")
|
||||
((string=? system "arm-eabi") "no-ld.so")
|
||||
((string=? system "xtensa-elf") "no-ld.so")
|
||||
((string=? system "avr") "no-ld.so")
|
||||
((string=? system "propeller-elf") "no-ld.so")
|
||||
((string=? system "i686-mingw") "no-ld.so")
|
||||
((string=? system "x86_64-mingw") "no-ld.so")
|
||||
((string=? system "vc4-elf") "no-ld.so")
|
||||
|
||||
;; XXX: This one is used bare-bones, without a libc, so add a case
|
||||
;; here just so we can keep going.
|
||||
((string=? system "arm-elf") "no-ld.so")
|
||||
((string=? system "arm-eabi") "no-ld.so")
|
||||
((string=? system "xtensa-elf") "no-ld.so")
|
||||
((string=? system "avr") "no-ld.so")
|
||||
((string=? system "propeller-elf") "no-ld.so")
|
||||
((string=? system "i686-mingw") "no-ld.so")
|
||||
((string=? system "x86_64-mingw") "no-ld.so")
|
||||
((string=? system "vc4-elf") "no-ld.so")
|
||||
|
||||
(else (error "dynamic linker name not known for this system"
|
||||
system)))))
|
||||
(else (error "dynamic linker name not known for this system"
|
||||
system))))
|
||||
|
||||
|
||||
;;;
|
||||
@@ -658,12 +661,23 @@ $out/bin/guile --version~%"
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz")
|
||||
(match system
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
(string-append
|
||||
"/armhf-linux/20201219/"
|
||||
"linux-libre-headers-stripped-5.4.20-armhf-linux.tar.xz"))
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
(string-append
|
||||
"/i686-linux/20190815/"
|
||||
"linux-libre-headers-stripped-4.14.67-i686-linux.tar.xz"))))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))
|
||||
(match system
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"0d010sp3n2q6cc3ppcgrxrdlgkgr3vlv3x76wz14gc3xfhnnm2x5")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"0sm2z9x4wk45bh6qfs94p0w1d6hsy6dqx9sw38qsqbvxwa1qzk8s"))))))
|
||||
#f ; no program to test
|
||||
"Bootstrap linux-libre-headers"))
|
||||
|
||||
@@ -965,17 +979,25 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map
|
||||
(cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"mescc-tools-static-stripped-0.5.2-i686-linux.tar.xz")
|
||||
(cut string-append <> (%current-system) "/"
|
||||
(match (%current-system)
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"20221016/mescc-tools-static-stripped-1.4.0-armhf-linux.tar.xz")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"20190815/mescc-tools-static-stripped-0.5.2-i686-linux.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"0c3kklgghzh4q2dbpl6asb74cimp7hp6jscdwqwmzxbapgcl6582")))))))
|
||||
(match (%current-system)
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"0ldpxi17c6bgxi8sp84k0f49q0s4xn2nbg89qav594slhq3px9lv")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"0c3kklgghzh4q2dbpl6asb74cimp7hp6jscdwqwmzxbapgcl6582")))))))))
|
||||
(synopsis "Bootstrap binaries of MesCC Tools")
|
||||
(description synopsis)
|
||||
(home-page #f)
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(supported-systems '("armhf-linux" "aarch64-linux"
|
||||
"i686-linux" "x86_64-linux"))
|
||||
(license gpl3+)))
|
||||
|
||||
(define %bootstrap-mes
|
||||
@@ -1014,14 +1036,22 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map
|
||||
(cute string-append <>
|
||||
"/i686-linux/20190815/"
|
||||
"mes-minimal-stripped-0.19-i686-linux.tar.xz")
|
||||
(cute string-append <> (%current-system) "/"
|
||||
(match (%current-system)
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"20201217/mes-minimal-stripped-0.22-115-gdacaed9fe-armhf-linux.tar.xz")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"20190815/mes-minimal-stripped-0.19-i686-linux.tar.xz")))
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(base32
|
||||
"1q4xjpx6nbn44kxnilpgl12bhpmwy2bblzwszc2ci7xkf400jcpv")))))))
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(match (%current-system)
|
||||
((or "armhf-linux" "aarch64-linux")
|
||||
"0daz658r9psmqxjkayvr8ymql6h4gf11gwdd4k3mdv7czc5ak399")
|
||||
((or "i686-linux" "x86_64-linux")
|
||||
"1q4xjpx6nbn44kxnilpgl12bhpmwy2bblzwszc2ci7xkf400jcpv")))))))))
|
||||
(supported-systems '("armhf-linux" "aarch64-linux"
|
||||
"i686-linux" "x86_64-linux"))
|
||||
(synopsis "Bootstrap binaries of Mes")
|
||||
(description synopsis)
|
||||
(home-page #f)
|
||||
|
||||
@@ -51,7 +51,7 @@ supported content to the Kodi media center.")
|
||||
(define ublock-origin
|
||||
(package
|
||||
(name "ublock-origin")
|
||||
(version "1.43.0")
|
||||
(version "1.41.6")
|
||||
(home-page "https://github.com/gorhill/uBlock")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
@@ -62,7 +62,7 @@ supported content to the Kodi media center.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0w0by41v1s1cbd3bfjlb7kxr2bl6r5z3jvizlx02x14hqlppma9k"))))
|
||||
"05flr4jksa3l4cwi0fgkzmzn46rg5znaqd73615lwnxmnpr4va9d"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("xpi" "firefox" "chromium"))
|
||||
(arguments
|
||||
|
||||
@@ -102,7 +102,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
|
||||
(define-public bear
|
||||
(package
|
||||
(name "bear")
|
||||
(version "3.0.19")
|
||||
(version "3.0.17")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -111,7 +111,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "05jbcx5m923dg27j3i442hc73hdci5n7vp7a671x1w7bdivgqg96"))))
|
||||
(base32 "0klbk99qphibrp2944w8gn6x1dwwgrbm7f2bh530wjp5h3bpkr45"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
|
||||
+22
-15
@@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -34,7 +34,7 @@
|
||||
(define-public busybox
|
||||
(package
|
||||
(name "busybox")
|
||||
(version "1.34.1")
|
||||
(version "1.33.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -42,20 +42,22 @@
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jfm9fik7nv4w21zqdg830pddgkdjmplmna9yjn9ck1lwn4vsps1"))))
|
||||
"0a0dcvsh7nxnhxc5y73fky0z30i9p7r30qfidm2akn0n5fywdkhj"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'disable-timestamps
|
||||
(lambda _
|
||||
(setenv "KCONFIG_NOTIMESTAMP" "1")))
|
||||
(setenv "KCONFIG_NOTIMESTAMP" "1")
|
||||
#t))
|
||||
(add-before 'configure 'disable-taskset
|
||||
;; This feature fails its tests in the build environment,
|
||||
;; was default 'n' until after 1.26.2.
|
||||
(lambda _
|
||||
(substitute* "util-linux/taskset.c"
|
||||
(("default y") "default n"))))
|
||||
(("default y") "default n"))
|
||||
#t))
|
||||
(replace 'configure
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(apply invoke "make" "defconfig" make-flags)))
|
||||
@@ -63,7 +65,8 @@
|
||||
(lambda _
|
||||
(substitute* ".config"
|
||||
(("# CONFIG_INSTALL_NO_USR is not set")
|
||||
"CONFIG_INSTALL_NO_USR=y"))))
|
||||
"CONFIG_INSTALL_NO_USR=y"))
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(substitute* '("testsuite/du/du-s-works"
|
||||
@@ -120,7 +123,7 @@ any small or embedded system.")
|
||||
(define-public toybox
|
||||
(package
|
||||
(name "toybox")
|
||||
(version "0.8.7")
|
||||
(version "0.8.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -128,18 +131,17 @@ any small or embedded system.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"150lvp7hf9ndafvmr42kb8xi86hxjd2zj4binwwhgjw2dwrvy25m"))))
|
||||
"0jq3368jps6jg717ikzhlc6whml3k2s9xy69zpj4i0r35c5ck622"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
(string-append "HOSTCC=gcc")
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'configure 'set-environment-variables
|
||||
(lambda _
|
||||
(setenv "CC" #$(cc-for-target))
|
||||
(setenv "HOSTCC" (which "gcc"))))
|
||||
(replace 'configure
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(apply invoke "make" "defconfig" make-flags)))
|
||||
(lambda _ (invoke "make" "defconfig")))
|
||||
(add-before 'check 'fix-or-skip-broken-tests
|
||||
(lambda _
|
||||
;; Some tests expect $USER to magically be the current user.
|
||||
@@ -149,6 +151,11 @@ any small or embedded system.")
|
||||
;; Delete tests that expect a root or 0 user to exist.
|
||||
(substitute* "tests/id.test"
|
||||
(("^testing .*[ \\(]root.*") ""))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "make"
|
||||
(string-append "PREFIX=" #$output)
|
||||
"install")))
|
||||
(add-after 'install 'remove-usr-directory
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(delete-file-recursively (string-append #$output "/usr")))))
|
||||
|
||||
+39
-199
@@ -1,9 +1,9 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
@@ -12,9 +12,6 @@
|
||||
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
|
||||
;;; Copyright © 2021 David Dashyan <mail@davie.li>
|
||||
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
|
||||
;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
|
||||
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -40,7 +37,6 @@
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix store)
|
||||
#:use-module (gnu packages)
|
||||
@@ -147,75 +143,10 @@ compiler while still keeping it small, simple, fast and understandable.")
|
||||
;; preferred. See http://pcc.ludd.ltu.se/licenses/ for more details.
|
||||
(license (list license:bsd-2 license:bsd-3))))
|
||||
|
||||
(define-public qbe
|
||||
(package
|
||||
(name "qbe")
|
||||
(version "1.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "git://c9x.me/qbe")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qx4a3fjjrp2m4dsn19rpbjf89k9w7w7l09s96jx8vv15vzsdgis"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target))
|
||||
(string-append "PREFIX=" #$output))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'allow-cross-compilation
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("`uname -m`") #$(or (%current-target-system)
|
||||
(%current-system))))))
|
||||
(delete 'configure))))
|
||||
(supported-systems (list "x86_64-linux" "aarch64-linux" "riscv64-linux"))
|
||||
(synopsis "Simple compiler backend")
|
||||
(description
|
||||
"QBE is a small compiler backend using an SSA-based intermediate
|
||||
language as input.")
|
||||
(home-page "https://c9x.me/compile/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pcpp
|
||||
(package
|
||||
(name "python-pcpp")
|
||||
(version "1.30")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ned14/pcpp")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1rihvlg11nzk70kfzz4i3gi5izcy46w05ismcx04p5j1hlim0brb"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases #~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'unbundle-ply
|
||||
(lambda _
|
||||
(rmdir "pcpp/ply")
|
||||
(substitute* "setup.py"
|
||||
(("'pcpp/ply/ply'") "")))))))
|
||||
(native-inputs (list python-pytest))
|
||||
(propagated-inputs (list python-ply))
|
||||
(home-page "https://github.com/ned14/pcpp")
|
||||
(synopsis "C99 preprocessor written in Python")
|
||||
(description "This package provides a C99 preprocessor written in pure
|
||||
Python.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public libbytesize
|
||||
(package
|
||||
(name "libbytesize")
|
||||
(version "2.6")
|
||||
(version "2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@@ -223,12 +154,14 @@ Python.")
|
||||
"download/" version "/libbytesize-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0h87ryi0mp8msq43h1cna453cqaw5knx1xaggfzm4fxvn8sjpapg"))))
|
||||
"1aivwypmnqcaj2230pifvf3jcgl5chja8rspkxf0j3480asm8g5r"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f))
|
||||
(native-inputs
|
||||
(list gettext-minimal pkg-config python))
|
||||
`(("gettext" ,gettext-minimal)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python)))
|
||||
(inputs
|
||||
(list mpfr pcre2))
|
||||
(home-page "https://github.com/storaged-project/libbytesize")
|
||||
@@ -306,11 +239,6 @@ Its three main components are:
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list autoconf automake libtool pkg-config check))
|
||||
(native-search-paths
|
||||
(list
|
||||
(search-path-specification
|
||||
(variable "C_INCLUDE_PATH")
|
||||
(files '("include")))))
|
||||
(synopsis "Thin wrapper over POSIX syscalls")
|
||||
(description
|
||||
"The purpose of libfixposix is to offer replacements for parts of POSIX
|
||||
@@ -320,14 +248,14 @@ whose behaviour is inconsistent across *NIX flavours.")
|
||||
(define-public libhx
|
||||
(package
|
||||
(name "libhx")
|
||||
(version "4.3")
|
||||
(version "4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://inai.de/files/libhx/"
|
||||
"libHX-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "06zkzaya6j3vaafz80qcgn5qcri047003bhmjisv5sbikcw97jqy"))))
|
||||
(base32 "1ri3sxiw5a8br27j7f20s40kihfvq6mmxzcrx68zydiwyxjvf5jj"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://inai.de/projects/libhx/")
|
||||
(synopsis "C library with common data structures and functions")
|
||||
@@ -399,7 +327,7 @@ as dictionaries, skip lists, and memory pools.")
|
||||
(define-public packcc
|
||||
(package
|
||||
(name "packcc")
|
||||
(version "1.7.2")
|
||||
(version "1.5.0")
|
||||
(home-page "https://github.com/arithy/packcc")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
@@ -409,7 +337,7 @@ as dictionaries, skip lists, and memory pools.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mb6ys5ylvjz0xpq6769ir98s80p98s9ahd0c9k8p2ra1w20vz33"))))
|
||||
"1n9ivsa6b9ps2jbh34bycjqjpbwbk85l4jjg46pfhqxzz96793wy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
@@ -433,7 +361,8 @@ as dictionaries, skip lists, and memory pools.")
|
||||
(install-file "release/bin/packcc"
|
||||
(string-append out "/bin"))
|
||||
(install-file "../../README.md"
|
||||
(string-append out "/share/doc/packcc"))))))))
|
||||
(string-append out "/share/doc/packcc"))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
(list bats))
|
||||
(synopsis "Packrat parser generator for C")
|
||||
@@ -652,33 +581,11 @@ portability.")
|
||||
(license (list license:bsd-2 ;all files except...
|
||||
license:bsd-3)))) ;...the unidef.1 manual page
|
||||
|
||||
(define-public byacc
|
||||
(package
|
||||
(name "byacc")
|
||||
(version "20220128")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://invisible-mirror.net/archives/byacc/byacc-"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"173l5pdzgqk2ld6lf0ablii0iiw07sry2vrjfrm4wc99qmf81ha2"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://invisible-island.net/byacc/byacc.html")
|
||||
(synopsis "Berkeley Yacc LALR parser generator")
|
||||
(description
|
||||
"Berkeley Yacc is an LALR(1) parser generator. Yacc reads the grammar
|
||||
specification from a file and generates an LALR(1) parser for it. The parsers
|
||||
consist of a set of LALR(1) parsing tables and a driver routine written in the
|
||||
C programming language.")
|
||||
(license license:public-domain)))
|
||||
|
||||
(define-public aws-c-common
|
||||
(package
|
||||
(name "aws-c-common")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
(version "0.6.20")
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.6.11")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -687,13 +594,12 @@ C programming language.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"089grcj58n4xs41kmnpaqpwsalcisjbqqb5yqahxxyfx2lf1j9c9"))))
|
||||
"1v4dhygiynl75y3702lbp9j8kph88j4f2sq39s4lkhn6lmbz5f0f"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
'("-DBUILD_SHARED_LIBS=ON")))
|
||||
(synopsis "Amazon Web Services core C library")
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(description
|
||||
"This library provides common C99 primitives, configuration, data
|
||||
structures, and error handling for the @acronym{AWS,Amazon Web Services} SDK.")
|
||||
@@ -703,7 +609,7 @@ C programming language.")
|
||||
(define-public aws-checksums
|
||||
(package
|
||||
(name "aws-checksums")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.1.12")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
@@ -732,7 +638,7 @@ with fallback to efficient C99 software implementations.")
|
||||
(define-public aws-c-event-stream
|
||||
(package
|
||||
(name "aws-c-event-stream")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.2.7")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
@@ -764,8 +670,8 @@ communication.")
|
||||
(define-public aws-c-io
|
||||
(package
|
||||
(name "aws-c-io")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
(version "0.10.20")
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.10.9")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -774,7 +680,7 @@ communication.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"07l5rfbm1irkigfv51sfygs992af8rxicmay97frbx6z21khdjnr"))))
|
||||
"14rxa3k842fgk43702nz7z9y3clfhvax8j0k93i0c5vg14wj38yp"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
@@ -793,8 +699,8 @@ event-driven, asynchronous network application protocols.")
|
||||
(define-public aws-c-cal
|
||||
(package
|
||||
(name "aws-c-cal")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
(version "0.5.17")
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.5.12")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -803,7 +709,7 @@ event-driven, asynchronous network application protocols.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gd7xfzv509vcysifzfa8j2rykkc1prhiry7953snblkzm7airm5"))))
|
||||
"09zqf610x4g2mcjcaf9nh88k6dkw14pi721yr8hxb5rmsx7rlfrb"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
@@ -821,34 +727,6 @@ cryptographic primitives for the @acronym{AWS,Amazon Web Services} SDK.")
|
||||
(home-page "https://github.com/awslabs/aws-c-cal")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public aws-c-sdkutils
|
||||
(package
|
||||
(name "aws-c-sdkutils")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
(version "0.1.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url (string-append "https://github.com/awslabs/" name))
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"14wpl3dxwjbbzas44v6m6m3ll89rgz34x9gb140qz624gwzs9v0v"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(list "-DBUILD_SHARED_LIBS=ON"
|
||||
(string-append "-DCMAKE_PREFIX_PATH="
|
||||
(assoc-ref %build-inputs "aws-c-common")))))
|
||||
(propagated-inputs
|
||||
(list aws-c-common))
|
||||
(synopsis "Amazon Web Service utility library")
|
||||
(description "This library provides for parsing and management of profiles
|
||||
for the @acronym{AWS,Amazon Web Services} SDK.")
|
||||
(home-page "https://github.com/awslabs/aws-c-sdkutils")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public pcl
|
||||
(package
|
||||
(name "pcl")
|
||||
@@ -871,8 +749,8 @@ low level functionality for coroutines.")
|
||||
(define-public aws-c-http
|
||||
(package
|
||||
(name "aws-c-http")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
(version "0.6.13")
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.6.7")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -881,7 +759,7 @@ low level functionality for coroutines.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"125glc9b3906r95519zqfbzzz6wj5ib4im2n45yxrigwkkpffbq9"))))
|
||||
"1s06bz6w7355ldyhwjidcpbff7591ch4lwwjcj47a6k2kczdmiz4"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
@@ -901,7 +779,7 @@ specifications.")
|
||||
(define-public aws-c-compression
|
||||
(package
|
||||
(name "aws-c-compression")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.2.14")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
@@ -930,8 +808,8 @@ currently limited to Huffman encoding and decoding.")
|
||||
(define-public aws-c-auth
|
||||
(package
|
||||
(name "aws-c-auth")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
(version "0.6.11")
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.6.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -940,7 +818,7 @@ currently limited to Huffman encoding and decoding.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0frfnbifkrib9l68mj92a3g1x8xc8hpdlzbga2a801zgf2flx4fy"))
|
||||
"120p69lj279yq3d2b81f45kgfrvf32j6m7s03m8hh27w8yd4vbfp"))
|
||||
(patches
|
||||
(search-patches
|
||||
"aws-c-auth-install-private-headers.patch"))))
|
||||
@@ -952,7 +830,7 @@ currently limited to Huffman encoding and decoding.")
|
||||
(assoc-ref %build-inputs "aws-c-common"))
|
||||
"-DENABLE_NET_TESTS=OFF")))
|
||||
(propagated-inputs
|
||||
(list aws-c-cal aws-c-common aws-c-http aws-c-io aws-c-sdkutils))
|
||||
(list aws-c-cal aws-c-common aws-c-http aws-c-io))
|
||||
(synopsis "Amazon Web Services client-side authentication library")
|
||||
(description
|
||||
"This library provides a C99 implementation for AWS client-side
|
||||
@@ -963,8 +841,8 @@ authentication.")
|
||||
(define-public aws-c-s3
|
||||
(package
|
||||
(name "aws-c-s3")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
(version "0.1.38")
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.1.26")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -973,7 +851,7 @@ authentication.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0n2y8hzb1bx3vnzlpb5hsav18dg33pwav0mpji6krz98y2l8msya"))))
|
||||
"0gaxnwwk0jbvkgjnxcgchq13xmn7jk5vjvjsps6b0vaz6bf12wv8"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
@@ -982,7 +860,7 @@ authentication.")
|
||||
(assoc-ref %build-inputs "aws-c-common"))
|
||||
"-DENABLE_NET_TESTS=OFF")))
|
||||
(propagated-inputs
|
||||
(list aws-c-auth aws-c-http aws-checksums))
|
||||
(list aws-c-auth aws-c-http))
|
||||
(synopsis "Amazon Web Services client library for Amazon S3")
|
||||
(description
|
||||
"This library provides a C99 client implementation of the Simple Storage
|
||||
@@ -993,8 +871,8 @@ Service (S3) protocol for object storage.")
|
||||
(define-public aws-c-mqtt
|
||||
(package
|
||||
(name "aws-c-mqtt")
|
||||
;; Update only when updating aws-crt-cpp.
|
||||
(version "0.7.10")
|
||||
; Update only when updating aws-crt-cpp.
|
||||
(version "0.7.8")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -1003,7 +881,7 @@ Service (S3) protocol for object storage.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qmzx8b4wcsq9s99q2zrhx1s3jdmfy8zs16qys9bqv45gspi3ybr"))))
|
||||
"19j6nw2v36c4yff4p0fbf0748s06fd5r9cp2yakry9ybn1ada99c"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
@@ -1134,41 +1012,3 @@ performance concurrent systems developed in C99+.")
|
||||
C and C++. The functions it provides are like those from the C header
|
||||
string.h, but with a utf8* prefix instead of the str* prefix.")
|
||||
(license license:unlicense))))
|
||||
|
||||
(define-public utest-h
|
||||
;; The latest commit is used as there is no release.
|
||||
(let ((commit "54458e248f875f1a51f0af8bec8ca6ae7761b9d1")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "utest-h")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sheredom/utest.h")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name "utest.h" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ikl5jwmjdw1mblqyl2kvnqwkjgaz78c1h7mjcfmzjc0d3h8kh44"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(delete 'build)
|
||||
(delete 'configure)
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(with-directory-excursion "test"
|
||||
(invoke "cmake" ".")
|
||||
(invoke "make")))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(install-file "utest.h"
|
||||
(string-append out "/include"))))))))
|
||||
(home-page "https://www.duskborn.com/utest_h/")
|
||||
(synopsis "Single-header unit testing framework for C and C++")
|
||||
(description
|
||||
"This package provides a header-only unit testing library for C/C++.")
|
||||
(license license:unlicense))))
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-build)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages sphinx)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
;;; Copyright © 2014, 2015, 2016, 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2021, 2022 Greg Hogan <code@greghogan.com>
|
||||
;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -32,14 +32,14 @@
|
||||
(define-public ccache
|
||||
(package
|
||||
(name "ccache")
|
||||
(version "4.6.1")
|
||||
(version "4.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/ccache/ccache/releases/download/v"
|
||||
version "/ccache-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1lgk6fbfsnh2fscjmhpak8gwp3njq3kr0ihjcjlas15mrg9ppm75"))))
|
||||
(base32 "05wmflxdc8h3d00gr3kilr5dmrqxj6lcmq9ic575ydi60fz6w62i"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs (list perl ; for test/run
|
||||
(@ (gnu packages base) which)))
|
||||
|
||||
+21
-23
@@ -1,7 +1,7 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016-2017, 2021-2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
@@ -28,7 +28,6 @@
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
@@ -160,27 +159,26 @@ that was originally contributed to Debian.")
|
||||
(inputs '())
|
||||
(propagated-inputs '())
|
||||
(arguments
|
||||
(list #:modules '((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(rnrs io ports)
|
||||
(srfi srfi-26))
|
||||
#:phases
|
||||
#~(modify-phases
|
||||
(map (cut assq <> %standard-phases)
|
||||
'(set-paths install-locale unpack))
|
||||
(add-after 'unpack 'install
|
||||
(lambda _
|
||||
(let ((certsdir (string-append #$output
|
||||
"/etc/ssl/certs/")))
|
||||
(with-directory-excursion "nss/lib/ckfw/builtins/"
|
||||
(unless (file-exists? "blacklist.txt")
|
||||
(call-with-output-file "blacklist.txt" (const #t)))
|
||||
;; Extract selected single certificates from blob.
|
||||
(invoke "certdata2pem")
|
||||
;; Copy .pem files into the output.
|
||||
(for-each (cut install-file <> certsdir)
|
||||
(find-files "." ".*\\.pem$")))
|
||||
(invoke "openssl" "rehash" certsdir)))))))
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(rnrs io ports)
|
||||
(srfi srfi-26))
|
||||
#:phases
|
||||
(modify-phases
|
||||
(map (cut assq <> %standard-phases)
|
||||
'(set-paths install-locale unpack))
|
||||
(add-after 'unpack 'install
|
||||
(lambda _
|
||||
(let ((certsdir (string-append %output "/etc/ssl/certs/")))
|
||||
(with-directory-excursion "nss/lib/ckfw/builtins/"
|
||||
(unless (file-exists? "blacklist.txt")
|
||||
(call-with-output-file "blacklist.txt" (const #t)))
|
||||
;; Extract selected single certificates from blob.
|
||||
(invoke "certdata2pem")
|
||||
;; Copy .pem files into the output.
|
||||
(for-each (cut install-file <> certsdir)
|
||||
(find-files "." ".*\\.pem$")))
|
||||
(invoke "openssl" "rehash" certsdir)))))))
|
||||
(synopsis "CA certificates from Mozilla")
|
||||
(description
|
||||
"This package provides certificates for Certification Authorities (CA)
|
||||
|
||||
+292
-330
@@ -7,7 +7,7 @@
|
||||
;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015, 2016, 2018-2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2015, 2016, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org>
|
||||
@@ -16,7 +16,7 @@
|
||||
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
|
||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
@@ -818,8 +818,19 @@ but it works for any C/C++ project.")
|
||||
(description
|
||||
"Parameterized is a Python library that aims to fix parameterized testing
|
||||
for every Python test framework. It supports nose, py.test, and unittest.")
|
||||
(properties `((python2-variant . ,(delay python2-parameterized))))
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public python2-parameterized
|
||||
(let ((base (package-with-python2 (strip-python2-variant
|
||||
python-parameterized))))
|
||||
(package/inherit
|
||||
base
|
||||
(source
|
||||
(origin
|
||||
(inherit (package-source base))
|
||||
(patches (search-patches "python2-parameterized-docstring-test.patch")))))))
|
||||
|
||||
(define-public python-minimock
|
||||
(package
|
||||
(name "python-minimock")
|
||||
@@ -838,6 +849,9 @@ for every Python test framework. It supports nose, py.test, and unittest.")
|
||||
doctest.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-minimock
|
||||
(package-with-python2 python-minimock))
|
||||
|
||||
(define-public python-mock
|
||||
(package
|
||||
(name "python-mock")
|
||||
@@ -862,8 +876,18 @@ doctest.")
|
||||
of your system under test with mock objects and make assertions about how they
|
||||
have been used. This library is now part of Python (since Python 3.3),
|
||||
available via the @code{unittest.mock} module.")
|
||||
(properties `((python2-variant . ,(delay python2-mock))))
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-mock
|
||||
(let ((base (package-with-python2
|
||||
(strip-python2-variant python-mock))))
|
||||
(package/inherit base
|
||||
(propagated-inputs
|
||||
`(("python2-functools32" ,python2-functools32)
|
||||
("python2-funcsigs" ,python2-funcsigs)
|
||||
,@(package-propagated-inputs base))))))
|
||||
|
||||
;;; This package is unmaintained (see the note at the top of doc/index.rst).
|
||||
(define-public python-nose
|
||||
(package
|
||||
@@ -887,33 +911,33 @@ available via the @code{unittest.mock} module.")
|
||||
(synopsis "Python testing library")
|
||||
(description
|
||||
"Nose extends the unittest library to make testing easier.")
|
||||
(license license:lgpl2.0+)))
|
||||
(license license:lgpl2.0+)
|
||||
(properties `((python2-variant . ,(delay python2-nose))))))
|
||||
|
||||
(define-public python2-nose
|
||||
(let ((base (package-with-python2
|
||||
(strip-python2-variant python-nose))))
|
||||
(package/inherit base
|
||||
(arguments (substitute-keyword-arguments (package-arguments base)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(delete 'invoke-2to3))))))))
|
||||
|
||||
(define-public python-nose2
|
||||
(package
|
||||
(name "python-nose2")
|
||||
(version "0.11.0")
|
||||
(version "0.9.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "nose2" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1scxwvwbgfdj41acma41xzdhcfdwjj9irj6sfifdbyf9dryqs83d"))))
|
||||
"0pmbb6nk31yhgh4zkcblzxsznml7f7pf5q1ihgrwvbxv4mwzfql7"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
;; Tests require nose2 itself.
|
||||
(setenv "PYTHONPATH" (getcwd))
|
||||
(invoke (string-append #$output "/bin/nose2") "-v")))))))
|
||||
(native-inputs
|
||||
(list python-coverage))
|
||||
(arguments `(#:tests? #f)) ; 'module' object has no attribute 'collector'
|
||||
(propagated-inputs
|
||||
(list python-six))
|
||||
(list python-cov-core python-pytest-cov python-six))
|
||||
(home-page "https://github.com/nose-devs/nose2")
|
||||
(synopsis "Next generation of nicer testing for Python")
|
||||
(description
|
||||
@@ -923,6 +947,9 @@ better plugin api, being easier for users to configure, and simplifying internal
|
||||
interfaces and processes.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public python2-nose2
|
||||
(package-with-python2 python-nose2))
|
||||
|
||||
(define-public python-unittest2
|
||||
(package
|
||||
(name "python-unittest2")
|
||||
@@ -953,6 +980,9 @@ interfaces and processes.")
|
||||
standard library.")
|
||||
(license license:psfl)))
|
||||
|
||||
(define-public python2-unittest2
|
||||
(package-with-python2 python-unittest2))
|
||||
|
||||
(define-public python-pytest
|
||||
(package
|
||||
(name "python-pytest")
|
||||
@@ -1013,17 +1043,77 @@ standard library.")
|
||||
"Pytest is a testing tool that provides auto-discovery of test modules
|
||||
and functions, detailed info on failing assert statements, modular fixtures,
|
||||
and many external plugins.")
|
||||
(license license:expat)))
|
||||
(license license:expat)
|
||||
(properties `((python2-variant . ,(delay python2-pytest))))))
|
||||
|
||||
(define-public python-pytest-6 python-pytest)
|
||||
|
||||
;; Pytest 4.x are the last versions that support Python 2.
|
||||
(define-public python2-pytest
|
||||
(package
|
||||
(inherit (strip-python2-variant python-pytest))
|
||||
(name "python2-pytest")
|
||||
(version "4.6.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ls3pqr86xgif6bphsb6wrww9r2vc7p7a2naq8zcq8115wwq5yjh"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
,@(package-arguments python-pytest)))
|
||||
(propagated-inputs
|
||||
`(("python-atomicwrites" ,python2-atomicwrites)
|
||||
("python-attrs" ,python2-attrs-bootstrap)
|
||||
("python-funcsigs" ,python2-funcsigs)
|
||||
("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
|
||||
("python-more-itertools" ,python2-more-itertools)
|
||||
("python-packaging" ,python2-packaging-bootstrap)
|
||||
("python-pathlib2" ,python2-pathlib2)
|
||||
("python-pluggy" ,python2-pluggy)
|
||||
("python-py" ,python2-py)
|
||||
("python-six" ,python2-six-bootstrap)
|
||||
("python-wcwidth" ,python2-wcwidth)))
|
||||
(native-inputs
|
||||
`(("bash" ,bash) ;tests require 'compgen'
|
||||
("python-hypothesis" ,python2-hypothesis)
|
||||
("python-nose" ,python2-nose)
|
||||
("python-mock" ,python2-mock)
|
||||
("python-pytest" ,python2-pytest-bootstrap)
|
||||
("python-setuptools-scm" ,python2-setuptools-scm)))))
|
||||
|
||||
(define-public python-pytest-bootstrap
|
||||
(package
|
||||
(inherit python-pytest)
|
||||
(inherit (strip-python2-variant python-pytest))
|
||||
(name "python-pytest-bootstrap")
|
||||
(native-inputs (list python-iniconfig python-setuptools-scm
|
||||
python-toml))
|
||||
(arguments `(#:tests? #f))))
|
||||
(arguments `(#:tests? #f))
|
||||
(properties `((python2-variant . ,(delay python2-pytest-bootstrap))))))
|
||||
|
||||
(define-public python2-pytest-bootstrap
|
||||
(hidden-package
|
||||
(package/inherit
|
||||
python2-pytest
|
||||
(name "python2-pytest-bootstrap")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments python2-pytest)
|
||||
((#:tests? _ #f) #f)))
|
||||
(native-inputs
|
||||
`(("python-setuptools-scm" ,python2-setuptools-scm)))
|
||||
(propagated-inputs
|
||||
`(("python-atomicwrites" ,python2-atomicwrites)
|
||||
("python-attrs" ,python2-attrs-bootstrap)
|
||||
("python-funcsigs" ,python2-funcsigs-bootstrap)
|
||||
("python-importlib-metadata" ,python2-importlib-metadata-bootstrap)
|
||||
("python-more-itertools" ,python2-more-itertools)
|
||||
("python-packaging" ,python2-packaging-bootstrap)
|
||||
("python-pathlib2" ,python2-pathlib2-bootstrap)
|
||||
("python-pluggy" ,python2-pluggy-bootstrap)
|
||||
("python-py" ,python2-py)
|
||||
("python-wcwidth" ,python2-wcwidth))))))
|
||||
|
||||
(define-public python-pytest-assume
|
||||
(package
|
||||
@@ -1060,13 +1150,13 @@ following improvements:
|
||||
(define-public python-pytest-cov
|
||||
(package
|
||||
(name "python-pytest-cov")
|
||||
(version "3.0.0")
|
||||
(version "2.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-cov" version))
|
||||
(sha256
|
||||
(base32 "0w6lfv8gc1lxmnvsz7mq5z9shxac5zz6s9mwrai108kxc6qzbw77"))))
|
||||
(base32 "0avzlk9p4nc44k7lpx9109dybq71xqnggxb9f4hp0l64pbc44ryc"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@@ -1088,6 +1178,9 @@ distributed testing in both @code{load} and @code{each} modes. It also
|
||||
supports coverage of subprocesses.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pytest-cov
|
||||
(package-with-python2 python-pytest-cov))
|
||||
|
||||
(define-public python-pytest-httpserver
|
||||
(package
|
||||
(name "python-pytest-httpserver")
|
||||
@@ -1149,47 +1242,6 @@ tests. Tests can be rerun in a specific order by passing a seed value
|
||||
reported in a previous test run.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pytest-randomly
|
||||
(package
|
||||
(name "python-pytest-randomly")
|
||||
(version "3.11.0")
|
||||
(source (origin
|
||||
(method git-fetch) ;no tests in pypi archive
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pytest-dev/pytest-randomly")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1sjgq49g8f8973vhmzrim79b6wz29a765n99azjk1maimqh7mmik"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
;; The tests validating ordering fail, as well as as two
|
||||
;; others, for unknown reasons (see:
|
||||
;; https://github.com/pytest-dev/pytest-randomly/issues/454).
|
||||
(invoke "pytest" "-vv" "-k"
|
||||
(string-append
|
||||
"not reordered "
|
||||
"and not test_it_runs_before_stepwise "
|
||||
"and not test_entrypoint_injection"))))))))
|
||||
(native-inputs (list python-coverage
|
||||
python-factory-boy
|
||||
python-faker
|
||||
python-numpy
|
||||
python-pytest-xdist))
|
||||
(propagated-inputs (list python-importlib-metadata python-pytest))
|
||||
(home-page "https://github.com/pytest-dev/pytest-randomly")
|
||||
(synopsis "Pytest plugin to randomly order tests")
|
||||
(description "This is a Pytest plugin to randomly order tests and control
|
||||
Python's @code{random.seed}.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pytest-runner
|
||||
(package
|
||||
(name "python-pytest-runner")
|
||||
@@ -1222,6 +1274,25 @@ Python's @code{random.seed}.")
|
||||
@file{setup.py} files can use to run tests.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pytest-runner
|
||||
(package-with-python2 python-pytest-runner))
|
||||
|
||||
;; python-bleach 3.1.0 requires this ancient version of pytest-runner.
|
||||
;; Remove once no longer needed.
|
||||
(define-public python-pytest-runner-2
|
||||
(package
|
||||
(inherit python-pytest-runner)
|
||||
(version "2.12.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-runner" version))
|
||||
(sha256
|
||||
(base32
|
||||
"11ivjj9hfphkv4yfb2g74av4yy86y8gcbf7gbif0p1hcdfnxg3w6"))))))
|
||||
|
||||
(define-public python2-pytest-runner-2
|
||||
(package-with-python2 python-pytest-runner-2))
|
||||
|
||||
(define-public python-pytest-lazy-fixture
|
||||
(package
|
||||
(name "python-pytest-lazy-fixture")
|
||||
@@ -1293,49 +1364,53 @@ around the patching API provided by the @code{mock} package, but with the
|
||||
benefit of not having to worry about undoing patches at the end of a test.
|
||||
The mocker fixture has the same API as @code{mock.patch}, supporting the
|
||||
same arguments.")
|
||||
(properties `((python2-variant . ,(delay python2-pytest-mock))))
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pytest-mock
|
||||
(let ((base (package-with-python2
|
||||
(strip-python2-variant python-pytest-mock))))
|
||||
(package/inherit base
|
||||
(version "1.10.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-mock" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1i5mg3ff1qk0wqfcxfz60hwy3q5dskdp36i10ckigkzffg8hc3ad"))))
|
||||
(arguments
|
||||
`(#:python ,python-2))
|
||||
(native-inputs
|
||||
`(("python2-setuptools-scm" ,python2-setuptools-scm)))
|
||||
(propagated-inputs
|
||||
`(("python2-mock" ,python2-mock)
|
||||
("python2-pytest" ,python2-pytest))))))
|
||||
|
||||
(define-public python-pytest-xdist
|
||||
(package
|
||||
(name "python-pytest-xdist")
|
||||
(version "2.1.0")
|
||||
(version "2.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-xdist" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0wh6pn66nncfs6ay0n863bgyriwsgppn8flx5l7551j1lbqkinc2"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Remove pre-compiled .pyc files from source.
|
||||
(for-each delete-file-recursively
|
||||
(find-files "." "__pycache__" #:directories? #t))
|
||||
(for-each delete-file (find-files "." "\\.pyc$"))
|
||||
#t))))
|
||||
"1psf5dqxvc38qzxvc305mkg5xpdmdkbkkfiyqlmdnkgh7z5dx025"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; Lots of tests fail.
|
||||
#:phases
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-setup-py
|
||||
(lambda _
|
||||
;; Relax pytest requirement.
|
||||
(substitute* "setup.py"
|
||||
(("pytest>=6\\.0\\.0") "pytest"))))
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(invoke "pytest" "-vv"
|
||||
"-n" (number->string (parallel-job-count)))))))))
|
||||
(native-inputs
|
||||
(list python-setuptools-scm))
|
||||
(propagated-inputs
|
||||
(list python-execnet python-pytest python-py python-pytest-forked))
|
||||
(home-page
|
||||
"https://github.com/pytest-dev/pytest-xdist")
|
||||
(native-inputs (list python-setuptools-scm))
|
||||
(propagated-inputs (list python-execnet python-pytest python-py
|
||||
python-pytest-forked))
|
||||
(home-page "https://github.com/pytest-dev/pytest-xdist")
|
||||
(synopsis
|
||||
"Plugin for py.test with distributed testing and loop-on-failing modes")
|
||||
(description
|
||||
@@ -1347,20 +1422,6 @@ program code to a remote location, executes there, and then syncs the
|
||||
result back.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pytest-xdist-next
|
||||
(package/inherit python-pytest-xdist
|
||||
(name "python-pytest-xdist")
|
||||
(version "2.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-xdist" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1psf5dqxvc38qzxvc305mkg5xpdmdkbkkfiyqlmdnkgh7z5dx025"))))
|
||||
(propagated-inputs (list python-execnet python-pytest
|
||||
python-pytest-forked-next))))
|
||||
|
||||
(define-public python-pytest-timeout
|
||||
(package
|
||||
(name "python-pytest-timeout")
|
||||
@@ -1393,51 +1454,6 @@ timeout has been exceeded.")
|
||||
|
||||
(define-public python-pytest-forked
|
||||
(package
|
||||
(name "python-pytest-forked")
|
||||
(version "1.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch) ;for tests
|
||||
(uri (git-reference
|
||||
(url "https://github.com/pytest-dev/pytest-forked")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1aip4kx50ynvykl7kq2mlbsi82vx701dvb8mm64lhp69bbv105rc"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-setuptools-scm
|
||||
(lambda _
|
||||
(substitute* "setup.py"
|
||||
(("use_scm_version=True")
|
||||
(format #f "version=~s" ,version))
|
||||
(("setup_requires=\\['setuptools_scm'\\],.*")
|
||||
""))))
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(invoke "pytest" "-vv")))))))
|
||||
(native-inputs
|
||||
;; XXX: The bootstrap variant of Pytest is used to ensure the
|
||||
;; 'hypothesis' plugin is not in the environment (due to
|
||||
;; <http://issues.guix.gnu.org/25235>), which would cause the test suite
|
||||
;; to fail (see: https://github.com/pytest-dev/pytest-forked/issues/54).
|
||||
`(("python-pytest" ,python-pytest-bootstrap)))
|
||||
(home-page "https://github.com/pytest-dev/pytest-forked")
|
||||
(synopsis "Pytest plugin to run tests in isolated forked subprocesses")
|
||||
(description "This package provides a Pytest plugin which enables running
|
||||
each test in a subprocess and will report if a test crashed the process. It
|
||||
can be useful to isolate tests against undesirable global environment
|
||||
side-effects (such as setting environment variables).")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pytest-forked-next
|
||||
(package
|
||||
(inherit python-pytest-forked)
|
||||
(name "python-pytest-forked")
|
||||
(version "1.4.0")
|
||||
(source
|
||||
@@ -1450,7 +1466,30 @@ side-effects (such as setting environment variables).")
|
||||
(sha256
|
||||
(base32
|
||||
"0j9bbjny7h3b4fig6l26f26c697r67mm62fzdd9m9rqyy2bmnqjs"))))
|
||||
(native-inputs (list python-pytest-bootstrap python-setuptools-scm))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'pretend-version
|
||||
(lambda _
|
||||
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" ,version)))
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "pytest" "-vv")))))))
|
||||
(native-inputs
|
||||
;; XXX: The bootstrap variant of Pytest is used to ensure the
|
||||
;; 'hypothesis' plugin is not in the environment (due to
|
||||
;; <http://issues.guix.gnu.org/25235>), which would cause the test suite
|
||||
;; to fail (see: https://github.com/pytest-dev/pytest-forked/issues/54).
|
||||
(list python-pytest-bootstrap python-setuptools-scm))
|
||||
(home-page "https://github.com/pytest-dev/pytest-forked")
|
||||
(synopsis "Pytest plugin to run tests in isolated forked subprocesses")
|
||||
(description "This package provides a Pytest plugin which enables running
|
||||
each test in a subprocess and will report if a test crashed the process. It
|
||||
can be useful to isolate tests against undesirable global environment
|
||||
side-effects (such as setting environment variables).")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-scripttest
|
||||
(package
|
||||
@@ -1745,6 +1784,9 @@ library to determine which lines are executable, and which have been
|
||||
executed.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-coverage
|
||||
(package-with-python2 python-coverage))
|
||||
|
||||
(define-public python-pytest-asyncio
|
||||
(package
|
||||
(name "python-pytest-asyncio")
|
||||
@@ -1805,6 +1847,9 @@ and @code{nose2-cov}. It is useful for developing coverage plugins for these
|
||||
testing frameworks.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-cov-core
|
||||
(package-with-python2 python-cov-core))
|
||||
|
||||
(define-public python-codecov
|
||||
(package
|
||||
(name "python-codecov")
|
||||
@@ -1893,6 +1938,9 @@ tools for mocking system commands and recording calls to those.")
|
||||
(home-page "https://github.com/trentm/testlib")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-testlib
|
||||
(package-with-python2 python-testlib))
|
||||
|
||||
;;; The software provided by this package was integrated into pytest 2.8.
|
||||
(define-public python-pytest-cache
|
||||
(package
|
||||
@@ -1913,6 +1961,9 @@ the last py.test invocation.")
|
||||
(home-page "https://bitbucket.org/hpk42/pytest-cache/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pytest-cache
|
||||
(package-with-python2 python-pytest-cache))
|
||||
|
||||
(define-public python-pytest-localserver
|
||||
(package
|
||||
(name "python-pytest-localserver")
|
||||
@@ -1983,6 +2034,9 @@ normally the case.")
|
||||
(home-page "https://github.com/untitaker/pytest-subtesthack/")
|
||||
(license license:unlicense)))
|
||||
|
||||
(define-public python2-pytest-subtesthack
|
||||
(package-with-python2 python-pytest-subtesthack))
|
||||
|
||||
(define-public python-pytest-sugar
|
||||
(package
|
||||
(name "python-pytest-sugar")
|
||||
@@ -2026,23 +2080,36 @@ instantly.")
|
||||
much larger range of examples than you would ever want to write by hand. It’s
|
||||
based on the Haskell library, Quickcheck, and is designed to integrate
|
||||
seamlessly into your existing Python unit testing work flow.")
|
||||
(home-page "https://github.com/HypothesisWorks/hypothesis")
|
||||
(license license:mpl2.0)))
|
||||
(home-page "https://github.com/HypothesisWorks/hypothesis-python")
|
||||
(license license:mpl2.0)
|
||||
(properties `((python2-variant . ,(delay python2-hypothesis))))))
|
||||
|
||||
;;; TODO: Make the default python-hypothesis in the next rebuild cycle.
|
||||
(define-public python-hypothesis-next
|
||||
(define-public python-hypothesis-6.23
|
||||
(package
|
||||
(inherit python-hypothesis)
|
||||
(version "6.43.3")
|
||||
(version "6.23.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "hypothesis" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0d67dlc5a47i48fxzmji2mnybzby0h1wdscmj54555fghcyp1045"))))
|
||||
(propagated-inputs
|
||||
(modify-inputs (package-propagated-inputs python-hypothesis)
|
||||
(append python-pytest))))) ;to satisfy the sanity-check phase
|
||||
"0wp8i9qmd5wl1sq1l2b97fgliyk5fyphssl6j7q5qn5zjlfgi4qs"))))))
|
||||
|
||||
;; This is the last version of Hypothesis that supports Python 2.
|
||||
(define-public python2-hypothesis
|
||||
(let ((hypothesis (package-with-python2
|
||||
(strip-python2-variant python-hypothesis))))
|
||||
(package (inherit hypothesis)
|
||||
(version "4.57.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "hypothesis" version))
|
||||
(sha256
|
||||
(base32
|
||||
"183gpxbfcdhdqzlahkji5a71n6lmvgqsbkcb0ihqad51n2j6jhrw"))))
|
||||
(propagated-inputs
|
||||
(modify-inputs (package-propagated-inputs hypothesis)
|
||||
(prepend python2-enum34))))))
|
||||
|
||||
(define-public python-hypothesmith
|
||||
(package
|
||||
@@ -2068,14 +2135,14 @@ programs, something like CSmith, a random generator of C programs.")
|
||||
(define-public python-lit
|
||||
(package
|
||||
(name "python-lit")
|
||||
(version "14.0.3")
|
||||
(version "12.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "lit" version))
|
||||
(sha256
|
||||
(base32
|
||||
"162x7pddwl395c3mdb0mfn3f5z24x1jz6g27x303lfxpzidnn4m4"))))
|
||||
"01yggsb73s2gbq36xwifxl6k5ll5lkss5rwz59k9h3jnbnn7m5fj"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@@ -2092,114 +2159,6 @@ style test suites, summarizing their results, and providing indication of
|
||||
failures.")
|
||||
(license license:ncsa)))
|
||||
|
||||
;;; This is marked as a bootstrap package because it propagates bootstrapped
|
||||
;;; versions of jaraco-context and jaraco-functools.
|
||||
(define-public python-pytest-enabler-bootstrap
|
||||
(hidden-package
|
||||
(package
|
||||
(name "python-pytest-enabler-bootstrap")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-enabler" version))
|
||||
(sha256
|
||||
(base32 "023ymm0r2gpn5q7aikvx567s507j0zk46w41w6gxb69c688zgs73"))))
|
||||
(build-system python-build-system)
|
||||
(arguments (list #:tests? #f))
|
||||
(propagated-inputs
|
||||
(list python-jaraco-context-bootstrap
|
||||
python-jaraco-functools-bootstrap
|
||||
python-toml))
|
||||
(native-inputs (list python-setuptools-scm))
|
||||
(home-page "https://github.com/jaraco/pytest-enabler")
|
||||
(synopsis "Enable installed pytest plugins")
|
||||
(description "Enable installed pytest plugins")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public python-pytest-enabler
|
||||
(package/inherit python-pytest-enabler-bootstrap
|
||||
(arguments
|
||||
(substitute-keyword-arguments
|
||||
(package-arguments python-pytest-enabler-bootstrap)
|
||||
((#:tests? _ #f)
|
||||
#t)
|
||||
((#:phases phases #~%standard-phases)
|
||||
#~(modify-phases #$phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "python" "-m" "pytest" "-vv" "tests"))))))))
|
||||
(propagated-inputs
|
||||
(modify-inputs (package-propagated-inputs python-pytest-enabler-bootstrap)
|
||||
(replace "python-jaraco-context-bootstrap" python-jaraco-context)
|
||||
(replace "python-jaraco-functools-bootstrap" python-jaraco-functools)))
|
||||
(native-inputs
|
||||
(modify-inputs (package-native-inputs python-pytest-enabler-bootstrap)
|
||||
(append python-pytest
|
||||
python-pytest-black
|
||||
python-pytest-checkdocs
|
||||
python-pytest-cov
|
||||
python-pytest-flake8
|
||||
python-pytest-mypy
|
||||
python-types-toml)))
|
||||
(properties (alist-delete 'hidden?
|
||||
(package-properties
|
||||
python-pytest-enabler-bootstrap)))))
|
||||
|
||||
(define-public python-pytest-freezegun
|
||||
(package
|
||||
(name "python-pytest-freezegun")
|
||||
(version "0.4.2")
|
||||
(source (origin
|
||||
;; The test suite is not included in the PyPI archive.
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ktosiek/pytest-freezegun")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"10c4pbh03b4s1q8cjd75lr0fvyf9id0zmdk29566qqsmaz28npas"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "pytest" "-vv")))))))
|
||||
(propagated-inputs (list python-freezegun python-pytest))
|
||||
(native-inputs (list unzip))
|
||||
(home-page "https://github.com/ktosiek/pytest-freezegun")
|
||||
(synopsis "Pytest plugin to freeze time in test fixtures")
|
||||
(description "The @code{pytest-freezegun} plugin wraps tests and fixtures
|
||||
with @code{freeze_time}, which allows to control (i.e., freeze) the time seen
|
||||
by the test.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pytest-mypy
|
||||
(package
|
||||
(name "python-pytest-mypy")
|
||||
(version "0.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pytest-mypy" version))
|
||||
(sha256
|
||||
(base32 "0p5bd4r4gbwk1h7mpx1jkhdwkckapfz24bp9x5mmqb610ps3pylz"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs (list python-setuptools-scm))
|
||||
(propagated-inputs
|
||||
(list python-attrs python-filelock python-mypy python-pytest))
|
||||
(home-page "https://github.com/dbader/pytest-mypy")
|
||||
(synopsis "Mypy static type checker plugin for Pytest")
|
||||
(description "@code{pytest-mypi} is a static type checker plugin for
|
||||
Pytest that runs the mypy static type checker on your source files as part of
|
||||
a Pytest test execution.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pytest-pep8
|
||||
(package
|
||||
(name "python-pytest-pep8")
|
||||
@@ -2233,63 +2192,8 @@ a Pytest test execution.")
|
||||
(description "Pytest plugin for checking PEP8 compliance.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pytest-perf
|
||||
(package
|
||||
(name "python-pytest-perf")
|
||||
(version "0.12.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jaraco/pytest-perf")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"05mgknvrmyz1kmkgw8jzvisavc68wz1g2wxv69i6xvzgqxf17m9f"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(invoke "pytest" "-k"
|
||||
(string-append
|
||||
;; Do not test the myproject.toml build as it tries to pull
|
||||
;; dependencies from the internet.
|
||||
"not project "
|
||||
;; The benchmark test attempts to install the
|
||||
;; package, failing to pull its dependencies from the
|
||||
;; network.
|
||||
"and not BenchmarkRunner "
|
||||
;; The upstream_url test requires networking.
|
||||
"and not upstream_url"))))))))
|
||||
(native-inputs
|
||||
(list python-pytest
|
||||
python-pytest-black
|
||||
python-pytest-checkdocs
|
||||
python-pytest-cov
|
||||
python-pytest-enabler
|
||||
python-pytest-flake8
|
||||
python-pytest-mypy))
|
||||
(propagated-inputs
|
||||
(list python-jaraco-context
|
||||
python-jaraco-functools
|
||||
python-more-itertools
|
||||
python-packaging
|
||||
python-pip-run
|
||||
python-tempora))
|
||||
(home-page "https://github.com/jaraco/pytest-perf")
|
||||
(synopsis "Pytest plugin for performance testing")
|
||||
(description "@code{pytest-perf} makes it easy to compare works by
|
||||
creating two installs, the control and the experiment, and measuring the
|
||||
performance of some Python code against each. Under the hood, it uses the
|
||||
@command{pip-run} command to install from the upstream main
|
||||
branch (e.g. https://github.com/jaraco/pytest-perf) for the control and from
|
||||
@file{.} for the experiment. It then runs each of the experiments against
|
||||
each of the environments.")
|
||||
(license license:expat)))
|
||||
(define-public python2-pytest-pep8
|
||||
(package-with-python2 python-pytest-pep8))
|
||||
|
||||
(define-public python-pytest-flakes
|
||||
(package
|
||||
@@ -2322,6 +2226,9 @@ each of the environments.")
|
||||
(description "Pytest plugin for checking Python source code with pyflakes.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pytest-flakes
|
||||
(package-with-python2 python-pytest-flakes))
|
||||
|
||||
(define-public python-coverage-test-runner
|
||||
(package
|
||||
(name "python-coverage-test-runner")
|
||||
@@ -2352,6 +2259,9 @@ unit tests and failing them if the unit test module does not exercise all
|
||||
statements in the module it tests.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public python2-coverage-test-runner
|
||||
(package-with-python2 python-coverage-test-runner))
|
||||
|
||||
(define-public python-pylint
|
||||
(package
|
||||
(name "python-pylint")
|
||||
@@ -2377,10 +2287,9 @@ statements in the module it tests.")
|
||||
(delete-file "tests/primer/test_primer_external.py")
|
||||
(delete-file "tests/testutils/test_package_to_lint.py")
|
||||
(setenv "HOME" "/tmp")
|
||||
(invoke "pytest" "-k" "test_functional"
|
||||
"-n" (number->string (parallel-job-count)))))))))
|
||||
(invoke "pytest" "-k" "test_functional")))))))
|
||||
(native-inputs
|
||||
(list python-pytest python-pytest-xdist))
|
||||
(list python-pytest))
|
||||
(propagated-inputs
|
||||
(list python-astroid
|
||||
python-isort
|
||||
@@ -2423,6 +2332,9 @@ cases. Since they are TestCase subclasses, they work with other test suites tha
|
||||
recognize TestCases.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public python2-python-paramunittest
|
||||
(package-with-python2 python-paramunittest))
|
||||
|
||||
(define-public python-pytest-warnings
|
||||
(package
|
||||
(name "python-pytest-warnings")
|
||||
@@ -2443,7 +2355,14 @@ recognize TestCases.")
|
||||
"Python-pytest-warnings is a pytest plugin to list Python warnings in
|
||||
pytest report.")
|
||||
(license license:expat)
|
||||
(properties `((superseded unquote python-pytest)))))
|
||||
(properties `((python2-variant . ,(delay python2-pytest-warnings))
|
||||
;; This package is part of pytest as of version 3.1.0.
|
||||
(superseded . ,python-pytest)))))
|
||||
|
||||
(define-public python2-pytest-warnings
|
||||
(package (inherit (package-with-python2
|
||||
(strip-python2-variant python-pytest-warnings)))
|
||||
(properties `((superseded . ,python2-pytest)))))
|
||||
|
||||
(define-public python-pytest-capturelog
|
||||
(package
|
||||
@@ -2465,6 +2384,9 @@ pytest report.")
|
||||
"Python-pytest-catchlog is a pytest plugin to catch log messages.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pytest-capturelog
|
||||
(package-with-python2 python-pytest-capturelog))
|
||||
|
||||
(define-public python-pytest-catchlog
|
||||
(package
|
||||
(name "python-pytest-catchlog")
|
||||
@@ -2488,6 +2410,9 @@ pytest report.")
|
||||
a fork of pytest-capturelog.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-pytest-catchlog
|
||||
(package-with-python2 python-pytest-catchlog))
|
||||
|
||||
(define-public python-nosexcover
|
||||
(package
|
||||
(name "python-nosexcover")
|
||||
@@ -2511,6 +2436,9 @@ It will honor all the options you pass to the Nose coverage plugin,
|
||||
especially -cover-package.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-nosexcover
|
||||
(package-with-python2 python-nosexcover))
|
||||
|
||||
(define-public python-discover
|
||||
(package
|
||||
(name "python-discover")
|
||||
@@ -2531,6 +2459,9 @@ especially -cover-package.")
|
||||
backported from Python 2.7 for Python 2.4+.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-discover
|
||||
(package-with-python2 python-discover))
|
||||
|
||||
(define-public behave
|
||||
(package
|
||||
(name "behave")
|
||||
@@ -2631,6 +2562,9 @@ JSON APIs with Behave.")
|
||||
@command{nosetests} command of the Python Nose unit test framework.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-rednose
|
||||
(package-with-python2 python-rednose))
|
||||
|
||||
(define-public python-nose-random
|
||||
(package
|
||||
(name "python-nose-random")
|
||||
@@ -2681,6 +2615,9 @@ by resetting it to a repeatable number for each test, enabling the tests to
|
||||
create data based on random numbers and yet remain repeatable.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-nose-randomly
|
||||
(package-with-python2 python-nose-randomly))
|
||||
|
||||
(define-public python-nose-timer
|
||||
(package
|
||||
(name "python-nose-timer")
|
||||
@@ -2699,6 +2636,9 @@ create data based on random numbers and yet remain repeatable.")
|
||||
(description "Shows how much time was needed to run individual tests.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-nose-timer
|
||||
(package-with-python2 python-nose-timer))
|
||||
|
||||
(define-public python-freezegun
|
||||
(package
|
||||
(name "python-freezegun")
|
||||
@@ -2729,6 +2669,9 @@ create data based on random numbers and yet remain repeatable.")
|
||||
time by mocking the datetime module.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python2-freezegun
|
||||
(package-with-python2 python-freezegun))
|
||||
|
||||
(define-public python-flexmock
|
||||
(package
|
||||
(name "python-flexmock")
|
||||
@@ -2747,6 +2690,9 @@ time by mocking the datetime module.")
|
||||
mocks, stubs and fakes.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python2-flexmock
|
||||
(package-with-python2 python-flexmock))
|
||||
|
||||
(define-public python-flaky
|
||||
(package
|
||||
(name "python-flaky")
|
||||
@@ -2773,6 +2719,9 @@ those tests or marking them to @code{@@skip}, they can be automatically
|
||||
retried.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public python2-flaky
|
||||
(package-with-python2 python-flaky))
|
||||
|
||||
(define-public python-pyhamcrest
|
||||
(package
|
||||
(name "python-pyhamcrest")
|
||||
@@ -3024,10 +2973,23 @@ under test to interact with a fake file system instead of the real file
|
||||
system. The code under test requires no modification to work with pyfakefs.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
;; This minimal variant is used to avoid a circular dependency between
|
||||
;; python2-importlib-metadata, which requires pyfakefs for its tests, and
|
||||
;; python2-pytest, which requires python2-importlib-metadata.
|
||||
(define-public python2-pyfakefs-bootstrap
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit (package-with-python2 python-pyfakefs))
|
||||
(name "python2-pyfakefs-bootstrap")
|
||||
(native-inputs '())
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:tests? #f)))))
|
||||
|
||||
(define-public python-aiounittest
|
||||
(package
|
||||
(name "python-aiounittest")
|
||||
(version "1.4.1")
|
||||
(version "1.4.0")
|
||||
;; Pypi package lacks tests.
|
||||
(source
|
||||
(origin (method git-fetch)
|
||||
@@ -3037,7 +2999,7 @@ system. The code under test requires no modification to work with pyfakefs.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"10x7ds09b9415r92f7g9714gxixvvq3bm5mnh29ml9aba8blcb0n"))))
|
||||
"0hql5mw62lclrpblbh7xvinwjfcdcfvhhlvl7xlq2hi9isjq1c8r"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
|
||||
@@ -128,6 +128,35 @@ science, and related areas. It offers flexible high quality rendering and a
|
||||
powerful plugin architecture.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public domainfinder
|
||||
(package
|
||||
(name "domainfinder")
|
||||
(version "2.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://bitbucket.org/khinsen/"
|
||||
"domainfinder/downloads/DomainFinder-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1z26lsyf7xwnzwjvimmbla7ckipx6p734w7y0jk2a2fzci8fkdcr"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
(list python2-mmtk))
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
;; No test suite
|
||||
#:tests? #f))
|
||||
(home-page "http://dirac.cnrs-orleans.fr/DomainFinder.html")
|
||||
(synopsis "Analysis of dynamical domains in proteins")
|
||||
(description "DomainFinder is an interactive program for the determination
|
||||
and characterization of dynamical domains in proteins. It can infer dynamical
|
||||
domains by comparing two protein structures, or from normal mode analysis on a
|
||||
single structure. The software is currently not actively maintained and works
|
||||
only with Python 2 and NumPy < 1.9.")
|
||||
(license license:cecill-c)))
|
||||
|
||||
(define-public inchi
|
||||
(package
|
||||
(name "inchi")
|
||||
@@ -303,6 +332,69 @@ with templates to facilitate the execution of the program. Input files can be
|
||||
staged, and output files collected using a standard interface.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define with-numpy-1.8
|
||||
(package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8))))
|
||||
|
||||
(define-public nmoldyn
|
||||
(package
|
||||
(name "nmoldyn")
|
||||
(version "3.0.11")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/khinsen/nMOLDYN3")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"016h4bqg419p6s7bcx55q5iik91gqmk26hbnfgj2j6zl0j36w51r"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
(list (with-numpy-1.8 python2-matplotlib) python2-scientific netcdf
|
||||
gv))
|
||||
(propagated-inputs
|
||||
(list python2-mmtk))
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
#:tests? #f ; No test suite
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'create-linux2-directory
|
||||
(lambda _
|
||||
(mkdir-p "nMOLDYN/linux2")))
|
||||
(add-before 'build 'change-PDF-viewer
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "nMOLDYN/Preferences.py"
|
||||
;; Set the paths for external executables, substituting
|
||||
;; gv for acroread.
|
||||
;; There is also vmd_path, but VMD is not free software
|
||||
;; and Guix contains currently no free molecular viewer that
|
||||
;; could be substituted.
|
||||
(("PREFERENCES\\['acroread_path'\\] = ''")
|
||||
(format #f "PREFERENCES['acroread_path'] = '~a'"
|
||||
(which "gv")))
|
||||
(("PREFERENCES\\['ncdump_path'\\] = ''")
|
||||
(format #f "PREFERENCES['ncdump_path'] = '~a'"
|
||||
(which "ncdump")))
|
||||
(("PREFERENCES\\['ncgen_path'\\] = ''")
|
||||
(format #f "PREFERENCES['ncgen_path'] = '~a'"
|
||||
(which "ncgen3")))
|
||||
(("PREFERENCES\\['task_manager_path'\\] = ''")
|
||||
(format #f "PREFERENCES['task_manager_path'] = '~a'"
|
||||
(which "task_manager")))
|
||||
;; Show documentation as PDF
|
||||
(("PREFERENCES\\['documentation_style'\\] = 'html'")
|
||||
"PREFERENCES['documentation_style'] = 'pdf'") ))))))
|
||||
(home-page "http://dirac.cnrs-orleans.fr/nMOLDYN.html")
|
||||
(synopsis "Analysis software for Molecular Dynamics trajectories")
|
||||
(description "nMOLDYN is an interactive analysis program for Molecular Dynamics
|
||||
simulations. It is especially designed for the computation and decomposition of
|
||||
neutron scattering spectra, but also computes other quantities. The software
|
||||
is currently not actively maintained and works only with Python 2 and
|
||||
NumPy < 1.9.")
|
||||
(license license:cecill)))
|
||||
|
||||
(define-public tng
|
||||
(package
|
||||
(name "tng")
|
||||
|
||||
+176
-254
@@ -4,7 +4,7 @@
|
||||
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
|
||||
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
|
||||
;;; Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
|
||||
;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -48,7 +48,9 @@
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (chez-scheme-for-system
|
||||
racket-cs-native-supported-system?
|
||||
nix-system->chez-machine
|
||||
chez-machine->nonthreaded
|
||||
chez-machine->threaded
|
||||
unpack-nanopass+stex))
|
||||
|
||||
;; Commentary:
|
||||
@@ -69,141 +71,97 @@
|
||||
(define* (chez-scheme-for-system #:optional
|
||||
(system (or (%current-target-system)
|
||||
(%current-system))))
|
||||
"Return 'chez-scheme' if it fully supports SYSTEM, including support for
|
||||
bootstrapping and native threads. Otherwise, return
|
||||
'chez-scheme-for-racket'."
|
||||
(if (and=> (chez-upstream-features-for-system system)
|
||||
(lambda (features)
|
||||
(every (cut memq <> features)
|
||||
'(threads
|
||||
;; We can cross-compile for platforms without
|
||||
;; bootstrap bootfiles, but we can't self-host
|
||||
;; on them short of adding more binary seeds.
|
||||
bootstrap-bootfiles))))
|
||||
"Return 'chez-scheme' unless only 'chez-scheme-for-racket' supports SYSTEM,
|
||||
including support for native threads."
|
||||
(if (or
|
||||
;; full support upstream
|
||||
(and=> (chez-upstream-features-for-system system)
|
||||
(cut memq 'threads <>))
|
||||
;; no support anywhere
|
||||
(not (nix-system->chez-machine system)))
|
||||
chez-scheme
|
||||
chez-scheme-for-racket))
|
||||
|
||||
(define* (target-chez-arch #:optional (system
|
||||
(or (%current-target-system)
|
||||
(%current-system))))
|
||||
"Return a string representing the architecture of SYSTEM as used in Chez
|
||||
Scheme machine types, or '#f' if none is defined."
|
||||
(cond
|
||||
((target-x86-64? system)
|
||||
"a6")
|
||||
((target-x86-32? system)
|
||||
"i3")
|
||||
((target-aarch64? system)
|
||||
"arm64")
|
||||
((target-arm32? system)
|
||||
"arm32")
|
||||
((target-ppc64le? system)
|
||||
#f)
|
||||
((target-ppc32? system)
|
||||
"ppc32")
|
||||
((target-riscv64? system)
|
||||
#f)
|
||||
(else
|
||||
#f)))
|
||||
(define (chez-machine->nonthreaded machine)
|
||||
"Given a string MACHINE naming a Chez Scheme machine type, returns a string
|
||||
naming the nonthreaded machine type for the same architecture and OS as
|
||||
MACHINE. The returned string may share storage with MACHINE."
|
||||
;; Chez Scheme documentation consistently uses "nonthreaded" rather than
|
||||
;; e.g. "unthreaded"
|
||||
(if (eqv? #\t (string-ref machine 0))
|
||||
(substring machine 1)
|
||||
machine))
|
||||
(define (chez-machine->threaded machine)
|
||||
"Like @code{chez-machine->nonthreaded}, but returns the threaded machine
|
||||
type."
|
||||
(if (eqv? #\t (string-ref machine 0))
|
||||
machine
|
||||
(string-append "t" machine)))
|
||||
|
||||
(define* (target-chez-os #:optional (system (or (%current-target-system)
|
||||
(%current-system))))
|
||||
"Return a string representing the operating system kernel of SYSTEM as used
|
||||
in Chez Scheme machine types, or '#f' if none is defined."
|
||||
;; e.g. "le" includes both GNU/Linux and Android
|
||||
(cond
|
||||
((target-linux? system)
|
||||
"le")
|
||||
((target-hurd? system)
|
||||
#f)
|
||||
((target-mingw? system)
|
||||
"nt")
|
||||
;; missing (guix utils) predicates
|
||||
;; cf. https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix
|
||||
((string-suffix? "-darwin" system)
|
||||
"osx")
|
||||
((string-suffix? "-freebsd" system)
|
||||
"fb")
|
||||
((string-suffix? "-openbsd" system)
|
||||
"ob")
|
||||
((string-suffix? "-netbsd" system)
|
||||
"nb")
|
||||
;; Nix says "x86_64-solaris", but accommodate "-solaris2"
|
||||
((string-contains system "solaris")
|
||||
"s2")
|
||||
;; unknown
|
||||
(else
|
||||
#f)))
|
||||
;; Based on the implementation from raco-cross-lib/private/cross/platform.rkt
|
||||
;; in https://github.com/racket/raco-cross.
|
||||
;; For supported platforms, refer to release_notes/release_notes.stex in the
|
||||
;; upstream Chez Scheme repository or to racket/src/ChezScheme/README.md
|
||||
;; in https://github.com/racket/racket.
|
||||
(define %nix-arch-to-chez-alist
|
||||
`(("x86_64" . "a6")
|
||||
("i386" . "i3")
|
||||
("aarch64" . "arm64")
|
||||
("armhf" . "arm32") ;; Chez supports ARM v6+
|
||||
("ppc" . "ppc32")))
|
||||
(define %nix-os-to-chez-alist
|
||||
`(("w64-mingw32" . "nt")
|
||||
("darwin" . "osx")
|
||||
("linux" . "le")
|
||||
("freebsd" . "fb")
|
||||
("openbsd" . "ob")
|
||||
("netbsd" . "nb")
|
||||
("solaris" . "s2")))
|
||||
|
||||
(define %chez-features-table
|
||||
;; An alist of alists mapping:
|
||||
;; os -> arch -> (or/c #f (listof symbol?))
|
||||
;; where:
|
||||
;; - `os` is a string for the OS part of a Chez Scheme machine type; and
|
||||
;; - `arch` is a string for the architecture part of a Chez machine type.
|
||||
;;
|
||||
;; The absence of an entry for a given arch--os pair means that neither
|
||||
;; upstream Chez Scheme nor the Racket variant can generate native code for
|
||||
;; that system. (The Racket variant can still provide support via its
|
||||
;; ``portable bytecode'' backends and optional compilation to C.) A value
|
||||
;; of `#f` means that upstream Chez Scheme does not support the arch--os
|
||||
;; pair at all, but the Racket variant does. A list has the same meaning as
|
||||
;; a result from `chez-upstream-features-for-system`.
|
||||
;;
|
||||
;; The arch--os pairs marked "commented out" have been commented out in the
|
||||
;; STeX source for the upstream release notes since the initial release as
|
||||
;; free software, but they are reported to work and/or have been described
|
||||
;; as supported by upstream maintainers.
|
||||
;;
|
||||
;; For this overall approach to make sense, we assume that Racket's variant
|
||||
;; of Chez Scheme can generate native code for a superset of the platforms
|
||||
;; supported upstream, supports threads on all platforms it supports at all
|
||||
;; (because they are needed for Racket), and doesn't need bootstrap
|
||||
;; bootfiles. Those assumptions have held for several years.
|
||||
'(;; Linux
|
||||
("le"
|
||||
("i3" threads bootstrap-bootfiles)
|
||||
("a6" threads bootstrap-bootfiles)
|
||||
("arm32" bootstrap-bootfiles)
|
||||
("arm64" . #f)
|
||||
("ppc32" threads))
|
||||
;; FreeBSD
|
||||
("fb"
|
||||
("i3" threads) ;; commented out
|
||||
("a6" threads) ;; commented out
|
||||
("arm32" . #f)
|
||||
("arm64" . #f)
|
||||
("ppc32" . #f))
|
||||
;; OpenBSD
|
||||
("ob"
|
||||
("i3" threads) ;; commented out
|
||||
("a6" threads) ;; commented out
|
||||
("arm32" . #f)
|
||||
("arm64" . #f)
|
||||
("ppc32" . #f))
|
||||
;; NetBSD
|
||||
("nb"
|
||||
("i3" threads) ;; commented out
|
||||
("a6" threads) ;; commented out
|
||||
("arm32" . #f)
|
||||
("arm64" . #f)
|
||||
("ppc32" . #f))
|
||||
;; OpenSolaris / OpenIndiana / Illumos
|
||||
("s2"
|
||||
("i3" threads) ;; commented out
|
||||
("a6" threads)) ;; commented out
|
||||
;; Windows
|
||||
("nt"
|
||||
("i3" threads bootstrap-bootfiles)
|
||||
("a6" threads bootstrap-bootfiles)
|
||||
;; ^ threads "experiemental", but reportedly fine
|
||||
("arm64" . #f))
|
||||
;; Darwin
|
||||
("osx"
|
||||
("i3" threads bootstrap-bootfiles)
|
||||
("a6" threads bootstrap-bootfiles)
|
||||
("arm64" . #f)
|
||||
("ppc32" . #f))))
|
||||
(define (chez-machine->nix-system machine)
|
||||
"Return the Nix system type corresponding to the Chez Scheme machine type
|
||||
MACHINE. If MACHINE is not a string representing a known machine type, an
|
||||
exception is raised. This function does not distinguish between threaded and
|
||||
nonthreaded variants of MACHINE.
|
||||
|
||||
Note that this function only handles Chez Scheme machine types in the
|
||||
strictest sense, not other kinds of descriptors sometimes used in place of a
|
||||
Chez Scheme machine type by Racket, such as @code{\"pb\"}, @code{#f}, or
|
||||
@code{\"racket\"}. (When using such extensions, the Chez Scheme machine type
|
||||
for the host system is often still relevant.)"
|
||||
(let ((machine (chez-machine->nonthreaded machine)))
|
||||
(let find-arch ((alist %nix-arch-to-chez-alist))
|
||||
(match alist
|
||||
(((nix . chez) . alist)
|
||||
(if (string-prefix? chez machine)
|
||||
(string-append
|
||||
nix "-" (let ((machine-os
|
||||
(substring machine (string-length chez))))
|
||||
(let find-os ((alist %nix-os-to-chez-alist))
|
||||
(match alist
|
||||
(((nix . chez) . alist)
|
||||
(if (equal? chez machine-os)
|
||||
nix
|
||||
(find-os alist)))))))
|
||||
(find-arch alist)))))))
|
||||
|
||||
(define* (nix-system->chez-machine #:optional
|
||||
(system (or (%current-target-system)
|
||||
(%current-system))))
|
||||
"Return the Chez Scheme machine type corresponding to the Nix system
|
||||
identifier SYSTEM, or @code{#f} if the translation of SYSTEM to a Chez Scheme
|
||||
machine type is undefined.
|
||||
|
||||
It is unspecified whether the resulting string will name a threaded or a
|
||||
nonthreaded machine type: when the distinction is relevant, use
|
||||
@code{chez-machine->nonthreaded} or @code{chez-machine->threaded} to adjust
|
||||
the result."
|
||||
(let* ((hyphen (string-index system #\-))
|
||||
(nix-arch (substring system 0 hyphen))
|
||||
(nix-os (substring system (+ 1 hyphen)))
|
||||
(chez-arch (assoc-ref %nix-arch-to-chez-alist nix-arch))
|
||||
(chez-os (assoc-ref %nix-os-to-chez-alist nix-os)))
|
||||
(and chez-arch chez-os (string-append chez-arch chez-os))))
|
||||
|
||||
(define* (chez-upstream-features-for-system #:optional
|
||||
(system
|
||||
@@ -214,27 +172,20 @@ for the Nix system identifier SYSTEM, or @code{#f} if upstream Chez Scheme
|
||||
does not support SYSTEM at all.
|
||||
|
||||
If native threads are supported, the returned list will include
|
||||
@code{'threads}. If bootstrap bootfiles for SYSTEM are distributed in the
|
||||
upstream Chez Scheme repository, the returned list will include
|
||||
@code{'bootstrap-bootfiles}. Other feature symbols may be added in the
|
||||
future."
|
||||
(let ((chez-arch (target-chez-arch system))
|
||||
(chez-os (target-chez-os system)))
|
||||
(and=> (assoc-ref %chez-features-table chez-os)
|
||||
(cut assoc-ref <> chez-arch))))
|
||||
|
||||
(define* (racket-cs-native-supported-system? #:optional
|
||||
(system
|
||||
(or (%current-target-system)
|
||||
(%current-system))))
|
||||
"Can Racket's variant of Chez Scheme generate native code for SYSTEM?
|
||||
Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
|
||||
(let ((chez-arch (target-chez-arch system))
|
||||
(chez-os (target-chez-os system)))
|
||||
(and (and=> (assoc-ref %chez-features-table chez-os)
|
||||
;; NOT assoc-ref: supported even if cdr is #f
|
||||
(cut assoc chez-arch <>))
|
||||
#t)))
|
||||
@code{'threads}. Other feature symbols may be added in the future."
|
||||
(cond
|
||||
((not (nix-system->chez-machine system))
|
||||
#f)
|
||||
((target-aarch64? system)
|
||||
#f)
|
||||
((target-arm32? system)
|
||||
(and (target-linux? system)
|
||||
'()))
|
||||
((target-ppc32? system)
|
||||
(and (target-linux? system)
|
||||
'(threads)))
|
||||
(else
|
||||
'(threads))))
|
||||
|
||||
;;
|
||||
;; Chez Scheme:
|
||||
@@ -259,7 +210,7 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
|
||||
(name "chez-scheme")
|
||||
;; The version should match `(scheme-version-number)`.
|
||||
;; See s/cmacros.ss c. line 360.
|
||||
(version "9.5.8")
|
||||
(version "9.5.6")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -267,7 +218,7 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc"))
|
||||
"07s433hn1z2slfc026sidrpzxv3a8narcd40qqr1xrpb9012xdky"))
|
||||
(file-name (git-file-name name version))
|
||||
(snippet #~(begin
|
||||
(use-modules (guix build utils))
|
||||
@@ -307,18 +258,8 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
|
||||
(ice-9 ftw)
|
||||
(ice-9 match))
|
||||
#:test-target "test"
|
||||
#:configure-flags
|
||||
#~`(,(string-append "--installprefix=" #$output)
|
||||
#$@(if (and=> (chez-upstream-features-for-system)
|
||||
(cut memq 'threads <>))
|
||||
#~("--threads")
|
||||
#~())
|
||||
"ZLIB=-lz"
|
||||
"LZ4=-llz4"
|
||||
"--libkernel"
|
||||
;; Guix will do 'compress-man-pages',
|
||||
;; and letting Chez try causes an error
|
||||
"--nogzip-man-pages")
|
||||
;; TODO when we fix armhf, it may not support --threads
|
||||
#:configure-flags #~'("--threads")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'unpack-nanopass+stex
|
||||
@@ -332,35 +273,26 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
|
||||
(search-input-directory (or native-inputs inputs)
|
||||
"lib/chez-scheme-bootfiles")
|
||||
"boot")))
|
||||
;; NOTE: The custom Chez 'configure' script doesn't allow
|
||||
;; NOTE: the custom Chez 'configure' script doesn't allow
|
||||
;; unrecognized flags, such as those automatically added
|
||||
;; by `gnu-build-system`. This replacement phase uses only
|
||||
;; the explicitly provided `#:configure-flags`.
|
||||
;; by `gnu-build-system`.
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs (configure-flags '()) out-of-source?
|
||||
#:allow-other-keys)
|
||||
(let* ((abs-srcdir (getcwd))
|
||||
(srcdir (if out-of-source?
|
||||
(string-append "../" (basename abs-srcdir))
|
||||
".")))
|
||||
(format #t "source directory: ~s (relative from build: ~s)~%"
|
||||
abs-srcdir srcdir)
|
||||
(if out-of-source?
|
||||
(begin
|
||||
(mkdir "../build")
|
||||
(chdir "../build")))
|
||||
(format #t "build directory: ~s~%" (getcwd))
|
||||
(format #t "configure flags: ~s~%" configure-flags)
|
||||
(apply invoke
|
||||
(string-append srcdir "/configure")
|
||||
configure-flags))))
|
||||
(add-after 'configure 'configure-environment-variables
|
||||
(lambda args
|
||||
;; Some makefiles (for tests) don't seem to propagate CC
|
||||
;; properly, so we take it out of their hands:
|
||||
(setenv "CC" #$(cc-for-target))
|
||||
;; Likewise, some tests have needed HOME to be set:
|
||||
(setenv "HOME" "/tmp")))
|
||||
(lambda* (#:key inputs (configure-flags '()) #:allow-other-keys)
|
||||
;; add flags which are always required:
|
||||
(let ((flags (cons* (string-append "--installprefix=" #$output)
|
||||
"ZLIB=-lz"
|
||||
"LZ4=-llz4"
|
||||
"--libkernel"
|
||||
;; Guix will do compress-man-pages,
|
||||
;; and letting Chez try causes an error
|
||||
"--nogzip-man-pages"
|
||||
configure-flags)))
|
||||
(format #t "configure flags: ~s~%" flags)
|
||||
;; Some makefiles (for tests) don't seem to propagate CC
|
||||
;; properly, so we take it out of their hands:
|
||||
(setenv "CC" #$(cc-for-target))
|
||||
(setenv "HOME" "/tmp")
|
||||
(apply invoke "./configure" flags))))
|
||||
;; The binary file name is called "scheme" as is the one from
|
||||
;; MIT/GNU Scheme. We add a symlink to use in case both are
|
||||
;; installed.
|
||||
@@ -377,46 +309,43 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
|
||||
(string-append (dirname scheme.boot)
|
||||
"/chez-scheme.boot")))))))
|
||||
;; Building the documentation requires stex and a running scheme.
|
||||
(add-after 'install-symlink 'install-docs
|
||||
;; FIXME: this is probably wrong for cross-compilation
|
||||
(add-after 'install-symlink 'install-doc
|
||||
(lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
|
||||
(let* ((doc-prefix (or (assoc-ref outputs "doc")
|
||||
(assoc-ref outputs "out")))
|
||||
(chez+version (strip-store-file-name #$output))
|
||||
(scheme (search-input-file outputs "/bin/scheme"))
|
||||
(stexlib (search-input-directory (or native-inputs
|
||||
inputs)
|
||||
"/lib/stex"))
|
||||
(doc-dir (string-append doc-prefix
|
||||
"/share/doc/"
|
||||
chez+version)))
|
||||
(define* (stex-make #:optional (suffix ""))
|
||||
(invoke "make" "install"
|
||||
(string-append "Scheme=" scheme)
|
||||
(string-append "STEXLIB=" stexlib)
|
||||
(string-append "installdir=" doc-dir suffix)))
|
||||
(with-directory-excursion "csug"
|
||||
(stex-make "/csug"))
|
||||
(with-directory-excursion "release_notes"
|
||||
(stex-make "/release_notes")))))
|
||||
(add-after 'install-docs 'link-doc-pdfs
|
||||
;; otherwise, it's hard to notice them in a forest of HTML files
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(with-directory-excursion
|
||||
(string-append (or (assoc-ref outputs "doc")
|
||||
(assoc-ref outputs "out"))
|
||||
"/share/doc/"
|
||||
(strip-store-file-name #$output))
|
||||
(symlink "release_notes/release_notes.pdf"
|
||||
"release_notes.pdf")
|
||||
(match (find-files "csug"
|
||||
"csug.*\\.pdf$" ;; embeded version number
|
||||
#:fail-on-error? #t)
|
||||
((pth)
|
||||
(symlink pth
|
||||
"csug.pdf")))))))))
|
||||
(match (assoc-ref outputs "doc")
|
||||
(#f
|
||||
(format #t "not installing docs~%"))
|
||||
(doc-prefix
|
||||
(let* ((chez+version (strip-store-file-name #$output))
|
||||
(scheme (search-input-file outputs "/bin/scheme"))
|
||||
(stexlib (search-input-directory (or native-inputs
|
||||
inputs)
|
||||
"/lib/stex"))
|
||||
(doc-dir (string-append doc-prefix
|
||||
"/share/doc/"
|
||||
chez+version)))
|
||||
(define* (stex-make #:optional (suffix ""))
|
||||
(invoke "make" "install"
|
||||
(string-append "Scheme=" scheme)
|
||||
(string-append "STEXLIB=" stexlib)
|
||||
(string-append "installdir=" doc-dir suffix)))
|
||||
(with-directory-excursion "csug"
|
||||
(stex-make "/csug"))
|
||||
(with-directory-excursion "release_notes"
|
||||
(stex-make "/release_notes"))
|
||||
(with-directory-excursion doc-dir
|
||||
(symlink "release_notes/release_notes.pdf"
|
||||
"release_notes.pdf")
|
||||
(symlink "csug/csug9_5.pdf"
|
||||
"csug.pdf"))))))))))
|
||||
;; Chez Scheme does not have a MIPS backend.
|
||||
;; FIXME: Debian backports patches to get armhf working.
|
||||
;; We should too. It is the Chez machine type arm32le
|
||||
;; (no threaded version upstream yet, though there is in
|
||||
;; Racket's fork), more specifically (per the release notes) ARMv6.
|
||||
(supported-systems
|
||||
(delete
|
||||
"armhf-linux" ;; XXX reportedly broken, needs checking
|
||||
"armhf-linux" ;; <-- should work, but reportedly broken
|
||||
(filter chez-upstream-features-for-system
|
||||
%supported-systems)))
|
||||
(home-page "https://cisco.github.io/ChezScheme/")
|
||||
@@ -432,7 +361,7 @@ and 32-bit PowerPC architectures.")
|
||||
(package
|
||||
(inherit chez-scheme)
|
||||
(name "chez-scheme-for-racket")
|
||||
(version "9.5.7.6")
|
||||
(version "9.5.7.3")
|
||||
;; The version should match `(scheme-fork-version-number)`.
|
||||
;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
|
||||
;; It will always be different than the upstream version!
|
||||
@@ -448,9 +377,7 @@ and 32-bit PowerPC architectures.")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments chez-scheme)
|
||||
((#:configure-flags cfg-flags #~'())
|
||||
#~(cons* "--disable-x11"
|
||||
"--threads" ;; ok to potentially duplicate
|
||||
#$cfg-flags))
|
||||
#~(cons "--disable-x11" #$cfg-flags))
|
||||
((#:phases those-phases #~%standard-phases)
|
||||
#~(let* ((those-phases #$those-phases)
|
||||
(unpack (assoc-ref those-phases 'unpack)))
|
||||
@@ -462,9 +389,7 @@ and 32-bit PowerPC architectures.")
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda args
|
||||
(chdir "racket/src/ChezScheme"))))))))
|
||||
;; TODO: How to build pbarch/pbchunks for other systems?
|
||||
;; See https://racket.discourse.group/t/950
|
||||
(supported-systems (filter racket-cs-native-supported-system?
|
||||
(supported-systems (filter nix-system->chez-machine
|
||||
%supported-systems))
|
||||
(home-page "https://github.com/racket/ChezScheme")
|
||||
;; ^ This is downstream of https://github.com/racket/racket,
|
||||
@@ -517,9 +442,16 @@ Faster multiplication and division for large exact numbers
|
||||
(list #:install-plan
|
||||
#~`(("boot/" "lib/chez-scheme-bootfiles"))))
|
||||
(supported-systems
|
||||
;; Upstream only distributes pre-built bootfiles for
|
||||
;; arm32le and t?(i3|a6)(le|nt|osx)
|
||||
(filter (lambda (system)
|
||||
(and=> (chez-upstream-features-for-system system)
|
||||
(cut memq 'bootstrap-bootfiles <>)))
|
||||
(let ((machine (and=> (nix-system->chez-machine system)
|
||||
chez-machine->nonthreaded)))
|
||||
(or (equal? "arm32le" machine)
|
||||
(and machine
|
||||
(member (substring machine 0 2) '("i3" "a6"))
|
||||
(or-map (cut string-suffix? <> machine)
|
||||
'("le" "nt" "osx"))))))
|
||||
%supported-systems))
|
||||
(synopsis "Chez Scheme bootfiles (binary seed)")
|
||||
(description
|
||||
@@ -529,7 +461,7 @@ current platform. (Chez can then cross-compile bootfiles for all other
|
||||
supported platforms.)
|
||||
|
||||
This package provides bootstrap bootfiles for upstream Chez Scheme.
|
||||
Currently, it simply packages the binaries checked in to the upstream
|
||||
Currently, it simply packages the binaries checked in to the upsream
|
||||
repository. Hopefully we can eventually adapt Racket's @code{cs-bootstrap} to
|
||||
work with upstream Chez Scheme so that we can bootstrap these files from
|
||||
source.")))
|
||||
@@ -641,10 +573,6 @@ Chez Scheme.")))
|
||||
("src" "lib/stex/")
|
||||
("Mf-stex" "lib/stex/")
|
||||
("Makefile.template" "lib/stex/"))
|
||||
#:modules
|
||||
'((guix build copy-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 popen))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'install 'patch-sources
|
||||
@@ -676,14 +604,8 @@ Chez Scheme.")))
|
||||
(define makefile
|
||||
(string-append (getcwd) "/Makefile"))
|
||||
(define machine
|
||||
(let ((pipe (open-pipe* OPEN_BOTH scheme "-q")))
|
||||
;; try to not be wrong for cross-compilation
|
||||
;; (avoid #% reader abbreviation for Guile)
|
||||
(write '(($primitive $target-machine)) pipe)
|
||||
(force-output pipe)
|
||||
(let ((sym (read pipe)))
|
||||
(close-pipe pipe)
|
||||
(symbol->string sym))))
|
||||
#$(and=> (nix-system->chez-machine)
|
||||
chez-machine->threaded))
|
||||
(with-directory-excursion
|
||||
(search-input-directory outputs "/lib/stex")
|
||||
(invoke "make"
|
||||
@@ -712,7 +634,7 @@ Chez Scheme.")))
|
||||
(else
|
||||
(format #t "not making docs~%"))))))))
|
||||
(home-page "https://github.com/dybvig/stex")
|
||||
(synopsis "LaTeX with embedded Scheme code and HTML generation")
|
||||
(synopsis "LaTeX with embeded Scheme code and HTML generation")
|
||||
(description "The @code{stex} package extends LaTeX with a handful of
|
||||
commands for including Scheme code (or pretty much any other kind of code, as
|
||||
long as you don't plan to use the Scheme-specific transcript support) in a
|
||||
|
||||
+39
-110
@@ -50,7 +50,6 @@
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages ninja)
|
||||
#:use-module (gnu packages node)
|
||||
#:use-module (gnu packages nss)
|
||||
@@ -123,7 +122,6 @@
|
||||
"third_party/ced" ;BSD-3
|
||||
"third_party/cld_3" ;ASL2.0
|
||||
"third_party/closure_compiler" ;ASL2.0
|
||||
"third_party/cpuinfo" ;BSD-2
|
||||
"third_party/crashpad" ;ASL2.0
|
||||
"third_party/crashpad/crashpad/third_party/lss" ;ASL2.0
|
||||
"third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
|
||||
@@ -131,14 +129,10 @@
|
||||
"third_party/cros_system_api" ;BSD-3
|
||||
"third_party/dav1d" ;BSD-2
|
||||
"third_party/dawn" ;ASL2.0
|
||||
;; TODO: can likely be unbundled when Vulkan is updated.
|
||||
"third_party/dawn/third_party/khronos" ;ASL2.0
|
||||
"third_party/dawn/third_party/gn/webgpu-cts" ;BSD-3
|
||||
"third_party/dawn/third_party/tint"
|
||||
"third_party/depot_tools/owners.py" ;BSD-3
|
||||
"third_party/devtools-frontend" ;BSD-3
|
||||
"third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
|
||||
"third_party/devtools-frontend/src/front_end/third_party\
|
||||
/additional_readme_paths.json" ;no explicit license; trivial
|
||||
"third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
|
||||
"third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
|
||||
"third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
|
||||
@@ -177,6 +171,7 @@
|
||||
"third_party/khronos" ;Expat, SGI
|
||||
"third_party/leveldatabase" ;BSD-3
|
||||
"third_party/libavif" ;BSD-2
|
||||
"third_party/libXNVCtrl" ;Expat
|
||||
"third_party/libaddressinput" ;ASL2.0
|
||||
"third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
|
||||
"third_party/libaom/source/libaom/third_party/fastfeat" ;BSD-3
|
||||
@@ -235,7 +230,6 @@
|
||||
"third_party/private-join-and-compute" ;ASL2.0
|
||||
"third_party/protobuf" ;BSD-3
|
||||
"third_party/protobuf/third_party/six" ;Expat
|
||||
"third_party/pthreadpool" ;BSD-2
|
||||
"third_party/pyjson5" ;ASL2.0
|
||||
"third_party/qcms" ;Expat
|
||||
"third_party/rnnoise" ;BSD-3
|
||||
@@ -262,13 +256,14 @@
|
||||
"third_party/swiftshader/third_party/marl" ;ASL2.0
|
||||
"third_party/swiftshader/third_party/subzero" ;NCSA
|
||||
"third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style
|
||||
"third_party/swiftshader/third_party/SPIRV-Tools" ;ASL2.0
|
||||
"third_party/tcmalloc/chromium" ;BSD-3
|
||||
"third_party/tensorflow-text" ;ASL2.0
|
||||
"third_party/tflite" ;ASL2.0
|
||||
"third_party/tflite/src/third_party/eigen3" ;MPL2.0
|
||||
"third_party/tflite/src/third_party/fft2d" ;ASL2.0
|
||||
"third_party/ukey2" ;ASL2.0
|
||||
"third_party/usb_ids" ;BSD-3
|
||||
"third_party/usrsctp" ;BSD-2
|
||||
"third_party/utf" ;Expat
|
||||
"third_party/vulkan-deps" ;ASL2.0, BSD-3, Expat
|
||||
"third_party/vulkan_memory_allocator" ;Expat
|
||||
@@ -293,7 +288,6 @@
|
||||
"third_party/wuffs" ;ASL2.0
|
||||
"third_party/xcbproto" ;X11
|
||||
"third_party/xdg-utils" ;Expat
|
||||
"third_party/xnnpack" ;BSD-3
|
||||
|
||||
;; These are forked components of the X11 keybinding code.
|
||||
"third_party/libxcb-keysyms" ;X11
|
||||
@@ -316,9 +310,9 @@
|
||||
;; run the Blink performance tests, just remove everything to save ~70MiB.
|
||||
'("third_party/blink/perf_tests"))
|
||||
|
||||
(define %chromium-version "103.0.5060.53")
|
||||
(define %chromium-version "98.0.4758.102")
|
||||
(define %ungoogled-revision (string-append %chromium-version "-1"))
|
||||
(define %debian-revision "debian/102.0.5005.61-1")
|
||||
(define %debian-revision "debian/90.0.4430.85-1")
|
||||
|
||||
(define %ungoogled-origin
|
||||
(origin
|
||||
@@ -328,44 +322,27 @@
|
||||
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
|
||||
(sha256
|
||||
(base32
|
||||
"1g5ciwzrhg9g13gvhrwqf19djk9jhj1d6nx2f6a8d5ch1mhi2z8s"))))
|
||||
"0baz90fnzpldw0wwibhmh4pmki7vlpci9b9vvifa0rj5cwckl8a0"))))
|
||||
|
||||
(define %debian-origin
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://salsa.debian.org/chromium-team/chromium.git")
|
||||
(commit %debian-revision)))
|
||||
(file-name (git-file-name "debian-chromium-patches"
|
||||
(match (string-split %debian-revision #\/)
|
||||
((_ version) version))))
|
||||
(sha256
|
||||
(base32
|
||||
"1ln6r1qzlr7dsgvcbssvvc34my4mpkwv9hmvlb2dhjncs7isp65j"))))
|
||||
|
||||
(define (debian-patch name)
|
||||
(computed-file
|
||||
(basename name)
|
||||
#~(symlink (string-append #$%debian-origin "/debian/patches/" #$name)
|
||||
#$output)))
|
||||
|
||||
(define %debian-patches
|
||||
(map debian-patch
|
||||
'("system/jsoncpp.patch"
|
||||
"system/zlib.patch"
|
||||
"system/openjpeg.patch")))
|
||||
|
||||
;; Take a patch from Arch that reverts a change which requires an unreleased
|
||||
;; version of ffmpeg.
|
||||
(define %ungoogled-chromium-unroll-ffmpeg.patch
|
||||
(define* (debian-patch name hash #:optional (revision %debian-revision))
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri "https://raw.githubusercontent.com/archlinux/svntogit-packages\
|
||||
/f3225f99b900e11ac900725992ea883142d7309c/trunk/roll-src-third_party-ffmpeg.patch")
|
||||
(file-name "ungoogled-chromium-unroll-ffmpeg.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh"))))
|
||||
(uri (string-append "https://salsa.debian.org/chromium-team/chromium/-/raw/"
|
||||
revision "/debian/patches/" name))
|
||||
(file-name (match (string-split name #\/)
|
||||
((category name)
|
||||
(string-append "ungoogled-chromium-" category "-" name))))
|
||||
(sha256 (base32 hash))))
|
||||
|
||||
(define %debian-patches
|
||||
(list (debian-patch "fixes/nomerge.patch"
|
||||
"0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3")
|
||||
(debian-patch "system/jsoncpp.patch"
|
||||
"16lvhci10hz0q9axc6p921b95a76kbzcla5cl81czxzfwnynr1w5")
|
||||
(debian-patch "system/zlib.patch"
|
||||
"0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv")
|
||||
(debian-patch "system/openjpeg.patch"
|
||||
"048405xh84pys0kky81vlqhaxjyxvcql4py217z01qxiv991zxaj")))
|
||||
|
||||
(define %guix-patches
|
||||
(list (local-file
|
||||
@@ -407,9 +384,6 @@
|
||||
patch "--no-backup-if-mismatch"))
|
||||
(append '#+%debian-patches '#+%guix-patches))
|
||||
|
||||
(invoke "patch" "-Rp1" "--force" "--input" "--no-backup-if-mismatch"
|
||||
"--input" #$%ungoogled-chromium-unroll-ffmpeg.patch)
|
||||
|
||||
(with-directory-excursion #+%ungoogled-origin
|
||||
(format #t "Ungooglifying...~%")
|
||||
(force-output)
|
||||
@@ -477,7 +451,7 @@
|
||||
%chromium-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf"))
|
||||
"0gpk13k8pfk65vinlmkg3p7mm0qb8z35psajkxzx0v3n2bllfns1"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet (force ungoogled-chromium-snippet))))
|
||||
(build-system gnu-build-system)
|
||||
@@ -523,8 +497,6 @@
|
||||
"build_with_tflite_lib=false"
|
||||
;; Avoid dependency on code formatting tools.
|
||||
"blink_enable_generated_code_formatting=false"
|
||||
;; Don't bother building Dawn tests.
|
||||
"build_dawn_tests=false"
|
||||
|
||||
;; Define a custom toolchain that simply looks up CC, AR and
|
||||
;; friends from the environment.
|
||||
@@ -585,6 +557,7 @@
|
||||
"rtc_build_libvpx=true"
|
||||
"rtc_build_opus=false"
|
||||
"rtc_build_libsrtp=true" ;FIXME: fails to find headers
|
||||
"rtc_build_usrsctp=true" ;TODO: package this
|
||||
"rtc_build_ssl=true") ;XXX: requires BoringSSL
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
@@ -622,14 +595,16 @@
|
||||
"#include \"opus/opus_types.h\"")))
|
||||
(find-files (string-append "third_party/webrtc/modules"
|
||||
"/audio_coding/codecs/opus")))
|
||||
(substitute* "media/audio/audio_opus_encoder.h"
|
||||
(("\"third_party/opus/src/include/opus.h\"")
|
||||
"<opus/opus.h>"))
|
||||
|
||||
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
|
||||
(("#include \"third_party/jsoncpp/")
|
||||
"#include \"json/"))
|
||||
|
||||
;; This can be removed for M99.
|
||||
(substitute* "media/gpu/chromeos/video_decoder_pipeline.cc"
|
||||
(("third_party/libdrm/src/include/drm/drm_fourcc\\.h")
|
||||
"libdrm/drm_fourcc.h"))
|
||||
|
||||
;; Many files try to include ICU headers from "third_party/icu/...".
|
||||
;; Remove the "third_party/" prefix to use system headers instead.
|
||||
(substitute* (find-files "chrome" "\\.cc$")
|
||||
@@ -661,18 +636,8 @@
|
||||
(libudev.so.1 (search-input-file inputs "/lib/libudev.so.1"))
|
||||
(libvulkan.so.1 (search-input-file inputs
|
||||
"/lib/libvulkan.so.1"))
|
||||
(icd.d (search-input-directory inputs "share/vulkan/icd.d"))
|
||||
(mesa-lib (dirname (search-input-file inputs
|
||||
"/lib/libGL.so.1")))
|
||||
(gtk-libs '("libgio-2.0.so.0"
|
||||
"libgdk_pixbuf-2.0.so.0"
|
||||
"libgdk-3.so.0"
|
||||
"libgtk-3.so.0")))
|
||||
(for-each (lambda (lib)
|
||||
(substitute* "ui/gtk/gtk_compat.cc"
|
||||
((lib) (search-input-file
|
||||
inputs (string-append "lib/" lib)))))
|
||||
gtk-libs)
|
||||
"/lib/libGL.so.1"))))
|
||||
(substitute* "printing/cups_config_helper.py"
|
||||
(("cups_config =.*")
|
||||
(string-append "cups_config = '" cups-config "'\n")))
|
||||
@@ -680,31 +645,8 @@
|
||||
(("libnssckbi\\.so") libnssckbi.so))
|
||||
(substitute* "device/udev_linux/udev1_loader.cc"
|
||||
(("libudev\\.so\\.1") libudev.so.1))
|
||||
|
||||
;; Patch libvulkan.so everywhere.
|
||||
(substitute*
|
||||
'("third_party/swiftshader/include/vulkan/vulkan.hpp"
|
||||
"third_party/vulkan-deps/vulkan-tools\
|
||||
/src/vulkaninfo/vulkaninfo.h"
|
||||
"third_party/vulkan-deps/vulkan-headers\
|
||||
/src/include/vulkan/vulkan.hpp"
|
||||
"content/gpu/gpu_sandbox_hook_linux.cc"
|
||||
"ui/ozone/platform/wayland/gpu/vulkan_implementation_wayland.cc"
|
||||
"ui/ozone/platform/drm/gpu/vulkan_implementation_gbm.cc"
|
||||
"ui/ozone/platform/x11/vulkan_implementation_x11.cc"
|
||||
"third_party/skia/tools/sk_app/unix\
|
||||
/DawnVulkanWindowContext_unix.cpp")
|
||||
(substitute* "third_party/dawn/src/dawn_native/vulkan/BackendVk.cpp"
|
||||
(("libvulkan\\.so\\.1") libvulkan.so.1))
|
||||
(substitute* "content/gpu/gpu_sandbox_hook_linux.cc"
|
||||
(("/usr/share/vulkan/icd\\.d") icd.d))
|
||||
|
||||
;; Add the libvulkan directory to dawn built-in search paths.
|
||||
(substitute* "third_party/dawn/src/dawn/native/Instance.cpp"
|
||||
(("^([[:blank:]]+)mRuntimeSearchPaths\\.push_back\\(\"\"\\);"
|
||||
all indent)
|
||||
(string-append indent "mRuntimeSearchPaths.push_back(\""
|
||||
(dirname libvulkan.so.1) "/\");\n" all)))
|
||||
|
||||
(substitute*
|
||||
'("ui/ozone/platform/x11/gl_ozone_glx.cc"
|
||||
"ui/ozone/common/egl_util.cc"
|
||||
@@ -726,15 +668,6 @@
|
||||
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
|
||||
(setenv "CC" "clang") (setenv "CXX" "clang++")
|
||||
|
||||
;; Disable compiler flags that require Clang 15.
|
||||
(substitute* "build/config/compiler/BUILD.gn"
|
||||
(("\"-no-opaque-pointers\",")
|
||||
"")
|
||||
(("\"-Wno-unqualified-std-cast-call\"")
|
||||
"")
|
||||
(("\"-Wno-deprecated-non-prototype\"")
|
||||
""))
|
||||
|
||||
;; TODO: pre-compile instead. Avoids a race condition.
|
||||
(setenv "PYTHONDONTWRITEBYTECODE" "1")
|
||||
|
||||
@@ -805,9 +738,8 @@
|
||||
#$(local-file
|
||||
(search-auxiliary-file
|
||||
"chromium/master-preferences.json")))
|
||||
(gtk (dirname (dirname
|
||||
(search-input-file inputs "lib/libgtk-3.so"))))
|
||||
(xdg-utils (dirname (search-input-file inputs "bin/xdg-open"))))
|
||||
(gtk+ (assoc-ref inputs "gtk+"))
|
||||
(xdg-utils (assoc-ref inputs "xdg-utils")))
|
||||
|
||||
(substitute* '("chrome/app/resources/manpage.1.in"
|
||||
"chrome/installer/linux/common/desktop.template")
|
||||
@@ -843,8 +775,8 @@
|
||||
|
||||
(wrap-program exe
|
||||
;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
|
||||
`("XDG_DATA_DIRS" ":" prefix (,(string-append gtk "/share")))
|
||||
`("PATH" ":" prefix (,xdg-utils))))
|
||||
`("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))
|
||||
`("PATH" ":" prefix (,(string-append xdg-utils "/bin")))))
|
||||
|
||||
(with-directory-excursion "chrome/app/theme/chromium"
|
||||
(for-each
|
||||
@@ -857,7 +789,7 @@
|
||||
'("24" "48" "64" "128" "256")))))))))
|
||||
(native-inputs
|
||||
(list bison
|
||||
clang-14
|
||||
clang-13
|
||||
gn
|
||||
gperf
|
||||
lld-as-ld-wrapper
|
||||
@@ -872,7 +804,6 @@
|
||||
(inputs
|
||||
(list alsa-lib
|
||||
atk
|
||||
at-spi2-atk
|
||||
cups
|
||||
curl
|
||||
dbus
|
||||
@@ -880,14 +811,12 @@
|
||||
flac
|
||||
ffmpeg
|
||||
fontconfig
|
||||
fp16
|
||||
freetype
|
||||
fxdiv
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk+
|
||||
harfbuzz-3.0
|
||||
icu4c-71
|
||||
icu4c
|
||||
jsoncpp
|
||||
lcms
|
||||
libevent
|
||||
|
||||
+5
-12
@@ -28,7 +28,6 @@
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix download)
|
||||
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR))
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages boost)
|
||||
@@ -53,8 +52,7 @@
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR)))
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public cuirass
|
||||
(let ((commit "9f08035f942a1e78f92e2db886d7837b0ab98b2f")
|
||||
@@ -164,14 +162,7 @@
|
||||
;; FIXME: this is propagated by "guile-git", but it needs to be among
|
||||
;; the inputs to add it to GUILE_LOAD_PATH.
|
||||
guile-bytestructures
|
||||
|
||||
;; FIXME: The 'cuirass evaluate' command is multithreaded, but it
|
||||
;; uses 'open-inferior', which calls 'primitive-fork', thus
|
||||
;; potentially creating child processes that deadlock. To work
|
||||
;; around that, use the last revision of Guix where
|
||||
;; 'open-inferior' was using 'open-pipe*' rather than
|
||||
;; 'primitive-fork'. See <https://issues.guix.gnu.org/55441>.
|
||||
guix-for-cuirass))
|
||||
guix))
|
||||
(native-inputs
|
||||
(list autoconf automake pkg-config texinfo ephemeralpg))
|
||||
(native-search-paths
|
||||
@@ -182,7 +173,9 @@
|
||||
(file-type 'regular)
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs/ca-certificates.crt")))
|
||||
$SSL_CERT_DIR))
|
||||
(search-path-specification
|
||||
(variable "SSL_CERT_DIR")
|
||||
(files '("etc/ssl/certs")))))
|
||||
(synopsis "Continuous integration system")
|
||||
(description
|
||||
"Cuirass is a continuous integration tool using GNU Guix. It is
|
||||
|
||||
+57
-75
@@ -2,7 +2,7 @@
|
||||
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
|
||||
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Andrew Miloradovsky <andrew@interpretmath.pw>
|
||||
;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2021 Dion Mendel <guix@dm9.info>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@@ -22,7 +22,6 @@
|
||||
|
||||
(define-module (gnu packages cluster)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
@@ -30,30 +29,27 @@
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages ruby)
|
||||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages xml))
|
||||
#:use-module (gnu packages tls))
|
||||
|
||||
(define-public drbd-utils
|
||||
(package
|
||||
(name "drbd-utils")
|
||||
(version "9.21.2")
|
||||
(version "9.19.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "https://pkg.linbit.com/downloads/drbd"
|
||||
"/utils/drbd-utils-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1zhinblhpfb7wq3wkaim4xzx1m89671djvnrf4vjabfzpclkz60h"))
|
||||
"1l99kcrb0j85wxxmrdihpx9bk1a4sdi7wlp5m1x5l24k8ck1m5cf"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@@ -69,73 +65,62 @@
|
||||
(substitute* "configure"
|
||||
;; Use a sensible default udev rules directory.
|
||||
(("default_udevdir=/lib/udev")
|
||||
"default_udevdir='${prefix}/lib/udev'"))))))
|
||||
"default_udevdir='${prefix}/lib/udev'"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(list "--sysconfdir=/etc"
|
||||
"--localstatedir=/var"
|
||||
;; Do not install sysv or systemd init scripts.
|
||||
"--with-initscripttype=none"
|
||||
;; Disable support for DRBD 8.3 as it is only for
|
||||
;; Linux-Libre versions < 3.8. 8.4 is the latest
|
||||
;; kernel driver as of Linux 5.18.
|
||||
"--without-83support")
|
||||
#:test-target "test"
|
||||
#:make-flags #~(list "WANT_DRBD_REPRODUCIBLE_BUILD=yesplease")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-ja-translation
|
||||
(lambda _
|
||||
;; XXX: The japanese documentation cannot be created due to
|
||||
;; several "Invalid po file" and "use of uninitialized variable"
|
||||
;; in po4a.
|
||||
(substitute* "Makefile.in"
|
||||
(("(DOC_DIRS.*)documentation/ja/v[[:digit:]]+" _ match)
|
||||
match)
|
||||
(("[[:blank:]]+\\$\\(MAKE\\) -C documentation/ja/v[[:digit:]]+.*")
|
||||
""))))
|
||||
(add-after 'patch-generated-file-shebangs 'patch-documentation
|
||||
(lambda _
|
||||
;; The preceding phase misses some Makefiles with unusual file
|
||||
;; names, so we handle those here.
|
||||
(for-each patch-makefile-SHELL (find-files "documentation/common"
|
||||
"^Makefile"))))
|
||||
(add-before 'configure 'use-absolute-/lib/drbd
|
||||
(lambda _
|
||||
;; Look for auxiliary executables below exec_prefix instead
|
||||
;; of assuming /lib/drbd (see TODO comment in the file).
|
||||
(substitute* "user/v9/drbdtool_common.c"
|
||||
(("\"/lib/drbd\"")
|
||||
(string-append "\"" #$output "/lib/drbd\"")))))
|
||||
(add-after 'configure 'adjust-installation-directories
|
||||
(lambda _
|
||||
;; Do not attempt to create /etc or /var.
|
||||
(substitute* "scripts/Makefile"
|
||||
(("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)")
|
||||
"$(DESTDIR)$(prefix)$(sysconfdir)"))
|
||||
(substitute* "user/v84/Makefile"
|
||||
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
|
||||
"$(DESTDIR)$(prefix)$(localstatedir)")
|
||||
(("\\$\\(DESTDIR\\)/lib/drbd")
|
||||
"$(DESTDIR)$(prefix)/lib/drbd"))
|
||||
(substitute* "user/v9/Makefile"
|
||||
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
|
||||
"$(DESTDIR)$(prefix)$(localstatedir)")
|
||||
(("\\$\\(DESTDIR\\)\\$\\(DRBD_LIB_DIR\\)")
|
||||
"$(DESTDIR)$(prefix)$(DRBD_LIB_DIR)")))))))
|
||||
`(#:configure-flags '(;; Do not install sysv or systemd init scripts.
|
||||
"--with-initscripttype=none"
|
||||
;; Use the pre-built manual pages present in release
|
||||
;; tarballs instead of generating them from scratch.
|
||||
"--with-prebuiltman"
|
||||
;; Disable support for DRBD 8.3 as it is only for
|
||||
;; Linux-Libre versions < 3.8. 8.4 is the latest
|
||||
;; kernel driver as of Linux 5.7.
|
||||
"--without-83support"
|
||||
"--sysconfdir=/etc"
|
||||
"--localstatedir=/var")
|
||||
#:test-target "test"
|
||||
#:make-flags '("WANT_DRBD_REPRODUCIBLE_BUILD=yesplease")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'patch-generated-file-shebangs 'patch-documentation
|
||||
(lambda _
|
||||
;; The preceding phase misses some Makefiles with unusual file
|
||||
;; names, so we handle those here.
|
||||
(for-each patch-makefile-SHELL (find-files "documentation/common"
|
||||
"^Makefile"))
|
||||
#t))
|
||||
(add-before 'configure 'use-absolute-/lib/drbd
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Look for auxiliary executables below exec_prefix instead
|
||||
;; of assuming /lib/drbd (see TODO comment in the file).
|
||||
(substitute* "user/v9/drbdtool_common.c"
|
||||
(("\"/lib/drbd\"")
|
||||
(string-append "\"" out "/lib/drbd\"")))
|
||||
#t)))
|
||||
(add-after 'configure 'adjust-installation-directories
|
||||
(lambda _
|
||||
;; Do not attempt to create /etc or /var.
|
||||
(substitute* "scripts/Makefile"
|
||||
(("\\$\\(DESTDIR\\)\\$\\(sysconfdir\\)")
|
||||
"$(DESTDIR)$(prefix)$(sysconfdir)"))
|
||||
(substitute* "user/v84/Makefile"
|
||||
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
|
||||
"$(DESTDIR)$(prefix)$(localstatedir)")
|
||||
(("\\$\\(DESTDIR\\)/lib/drbd")
|
||||
"$(DESTDIR)$(prefix)/lib/drbd"))
|
||||
(substitute* "user/v9/Makefile"
|
||||
(("\\$\\(DESTDIR\\)\\$\\(localstatedir\\)")
|
||||
"$(DESTDIR)$(prefix)$(localstatedir)")
|
||||
(("\\$\\(DESTDIR\\)\\$\\(DRBD_LIB_DIR\\)")
|
||||
"$(DESTDIR)$(prefix)$(DRBD_LIB_DIR)"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
(list clitest
|
||||
eudev ;just to satisfy a configure check
|
||||
flex
|
||||
;; For the documentation.
|
||||
docbook-xml
|
||||
docbook-xml-4.4 ;used by documentation/ra2refentry.xsl
|
||||
docbook-xsl
|
||||
libxml2 ;for XML_CATALOG_FILES
|
||||
libxslt ;for xsltproc
|
||||
ruby-asciidoctor))
|
||||
`(("clitest" ,clitest)
|
||||
("flex" ,flex)
|
||||
("udev" ,eudev))) ;just to satisfy a configure check
|
||||
(home-page "https://www.linbit.com/drbd/")
|
||||
(synopsis "Replicate block devices between machines")
|
||||
(description
|
||||
@@ -143,9 +128,6 @@
|
||||
shared-nothing, replicated storage solution mirroring the content of block
|
||||
devices (hard disks, partitions, logical volumes etc.) over any network
|
||||
connection. This package contains the userland utilities.")
|
||||
(properties
|
||||
'((release-monitoring-url
|
||||
. "https://www.linbit.com/en/drbd-community/drbd-download/")))
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public keepalived
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system emacs)
|
||||
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages backup)
|
||||
#:use-module (gnu packages compression)
|
||||
@@ -230,8 +229,15 @@ using the CMake build system.")
|
||||
(files '("")))
|
||||
;; "cmake-curl-certificates.patch" changes CMake to honor 'SSL_CERT_DIR'
|
||||
;; and 'SSL_CERT_FILE', hence these search path entries.
|
||||
$SSL_CERT_DIR
|
||||
$SSL_CERT_FILE))
|
||||
(search-path-specification
|
||||
(variable "SSL_CERT_DIR")
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs")))
|
||||
(search-path-specification
|
||||
(variable "SSL_CERT_FILE")
|
||||
(file-type 'regular)
|
||||
(separator #f) ;single entry
|
||||
(files '("etc/ssl/certs/ca-certificates.crt")))))
|
||||
(home-page "https://cmake.org/")
|
||||
(synopsis "Cross-platform build system")
|
||||
(description
|
||||
|
||||
+6
-126
@@ -11,11 +11,11 @@
|
||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2019 Hartmut Goebel <h.goebel@goebel-consult.de>
|
||||
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2021 lu hui <luhuins@163.com>
|
||||
;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com>
|
||||
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -48,14 +48,12 @@
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpp)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages graphviz)
|
||||
#:use-module (gnu packages llvm)
|
||||
@@ -67,9 +65,7 @@
|
||||
#:use-module (gnu packages perl-compression)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages texinfo)
|
||||
@@ -121,13 +117,6 @@ a major mode for Emacs for examining the flowcharts that it produces.")
|
||||
(base32
|
||||
"0lr0l9kj2w3jilz9h9y4np9pf9i9ccpy6331lanki2fnz4z8ldvd"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'build 'set-man-page-date
|
||||
;; Avoid embedding the current date for reproducible builds
|
||||
(lambda _
|
||||
(setenv "MAN_PAGE_DATE" "2012-04-18"))))))
|
||||
(native-inputs
|
||||
(list texinfo autogen))
|
||||
(home-page "https://www.gnu.org/software/complexity/")
|
||||
@@ -390,7 +379,7 @@ features that are not supported by the standard @code{stdio} implementation.")
|
||||
(define-public universal-ctags
|
||||
(package
|
||||
(name "universal-ctags")
|
||||
(version "5.9.20220626.0")
|
||||
(version "5.9.20210509.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -400,14 +389,14 @@ features that are not supported by the standard @code{stdio} implementation.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x5kqqznlbndwln8g0kcxnla6b94i7x7cd63ba2sj0fzzms5gx24"))
|
||||
"1sq94bnbzr40zwihfnsna759bbak0lw27j0yn12iwpg4xgb4hhwp"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Remove the bundled PackCC and associated build rules.
|
||||
(substitute* "Makefile.am"
|
||||
(("^PACKCC = .*")
|
||||
"PACKCC = packcc\n")
|
||||
"PACKCC = packcc")
|
||||
(("\\$\\(PACKCC_FILES\\)")
|
||||
"")
|
||||
(("\\$\\(PEG_SRCS\\) \\$\\(PEG_HEADS\\): \\$\\(PACKCC\\)")
|
||||
@@ -437,7 +426,7 @@ features that are not supported by the standard @code{stdio} implementation.")
|
||||
(native-inputs
|
||||
(list autoconf automake packcc perl pkg-config))
|
||||
(inputs
|
||||
(list jansson libseccomp libxml2 libyaml pcre2))
|
||||
(list jansson libseccomp libxml2 libyaml))
|
||||
(home-page "https://ctags.io/")
|
||||
(synopsis "Generate tag files for source code")
|
||||
(description
|
||||
@@ -936,88 +925,6 @@ extensions over the standard utility.")
|
||||
source and header amalgamation in projects.")
|
||||
(license license:bsd-3))))
|
||||
|
||||
(define-public cdecl
|
||||
(package
|
||||
(name "cdecl")
|
||||
(version "2.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.ibiblio.org/pub/linux/devel/lang/c/cdecl-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0dm98bp186r4cihli6fmcwzjaadgwl1z3b0zdxfik8h7hkqawk5p"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
,#~(list "LIBS=-lreadline"
|
||||
(string-append "BINDIR=" #$output "/bin")
|
||||
(string-append "MANDIR=" #$output "/share/man/man1"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; No configure script.
|
||||
(add-after 'unpack 'fix-build
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("lex cdlex.l")
|
||||
"flex cdlex.l"))
|
||||
(substitute* "cdecl.c"
|
||||
;; Fix "error: conflicting types for ‘getline’".
|
||||
(("char \\* getline\\(\\)")
|
||||
"char * our_getline(void)")
|
||||
(("char \\* getline \\(\\)")
|
||||
"char * our_getline(void)")
|
||||
(("line = getline\\(\\)")
|
||||
"line = our_getline()")
|
||||
;; Fix "error: conflicting types for ‘getopt’".
|
||||
(("int getopt\\(int,char \\*\\*,char \\*\\);")
|
||||
"")
|
||||
;; Fix invalid use of "restrict" as a variable name.
|
||||
(("i, j, restrict")
|
||||
"i, j, restriction")
|
||||
(("restrict =")
|
||||
"restriction =")
|
||||
;; Fix "warning: implicit declaration of function ‘add_history’".
|
||||
(("# include <readline/readline.h>" all)
|
||||
(string-append all "\n# include <readline/history.h>"))
|
||||
;; Fix "warning: implicit declaration of function ‘dotmpfile_from_string’".
|
||||
(("void setprogname\\(char \\*\\);" all)
|
||||
(string-append all "\nint dotmpfile_from_string(char *);"))
|
||||
;; Fix "warning: implicit declaration of function ‘completion_matches’".
|
||||
(("matches = completion_matches\\(text, command_completion\\);")
|
||||
"matches = rl_completion_matches(text, command_completion);")
|
||||
(("char \\* command_completion\\(char \\*, int\\);")
|
||||
"char * command_completion(const char *, int);")
|
||||
(("char \\* command_completion\\(char \\*text, int flag\\)")
|
||||
"char * command_completion(const char *text, int flag)")
|
||||
;; Fix "warning: ‘CPPFunction’ is deprecated".
|
||||
(("rl_attempted_completion_function = \\(CPPFunction \\*\\)attempt_completion;")
|
||||
"rl_attempted_completion_function = (rl_completion_func_t *)attempt_completion;")
|
||||
;; Fix "warning: ‘Function’ is deprecated".
|
||||
(("rl_completion_entry_function = \\(Function \\*\\)keyword_completion;")
|
||||
"rl_completion_entry_function = (rl_compentry_func_t *)keyword_completion;"))
|
||||
;; Fix typo in man page.
|
||||
(substitute* "cdecl.1"
|
||||
(("<storage>\t::= auto \\| extern \\| register \\| auto")
|
||||
"<storage>\t::= auto | extern | register | static"))))
|
||||
(add-before 'install 'create-directories
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man (string-append out "/share/man/man1")))
|
||||
(mkdir-p bin)
|
||||
(mkdir-p man)))))
|
||||
#:tests? #f)) ; No "check" target.
|
||||
(native-inputs (list bison flex))
|
||||
(inputs (list readline))
|
||||
(home-page "https://www.ibiblio.org/pub/linux/devel/lang/c/")
|
||||
(synopsis "Turn English phrases into C or C++ declarations and vice versa")
|
||||
(description "@code{cdecl} is a program that turns English-like phrases into C
|
||||
declarations. It can also translate C into pseudo-English. It also handles
|
||||
type casts and C++. It has command-line editing and history with the GNU
|
||||
Readline library.")
|
||||
(license license:public-domain)))
|
||||
|
||||
(define-public cscope
|
||||
(package
|
||||
(name "cscope")
|
||||
@@ -1046,30 +953,3 @@ also be used for C++ code.
|
||||
|
||||
Using cscope, you can easily search for where symbols are used and defined.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public xenon
|
||||
(package
|
||||
(name "xenon")
|
||||
(version "0.9.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "xenon" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1f4gynjzfckm3rjfywwgz1c7icfx3zjqirf16aj73xv0c9ncpffj"))))
|
||||
(build-system python-build-system)
|
||||
(arguments (list #:tests? #f)) ;test suite not shipped with the PyPI archive
|
||||
(inputs (list python-pyyaml python-radon python-requests))
|
||||
(home-page "https://xenon.readthedocs.org/")
|
||||
(synopsis "Monitor code metrics for Python on your CI server")
|
||||
(description
|
||||
"Xenon is a monitoring tool based on Radon. It monitors code complexity.
|
||||
Ideally, @code{xenon} is run every time code is committed. Through command
|
||||
line options, various thresholds can be set for the complexity of code. It
|
||||
will fail (i.e. it will exit with a non-zero exit code) when any of these
|
||||
requirements is not met.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-xenon
|
||||
(deprecated-package "python-xenon" xenon))
|
||||
|
||||
+733
-1124
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@
|
||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; Copyright © 2016–2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016, 2019, 2020 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2016, 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
|
||||
@@ -35,6 +35,7 @@
|
||||
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2021 Ahmad Jarara <git@ajarara.io>
|
||||
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -52,7 +53,6 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages compression)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
@@ -233,43 +233,28 @@ adding and extracting files to/from a tar archive.")
|
||||
(define-public gzip
|
||||
(package
|
||||
(name "gzip")
|
||||
(version "1.10")
|
||||
(version "1.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gzip/gzip-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1h6p374d3j8d4cdfydzls021xa2yby8myc0h8d6m8bc7k6ncq9c4"))))
|
||||
"0mhrx5wk9gazmxdw7vmbpg036yzqqhsww6h12kwf2dzn37jh6pnf"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "General file (de)compression (using lzw)")
|
||||
(arguments
|
||||
;; FIXME: The test suite wants `less', and optionally Perl.
|
||||
'(#:tests? #f
|
||||
#:configure-flags '("ac_cv_prog_LESS=\"less\"")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-for-glibc-2.28
|
||||
(lambda _
|
||||
;; Adjust the bundled gnulib to work with glibc 2.28. See e.g.
|
||||
;; "m4-gnulib-libio.patch". This is a phase rather than patch
|
||||
;; or snippet to work around <https://bugs.gnu.org/32347>.
|
||||
(substitute* (find-files "lib" "\\.c$")
|
||||
(("#if defined _IO_ftrylockfile")
|
||||
"#if defined _IO_EOF_SEEN"))
|
||||
(substitute* "lib/stdio-impl.h"
|
||||
(("^/\\* BSD stdio derived implementations")
|
||||
(string-append "#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN\n"
|
||||
"# define _IO_IN_BACKUP 0x100\n"
|
||||
"#endif\n\n"
|
||||
"/* BSD stdio derived implementations")))
|
||||
#t))
|
||||
(add-after 'unpack 'use-absolute-name-of-gzip
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "gunzip.in"
|
||||
(("exec gzip")
|
||||
(("exec 'gzip'")
|
||||
(string-append "exec " (assoc-ref outputs "out")
|
||||
"/bin/gzip")))
|
||||
#t)))))
|
||||
"/bin/gzip"))))))))
|
||||
(description
|
||||
"GNU Gzip provides data compression and decompression utilities; the
|
||||
typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single
|
||||
@@ -412,10 +397,8 @@ decompression.")
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'unpack-gnulib
|
||||
(lambda* (#:key inputs native-inputs #:allow-other-keys)
|
||||
(let ((gnulib
|
||||
(dirname (search-input-file (or native-inputs inputs)
|
||||
"gnulib-tool.py"))))
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gnulib (assoc-ref inputs "gnulib")))
|
||||
(copy-recursively gnulib "lib")
|
||||
(setenv "PATH" (string-append "lib:" (getenv "PATH")))
|
||||
#t)))
|
||||
@@ -633,14 +616,14 @@ archiving. Lzip is a clean implementation of the LZMA algorithm.")
|
||||
(define-public lziprecover
|
||||
(package
|
||||
(name "lziprecover")
|
||||
(version "1.23")
|
||||
(version "1.22")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/lzip/lziprecover/"
|
||||
"lziprecover-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wmmyi03fv2lflsir5ldrsv04q57k3hmlqajzb1m3p86gwbh967j"))))
|
||||
"0qh8dnhr5rly2k9dnx43qqynqwqzi5kfb15pyd29qwppfl4qm5gx"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.nongnu.org/lzip/lziprecover.html")
|
||||
(synopsis "Recover and decompress data from damaged lzip files")
|
||||
@@ -981,30 +964,31 @@ byte-for-byte identical output.")
|
||||
(define-public pigz
|
||||
(package
|
||||
(name "pigz")
|
||||
(version "2.7")
|
||||
(version "2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://zlib.net/pigz/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"01y7n7lafp6maqnp4jrmasawnv67najh1bd7gjrmv3d08h1ydjdl"))))
|
||||
"0z9avc4mifwcpj3qdsf9m2rjw9jx03b2r9pj0c4xgla9fh6ppv9f"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:make-flags
|
||||
#~(list (string-append "CC=" #$(cc-for-target)))
|
||||
#:test-target "test"
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(let* ((bin (string-append #$output "/bin"))
|
||||
(man (string-append #$output "/share/man/man1")))
|
||||
(install-file "pigz" bin)
|
||||
(symlink "pigz" (string-append bin "/unpigz"))
|
||||
(install-file "pigz.1" man)))))))
|
||||
(native-inputs (list which))
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man (string-append out "/share/man/man1")))
|
||||
(install-file "pigz" bin)
|
||||
(symlink "pigz" (string-append bin "/unpigz"))
|
||||
(install-file "pigz.1" man)
|
||||
#t))))
|
||||
#:make-flags
|
||||
(list ,(string-append "CC=" (cc-for-target)))
|
||||
#:test-target "tests"))
|
||||
(inputs (list zlib))
|
||||
(home-page "https://zlib.net/pigz/")
|
||||
(synopsis "Parallel implementation of gzip")
|
||||
@@ -1088,7 +1072,7 @@ tarballs.")
|
||||
(define-public libjcat
|
||||
(package
|
||||
(name "libjcat")
|
||||
(version "0.1.11")
|
||||
(version "0.1.9")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -1098,12 +1082,13 @@ tarballs.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "08zywwhm9q8m8v17w2mp23w3w93p40ir1w4x18zrlbhs10xnhiys"))))
|
||||
(base32 "02cgznk6qdylqpcyks6qykmvhpz1pplvnxp72bjzji1y6yj3zpkj"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs
|
||||
(list gobject-introspection help2man pkg-config))
|
||||
(inputs
|
||||
(list glib
|
||||
(list git
|
||||
glib
|
||||
gnupg
|
||||
gnutls
|
||||
gpgme
|
||||
@@ -1156,14 +1141,14 @@ human-readable output.")
|
||||
(define-public lrzip
|
||||
(package
|
||||
(name "lrzip")
|
||||
(version "0.651")
|
||||
(version "0.641")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://ck.kolivas.org/apps/lrzip/lrzip-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1y822rpl7ak57s1a4xzd6ja82cp3sff9axrpkdn5khcpn3n8vga8"))))
|
||||
(base32 "0ziyanspd96dc3lp2qdcylc7aq8dhb511jhqrhxvlp502fjqjqrc"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(;; nasm is only required when building for 32-bit x86 platforms
|
||||
@@ -1579,28 +1564,21 @@ or junctions, and always follows hard links.")
|
||||
(define-public zstd
|
||||
(package
|
||||
(name "zstd")
|
||||
(version "1.5.0")
|
||||
(version "1.5.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/facebook/zstd/releases/download/"
|
||||
"v" version "/zstd-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "150y541303vnvfhd8wkbih00lfvvm98rd12yijwlbkqzg3xgp52i"))))
|
||||
(base32 "1l1zm1imcc2ixayykyh4y421shdj3pzp7g2xm2k2js8jmipxahkw"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" ;1.2MiB executables and documentation
|
||||
(outputs '("out" ;1.5MiB executables and documentation
|
||||
"lib" ;1.2MiB shared library and headers
|
||||
"static")) ;1.2MiB static library
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remove-bogus-check
|
||||
(lambda _
|
||||
;; lib/Makefile falsely claims that no .pc file can be created.
|
||||
(substitute* "lib/Makefile"
|
||||
(("error configured .*dir ")
|
||||
"true "))
|
||||
#t))
|
||||
(add-after 'unpack 'patch-command-file-names
|
||||
;; Don't require hard requirements to be in $PATH.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
@@ -1975,14 +1953,14 @@ of archives.")
|
||||
(define-public lunzip
|
||||
(package
|
||||
(name "lunzip")
|
||||
(version "1.13")
|
||||
(version "1.12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/lzip/lunzip/"
|
||||
"lunzip-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "153qa674rlbw812fb7h8rfzdw4hvr6vgkjl1c0yfplj7p4h86z9w"))))
|
||||
(base32 "1liaynyy3qcs29hfk1pnb7i9r1mnmpw557j5v356qsv6qnm4lnz5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
@@ -2002,14 +1980,14 @@ Lunzip is intended to be fully compatible with the regular lzip package.")
|
||||
(define-public clzip
|
||||
(package
|
||||
(name "clzip")
|
||||
(version "1.13")
|
||||
(version "1.12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/lzip/clzip/"
|
||||
"clzip-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0ypagygbnq4ppqyg7sj4816x5c1w579883m2nsq0zxbb0gszpjbs"))))
|
||||
(base32 "1s7yidqvmxi61hh569h5aci816l6qkffjgx0zx57qyyq0qq2pjgw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
@@ -2028,14 +2006,14 @@ Clzip is intended to be fully compatible with the regular lzip package.")
|
||||
(define-public lzlib
|
||||
(package
|
||||
(name "lzlib")
|
||||
(version "1.13")
|
||||
(version "1.12")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/lzip/lzlib/"
|
||||
"lzlib-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "107vkzfgvb21cqq4gmxyfn97l4s2c0b3i14k9rkv594b2krmiax1"))))
|
||||
(base32 "1c9pwd6by8is4z8bs6j306jyy6pgm2dvsn4fr7fg2b5m5qj88pcf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
@@ -2055,14 +2033,14 @@ corrupted input.")
|
||||
(define-public plzip
|
||||
(package
|
||||
(name "plzip")
|
||||
(version "1.10")
|
||||
(version "1.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/lzip/plzip/"
|
||||
"plzip-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "16408n8z21hfxp0qnx3hh1d0c47g8z9i3vflbgbrmf6qcn1abyj3"))))
|
||||
(base32 "19zinpx7hssl6r3vilpvq2s7wha3545xan8b0vcvsxnyipdx3n0l"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list lzlib))
|
||||
@@ -2321,7 +2299,7 @@ reading from and writing to ZIP archives.")
|
||||
(package
|
||||
(inherit quazip-0)
|
||||
(name "quazip")
|
||||
(version "1.3")
|
||||
(version "1.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -2330,7 +2308,7 @@ reading from and writing to ZIP archives.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0njgbdm3dm5p7xic5mhppbqsl36zn83zz0xfsfh624hlk0ff7n0a"))))))
|
||||
(base32 "1dwld7jxhjz9l33lrqwvklazdy7ygi6n1m4ry1n1sk5dnschrhby"))))))
|
||||
|
||||
(define-public zchunk
|
||||
(package
|
||||
@@ -2575,30 +2553,29 @@ chunks.")
|
||||
(define-public c-blosc
|
||||
(package
|
||||
(name "c-blosc")
|
||||
(version "1.21.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Blosc/c-blosc")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0gy9a7wp7x71x5l3rprx8wpb3c5cn7wqc77gdiffq35hr34q88p9"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; In a rare victory, we may delete all bundled libs to no ill effect.
|
||||
'(delete-file-recursively "internal-complibs"))))
|
||||
(version "1.18.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Blosc/c-blosc")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ywq8j70149859vvs19wgjq89d6xsvvmvm2n1dmkzpchxgrvnw70"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("-DBUILD_STATIC=OFF"
|
||||
"-DDEACTIVATE_AVX2=ON"
|
||||
'("-DDEACTIVATE_AVX2=ON"
|
||||
"-DPREFER_EXTERNAL_LZ4=ON"
|
||||
"-DPREFER_EXTERNAL_SNAPPY=ON"
|
||||
"-DPREFER_EXTERNAL_ZLIB=ON"
|
||||
"-DPREFER_EXTERNAL_ZSTD=ON")))
|
||||
(inputs
|
||||
(list lz4 snappy zlib `(,zstd "lib")))
|
||||
`(("lz4" ,lz4)
|
||||
("snappy" ,snappy)
|
||||
("zlib" ,zlib)
|
||||
("zstd:lib" ,zstd "lib")))
|
||||
(home-page "https://blosc.org")
|
||||
(synopsis "Blocking, shuffling and lossless compression library")
|
||||
(description
|
||||
@@ -2648,7 +2625,7 @@ to their original, binary CD format.")
|
||||
(define-public libdeflate
|
||||
(package
|
||||
(name "libdeflate")
|
||||
(version "1.10")
|
||||
(version "1.8")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -2657,7 +2634,7 @@ to their original, binary CD format.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0v5qh1cz787xj86l15x6brkkaw0jbxhqj5f85275q0l945qazvwm"))))
|
||||
"0nw1zhr2s6ffcc3s0n5wsshvjb6pmybwapagli135zzn2fx1pdiz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
@@ -2665,10 +2642,6 @@ to their original, binary CD format.")
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'skip-static-library-installation
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("install .*\\$\\(STATIC_LIB\\).*") ""))))
|
||||
(delete 'configure))))
|
||||
(inputs
|
||||
(list zlib))
|
||||
@@ -2716,7 +2689,7 @@ can append files to the end of such compressed archives.")
|
||||
(define-public libcbor
|
||||
(package
|
||||
(name "libcbor")
|
||||
(version "0.9.0")
|
||||
(version "0.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -2724,7 +2697,7 @@ can append files to the end of such compressed archives.")
|
||||
(url "https://github.com/PJK/libcbor")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256 (base32 "1n9fx5i81wr9j18bhz74wclfkwqf1k3piq6lzngvkmq04krzi7ss"))))
|
||||
(sha256 (base32 "01dv4vxcmbvpphqy16vqiwh25wx11x630js5wfnx7cryarsh9ld7"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
@@ -2738,8 +2711,8 @@ can append files to the end of such compressed archives.")
|
||||
(string-append "-DCMAKE_INSTALL_RPATH=" lib)))))
|
||||
(synopsis "The C library for parsing and generating CBOR")
|
||||
(description
|
||||
"@acronym{CBOR, The Concise Binary Object Representation} is a data format
|
||||
whose design goals include the possibility of extremely small code size, fairly
|
||||
"The Concise Binary Object Representation (CBOR) is a data format whose
|
||||
design goals include the possibility of extremely small code size, fairly
|
||||
small message size, and extensibility without the need for version
|
||||
negotiation. These design goals make it different from earlier binary
|
||||
serializations such as ASN.1 and MessagePack.")
|
||||
|
||||
@@ -47,10 +47,10 @@
|
||||
#:use-module (gnu packages web))
|
||||
|
||||
(define-public crun
|
||||
(let ((commit "c381048530aa750495cf502ddb7181f2ded5b400"))
|
||||
(let ((commit "8e5757a4e68590326dafe8a8b1b4a584b10a1370"))
|
||||
(package
|
||||
(name "crun")
|
||||
(version "1.4.5")
|
||||
(version "1.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -59,7 +59,7 @@
|
||||
(commit commit)
|
||||
(recursive? #t)))
|
||||
(sha256
|
||||
(base32 "0x2xmr5sv9ivvcv5fl5jjk4kq9b3n97s5hsqiqfwl4rz8qcz4xk1"))
|
||||
(base32 "01yiss2d57kwlxb7zlqzjwlg9fyaf19yjngd1mw9n4hxls3dfj3k"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user