Archived
1
0
Fork 0

Merge branch 'staging' into core-updates.

This commit is contained in:
Maxim Cournoyer 2022-03-21 23:39:43 -04:00
commit a9429c8f22
No known key found for this signature in database
GPG key ID: 1260E46482E63562
527 changed files with 357880 additions and 247173 deletions

View file

@ -52,6 +52,7 @@
(eval . (put 'test-equal 'scheme-indent-function 1)) (eval . (put 'test-equal 'scheme-indent-function 1))
(eval . (put 'test-eq 'scheme-indent-function 1)) (eval . (put 'test-eq 'scheme-indent-function 1))
(eval . (put 'call-with-input-string 'scheme-indent-function 1)) (eval . (put 'call-with-input-string 'scheme-indent-function 1))
(eval . (put 'call-with-port 'scheme-indent-function 1))
(eval . (put 'guard 'scheme-indent-function 1)) (eval . (put 'guard 'scheme-indent-function 1))
(eval . (put 'lambda* 'scheme-indent-function 1)) (eval . (put 'lambda* 'scheme-indent-function 1))
(eval . (put 'substitute* 'scheme-indent-function 1)) (eval . (put 'substitute* 'scheme-indent-function 1))
@ -60,8 +61,6 @@
;; 'modify-inputs' and its keywords. ;; 'modify-inputs' and its keywords.
(eval . (put 'modify-inputs 'scheme-indent-function 1)) (eval . (put 'modify-inputs 'scheme-indent-function 1))
(eval . (put 'replace 'scheme-indent-function 1)) (eval . (put 'replace 'scheme-indent-function 1))
(eval . (put 'prepend 'scheme-indent-function 2))
(eval . (put 'append 'scheme-indent-function 2))
;; 'modify-phases' and its keywords. ;; 'modify-phases' and its keywords.
(eval . (put 'modify-phases 'scheme-indent-function 1)) (eval . (put 'modify-phases 'scheme-indent-function 1))
@ -150,6 +149,8 @@
(eval . (put 'with-shepherd-action 'scheme-indent-function 3)) (eval . (put 'with-shepherd-action 'scheme-indent-function 3))
(eval . (put 'with-http-server 'scheme-indent-function 1))
;; This notably allows '(' in Paredit to not insert a space when the ;; This notably allows '(' in Paredit to not insert a space when the
;; preceding symbol is one of these. ;; preceding symbol is one of these.
(eval . (modify-syntax-entry ?~ "'")) (eval . (modify-syntax-entry ?~ "'"))

View file

@ -1,78 +1,103 @@
Important: to avoid polarizing/hurtful discussions in our public spaces, any
matter pertaining to our use of this Code of Conduct should be brought
privately to the Guix maintainers at guix-maintainers@gnu.org. Failure to do
so will be considered as a violation of this Code of Conduct.
Contributor Covenant Code of Conduct Contributor Covenant Code of Conduct
Note: In the sequel, "project" refers to GNU Guix, and "project
maintainer(s)" refers to maintainer(s) of GNU Guix.
Our Pledge Our Pledge
We as members, contributors, and leaders pledge to make participation in our
In the interest of fostering an open and welcoming environment, we as community a harassment-free experience for everyone, regardless of age, body
contributors and maintainers pledge to making participation in our project and size, visible or invisible disability, ethnicity, sex characteristics, gender
our community a harassment-free experience for everyone, regardless of age, body identity and expression, level of experience, education, socio-economic status,
size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, caste, color, religion, or sexual
education, socio-economic status, nationality, personal appearance, race, identity and orientation.
religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
Our Standards Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
Examples of behavior that contributes to creating a positive environment * Demonstrating empathy and kindness toward other people
include: * Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* Using welcoming and inclusive language * The use of sexualized language or imagery, and sexual attention or advances of
* Being respectful of differing viewpoints and experiences any kind
* Gracefully accepting constructive criticism * Trolling, insulting or derogatory comments, and personal or political attacks
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment * Public or private harassment
* Publishing others private information, such as a physical or electronic * Publishing others private information, such as a physical or email address,
address, without explicit permission without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a * Other conduct which could reasonably be considered inappropriate in a
professional setting professional setting
Enforcement Responsibilities
Our Responsibilities Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
Project maintainers are responsible for clarifying the standards of acceptable response to any behavior that they deem inappropriate, threatening, offensive,
behavior and are expected to take appropriate and fair corrective action in or harmful.
response to any instances of unacceptable behavior. Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
Project maintainers have the right and responsibility to remove, edit, or not aligned to this Code of Conduct, and will communicate reasons for moderation
reject comments, commits, code, wiki edits, issues, and other contributions decisions when appropriate.
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
Scope Scope
This Code of Conduct applies within all community spaces, and also applies when
This Code of Conduct applies both within project spaces and in public spaces an individual is officially representing the community in public spaces.
when an individual is representing the project or its community. Examples of Examples of representing our community include using an official e-mail address,
representing a project or community include using an official project e-mail posting via an official social media account, or acting as an appointed
address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
Enforcement Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at guix-maintainers@gnu.org. All reported to the community leaders responsible for enforcement at
complaints will be reviewed and investigated and will result in a response that guix-maintainers@gnu.org.
is deemed necessary and appropriate to the circumstances. The project team is All complaints will be reviewed and investigated promptly and fairly.
obligated to maintain confidentiality with regard to the reporter of an incident. All community leaders are obligated to respect the privacy and security of the
Further details of specific enforcement policies may be posted separately. reporter of any incident.
Enforcement Guidelines
Project maintainers who do not follow or enforce the Code of Conduct in good Community leaders will follow these Community Impact Guidelines in determining
faith may face temporary or permanent repercussions as determined by other the consequences for any action they deem in violation of this Code of Conduct:
members of the projects leadership. 1. Correction
Community Impact: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
Consequence: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
2. Warning
Community Impact: A violation through a single incident or series of
actions.
Consequence: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
3. Temporary Ban
Community Impact: A serious violation of community standards, including
sustained inappropriate behavior.
Consequence: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
4. Permanent Ban
Community Impact: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
Consequence: A permanent ban from any sort of public interaction within the
community.
Attribution Attribution
This Code of Conduct is adapted from the Contributor Covenant,
version 2.1, available at
https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.
Community Impact Guidelines were inspired by
Mozillas code of conduct enforcement ladder.
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

View file

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU # 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 © 2013 Andreas Enge <andreas@enge.fr> # Copyright © 2013 Andreas Enge <andreas@enge.fr>
# Copyright © 2015, 2017 Alex Kost <alezost@gmail.com> # Copyright © 2015, 2017 Alex Kost <alezost@gmail.com>
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org> # Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
@ -380,6 +380,10 @@ AUX_FILES = \
gnu/packages/aux-files/chromium/master-preferences.json \ gnu/packages/aux-files/chromium/master-preferences.json \
gnu/packages/aux-files/emacs/guix-emacs.el \ gnu/packages/aux-files/emacs/guix-emacs.el \
gnu/packages/aux-files/guix.vim \ gnu/packages/aux-files/guix.vim \
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-arm.conf \
gnu/packages/aux-files/linux-libre/5.15-arm64.conf \ gnu/packages/aux-files/linux-libre/5.15-arm64.conf \
gnu/packages/aux-files/linux-libre/5.15-i686.conf \ gnu/packages/aux-files/linux-libre/5.15-i686.conf \
@ -483,6 +487,7 @@ SCM_TESTS = \
tests/gremlin.scm \ tests/gremlin.scm \
tests/hackage.scm \ tests/hackage.scm \
tests/home-import.scm \ tests/home-import.scm \
tests/http-client.scm \
tests/import-git.scm \ tests/import-git.scm \
tests/import-github.scm \ tests/import-github.scm \
tests/import-utils.scm \ tests/import-utils.scm \
@ -1023,10 +1028,12 @@ assert-no-store-file-names:
exit 1 ; \ exit 1 ; \
fi fi
# Make sure important substitutes are available. # Make sure important substitutes are available. Check only the primary
# server so that '--display-missing' doesn't print two lists.
assert-binaries-available: $(GOBJECTS) assert-binaries-available: $(GOBJECTS)
$(AM_V_at)$(top_builddir)/pre-inst-env \ $(AM_V_at)$(top_builddir)/pre-inst-env \
guix weather -m "$(top_srcdir)/etc/release-manifest.scm" \ guix weather -m "$(top_srcdir)/etc/release-manifest.scm" \
--substitute-urls="https://ci.guix.gnu.org" \
--display-missing --display-missing
# Make sure the final inputs don't refer to bootstrap tools. # Make sure the final inputs don't refer to bootstrap tools.

View file

@ -65,7 +65,7 @@
(define %languages (define %languages
;; The cookbook is not translated in the same languages as the manual ;; The cookbook is not translated in the same languages as the manual
(if (string=? %manual "guix-cookbook") (if (string=? %manual "guix-cookbook")
'("de" "en" "fr") '("de" "en" "fr" "sk")
'("de" "en" "es" "fr" "ru" "zh_CN"))) '("de" "en" "es" "fr" "ru" "zh_CN")))
(define (texinfo-manual-images source) (define (texinfo-manual-images source)

View file

@ -98,8 +98,14 @@ shell}:
guix shell -D guix help2man git strace --pure guix shell -D guix help2man git strace --pure
@end example @end example
Run @command{./bootstrap} to generate the build system infrastructure From there you can generate the build system infrastructure
using Autoconf and Automake. If you get an error like this one: using Autoconf and Automake:
@example
./bootstrap
@end example
If you get an error like this one:
@example @example
configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
@ -120,17 +126,30 @@ export ACLOCAL_PATH=/usr/share/aclocal
@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for @xref{Macro Search Path,,, automake, The GNU Automake Manual}, for
more information. more information.
Then, run @command{./configure --localstatedir=@var{directory}}, where Then, run:
@var{directory} is the @code{localstatedir} value used by your current
installation (@pxref{The Store}, for information about this), usually
@file{/var}. Note that you will probably not run @command{make install}
at the end (you don't have to) but it's still important to pass the
right @code{localstatedir}.
Finally, you have to invoke @code{make && make check} to build Guix and @example
run the tests (@pxref{Running the Test Suite}). If anything fails, take ./configure --localstatedir=/var
a look at installation instructions (@pxref{Installation}) or send a @end example
message to the @email{guix-devel@@gnu.org, mailing list}.
@noindent
... where @file{/var} is the normal @code{localstatedir} value
(@pxref{The Store}, for information about this). Note that you will
probably not run @command{make install} at the end (you don't have to)
but it's still important to pass the right @code{localstatedir}.
Finally, you can build Guix and, if you feel so inclined, run the tests
(@pxref{Running the Test Suite}):
@example
make
make check
@end example
@noindent
If anything fails, take a look at installation instructions
(@pxref{Installation}) or send a message to the
@email{guix-devel@@gnu.org, mailing list}.
From there on, you can authenticate all the commits included in your From there on, you can authenticate all the commits included in your
checkout by running: checkout by running:
@ -157,6 +176,18 @@ You are advised to run @command{make authenticate} after every
changes to the repository. changes to the repository.
@end quotation @end quotation
After updating the repository, @command{make} might fail with an error
similar to the following example:
@example
error: failed to load 'gnu/packages/dunst.scm':
ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <origin>>: record ABI mismatch; recompilation needed
@end example
This means that one of the record types that Guix defines (in this
example, the @code{origin} record) has changed, and all of guix needs
to be recompiled to take that change into account. To do so, run
@command{make clean-go} followed by @command{make}.
@node Running Guix Before It Is Installed @node Running Guix Before It Is Installed
@section Running Guix Before It Is Installed @section Running Guix Before It Is Installed
@ -231,6 +262,24 @@ local source tree; it simply updates the @file{~/.config/guix/current}
symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if
you want to upgrade your local source tree. you want to upgrade your local source tree.
Sometimes, especially if you have recently updated your repository,
running @command{./pre-inst-env} will print a message similar to the
following example:
@example
;;; note: source file /home/user/projects/guix/guix/progress.scm
;;; newer than compiled /home/user/projects/guix/guix/progress.go
@end example
This is only a note and you can safely ignore it. You can get rid of
the message by running @command{make -j4}. Until you do, Guile will run
slightly slower because it will interpret the code instead of using
prepared Guile object (@file{.go}) files.
You can run @command{make} automatically as you work using
@command{watchexec} from the @code{watchexec} package. For example,
to build again each time you update a package file, you can run
@samp{watchexec -w gnu/packages make -j4}.
@node The Perfect Setup @node The Perfect Setup
@section The Perfect Setup @section The Perfect Setup
@ -1386,9 +1435,14 @@ what your usertag means.
@cindex commit access, for developers @cindex commit access, for developers
Everyone can contribute to Guix without having commit access Everyone can contribute to Guix without having commit access
(@pxref{Submitting Patches}). However, for frequent contributors, (@pxref{Submitting Patches}). However, for frequent contributors,
having write access to the repository can be convenient. Commit access having write access to the repository can be convenient. As a rule of
should not be thought of as a ``badge of honor'' but rather as a thumb, a contributor should have accumulated fifty (50) reviewed commits
responsibility a contributor is willing to take to help the project. to be considered as a committer and have sustained their activity in the
project for at least 6 months. This ensures enough interactions with
the contributor, which is essential for mentoring and assessing whether
they are ready to become a committer. Commit access should not be
thought of as a ``badge of honor'' but rather as a responsibility a
contributor is willing to take to help the project.
The following sections explain how to get commit access, how to be ready The following sections explain how to get commit access, how to be ready
to push commits, and the policies and community expectations for commits to push commits, and the policies and community expectations for commits

View file

@ -7,6 +7,9 @@
@settitle GNU Guix Cookbook @settitle GNU Guix Cookbook
@c %**end of header @c %**end of header
@c Onion service for ci.guix.gnu.org.
@set SUBSTITUTE-TOR-URL https://4zwzi66wwdaalbhgnix55ea3ab4pvvw66ll2ow53kjub6se4q2bclcyd.onion
@copying @copying
Copyright @copyright{} 2019 Ricardo Wurmus@* Copyright @copyright{} 2019 Ricardo Wurmus@*
Copyright @copyright{} 2019 Efraim Flashner@* Copyright @copyright{} 2019 Efraim Flashner@*
@ -2354,7 +2357,8 @@ follow:
config => (guix-configuration config => (guix-configuration
(inherit config) (inherit config)
;; ci.guix.gnu.org's Onion service ;; ci.guix.gnu.org's Onion service
(substitute-urls "https://bp7o7ckwlewr4slm.onion") (substitute-urls
"@value{SUBSTITUTE-TOR-URL}")
(http-proxy "http://localhost:9250"))))))) (http-proxy "http://localhost:9250")))))))
@end lisp @end lisp
@ -2372,7 +2376,8 @@ want to get a substitute from the Tor tunnel run:
@example @example
sudo herd set-http-proxy guix-daemon http://localhost:9250 sudo herd set-http-proxy guix-daemon http://localhost:9250
guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion … guix build \
--substitute-urls=@value{SUBSTITUTE-TOR-URL} @dots{}
@end example @end example
@node Setting up NGINX with Lua @node Setting up NGINX with Lua

File diff suppressed because it is too large Load diff

View file

@ -23,7 +23,7 @@
# If adding a language, update the following variables, and info_TEXINFOS. # If adding a language, update the following variables, and info_TEXINFOS.
MANUAL_LANGUAGES = de es fa fi fr it ko pt_BR ru sk zh_CN MANUAL_LANGUAGES = de es fa fi fr it ko pt_BR ru sk zh_CN
COOKBOOK_LANGUAGES = de es fa fi fr ko ru sk zh_Hans COOKBOOK_LANGUAGES = de es fa fi fr ko pt_BR ru sk uk zh_Hans
# Arg1: A list of languages codes. # Arg1: A list of languages codes.
# Arg2: The file name stem. # Arg2: The file name stem.
@ -50,8 +50,10 @@ info_TEXINFOS = %D%/guix.texi \
%D%/guix-cookbook.fi.texi \ %D%/guix-cookbook.fi.texi \
%D%/guix-cookbook.fr.texi \ %D%/guix-cookbook.fr.texi \
%D%/guix-cookbook.ko.texi \ %D%/guix-cookbook.ko.texi \
%D%/guix-cookbook.pt_BR.texi \
%D%/guix-cookbook.ru.texi \ %D%/guix-cookbook.ru.texi \
%D%/guix-cookbook.sk.texi \ %D%/guix-cookbook.sk.texi \
%D%/guix-cookbook.uk.texi \
%D%/guix-cookbook.zh_Hans.texi %D%/guix-cookbook.zh_Hans.texi
%C%_guix_TEXINFOS = \ %C%_guix_TEXINFOS = \

View file

@ -302,9 +302,6 @@
(allow guix_daemon_t (allow guix_daemon_t
guix_daemon_conf_t guix_daemon_conf_t
(lnk_file (create getattr rename unlink read))) (lnk_file (create getattr rename unlink read)))
(allow guix_daemon_t
guix_daemon_conf_t
(sock_file (write)))
(allow guix_daemon_t net_conf_t (allow guix_daemon_t net_conf_t
(file (getattr open read))) (file (getattr open read)))
(allow guix_daemon_t net_conf_t (allow guix_daemon_t net_conf_t
@ -358,7 +355,7 @@
(unix_stream_socket (listen))) (unix_stream_socket (listen)))
(allow guix_daemon_t (allow guix_daemon_t
guix_daemon_conf_t guix_daemon_conf_t
(sock_file (create unlink))) (sock_file (create unlink write)))
(allow guix_daemon_t (allow guix_daemon_t
self self
(unix_stream_socket (create (unix_stream_socket (create

View file

@ -9,7 +9,7 @@
;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;; Copyright © 2021 Leo Famulari <leo@famulari.name> ;; Copyright © 2021 Leo Famulari <leo@famulari.name>
;; Copyright © 2021 Zhu Zihao <all_but_last@163.com> ;; Copyright © 2021 Zhu Zihao <all_but_last@163.com>
;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
@ -25,6 +25,139 @@
(channel-news (channel-news
(version 0) (version 0)
(entry (commit "094a2cfbe45c104d0da30ff9d975d052ca0c118c")
(title
(en "New @command{guix home container} command")
(de "Neuer Befehl @command{guix home container}")
(fr "Nouvelle commande @command{guix home container}"))
(body
(en "The new @command{guix home} tool, which lets you to manage
entire \"home environments\" in a declarative fashion, has gained a
@command{container} sub-command. The new @command{guix home container}
command allows you to test your configuration in an isolated @dfn{container},
without touching your home directory:
@example
guix home container config.scm
@end example
This provides a simple and safe way to test your configuration before
deploying it with @command{guix home reconfigure}. Run @code{info \"(guix)
Invoking guix home\"} for more information.")
(de "Das neue Werkzeug @command{guix home}, womit Sie vollständige
Persönliche Umgebungen deklarativ verwalten können, hat einen neuen
Unterbefehl @command{container} hinzubekommen. Mit dem neuen Befehl
@command{guix home container} können Sie Ihre Konfiguration in einem isolierten
@dfn{Container} ausprobieren, ohne Ihr Persönliches Verzeichnis anzutasten.
@example
guix home container config.scm
@end example
So ist es ein Leichtes, Ihre Konfiguration in einer sicheren Umgebung zu testen,
bevor Sie mit @command{guix home reconfigure} auf sie umsteigen. Führen Sie
@code{info \"(guix.de) Aufruf von guix home\"} aus, um mehr zu erfahren.")
(fr "La nouvelle commande @command{guix home}, qui sert à gérer son
« environnement d'accueil » de manière déclarative, dispose maintenant d'une
sous-commande @command{container}. La nouvelle commande @command{guix home
container} permet de tester sa configuration dans un @dfn{conteneur} isolé,
sans toucher à son répertoire d'accueil :
@example
guix home container config.scm
@end example
C'est un moyen simple et sûr de tester sa configuration avant de la déployer
avec @command{guix home reconfigure}. Lancer @code{info \"(guix.fr) Invoquer
guix home\"} pour plus d'informations.")))
(entry (commit "f1d18adbed39a3bacae93be29346fd4c86b480ef")
(title
(en "More compact @samp{guix pull --news}")
(de "@samp{guix pull --news} wird knapper")
(nl "Meer beknopte @samp{guix pull --news}"))
(body
(en "The output of @samp{guix pull --news} has been shortened to
display only fresh news items such as this one. It no longer includes the
partial selection of new and updated packages, which was often long enough to
be distracting whilst being too short to be useful.
The complete list of new and updated packages can now be obtained separately
using @samp{guix pull --news --details}.")
(de "Die Ausgabe von @samp{guix pull --news} wurde gekürzt
und informiert nur mehr über ungezeigte Neuigkeiten wie diese. Es
fehlt der unvollständige Bericht über neue und aktualisierte Pakete,
der oft so lang war, dass er gestört hat, doch zu kurz war, um
nützlich zu sein.
Die vollständige Liste neuer und aktualisierter Pakete bekommen Sie
jetzt mit @samp{guix pull --news --details}.")
(nl "De uitvoer van @samp{guix pull --news} is vanaf nu beperkt tot
verse nieuwsberichten zoals dit, zonder de onvolledige bloemlezing van nieuwe
en bijgewerkte pakketten. Die was vaak lang genoeg om de lezer af te leiden
maar te kort om nuttig te zijn.
De volledige list van nieuwe en bijgewerkte pakketten is nu afzonderlijk
beschikbaar met @samp{guix pull --news --details}.")))
(entry (commit "96d7535b030c65b2d8cb0bea52c4bd96cbdefaf0")
(title
(en "ci.guix.gnu.org to stop offering Gzip substitutes")
(de "ci.guix.gnu.org wird keine Substitute mit Gzip mehr anbieten"))
(body
(en "This is a notice to let you know that starting next
month (2022/03/01), Gzip-compressed substitutes will no longer be available,
which means that Guix daemons from a revision older than commit
@samp{3092f1b835d79655eecb2f8a79dda20ad9ba6bd6} (2019/06/02) will loose the
ability to download binary substitutes. Starting next month, only lzip and
zstd substitutes will be offered. Dropping Gzip substitutes will free about
6.5 TiB of storage space from the build farm.")
(de "Hiermit weisen wir Sie darauf hin, dass ab nächstem
Monat (2022/03/01) keine Gzip-komprimierten Substitute mehr zur Verfügung
stehen. Dadurch können Guix-Daemons, deren Version älter ist als Commit
@samp{3092f1b835d79655eecb2f8a79dda20ad9ba6bd6} (2019/06/02), keine binären
Substitute mehr beziehen. Ab kommendem Monat werden nur Substitute mit lzip
und zstd angeboten. Indem wir auf Gzip-Substitute verzichten, sparen wir 6.5
TiB Speicherplatz auf der Erstellungsfarm.")))
(entry (commit "5c13484646069064c834bbd3cd02c3bc80d94cb6")
(title
(en "New @option{--execute} option to @command{guix deploy}")
(de "Neue Option @option{--execute} für @command{guix deploy}")
(fr "Nouvelle option @option{--execute} pour @command{guix deploy}"))
(body
(en "The @command{guix deploy} command has a new @option{--execute}
or @option{-x} option, which allows you to execute a command on all the
machines that your configuration file specifies, as in this example:
@example
guix deploy deploy.scm -x -- herd restart guix-daemon
@end example
This is no substitute for full-featured tools such as pdsh but it is a useful
helper.")
(de "Der Befehl @command{guix deploy} verfügt über eine neue Option
@option{--execute} oder @option{-x}, mit der Sie einen Befehl auf allen in der
Konfigurationsdatei angegebenen Maschinen ausführen können. Zum Beispiel:
@example
guix deploy deploy.scm -x -- herd restart guix-daemon
@end example
Dies ist kein Ersatz für vollumfängliche Werkzeuge wie pdsh, aber es kann doch
von Nutzen sein.")
(fr "La commande @command{guix deploy} a une nouvelle option
@option{--execute} ou @option{-x} qui permet d'exécuter une commande sur
toutes les machines spécifiées dans son fichier de configuration, comme dans
cet exemple :
@example
guix deploy deploy.scm -x -- herd restart guix-daemon
@end example
Ça ne remplace pas les outils sophistiqués comme pdsh mais c'est bien
pratique.")))
(entry (commit "c4fe13c294cc1e31dd8a49ce3981f603fb169e0a") (entry (commit "c4fe13c294cc1e31dd8a49ce3981f603fb169e0a")
(title (title
(en "@command{guix style} can format package definitions") (en "@command{guix style} can format package definitions")
@ -229,14 +362,14 @@ d'informations.")))
(entry (commit "52cb5cf5b852117b5151a67af187d80764849ad3") (entry (commit "52cb5cf5b852117b5151a67af187d80764849ad3")
(title (title
(en "Icedove 91: profile folder moved to @file{~/.thunderbird}") (en "Icedove 91: profile folder moved to @file{~/.thunderbird}")
(de "Icedove 91: Profilordner jetzt unter @file{~/.thunderbird}")) (de "Icedove 91: Profilordner jetzt unter @file{~/.thunderbird}"))
(body (body
(en "Icedove 91 expects your profile folder under @file{~/.thunderbird}. (en "Icedove 91 expects your profile folder under @file{~/.thunderbird}.
You need to manually copy your Icedove profiles from @file{~/.icedove} to You need to manually copy your Icedove profiles from @file{~/.icedove} to
@file{~./thunderbird}. It may be required to start Icedove with @file{~./thunderbird}. It may be required to start Icedove with
@option{--ProfileManager} for the first time after the migration.") @option{--ProfileManager} for the first time after the migration.")
(de "Icedove 91 erwartet Ihren Profilordner unter @file{~/.thunderbird}. (de "Icedove 91 erwartet Ihren Profilordner unter @file{~/.thunderbird}.
Dafür müssen sie Ihre Icedove-Profile von @file{~/.icedove} nach Dafür müssen sie Ihre Icedove-Profile von @file{~/.icedove} nach
@file{~/.thunderbird} kopieren. Eventuell muss Icedove das erste Mal nach der @file{~/.thunderbird} kopieren. Eventuell muss Icedove das erste Mal nach der
Migration mit @option{--ProfileManager} gestartet werden."))) Migration mit @option{--ProfileManager} gestartet werden.")))
@ -831,7 +964,7 @@ Nous conseillons de mettre à jour @command{guix-daemon}. Lancer @command{info
\"(guix.fr) Mettre à niveau Guix\"} pour voir comment faire. Voir \"(guix.fr) Mettre à niveau Guix\"} pour voir comment faire. Voir
@uref{https://issues.guix.gnu.org/47229} pour plus d'informations sur cette @uref{https://issues.guix.gnu.org/47229} pour plus d'informations sur cette
faille.") faille.")
(nl "In @command{guix-daemon} werd een beveiligingsprobleem (nl "In @command{guix-daemon} werd een beveiligingsprobleem
gevonden dat kan leiden tot de escalatie van lokale bevoegdheden. Het gevonden dat kan leiden tot de escalatie van lokale bevoegdheden. Het
probleem doet zich voor bij installaties met meerdere gebruikers waarop een probleem doet zich voor bij installaties met meerdere gebruikers waarop een
lokale @command{guix-daemon} draait. lokale @command{guix-daemon} draait.
@ -921,7 +1054,7 @@ guix import go golang.org/x/sys
@end example @end example
Lancez @command{info \"(guix.fr) Invoquer guix import\"} pour en savoir plus.") Lancez @command{info \"(guix.fr) Invoquer guix import\"} pour en savoir plus.")
(nl "Met de nieuwe @command{guix import go}-opdracht kunnen (nl "Met de nieuwe @command{guix import go}-opdracht kunnen
pakketschrijvers een pakketdefinitie of -sjabloon aanmaken, op basis van de pakketschrijvers een pakketdefinitie of -sjabloon aanmaken, op basis van de
naam van een Go-pakket te vinden op @url{https://proxy.golang.org}: naam van een Go-pakket te vinden op @url{https://proxy.golang.org}:
@ -934,28 +1067,28 @@ informatie.")))
(entry (commit "1b5b882120daf7d111aa351a919a90e818324347") (entry (commit "1b5b882120daf7d111aa351a919a90e818324347")
(title (title
(en "The @code{linux-libre} kernel is updated to 5.11.2") (en "The @code{linux-libre} kernel is updated to 5.11.2")
(de "Der Kernel @code{linux-libre} wird auf 5.11.2 aktualisiert") (de "Der Kernel @code{linux-libre} wird auf 5.11.2 aktualisiert")
(fr "Le noyau @code{linux-libre} est mis à jour vers la 5.11.2") (fr "Le noyau @code{linux-libre} est mis à jour vers la 5.11.2")
(nl "De @code{linux-libre}-kernel werd bijgewertk naar 5.11.2")) (nl "De @code{linux-libre}-kernel werd bijgewertk naar 5.11.2"))
(body (body
(en "The default @code{linux-libre} kernel is now based on the 5.11 (en "The default @code{linux-libre} kernel is now based on the 5.11
stable kernel series, beginning with version 5.11.2. Promiment features include stable kernel series, beginning with version 5.11.2. Promiment features include
improved Wine performance, unprivileged Overlayfs mounts, support for Intel SGX, improved Wine performance, unprivileged Overlayfs mounts, support for Intel SGX,
support for new graphics hardware, and improved performance of the Btrfs support for new graphics hardware, and improved performance of the Btrfs
file system.") file system.")
(de "Der standardmäßig verwendete @code{linux-libre}-Kernel basiert (de "Der standardmäßig verwendete @code{linux-libre}-Kernel basiert
jetzt auf der 5.11-stable-Versionsreihe, angefangen mit Version 5.11.2. Zu jetzt auf der 5.11-stable-Versionsreihe, angefangen mit Version 5.11.2. Zu
den markanten Neuerungen gehören bessere Wine-Unterstützung, Einbinden per den markanten Neuerungen gehören bessere Wine-Unterstützung, Einbinden per
Overlayfs für Nutzer ohne erweiterte Rechte, Unterstützung für Intel SGX, für Overlayfs für Nutzer ohne erweiterte Rechte, Unterstützung für Intel SGX, für
neue Grafikhardware und bessere Leistung beim Btrfs-Dateisystem.") neue Grafikhardware und bessere Leistung beim Btrfs-Dateisystem.")
(fr "Le noyau @code{linux-libre} par défaut est maintenant basé sur la (fr "Le noyau @code{linux-libre} par défaut est maintenant basé sur la
lignée stable 5.11 du noyau, à commencer par la version 5.11.2. Parmi les lignée stable 5.11 du noyau, à commencer par la version 5.11.2. Parmi les
fonctionnalités notables on trouve des performances améliorées pour Wine, le fonctionnalités notables on trouve des performances améliorées pour Wine, le
montage Overlayfs non privilégié, la prise en charge d'Intel SGX, celle des montage Overlayfs non privilégié, la prise en charge d'Intel SGX, celle des
nouveaux périphériques graphiques et de meilleures performances du système de nouveaux périphériques graphiques et de meilleures performances du système de
fichiers Btrfs.") fichiers Btrfs.")
(nl "De standaard @code{linux-libre}-kernel is nu geëent op de (nl "De standaard @code{linux-libre}-kernel is nu geëent op de
stabiele 5.11-reeks, te beginnen met versie 5.11.2. Deze update biedt onder stabiele 5.11-reeks, te beginnen met versie 5.11.2. Deze update biedt onder
andere verbeterde prestaties voor Wine en het Btfrs-bestandssysteem, laat andere verbeterde prestaties voor Wine en het Btfrs-bestandssysteem, laat
gewone gebruikers toe om met Overlayfs bestandssystemen te combineren, en gewone gebruikers toe om met Overlayfs bestandssystemen te combineren, en

View file

@ -389,8 +389,8 @@ improvement."
"/run/current-system") "/run/current-system")
(define (boot-time-system) (define (boot-time-system)
"Return the '--system' argument passed on the kernel command line." "Return the 'gnu.system' argument passed on the kernel command line."
(find-long-option "--system" (if (string-contains %host-type "linux-gnu") (find-long-option "gnu.system" (if (string-contains %host-type "linux-gnu")
(linux-command-line) (linux-command-line)
(command-line)))) (command-line))))

View file

@ -254,7 +254,7 @@ set."
"This procedure is meant to be called from an early RC script. "This procedure is meant to be called from an early RC script.
Install the relevant passive translators on the first boot. Then, run system Install the relevant passive translators on the first boot. Then, run system
activation by using the kernel command-line options '--system' and '--load'; activation by using the kernel command-line options 'gnu.system' and 'gnu.load';
starting the Shepherd. starting the Shepherd.
XXX TODO: see linux-boot.scm:boot-system. XXX TODO: see linux-boot.scm:boot-system.
@ -265,14 +265,14 @@ XXX TODO: use Linux xattr/setxattr to remove (settrans in) /libexec/RUNSYSTEM
" "
(display "Welcome, this is GNU's early boot Guile.\n") (display "Welcome, this is GNU's early boot Guile.\n")
(display "Use '--repl' for an initrd REPL.\n\n") (display "Use 'gnu.repl' for an initrd REPL.\n\n")
(call-with-error-handling (call-with-error-handling
(lambda () (lambda ()
(let* ((args (command-line)) (let* ((args (command-line))
(system (find-long-option "--system" args)) (system (find-long-option "gnu.system" args))
(to-load (find-long-option "--load" args))) (to-load (find-long-option "gnu.load" args)))
(format #t "Setting-up essential translators...\n") (format #t "Setting-up essential translators...\n")
(setenv "PATH" (string-append system "/profile/bin")) (setenv "PATH" (string-append system "/profile/bin"))
@ -286,7 +286,7 @@ XXX TODO: use Linux xattr/setxattr to remove (settrans in) /libexec/RUNSYSTEM
(unless (zero? (system* "/hurd/mach-defpager")) (unless (zero? (system* "/hurd/mach-defpager"))
(format #t "FAILED...Good luck!\n")) (format #t "FAILED...Good luck!\n"))
(cond ((member "--repl" args) (cond ((member "gnu.repl" args)
(format #t "Starting repl...\n") (format #t "Starting repl...\n")
(start-repl)) (start-repl))
(to-load (to-load
@ -298,7 +298,7 @@ XXX TODO: use Linux xattr/setxattr to remove (settrans in) /libexec/RUNSYSTEM
(sleep 2) (sleep 2)
(reboot)) (reboot))
(else (else
(display "no boot file passed via '--load'\n") (display "no boot file passed via 'gnu.load'\n")
(display "entering a warm and cozy REPL\n") (display "entering a warm and cozy REPL\n")
(start-repl))))) (start-repl)))))
#:on-error on-error)) #:on-error on-error))

View file

@ -3,7 +3,7 @@
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -62,8 +62,10 @@
(define (estimate-partition-size root) (define (estimate-partition-size root)
"Given the ROOT directory, evaluate and return its size. As this doesn't "Given the ROOT directory, evaluate and return its size. As this doesn't
take the partition metadata size into account, take a 25% margin." take the partition metadata size into account, take a 25% margin. As this in
(* 1.25 (file-size root))) turn doesn't take any constant overhead into account, force a 1-MiB minimum."
(max (ash 1 20)
(* 1.25 (file-size root))))
(define* (make-ext-image partition target root (define* (make-ext-image partition target root
#:key #:key

View file

@ -3,6 +3,7 @@
;;; Copyright © 2016, 2017, 20192021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 20192021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -93,7 +94,7 @@
get-string-all))) get-string-all)))
(define (find-long-option option arguments) (define (find-long-option option arguments)
"Find OPTION among ARGUMENTS, where OPTION is something like \"--load\". "Find OPTION among ARGUMENTS, where OPTION is something like \"gnu.load\".
Return the value associated with OPTION, or #f on failure." Return the value associated with OPTION, or #f on failure."
(let ((opt (string-append option "="))) (let ((opt (string-append option "=")))
(and=> (find (cut string-prefix? opt <>) (and=> (find (cut string-prefix? opt <>)
@ -499,10 +500,12 @@ LINUX-MODULE-DIRECTORY, then installing KEYMAP-FILE with 'loadkeys' (if
KEYMAP-FILE is true), then setting up QEMU guest networking if KEYMAP-FILE is true), then setting up QEMU guest networking if
QEMU-GUEST-NETWORKING? is true, calling PRE-MOUNT, mounting the file systems QEMU-GUEST-NETWORKING? is true, calling PRE-MOUNT, mounting the file systems
specified in MOUNTS, and finally booting into the new root if any. The initrd specified in MOUNTS, and finally booting into the new root if any. The initrd
supports kernel command-line options '--load', '--root', and '--repl'. supports the kernel command-line options 'gnu.load' and 'gnu.repl'. It also
honors a subset of the Linux kernel command-line parameters such as
'fsck.mode', 'resume', 'rootdelay', rootflags and rootfstype.
Mount the root file system, specified by the '--root' command-line argument, Mount the root file system, specified by the 'root' command-line argument, if
if any. any.
MOUNTS must be a list of <file-system> objects. MOUNTS must be a list of <file-system> objects.
@ -515,33 +518,50 @@ upon error."
(string=? (file-system-mount-point fs) "/")) (string=? (file-system-mount-point fs) "/"))
(define (device-string->file-system-device device-string) (define (device-string->file-system-device device-string)
;; The "--root=SPEC" kernel command-line option always provides a ;; The "root=SPEC" kernel command-line option always provides a string,
;; string, but the string can represent a device, an nfs-root, a UUID, or a ;; but the string can represent a device, an nfs-root, a UUID, or a label.
;; label. So check for all four. ;; So check for all four.
(cond ((string-prefix? "/" device-string) device-string) (cond ((string-prefix? "/" device-string) device-string)
((string-contains device-string ":/") device-string) ; nfs-root ((string-contains device-string ":/") device-string) ; nfs-root
((uuid device-string) => identity) ((uuid device-string) => identity)
(else (file-system-label device-string)))) (else (file-system-label device-string))))
(display "Welcome, this is GNU's early boot Guile.\n") (display "Welcome, this is GNU's early boot Guile.\n")
(display "Use '--repl' for an initrd REPL.\n\n") (display "Use 'gnu.repl' for an initrd REPL.\n\n")
(call-with-error-handling (call-with-error-handling
(lambda () (lambda ()
(mount-essential-file-systems) (mount-essential-file-systems)
(let* ((args (linux-command-line)) (let* ((args (linux-command-line))
(to-load (find-long-option "--load" args)) (to-load (find-long-option "gnu.load" args))
;; If present, --root on the kernel command line takes precedence ;; If present, root on the kernel command line takes precedence
;; over the device field of the root <file-system> record. ;; over the device field of the root <file-system> record.
(root-device (and=> (find-long-option "--root" args) (root-device (and=> (find-long-option "root" args)
device-string->file-system-device)) device-string->file-system-device))
(root-fs (or (find root-mount-point? mounts) (rootfstype (find-long-option "rootfstype" args))
;; Fall back to fictitious defaults. (rootflags (find-long-option "rootflags" args))
(file-system (device (or root-device "/dev/root")) (root-fs* (find root-mount-point? mounts))
(mount-point "/")
(type "ext4"))))
(fsck.mode (find-long-option "fsck.mode" args))) (fsck.mode (find-long-option "fsck.mode" args)))
(unless (or root-fs* (and root-device rootfstype))
(error "no root file system or 'root' and 'rootfstype' parameters"))
;; If present, root on the kernel command line takes precedence over
;; the device field of the root <file-system> record; likewise for
;; the 'rootfstype' and 'rootflags' arguments.
(define root-fs
(if root-fs*
(file-system
(inherit root-fs*)
(device (or root-device (file-system-device root-fs*)))
(type (or rootfstype (file-system-type root-fs*)))
(options (or rootflags (file-system-options root-fs*))))
(file-system
(device root-device)
(mount-point "/")
(type rootfstype)
(options rootflags))))
(define (check? fs) (define (check? fs)
(match fsck.mode (match fsck.mode
("skip" #f) ("skip" #f)
@ -562,7 +582,7 @@ upon error."
(_ 'preen)) (_ 'preen))
(file-system-repair fs)))) (file-system-repair fs))))
(when (member "--repl" args) (when (member "gnu.repl" args)
(start-repl)) (start-repl))
(display "loading kernel modules...\n") (display "loading kernel modules...\n")
@ -596,9 +616,8 @@ upon error."
(let ((root-delay (and=> (find-long-option "rootdelay" args) (let ((root-delay (and=> (find-long-option "rootdelay" args)
string->number))) string->number)))
(when root-delay (when root-delay
(format #t (format #t "Pausing for rootdelay=~a seconds before mounting \
"Pausing for rootdelay=~a seconds before mounting the root file system...\n" the root file system...\n" root-delay)
root-delay)
(sleep root-delay))) (sleep root-delay)))
;; Prepare the real root file system under /root. ;; Prepare the real root file system under /root.
@ -614,18 +633,18 @@ upon error."
(setenv "EXT2FS_NO_MTAB_OK" "1") (setenv "EXT2FS_NO_MTAB_OK" "1")
(if root-device ;; Mount the root file system.
(mount-root-file-system (canonicalize-device-spec root-device) (mount-root-file-system (canonicalize-device-spec
(file-system-type root-fs) (file-system-device root-fs))
#:volatile-root? volatile-root? (file-system-type root-fs)
#:flags (mount-flags->bit-mask #:volatile-root? volatile-root?
(file-system-flags root-fs)) #:flags (mount-flags->bit-mask
#:options (file-system-options root-fs) (file-system-flags root-fs))
#:check? (check? root-fs) #:options (file-system-options root-fs)
#:skip-check-if-clean? #:check? (check? root-fs)
(skip-check-if-clean? root-fs) #:skip-check-if-clean?
#:repair (repair root-fs)) (skip-check-if-clean? root-fs)
(mount "none" "/root" "tmpfs")) #:repair (repair root-fs))
;; Mount the specified non-root file systems. ;; Mount the specified non-root file systems.
(for-each (lambda (fs) (for-each (lambda (fs)
@ -651,7 +670,7 @@ upon error."
(sleep 2) (sleep 2)
(reboot)) (reboot))
(begin (begin
(display "no boot file passed via '--load'\n") (display "no boot file passed via 'gnu.load'\n")
(display "entering a warm and cozy REPL\n") (display "entering a warm and cozy REPL\n")
(start-repl))))) (start-repl)))))
#:on-error on-error)) #:on-error on-error))

View file

@ -30,6 +30,7 @@
#:use-module (guix discovery) #:use-module (guix discovery)
#:use-module (guix diagnostics) #:use-module (guix diagnostics)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (guix modules)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -37,12 +38,17 @@
home-profile-service-type home-profile-service-type
home-environment-variables-service-type home-environment-variables-service-type
home-files-service-type home-files-service-type
home-xdg-configuration-files-service-type
home-run-on-first-login-service-type home-run-on-first-login-service-type
home-activation-service-type home-activation-service-type
home-run-on-change-service-type home-run-on-change-service-type
home-provenance-service-type home-provenance-service-type
home-files-directory
xdg-configuration-files-directory
fold-home-service-types fold-home-service-types
home-provenance
%initialize-gettext) %initialize-gettext)
@ -72,12 +78,11 @@
;;; file (details described in the manual). ;;; file (details described in the manual).
;;; ;;;
;;; home-files-service-type is similar to etc-service-type, but doesn't extend ;;; home-files-service-type is similar to etc-service-type, but doesn't extend
;;; home-activation, because deploy mechanism for config files is pluggable and ;;; home-activation, because deploy mechanism for config files is pluggable
;;; can be different for different home environments: The default one is called ;;; and can be different for different home environments: The default one is
;;; symlink-manager (will be introudced in a separate patch series), which creates ;;; called symlink-manager, which creates links for various dotfiles and xdg
;;; links for various dotfiles (like $XDG_CONFIG_HOME/$APP/...) to store, but is ;;; configuration files to store, but is possible to implement alternative
;;; possible to implement alternative approaches like read-only home from Julien's ;;; approaches like read-only home from Julien's guix-home-manager.
;;; guix-home-manager.
;;; ;;;
;;; home-run-on-first-login-service-type provides an @file{on-first-login} guile ;;; home-run-on-first-login-service-type provides an @file{on-first-login} guile
;;; script, which runs provided gexps once, when user makes first login. It can ;;; script, which runs provided gexps once, when user makes first login. It can
@ -260,11 +265,14 @@ esac
(file-union "files" files)) (file-union "files" files))
;; Used by symlink-manager
(define home-files-directory "files")
(define (files-entry files) (define (files-entry files)
"Return an entry for the @file{~/.guix-home/files} "Return an entry for the @file{~/.guix-home/files}
directory containing FILES." directory containing FILES."
(with-monad %store-monad (with-monad %store-monad
(return `(("files" ,(files->files-directory files)))))) (return `((,home-files-directory ,(files->files-directory files))))))
(define home-files-service-type (define home-files-service-type
(service-type (name 'home-files) (service-type (name 'home-files)
@ -274,20 +282,41 @@ directory containing FILES."
(compose concatenate) (compose concatenate)
(extend append) (extend append)
(default-value '()) (default-value '())
(description "Configuration files for programs that (description "Files that will be put in
will be put in @file{~/.guix-home/files}."))) @file{~~/.guix-home/files}, and further processed during activation.")))
(define xdg-configuration-files-directory "config")
(define (xdg-configuration-files 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)
rest)))
files))
(define home-xdg-configuration-files-service-type
(service-type (name 'home-files)
(extensions
(list (service-extension home-files-service-type
xdg-configuration-files)))
(compose concatenate)
(extend append)
(default-value '())
(description "Files that will be put in
@file{~~/.guix-home/files/config}, and further processed during activation.")))
(define %initialize-gettext (define %initialize-gettext
#~(begin #~(begin
(bindtextdomain %gettext-domain (bindtextdomain %gettext-domain
(string-append #$guix "/share/locale")) (string-append #$guix "/share/locale"))
(textdomain %gettext-domain) (textdomain %gettext-domain)))
(setlocale LC_ALL "")))
(define (compute-on-first-login-script _ gexps) (define (compute-on-first-login-script _ gexps)
(program-file (program-file
"on-first-login" "on-first-login"
#~(begin (with-imported-modules (source-module-closure '((guix i18n)))
#~(begin
(use-modules (guix i18n)) (use-modules (guix i18n))
#$%initialize-gettext #$%initialize-gettext
@ -308,7 +337,7 @@ will be put in @file{~/.guix-home/files}.")))
(display (G_ "XDG_RUNTIME_DIR doesn't exists, on-first-login script (display (G_ "XDG_RUNTIME_DIR doesn't exists, on-first-login script
won't execute anything. You can check if xdg runtime directory exists, won't execute anything. You can check if xdg runtime directory exists,
XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the XDG_RUNTIME_DIR variable is set to appropriate value and manually execute the
script by running '$HOME/.guix-home/on-first-login'"))))))) script by running '$HOME/.guix-home/on-first-login'"))))))))
(define (on-first-login-script-entry on-first-login) (define (on-first-login-script-entry on-first-login)
"Return, as a monadic value, an entry for the on-first-login script "Return, as a monadic value, an entry for the on-first-login script
@ -400,7 +429,8 @@ with one gexp, but many times, and all gexps must be idempotent.")))
;;; ;;;
(define (compute-on-change-gexp eval-gexps? pattern-gexp-tuples) (define (compute-on-change-gexp eval-gexps? pattern-gexp-tuples)
#~(begin (with-imported-modules (source-module-closure '((guix i18n)))
#~(begin
(use-modules (guix i18n)) (use-modules (guix i18n))
#$%initialize-gettext #$%initialize-gettext
@ -485,7 +515,7 @@ with one gexp, but many times, and all gexps must be idempotent.")))
(display (G_ "On-change gexps evaluation finished.\n\n"))) (display (G_ "On-change gexps evaluation finished.\n\n")))
(display "\ (display "\
On-change gexps won't be evaluated; evaluation has been disabled in the On-change gexps won't be evaluated; evaluation has been disabled in the
service configuration")))) service configuration")))))
(define home-run-on-change-service-type (define home-run-on-change-service-type
(service-type (name 'home-run-on-change) (service-type (name 'home-run-on-change)

View file

@ -0,0 +1,174 @@
;;; 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 desktop)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:use-module (gnu services configuration)
#:autoload (gnu packages xdisorg) (redshift)
#:use-module (guix records)
#:use-module (guix gexp)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:export (home-redshift-configuration
home-redshift-configuration?
home-redshift-service-type))
;;;
;;; Redshift.
;;;
(define (serialize-integer field value)
(string-append (match field
('daytime-temperature "temp-day")
('nighttime-temperature "temp-night")
('daytime-brightness "brightness-day")
('nighttime-brightness "brightness-night")
('latitude "lat")
('longitude "lon")
(_ (symbol->string field)))
"=" (number->string value) "\n"))
(define (serialize-symbol field value)
(string-append (symbol->string field)
"=" (symbol->string value) "\n"))
(define (serialize-string field value)
(string-append (symbol->string field)
"=" value "\n"))
(define serialize-inexact-number serialize-integer)
(define (inexact-number? n)
(and (number? n) (inexact? n)))
(define-maybe inexact-number)
(define-maybe string)
(define (serialize-raw-configuration-string field value)
value)
(define raw-configuration-string? string?)
(define-configuration home-redshift-configuration
(redshift
(file-like redshift)
"Redshift package to use.")
(location-provider
(symbol 'geoclue2)
"Geolocation provider---@code{'manual} or @code{'geoclue2}.
In the former case, you must also specify the @code{latitude} and
@code{longitude} fields so Redshift can determine daytime at your place. In
the latter case, the Geoclue system service must be running; it will be
queried for location information.")
(adjustment-method
(symbol 'randr)
"Color adjustment method.")
;; Default values from redshift(1).
(daytime-temperature
(integer 6500)
"Daytime color temperature (kelvins).")
(nighttime-temperature
(integer 4500)
"Nighttime color temperature (kelvins).")
(daytime-brightness
(maybe-inexact-number 'disabled)
"Daytime screen brightness, between 0.1 and 1.0.")
(nighttime-brightness
(maybe-inexact-number 'disabled)
"Nighttime screen brightness, between 0.1 and 1.0.")
(latitude
(maybe-inexact-number 'disabled)
"Latitude, when @code{location-provider} is @code{'manual}.")
(longitude
(maybe-inexact-number 'disabled)
"Longitude, when @code{location-provider} is @code{'manual}.")
(dawn-time
(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 'disabled)
"Likewise, custom time for the transition from day to night in the
evening.")
(extra-content
(raw-configuration-string "")
"Extra content appended as-is to the Redshift configuration file. Run
@command{man redshift} for more information about the configuration file
format."))
(define (serialize-redshift-configuration config)
(define location-fields
'(latitude longitude))
(define (location-field? field)
(memq (configuration-field-name field) location-fields))
(define (secondary-field? field)
(or (location-field? field)
(memq (configuration-field-name field)
'(redshift extra-content))))
#~(string-append
"[redshift]\n"
#$(serialize-configuration config
(remove secondary-field?
home-redshift-configuration-fields))
#$(home-redshift-configuration-extra-content config)
"\n[manual]\n"
#$(serialize-configuration config
(filter location-field?
home-redshift-configuration-fields))))
(define (redshift-shepherd-service config)
(define config-file
(computed-file "redshift.conf"
#~(call-with-output-file #$output
(lambda (port)
(display #$(serialize-redshift-configuration config)
port)))))
(list (shepherd-service
(documentation "Redshift program.")
(provision '(redshift))
;; FIXME: This fails to start if Home is first activated from a
;; non-X11 session.
(start #~(make-forkexec-constructor
(list #$(file-append redshift "/bin/redshift")
"-c" #$config-file)))
(stop #~(make-kill-destructor)))))
(define home-redshift-service-type
(service-type
(name 'home-redshift)
(extensions (list (service-extension home-shepherd-service-type
redshift-shepherd-service)))
(default-value (home-redshift-configuration))
(description
"Run Redshift, a program that adjusts the color temperature of display
according to time of day.")))

View file

@ -34,7 +34,7 @@
;;; Code: ;;; Code:
(define (add-fontconfig-config-file he-symlink-path) (define (add-fontconfig-config-file he-symlink-path)
`(("config/fontconfig/fonts.conf" `(("fontconfig/fonts.conf"
,(mixed-text-file ,(mixed-text-file
"fonts.conf" "fonts.conf"
"<?xml version='1.0'?> "<?xml version='1.0'?>
@ -51,7 +51,7 @@
(service-type (name 'home-fontconfig) (service-type (name 'home-fontconfig)
(extensions (extensions
(list (service-extension (list (service-extension
home-files-service-type home-xdg-configuration-files-service-type
add-fontconfig-config-file) add-fontconfig-config-file)
(service-extension (service-extension
home-run-on-change-service-type home-run-on-change-service-type

View file

@ -171,56 +171,27 @@ Used for executing user's commands at the exit of login shell. It
won't be read in some cases (if the shell terminates by exec'ing won't be read in some cases (if the shell terminates by exec'ing
another process for example).")) another process for example)."))
(define (add-zsh-configuration config) (define (zsh-filter-fields field)
(let* ((xdg-flavor? (home-zsh-configuration-xdg-flavor? config))) (filter-configuration-fields home-zsh-configuration-fields (list field)))
(define prefix-file (define (zsh-serialize-field config field)
(cut string-append (serialize-configuration config (zsh-filter-fields field)))
(if xdg-flavor?
"config/zsh/."
"") <>))
(define (filter-fields field) (define* (zsh-field-not-empty? config field)
(filter-configuration-fields home-zsh-configuration-fields (let ((file-name (symbol->string field))
(list field))) (field-obj (car (zsh-filter-fields field))))
(not (null? ((configuration-field-getter field-obj) config)))))
(define (serialize-field field) (define (zsh-file-zshenv config)
(serialize-configuration (mixed-text-file
config "zshenv"
(filter-fields field))) (zsh-serialize-field config 'zshenv)
(zsh-serialize-field config 'environment-variables)))
(define (file-if-not-empty field) (define (zsh-file-zprofile config)
(let ((file-name (symbol->string field)) (mixed-text-file
(field-obj (car (filter-fields field)))) "zprofile"
(if (not (null? ((configuration-field-getter field-obj) config))) "\
`(,(prefix-file file-name)
,(mixed-text-file
file-name
(serialize-field field)))
'())))
(filter
(compose not null?)
`(,(if xdg-flavor?
`("zshenv"
,(mixed-text-file
"auxiliary-zshenv"
(if xdg-flavor?
"source ${XDG_CONFIG_HOME:-$HOME/.config}/zsh/.zshenv\n"
"")))
'())
(,(prefix-file "zshenv")
,(mixed-text-file
"zshenv"
(if xdg-flavor?
"export ZDOTDIR=${XDG_CONFIG_HOME:-$HOME/.config}/zsh\n"
"")
(serialize-field 'zshenv)
(serialize-field 'environment-variables)))
(,(prefix-file "zprofile")
,(mixed-text-file
"zprofile"
"\
# Setups system and user profiles and related variables # Setups system and user profiles and related variables
source /etc/profile source /etc/profile
# Setups home environment profile # Setups home environment profile
@ -229,11 +200,47 @@ source ~/.profile
# It's only necessary if zsh is a login shell, otherwise profiles will # It's only necessary if zsh is a login shell, otherwise profiles will
# be already sourced by bash # be already sourced by bash
" "
(serialize-field 'zprofile))) (zsh-serialize-field config 'zprofile)))
,@(list (file-if-not-empty 'zshrc) (define (zsh-file-by-field config field)
(file-if-not-empty 'zlogin) (match field
(file-if-not-empty 'zlogout)))))) ('zshenv (zsh-file-zshenv config))
('zprofile (zsh-file-zprofile config))
(e (mixed-text-file
(symbol->string field)
(zsh-serialize-field config field)))))
(define (zsh-get-configuration-files config)
`(("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))) '())
,@(if (zsh-field-not-empty? config 'zlogin)
`(("zlogin" ,(zsh-file-by-field config 'zlogin))) '())
,@(if (zsh-field-not-empty? config 'zlogout)
`(("zlogout" ,(zsh-file-by-field config 'zlogout))) '())))
(define (zsh-home-files config)
(define zshenv-auxiliary-file
(mixed-text-file
"zshenv-auxiliary"
"export ZDOTDIR=${XDG_CONFIG_HOME:-$HOME/.config}/zsh\n"
"[[ -f $ZDOTDIR/.zshenv ]] && source $ZDOTDIR/.zshenv\n"))
(if (home-zsh-configuration-xdg-flavor? config)
`(("zshenv" ,zshenv-auxiliary-file))
(zsh-get-configuration-files config)))
(define (zsh-xdg-configuration-files config)
(if (home-zsh-configuration-xdg-flavor? config)
(map
(lambda (lst)
(cons (string-append "zsh/." (car lst))
(cdr lst)))
(zsh-get-configuration-files config))
'()))
(define (add-zsh-packages config) (define (add-zsh-packages config)
(list (home-zsh-configuration-package config))) (list (home-zsh-configuration-package config)))
@ -291,7 +298,10 @@ source ~/.profile
(extensions (extensions
(list (service-extension (list (service-extension
home-files-service-type home-files-service-type
add-zsh-configuration) zsh-home-files)
(service-extension
home-xdg-configuration-files-service-type
zsh-xdg-configuration-files)
(service-extension (service-extension
home-profile-service-type home-profile-service-type
add-zsh-packages))) add-zsh-packages)))
@ -324,7 +334,7 @@ source ~/.profile
(guix-defaults? (guix-defaults?
(boolean #t) (boolean #t)
"Add sane defaults like reading @file{/etc/bashrc} and coloring the output of "Add sane defaults like reading @file{/etc/bashrc} and coloring the output of
@command{ls} to the end of the @file{.bashrc} file.") @command{ls} to the top of the @file{.bashrc} file.")
(environment-variables (environment-variables
(alist '()) (alist '())
"Association list of environment variables to set for the Bash session. The "Association list of environment variables to set for the Bash session. The
@ -448,7 +458,7 @@ if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
'bashrc 'bashrc
(if (home-bash-configuration-guix-defaults? config) (if (home-bash-configuration-guix-defaults? config)
(list (serialize-field 'aliases) guix-bashrc) (list (serialize-field 'aliases) guix-bashrc)
(list (serialize-field 'alises)))) (list (serialize-field 'aliases))))
(file-if-not-empty 'bash-logout))))) (file-if-not-empty 'bash-logout)))))
(define (add-bash-packages config) (define (add-bash-packages config)

View file

@ -24,12 +24,27 @@
#:use-module (guix sets) #:use-module (guix sets)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix records) #:use-module (guix records)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:export (home-shepherd-service-type #:export (home-shepherd-service-type
home-shepherd-configuration)
home-shepherd-configuration
home-shepherd-configuration?
home-shepherd-configuration-shepherd
home-shepherd-configuration-auto-start?
home-shepherd-configuration-services)
#:re-export (shepherd-service #:re-export (shepherd-service
shepherd-service?
shepherd-service-documentation
shepherd-service-provision
shepherd-service-canonical-name
shepherd-service-requirement
shepherd-service-one-shot?
shepherd-service-respawn?
shepherd-service-start
shepherd-service-stop
shepherd-service-auto-start?
shepherd-service-modules
shepherd-action)) shepherd-action))
(define-record-type* <home-shepherd-configuration> (define-record-type* <home-shepherd-configuration>

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,219 +21,199 @@
(define-module (gnu home services symlink-manager) (define-module (gnu home services symlink-manager)
#:use-module (gnu home services) #:use-module (gnu home services)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix modules)
#:export (home-symlink-manager-service-type)) #:export (home-symlink-manager-service-type))
;;; Comment: ;;; Comment:
;;; ;;;
;;; symlink-manager cares about configuration files: it backs up files ;;; symlink-manager cares about xdg configurations and other files: it backs
;;; created by user, removes symlinks and directories created by a ;;; up files created by user, removes symlinks and directories created by a
;;; previous generation, and creates new directories and symlinks to ;;; previous generation, and creates new directories and symlinks to files
;;; configuration files according to the content of files/ directory ;;; according to the content of directories (created by home-files-service) of
;;; (created by home-files-service) of the current home environment ;;; the current home environment generation.
;;; generation.
;;; ;;;
;;; Code: ;;; Code:
(define (update-symlinks-script) (define (update-symlinks-script)
(program-file (program-file
"update-symlinks" "update-symlinks"
#~(begin (with-imported-modules (source-module-closure
(use-modules (ice-9 ftw) '((guix build utils)
(ice-9 curried-definitions) (guix i18n)))
(ice-9 match) #~(begin
(srfi srfi-1) (use-modules (ice-9 ftw)
(guix i18n)) (ice-9 match)
#$%initialize-gettext (srfi srfi-1)
(define ((simplify-file-tree parent) file) (guix i18n)
"Convert the result produced by `file-system-tree' to less (guix build utils))
verbose and more suitable for further processing format.
Extract dir/file info from stat and compose a relative path to the (define home-directory
root of the file tree. (getenv "HOME"))
Sample output: (define xdg-config-home
(or (getenv "XDG_CONFIG_HOME")
(string-append (getenv "HOME") "/.config")))
((dir . \".\") (define backup-directory
((dir . \"config\") (string-append home-directory "/" (number->string (current-time))
((dir . \"config/fontconfig\") "-guix-home-legacy-configs-backup"))
(file . \"config/fontconfig/fonts.conf\"))
((dir . \"config/isync\")
(file . \"config/isync/mbsyncrc\"))))
"
(match file
((name stat) `(file . ,(string-append parent name)))
((name stat children ...)
(cons `(dir . ,(string-append parent name))
(map (simplify-file-tree
(if (equal? name ".")
""
(string-append parent name "/")))
children)))))
(define ((file-tree-traverse preordering) node) (define (preprocess-file file)
"Traverses the file tree in different orders, depending on PREORDERING. "If file is in XDG-CONFIGURATION-FILES-DIRECTORY use
subdirectory from XDG_CONFIG_HOME to generate a target path."
(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)))
if PREORDERING is @code{#t} resulting list will contain directories (define (target-file file)
before files located in those directories, otherwise directory will ;; Return the target of FILE, a config file name sans leading dot
appear only after all nested items already listed." ;; such as "config/fontconfig/fonts.conf" or "bashrc".
(let ((prepend (lambda (a b) (append b a)))) (string-append home-directory "/" (preprocess-file file)))
(match node
(('file . path) (list node))
((('dir . path) . rest)
((if preordering append prepend)
(list (cons 'dir path))
(append-map (file-tree-traverse preordering) rest))))))
(use-modules (guix build utils)) (define (symlink-to-store? file)
(catch 'system-error
(lambda ()
(store-file-name? (readlink file)))
(lambda args
(if (= EINVAL (system-error-errno args))
#f
(apply throw args)))))
(let* ((config-home (or (getenv "XDG_CONFIG_HOME") (define (backup-file file)
(string-append (getenv "HOME") "/.config"))) (define backup
(string-append backup-directory "/" (preprocess-file file)))
(he-path (string-append (getenv "HOME") "/.guix-home")) (mkdir-p backup-directory)
(new-he-path (string-append he-path ".new")) (format #t (G_ "Backing up ~a...") (target-file file))
(new-home (getenv "GUIX_NEW_HOME")) (mkdir-p (dirname backup))
(old-home (getenv "GUIX_OLD_HOME")) (rename-file (target-file file) backup)
(display (G_ " done\n")))
(new-files-path (string-append new-home "/files")) (define (cleanup-symlinks home-generation)
;; Trailing dot is required, because files itself is symlink and ;; Delete from $HOME files that originate in HOME-GENERATION, the
;; to make file-system-tree works it should be a directory. ;; store item containing a home generation.
(new-files-dir-path (string-append new-files-path "/.")) (define config-file-directory
;; Note: Trailing slash is needed because "files" is a symlink.
(string-append home-generation "/" #$home-files-directory "/"))
(home-path (getenv "HOME")) (define (strip file)
(backup-dir (string-append home-path "/" (string-drop file
(number->string (current-time)) (+ 1 (string-length config-file-directory))))
"-guix-home-legacy-configs-backup"))
(old-tree (if old-home (format #t (G_ "Cleaning up symlinks from previous home at ~a.~%")
((simplify-file-tree "") home-generation)
(file-system-tree (newline)
(string-append old-home "/files/.")))
#f))
(new-tree ((simplify-file-tree "")
(file-system-tree new-files-dir-path)))
(get-source-path (file-system-fold
(lambda (path) (const #t)
(readlink (string-append new-files-path "/" path)))) (lambda (file stat _) ;leaf
(let ((file (target-file (strip 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.
(if (symlink-to-store? file)
(begin
(format #t (G_ "Removing ~a...") file)
(delete-file file)
(display (G_ " done\n")))
(format
#t
(G_ "Skipping ~a (not a symlink to store)... done\n")
file)))))
(get-target-path (const #t) ;down
(lambda (path) (lambda (directory stat _) ;up
(string-append home-path "/." path))) (unless (string=? directory config-file-directory)
(let ((directory (target-file (strip directory))))
(catch 'system-error
(lambda ()
(rmdir directory)
(format #t (G_ "Removed ~a.\n") directory))
(lambda args
(let ((errno (system-error-errno args)))
(cond
((= ENOTEMPTY errno)
(format
#t
(G_ "Skipping ~a (not an empty directory)... done\n")
directory))
((= ENOTDIR errno) #t)
(else
(apply throw args)))))))))
(const #t) ;skip
(const #t) ;error
#t ;init
config-file-directory
lstat)
(get-backup-path (display (G_ "Cleanup finished.\n\n")))
(lambda (path)
(string-append backup-dir "/." path)))
(directory? (define (create-symlinks home-generation)
(lambda (path) ;; Create in $HOME symlinks for the files in HOME-GENERATION.
(equal? (stat:type (stat path)) 'directory))) (define config-file-directory
;; Note: Trailing slash is needed because "files" is a symlink.
(string-append home-generation "/" #$home-files-directory "/"))
(empty-directory? (define (strip file)
(lambda (dir) (string-drop file
(equal? (scandir dir) '("." "..")))) (+ 1 (string-length config-file-directory))))
(symlink-to-store? (define (source-file file)
(lambda (path) (readlink (string-append config-file-directory file)))
(and
(equal? (stat:type (lstat path)) 'symlink)
(store-file-name? (readlink path)))))
(backup-file (file-system-fold
(lambda (path) (const #t) ;enter?
(mkdir-p backup-dir) (lambda (file stat result) ;leaf
(format #t (G_ "Backing up ~a...") (get-target-path path)) (let ((source (source-file (strip file)))
(mkdir-p (dirname (get-backup-path path))) (target (target-file (strip file))))
(rename-file (get-target-path path) (get-backup-path path)) (when (file-exists? target)
(display (G_ " done\n")))) (backup-file (strip file)))
(format #t (G_ "Symlinking ~a -> ~a...")
target source)
(symlink source target)
(display (G_ " done\n"))))
(lambda (directory stat result) ;down
(unless (string=? directory config-file-directory)
(let ((target (target-file (strip directory))))
(when (and (file-exists? target)
(not (file-is-directory? target)))
(backup-file (strip directory)))
(cleanup-symlinks (catch 'system-error
(lambda () (lambda ()
(let ((to-delete ((file-tree-traverse #f) old-tree))) (mkdir target))
(display (lambda args
(G_ (let ((errno (system-error-errno args)))
"Cleaning up symlinks from previous home-environment.\n\n")) (unless (= EEXIST errno)
(map (format #t (G_ "failed to create directory ~a: ~s~%")
(match-lambda target (strerror errno))
(('dir . ".") (apply throw args))))))))
(display (G_ "Cleanup finished.\n\n"))) (const #t) ;up
(const #t) ;skip
(const #t) ;error
#t ;init
config-file-directory))
(('dir . path) #$%initialize-gettext
(if (and
(file-exists? (get-target-path path))
(directory? (get-target-path path))
(empty-directory? (get-target-path path)))
(begin
(format #t (G_ "Removing ~a...")
(get-target-path path))
(rmdir (get-target-path path))
(display (G_ " done\n")))
(format
#t
(G_ "Skipping ~a (not an empty directory)... done\n")
(get-target-path path))))
(('file . path) (let* ((home (string-append home-directory "/.guix-home"))
(when (file-exists? (get-target-path path)) (pivot (string-append home ".new"))
;; DO NOT remove the file if it is no longer (new-home (getenv "GUIX_NEW_HOME"))
;; a symlink to the store, it will be backed (old-home (getenv "GUIX_OLD_HOME")))
;; up later during create-symlinks phase. (when old-home
(if (symlink-to-store? (get-target-path path)) (cleanup-symlinks old-home))
(begin
(format #t (G_ "Removing ~a...") (get-target-path path))
(delete-file (get-target-path path))
(display (G_ " done\n")))
(format
#t
(G_ "Skipping ~a (not a symlink to store)... done\n")
(get-target-path path))))))
to-delete))))
(create-symlinks (create-symlinks new-home)
(lambda ()
(let ((to-create ((file-tree-traverse #t) new-tree)))
(map
(match-lambda
(('dir . ".")
(display
(G_ "New symlinks to home-environment will be created soon.\n"))
(format
#t (G_ "All conflicting files will go to ~a.\n\n") backup-dir))
(('dir . path) (symlink new-home pivot)
(let ((target-path (get-target-path path))) (rename-file pivot home)
(when (and (file-exists? target-path)
(not (directory? target-path)))
(backup-file path))
(if (file-exists? target-path)
(format
#t (G_ "Skipping ~a (directory already exists)... done\n")
target-path)
(begin
(format #t (G_ "Creating ~a...") target-path)
(mkdir target-path)
(display (G_ " done\n"))))))
(('file . path)
(when (file-exists? (get-target-path path))
(backup-file path))
(format #t (G_ "Symlinking ~a -> ~a...")
(get-target-path path) (get-source-path path))
(symlink (get-source-path path) (get-target-path path))
(display (G_ " done\n"))))
to-create)))))
(when old-tree
(cleanup-symlinks))
(create-symlinks)
(symlink new-home new-he-path)
(rename-file new-he-path he-path)
(display (G_" done\nFinished updating symlinks.\n\n"))))))
(display (G_" done\nFinished updating symlinks.\n\n")))))))
(define (update-symlinks-gexp _) (define (update-symlinks-gexp _)
#~(primitive-load #$(update-symlinks-script))) #~(primitive-load #$(update-symlinks-script)))

View file

@ -190,11 +190,11 @@ pre-populated content.")
"Default directory for videos.")) "Default directory for videos."))
(define (home-xdg-user-directories-files-service config) (define (home-xdg-user-directories-files-service config)
`(("config/user-dirs.conf" `(("user-dirs.conf"
,(mixed-text-file ,(mixed-text-file
"user-dirs.conf" "user-dirs.conf"
"enabled=False\n")) "enabled=False\n"))
("config/user-dirs.dirs" ("user-dirs.dirs"
,(mixed-text-file ,(mixed-text-file
"user-dirs.dirs" "user-dirs.dirs"
(serialize-configuration (serialize-configuration
@ -218,7 +218,7 @@ pre-populated content.")
(service-type (name 'home-xdg-user-directories) (service-type (name 'home-xdg-user-directories)
(extensions (extensions
(list (service-extension (list (service-extension
home-files-service-type home-xdg-configuration-files-service-type
home-xdg-user-directories-files-service) home-xdg-user-directories-files-service)
(service-extension (service-extension
home-activation-service-type home-activation-service-type
@ -374,7 +374,7 @@ configuration."
"=" val "\n"))) "=" val "\n")))
(define (serialize-alist config) (define (serialize-alist config)
(generic-serialize-alist identity format-config config)) (generic-serialize-alist append format-config config))
(define (serialize-xdg-desktop-action action) (define (serialize-xdg-desktop-action action)
(match action (match action
@ -417,7 +417,7 @@ that the application cannot open the specified MIME type.")
"A list of XDG desktop entries to create. See "A list of XDG desktop entries to create. See
@code{xdg-desktop-entry}.")) @code{xdg-desktop-entry}."))
(define (home-xdg-mime-applications-files-service config) (define (home-xdg-mime-applications-files config)
(define (add-xdg-desktop-entry-file entry) (define (add-xdg-desktop-entry-file entry)
(let ((file (first entry)) (let ((file (first entry))
(config (second entry))) (config (second entry)))
@ -425,16 +425,16 @@ that the application cannot open the specified MIME type.")
(apply mixed-text-file (apply mixed-text-file
(format #f "xdg-desktop-~a-entry" file) (format #f "xdg-desktop-~a-entry" file)
config)))) config))))
(map (compose add-xdg-desktop-entry-file serialize-xdg-desktop-entry)
(home-xdg-mime-applications-configuration-desktop-entries config)))
(append (define (home-xdg-mime-applications-xdg-files config)
`(("config/mimeapps.list" `(("mimeapps.list"
,(mixed-text-file ,(mixed-text-file
"xdg-mime-appplications" "xdg-mime-appplications"
(serialize-configuration (serialize-configuration
config config
home-xdg-mime-applications-configuration-fields)))) home-xdg-mime-applications-configuration-fields)))))
(map (compose add-xdg-desktop-entry-file serialize-xdg-desktop-entry)
(home-xdg-mime-applications-configuration-desktop-entries config))))
(define (home-xdg-mime-applications-extension old-config extension-configs) (define (home-xdg-mime-applications-extension old-config extension-configs)
(define (extract-fields config) (define (extract-fields config)
@ -469,7 +469,10 @@ that the application cannot open the specified MIME type.")
(extensions (extensions
(list (service-extension (list (service-extension
home-files-service-type home-files-service-type
home-xdg-mime-applications-files-service))) home-xdg-mime-applications-files)
(service-extension
home-xdg-configuration-files-service-type
home-xdg-mime-applications-xdg-files)))
(compose identity) (compose identity)
(extend home-xdg-mime-applications-extension) (extend home-xdg-mime-applications-extension)
(default-value (home-xdg-mime-applications-configuration)) (default-value (home-xdg-mime-applications-configuration))

View file

@ -33,6 +33,7 @@
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages connman) #:use-module (gnu packages connman)
#:use-module (gnu packages cryptsetup) #:use-module (gnu packages cryptsetup)
#:use-module (gnu packages disk) #:use-module (gnu packages disk)
@ -42,6 +43,7 @@
#:autoload (gnu packages gnupg) (guile-gcrypt) #:autoload (gnu packages gnupg) (guile-gcrypt)
#:use-module (gnu packages iso-codes) #:use-module (gnu packages iso-codes)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages nano)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages package-management) #:use-module (gnu packages package-management)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
@ -333,9 +335,11 @@ selected keymap."
ntfs-3g ;mkfs.ntfs ntfs-3g ;mkfs.ntfs
xfsprogs ;mkfs.xfs xfsprogs ;mkfs.xfs
kbd ;chvt kbd ;chvt
guix ;guix system init call
util-linux ;mkwap util-linux ;mkwap
nano
shadow shadow
tar ;dump
gzip ;dump
coreutils))) coreutils)))
(with-output-to-port (%make-void-port "w") (with-output-to-port (%make-void-port "w")
(lambda () (lambda ()
@ -352,7 +356,8 @@ selected keymap."
;; packages …), etc. modules. ;; packages …), etc. modules.
(with-extensions (list guile-gcrypt guile-newt (with-extensions (list guile-gcrypt guile-newt
guile-parted guile-bytestructures guile-parted guile-bytestructures
guile-json-3 guile-git guix gnutls) guile-json-3 guile-git guile-webutils
guix gnutls)
(with-imported-modules `(,@(source-module-closure (with-imported-modules `(,@(source-module-closure
`(,@modules `(,@modules
(gnu services herd) (gnu services herd)
@ -363,6 +368,7 @@ selected keymap."
(use-modules (gnu installer record) (use-modules (gnu installer record)
(gnu installer keymap) (gnu installer keymap)
(gnu installer steps) (gnu installer steps)
(gnu installer dump)
(gnu installer final) (gnu installer final)
(gnu installer hostname) (gnu installer hostname)
(gnu installer locale) (gnu installer locale)
@ -379,7 +385,8 @@ selected keymap."
(guix build utils) (guix build utils)
((system repl debug) ((system repl debug)
#:select (terminal-width)) #:select (terminal-width))
(ice-9 match)) (ice-9 match)
(ice-9 textual-ports))
;; Initialize gettext support so that installers can use ;; Initialize gettext support so that installers can use
;; (guix i18n) module. ;; (guix i18n) module.
@ -407,43 +414,56 @@ selected keymap."
;; verbose. ;; verbose.
(terminal-width 200) (terminal-width 200)
(let* ((current-installer newt-installer) (define current-installer newt-installer)
(steps (#$steps current-installer))) (define steps (#$steps current-installer))
((installer-init current-installer))
(catch #t (dynamic-wind
(lambda () (installer-init current-installer)
(define results (lambda ()
(run-installer-steps (parameterize
#:rewind-strategy 'menu ((run-command-in-installer
#:menu-proc (installer-menu-page current-installer) (installer-run-command current-installer)))
#:steps steps)) (catch #t
(lambda ()
(define results
(run-installer-steps
#:rewind-strategy 'menu
#:menu-proc (installer-menu-page current-installer)
#:steps steps))
(match (result-step results 'final) (match (result-step results 'final)
('success ('success
;; We did it! Let's reboot! ;; We did it! Let's reboot!
(sync) (sync)
(stop-service 'root)) (stop-service 'root))
(_ (_
;; The installation failed, exit so that it is restarted ;; The installation failed, exit so that it is
;; by login. ;; restarted by login.
#f))) #f)))
(const #f) (const #f)
(lambda (key . args) (lambda (key . args)
(syslog "crashing due to uncaught exception: ~s ~s~%" (installer-log-line "crashing due to uncaught exception: ~s ~s"
key args) key args)
(let ((error-file "/tmp/last-installer-error")) (define dump-dir
(call-with-output-file error-file (prepare-dump key args #:result %current-result))
(lambda (port) (define action
(display-backtrace (make-stack #t) port) ((installer-exit-error current-installer)
(print-exception port (get-string-all
(stack-ref (make-stack #t) 1) (open-input-file
key args))) (string-append dump-dir "/installer-backtrace")))))
((installer-exit-error current-installer) (match action
error-file key args)) ('dump
(primitive-exit 1))) (let* ((dump-files
((installer-dump-page current-installer)
dump-dir))
(dump-archive
(make-dump dump-dir dump-files)))
((installer-report-page current-installer)
dump-archive)))
(_ #f))
(exit 1)))))
((installer-exit current-installer))))))) (installer-exit current-installer))))))
(program-file (program-file
"installer" "installer"

View file

@ -287,7 +287,7 @@ list so that each keys of a given technology are gathered in a separate list."
(define (connman-online?) (define (connman-online?)
(let ((state (connman-state))) (let ((state (connman-state)))
(eq? state 'online))) (memq state '(ready online))))
(define (connman-connect-with-auth service password-proc) (define (connman-connect-with-auth service password-proc)
"Connect to the given SERVICE with the password returned by calling "Connect to the given SERVICE with the password returned by calling

118
gnu/installer/dump.scm Normal file
View file

@ -0,0 +1,118 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Mathieu Othacehe <othacehe@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 installer dump)
#:use-module (gnu installer utils)
#:use-module (guix build utils)
#:use-module (srfi srfi-11)
#:use-module (ice-9 iconv)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 textual-ports)
#:use-module (web client)
#:use-module (web http)
#:use-module (web response)
#:use-module (webutils multipart)
#:export (prepare-dump
make-dump
send-dump-report))
;; The installer crash dump type.
(define %dump-type "installer-dump")
(define (result->list result)
"Return the alist for the given RESULT."
(hash-map->list (lambda (k v)
(cons k v))
result))
(define* (prepare-dump key args #:key result)
"Create a crash dump directory. KEY and ARGS represent the thrown error.
RESULT is the installer result hash table. Returns the created directory path."
(define now (localtime (current-time)))
(define dump-dir
(format #f "/tmp/dump.~a"
(strftime "%F.%H.%M.%S" now)))
(mkdir-p dump-dir)
(with-directory-excursion dump-dir
;; backtrace
(call-with-output-file "installer-backtrace"
(lambda (port)
(display-backtrace (make-stack #t) port)
(print-exception port
(stack-ref (make-stack #t) 1)
key args)))
;; installer result
(call-with-output-file "installer-result"
(lambda (port)
(write (result->list result) port)))
;; syslog
(copy-file "/var/log/messages" "syslog")
;; dmesg
(let ((pipe (open-pipe* OPEN_READ "dmesg")))
(call-with-output-file "dmesg"
(lambda (port)
(dump-port pipe port)
(close-pipe pipe)))))
dump-dir)
(define* (make-dump dump-dir file-choices)
"Create a crash dump archive from DUMP-DIR containing FILE-CHOICES.
Returns the archive path."
(define output (string-append (basename dump-dir) ".tar.gz"))
(with-directory-excursion (dirname dump-dir)
(apply system* "tar" "-zcf" output
(map (lambda (f)
(string-append (basename dump-dir) "/" f))
file-choices)))
(canonicalize-path (string-append (dirname dump-dir) "/" output)))
(define* (send-dump-report dump
#:key
(url "https://dump.guix.gnu.org"))
"Turn the DUMP archive into a multipart body and send it to the Guix crash
dump server at URL."
(define (match-boundary kont)
(match-lambda
(('boundary . (? string? b))
(kont b))
(x #f)))
(define (response->string response)
(bytevector->string
(read-response-body response)
"UTF-8"))
(let-values (((body boundary)
(call-with-input-file dump
(lambda (port)
(format-multipart-body
`((,%dump-type . ,port)))))))
(false-if-exception
(response->string
(http-post
(string-append url "/upload")
#:keep-alive? #t
#:streaming? #t
#:headers `((content-type
. (multipart/form-data
(boundary . ,boundary))))
#:body body)))))

View file

@ -85,8 +85,9 @@ USERS."
(uid (if root? 0 #f)) (uid (if root? 0 #f))
(home-directory (home-directory
(user-home-directory user)) (user-home-directory user))
(password (crypt (user-password user) (password (crypt
(salt))) (secret-content (user-password user))
(salt)))
;; We need a string here, not a file-like, hence ;; We need a string here, not a file-like, hence
;; this choice. ;; this choice.
@ -125,15 +126,15 @@ it can interact with the rest of the system."
(setlocale LC_ALL locale)))) (setlocale LC_ALL locale))))
(if supported? (if supported?
(begin (begin
(syslog "install supported locale ~a~%." locale) (installer-log-line "install supported locale ~a." locale)
(setenv "LC_ALL" locale)) (setenv "LC_ALL" locale))
(begin (begin
;; If the selected locale is not supported, install a default UTF-8 ;; If the selected locale is not supported, install a default UTF-8
;; locale. This is required to copy some files with UTF-8 ;; locale. This is required to copy some files with UTF-8
;; characters, in the nss-certs package notably. Set LANGUAGE ;; characters, in the nss-certs package notably. Set LANGUAGE
;; anyways, to have translated messages if possible. ;; anyways, to have translated messages if possible.
(syslog "~a locale is not supported, installating en_US.utf8 \ (installer-log-line "~a locale is not supported, installing \
locale instead.~%" locale) en_US.utf8 locale instead." locale)
(setlocale LC_ALL "en_US.utf8") (setlocale LC_ALL "en_US.utf8")
(setenv "LC_ALL" "en_US.utf8") (setenv "LC_ALL" "en_US.utf8")
(setenv "LANGUAGE" (setenv "LANGUAGE"
@ -208,17 +209,9 @@ or #f. Return #t on success and #f on failure."
(setvbuf (current-output-port) 'none) (setvbuf (current-output-port) 'none)
(setvbuf (current-error-port) 'none) (setvbuf (current-error-port) 'none)
;; If there are any connected clients, assume that we are running (setenv "PATH" "/run/current-system/profile/bin/")
;; installation tests. In that case, dump the standard and error
;; outputs to syslog. (set! ret (run-command install-command)))
(set! ret
(if (not (null? (current-clients)))
(with-output-to-file "/dev/console"
(lambda ()
(with-error-to-file "/dev/console"
(lambda ()
(run-command install-command)))))
(run-command install-command))))
(lambda () (lambda ()
;; Restart guix-daemon so that it does no keep the MNT namespace ;; Restart guix-daemon so that it does no keep the MNT namespace
;; alive. ;; alive.

View file

@ -19,6 +19,7 @@
(define-module (gnu installer newt) (define-module (gnu installer newt)
#:use-module (gnu installer record) #:use-module (gnu installer record)
#:use-module (gnu installer utils) #:use-module (gnu installer utils)
#:use-module (gnu installer dump)
#:use-module (gnu installer newt ethernet) #:use-module (gnu installer newt ethernet)
#:use-module (gnu installer newt final) #:use-module (gnu installer newt final)
#:use-module (gnu installer newt parameters) #:use-module (gnu installer newt parameters)
@ -39,7 +40,12 @@
#:use-module (guix config) #:use-module (guix config)
#:use-module (guix discovery) #:use-module (guix discovery)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 ftw)
#:use-module (ice-9 match)
#:use-module (newt) #:use-module (newt)
#:export (newt-installer)) #:export (newt-installer))
@ -47,7 +53,7 @@
(newt-init) (newt-init)
(clear-screen) (clear-screen)
(set-screen-size!) (set-screen-size!)
(syslog "Display is ~ax~a.~%" (screen-columns) (screen-rows)) (installer-log-line "Display is ~ax~a." (screen-columns) (screen-rows))
(push-help-line (push-help-line
(format #f (G_ "Press <F1> for installation parameters.")))) (format #f (G_ "Press <F1> for installation parameters."))))
@ -55,25 +61,102 @@
(newt-finish) (newt-finish)
(clear-screen)) (clear-screen))
(define (exit-error file key args) (define (exit-error error)
(newt-set-color COLORSET-ROOT "white" "red") (newt-set-color COLORSET-ROOT "white" "red")
(let ((width (nearest-exact-integer (define action
(* (screen-columns) 0.8))) (run-textbox-page
(height (nearest-exact-integer #:info-text (G_ "The installer has encountered an unexpected problem. \
(* (screen-rows) 0.7)))) The backtrace is displayed below. You may choose to exit or create a dump \
(run-file-textbox-page archive.")
#:info-text (format #f (G_ "The installer has encountered an unexpected \
problem. The backtrace is displayed below. Please report it by email to \
<~a>.") %guix-bug-report-address)
#:title (G_ "Unexpected problem") #:title (G_ "Unexpected problem")
#:file file #:content error
#:exit-button? #f #:buttons-spec
#:info-textbox-width width (list
#:file-textbox-width width (cons (G_ "Dump") (const 'dump))
#:file-textbox-height height)) (cons (G_ "Exit") (const 'exit)))))
(newt-set-color COLORSET-ROOT "white" "blue") (newt-set-color COLORSET-ROOT "white" "blue")
(newt-finish) action)
(clear-screen))
(define (report-page dump-archive)
(define text
(format #f (G_ "The dump archive was created as ~a. Would you like to \
send this archive to the Guix servers?") dump-archive))
(define title (G_ "Dump archive created"))
(when (run-confirmation-page text title)
(let* ((uploaded-name (send-dump-report dump-archive))
(text (if uploaded-name
(format #f (G_ "The dump was uploaded as ~a. Please \
report it by email to ~a.") uploaded-name %guix-bug-report-address)
(G_ "The dump could not be uploaded."))))
(run-error-page
text
(G_ "Dump upload result")))))
(define (dump-page dump-dir)
(define files
(scandir dump-dir (lambda (x)
(not (or (string=? x ".")
(string=? x ".."))))))
(fold (match-lambda*
(((file . enable?) acc)
(if enable?
(cons file acc)
acc)))
'()
(run-dump-page
dump-dir
(map (lambda (x)
(cons x #f))
files))))
(define (newt-run-command . args)
(define command-output "")
(define (line-accumulator line)
(set! command-output
(string-append/shared command-output line "\n")))
(define displayed-command
(string-join
(map (lambda (s) (string-append "\"" s "\"")) args)
" "))
(define result (run-external-command-with-line-hooks (list line-accumulator)
args))
(define exit-val (status:exit-val result))
(define term-sig (status:term-sig result))
(define stop-sig (status:stop-sig result))
(if (and exit-val (zero? exit-val))
#t
(let ((info-text
(cond
(exit-val
(format #f (G_ "External command ~s exited with code ~a")
args exit-val))
(term-sig
(format #f (G_ "External command ~s terminated by signal ~a")
args term-sig))
(stop-sig
(format #f (G_ "External command ~s stopped by signal ~a")
args stop-sig)))))
(run-textbox-page #:title (G_ "External command error")
#:info-text info-text
#:content command-output
#:buttons-spec
(list
(cons "Ignore" (const #t))
(cons "Abort"
(lambda ()
(abort-to-prompt 'installer-step 'abort)))
(cons "Report"
(lambda ()
(raise
(condition
((@@ (guix build utils)
&invoke-error)
(program (car args))
(arguments (cdr args))
(exit-status exit-val)
(term-signal term-sig)
(stop-signal stop-sig)))))))))))
(define (final-page result prev-steps) (define (final-page result prev-steps)
(run-final-page result prev-steps)) (run-final-page result prev-steps))
@ -142,4 +225,7 @@ problem. The backtrace is displayed below. Please report it by email to \
(services-page services-page) (services-page services-page)
(welcome-page welcome-page) (welcome-page welcome-page)
(parameters-menu parameters-menu) (parameters-menu parameters-menu)
(parameters-page parameters-page))) (parameters-page parameters-page)
(dump-page dump-page)
(run-command newt-run-command)
(report-page report-page)))

View file

@ -65,9 +65,7 @@ connection is pending."
(run-error-page (run-error-page
(G_ "No ethernet service available, please try again.") (G_ "No ethernet service available, please try again.")
(G_ "No service")) (G_ "No service"))
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
((service) ((service)
;; Only one service is available so return it directly. ;; Only one service is available so return it directly.
service) service)
@ -81,7 +79,5 @@ connection is pending."
#:button-text (G_ "Exit") #:button-text (G_ "Exit")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
#:listbox-callback-procedure connect-ethernet-service)))) #:listbox-callback-procedure connect-ethernet-service))))

View file

@ -59,9 +59,7 @@ This will take a few minutes.")
#:file-textbox-height height #:file-textbox-height height
#:exit-button-callback-procedure #:exit-button-callback-procedure
(lambda () (lambda ()
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-install-success-page) (define (run-install-success-page)
(match (current-clients) (match (current-clients)
@ -88,9 +86,7 @@ press the button to reboot.")))
(G_ "Restart the installer") (G_ "Restart the installer")
(G_ "The final system installation step failed. You can resume from \ (G_ "The final system installation step failed. You can resume from \
a specific step, or restart the installer.")) a specific step, or restart the installer."))
(1 (raise (1 (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
(2 (2
;; Keep going, the installer will be restarted later on. ;; Keep going, the installer will be restarted later on.
#t))) #t)))
@ -109,7 +105,7 @@ a specific step, or restart the installer."))
(define (run-final-page result prev-steps) (define (run-final-page result prev-steps)
(define (wait-for-clients) (define (wait-for-clients)
(unless (null? (current-clients)) (unless (null? (current-clients))
(syslog "waiting with clients before starting final step~%") (installer-log-line "waiting with clients before starting final step")
(send-to-clients '(starting-final-step)) (send-to-clients '(starting-final-step))
(match (select (current-clients) '() '()) (match (select (current-clients) '() '())
(((port _ ...) _ _) (((port _ ...) _ _)
@ -119,7 +115,7 @@ a specific step, or restart the installer."))
;; things such as changing the swap partition label. ;; things such as changing the swap partition label.
(wait-for-clients) (wait-for-clients)
(syslog "proceeding with final step~%") (installer-log-line "proceeding with final step")
(let* ((configuration (format-configuration prev-steps result)) (let* ((configuration (format-configuration prev-steps result))
(user-partitions (result-step result 'partition)) (user-partitions (result-step result 'partition))
(locale (result-step result 'locale)) (locale (result-step result 'locale))

View file

@ -59,9 +59,7 @@ different layout at any time from the parameters menu.")))
((param) (const #f)) ((param) (const #f))
(else (else
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))))
(condition
(&installer-step-abort)))))))))
(define (run-variant-page variants variant->text) (define (run-variant-page variants variant->text)
(let ((title (G_ "Variant"))) (let ((title (G_ "Variant")))
@ -74,9 +72,7 @@ different layout at any time from the parameters menu.")))
#:button-text (G_ "Back") #:button-text (G_ "Back")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (sort-layouts layouts) (define (sort-layouts layouts)
"Sort LAYOUTS list by putting the US layout ahead and return it." "Sort LAYOUTS list by putting the US layout ahead and return it."

View file

@ -43,9 +43,7 @@ installation process and for the installed system.")
#:button-text (G_ "Exit") #:button-text (G_ "Exit")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort))))
(condition
(&installer-step-abort))))))
;; Immediately install the chosen language so that the territory page that ;; Immediately install the chosen language so that the territory page that
;; comes after (optionally) is displayed in the chosen language. ;; comes after (optionally) is displayed in the chosen language.
@ -63,9 +61,7 @@ installation process and for the installed system.")
#:button-text (G_ "Back") #:button-text (G_ "Back")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-codeset-page codesets) (define (run-codeset-page codesets)
(let ((title (G_ "Locale codeset"))) (let ((title (G_ "Locale codeset")))
@ -78,9 +74,7 @@ installation process and for the installed system.")
#:button-text (G_ "Back") #:button-text (G_ "Back")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-modifier-page modifiers modifier->text) (define (run-modifier-page modifiers modifier->text)
(let ((title (G_ "Locale modifier"))) (let ((title (G_ "Locale modifier")))
@ -94,9 +88,7 @@ symbol.")
#:button-text (G_ "Back") #:button-text (G_ "Back")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define* (run-locale-page #:key (define* (run-locale-page #:key
supported-locales supported-locales
@ -110,11 +102,10 @@ associating a territory code with a territory name. The formatted locale, under
glibc format is returned." glibc format is returned."
(define (break-on-locale-found locales) (define (break-on-locale-found locales)
"Raise the &installer-step-break condition if LOCALES contains exactly one "Break to the installer step if LOCALES contains exactly one
element." element."
(and (= (length locales) 1) (and (= (length locales) 1)
(raise (abort-to-prompt 'installer-step 'break)))
(condition (&installer-step-break)))))
(define (filter-locales locales result) (define (filter-locales locales result)
"Filter the list of locale records LOCALES using the RESULT returned by "Filter the list of locale records LOCALES using the RESULT returned by
@ -218,8 +209,8 @@ glibc locale string and return it."
;; If run-installer-steps returns locally, it means that the user had to go ;; If run-installer-steps returns locally, it means that the user had to go
;; through all steps (language, territory, codeset and modifier) to select a ;; through all steps (language, territory, codeset and modifier) to select a
;; locale. In that case, like if we exited by raising &installer-step-break ;; locale. In that case, like if we exited by breaking to the installer
;; condition, turn the result into a glibc locale string and return it. ;; step, turn the result into a glibc locale string and return it.
(result->locale-string (result->locale-string
supported-locales supported-locales
(run-installer-steps #:steps locale-steps))) (run-installer-steps #:steps locale-steps)))

View file

@ -65,12 +65,8 @@ Internet and return the selected technology. For now, only technologies with
(G_ "Exit") (G_ "Exit")
(G_ "The install process requires Internet access but no \ (G_ "The install process requires Internet access but no \
network devices were found. Do you want to continue anyway?")) network devices were found. Do you want to continue anyway?"))
((1) (raise ((1) (abort-to-prompt 'installer-step 'break))
(condition ((2) (abort-to-prompt 'installer-step 'abort))))
(&installer-step-break))))
((2) (raise
(condition
(&installer-step-abort))))))
((technology) ((technology)
;; Since there's only one technology available, skip the selection ;; Since there's only one technology available, skip the selection
;; screen. ;; screen.
@ -86,9 +82,7 @@ network devices were found. Do you want to continue anyway?"))
#:button-text (G_ "Exit") #:button-text (G_ "Exit")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort))))))
(condition
(&installer-step-abort))))))))
(define (find-technology-by-type technologies type) (define (find-technology-by-type technologies type)
"Find and return a technology with the given TYPE in TECHNOLOGIES list." "Find and return a technology with the given TYPE in TECHNOLOGIES list."
@ -156,9 +150,7 @@ FULL-VALUE tentatives, spaced by 1 second."
(G_ "The selected network does not provide access to the \ (G_ "The selected network does not provide access to the \
Internet and the Guix substitute server, please try again.") Internet and the Guix substitute server, please try again.")
(G_ "Connection error")) (G_ "Connection error"))
(raise (abort-to-prompt 'installer-step 'abort))))
(condition
(&installer-step-abort))))))
(define (run-network-page) (define (run-network-page)
"Run a page to allow the user to configure connman so that it can access the "Run a page to allow the user to configure connman so that it can access the

View file

@ -22,6 +22,7 @@
#:use-module (gnu installer steps) #:use-module (gnu installer steps)
#:use-module (gnu installer utils) #:use-module (gnu installer utils)
#:use-module (gnu installer newt utils) #:use-module (gnu installer newt utils)
#:use-module (guix build utils)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (ice-9 i18n) #:use-module (ice-9 i18n)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -43,6 +44,10 @@
run-scale-page run-scale-page
run-checkbox-tree-page run-checkbox-tree-page
run-file-textbox-page run-file-textbox-page
%ok-button
%exit-button
run-textbox-page
run-dump-page
run-form-with-clients)) run-form-with-clients))
@ -93,9 +98,9 @@ disconnect.
Like 'run-form', return two values: the exit reason, and an \"argument\"." Like 'run-form', return two values: the exit reason, and an \"argument\"."
(define* (discard-client! port #:optional errno) (define* (discard-client! port #:optional errno)
(if errno (if errno
(syslog "removing client ~d due to ~s~%" (installer-log-line "removing client ~d due to ~s"
(fileno port) (strerror errno)) (fileno port) (strerror errno))
(syslog "removing client ~d due to EOF~%" (installer-log-line "removing client ~d due to EOF"
(fileno port))) (fileno port)))
;; XXX: Watch out! There's no 'form-unwatch-fd' procedure in Newt so we ;; XXX: Watch out! There's no 'form-unwatch-fd' procedure in Newt so we
@ -124,7 +129,7 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"."
(send-to-clients exp) (send-to-clients exp)
(let loop () (let loop ()
(syslog "running form ~s (~s) with ~d clients~%" (installer-log-line "running form ~s (~s) with ~d clients"
form title (length (current-clients))) form title (length (current-clients)))
;; Call 'watch-clients!' within the loop because there might be new ;; Call 'watch-clients!' within the loop because there might be new
@ -146,7 +151,7 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"."
(discard-client! port) (discard-client! port)
(loop)) (loop))
(obj (obj
(syslog "form ~s (~s): client ~d replied ~s~%" (installer-log-line "form ~s (~s): client ~d replied ~s"
form title (fileno port) obj) form title (fileno port) obj)
(values 'exit-fd-ready obj)))) (values 'exit-fd-ready obj))))
(lambda args (lambda args
@ -156,8 +161,9 @@ Like 'run-form', return two values: the exit reason, and an \"argument\"."
;; Accept a new client and send it EXP. ;; Accept a new client and send it EXP.
(match (accept port) (match (accept port)
((client . _) ((client . _)
(syslog "accepting new client ~d while on form ~s~%" (installer-log-line
(fileno client) form) "accepting new client ~d while on form ~s"
(fileno client) form)
(catch 'system-error (catch 'system-error
(lambda () (lambda ()
(write exp client) (write exp client)
@ -486,7 +492,7 @@ the current listbox item has to be selected by key."
(string=? str (listbox-item->text item)))) (string=? str (listbox-item->text item))))
keys) keys)
((key . item) item) ((key . item) item)
(#f (raise (condition (&installer-step-abort)))))) (#f (abort-to-prompt 'installer-step 'abort))))
;; On every listbox element change, check if we need to skip it. If yes, ;; On every listbox element change, check if we need to skip it. If yes,
;; depending on the 'last-listbox-key', jump forward or backward. If no, ;; depending on the 'last-listbox-key', jump forward or backward. If no,
@ -688,7 +694,7 @@ ITEMS when 'Ok' is pressed."
(string=? str (item->text item)))) (string=? str (item->text item))))
keys) keys)
((key . item) item) ((key . item) item)
(#f (raise (condition (&installer-step-abort)))))) (#f (abort-to-prompt 'installer-step 'abort))))
(add-form-to-grid grid form #t) (add-form-to-grid grid form #t)
(make-wrapped-grid-window grid title) (make-wrapped-grid-window grid title)
@ -726,8 +732,7 @@ ITEMS when 'Ok' is pressed."
(newt-suspend) (newt-suspend)
;; Use Nano because it syntax-highlights Scheme by default. ;; Use Nano because it syntax-highlights Scheme by default.
;; TODO: Add a menu to choose an editor? ;; TODO: Add a menu to choose an editor?
(run-command (list "/run/current-system/profile/bin/nano" file) (invoke "nano" file)
#:locale locale)
(newt-resume)) (newt-resume))
(define* (run-file-textbox-page #:key (define* (run-file-textbox-page #:key
@ -811,6 +816,151 @@ ITEMS when 'Ok' is pressed."
(destroy-form-and-pop form)))) (destroy-form-and-pop form))))
(if (and (eq? exit-reason 'exit-component) (if (and (eq? exit-reason 'exit-component)
edit-button
(components=? argument edit-button)) (components=? argument edit-button))
(loop) ;recurse in tail position (loop) ;recurse in tail position
result))))) result)))))
(define %ok-button
(cons (G_ "Ok") (lambda () #t)))
(define %exit-button
(cons (G_ "Exit") (lambda () (abort-to-prompt 'installer-step 'abort))))
(define %default-buttons
(list %ok-button %exit-button))
(define (make-newt-buttons buttons-spec)
(map
(match-lambda ((title . proc)
(cons (make-button -1 -1 title) proc)))
buttons-spec))
(define* (run-textbox-page #:key
title
info-text
content
(buttons-spec %default-buttons))
"Run a page to display INFO-TEXT followed by CONTENT to the user, who has to
choose an action among the buttons specified by BUTTONS-SPEC.
BUTTONS-SPEC is an association list with button labels as keys, and callback
procedures as values.
This procedure returns the result of the callback procedure of the button
chosen by the user."
(define info-textbox
(make-reflowed-textbox -1 -1 info-text
50
#:flags FLAG-BORDER))
(define content-textbox
(make-textbox -1 -1
50
30
(logior FLAG-SCROLL FLAG-BORDER)))
(define buttons
(make-newt-buttons buttons-spec))
(define grid
(vertically-stacked-grid
GRID-ELEMENT-COMPONENT info-textbox
GRID-ELEMENT-COMPONENT content-textbox
GRID-ELEMENT-SUBGRID
(apply
horizontal-stacked-grid
(append-map (match-lambda ((button . proc)
(list GRID-ELEMENT-COMPONENT button)))
buttons))))
(define form (make-form #:flags FLAG-NOF12))
(add-form-to-grid grid form #t)
(make-wrapped-grid-window grid title)
(set-textbox-text content-textbox
(receive (_w _h text)
(reflow-text content
50
0 0)
text))
(receive (exit-reason argument)
(run-form-with-clients form
`(contents-dialog (title ,title)
(text ,info-text)
(content ,content)))
(destroy-form-and-pop form)
(match exit-reason
('exit-component
(let ((proc (assq-ref buttons argument)))
(if proc
(proc)
(raise
(condition
(&serious)
(&message
(message (format #f "Unable to find corresponding PROC for \
component ~a." argument))))))))
;; TODO
('exit-fd-ready
(raise (condition (&serious)))))))
(define* (run-dump-page base-dir file-choices)
(define info-textbox
(make-reflowed-textbox -1 -1 "Please select files you wish to include in \
the dump."
50
#:flags FLAG-BORDER))
(define components
(map (match-lambda ((file . enabled)
(list
(make-compact-button -1 -1 "Edit")
(make-checkbox -1 -1 file (if enabled #\x #\ ) " x")
file)))
file-choices))
(define sub-grid (make-grid 2 (length components)))
(for-each
(match-lambda* (((button checkbox _) index)
(set-grid-field sub-grid 0 index
GRID-ELEMENT-COMPONENT checkbox
#:anchor ANCHOR-LEFT)
(set-grid-field sub-grid 1 index
GRID-ELEMENT-COMPONENT button
#:anchor ANCHOR-LEFT)))
components (iota (length components)))
(define grid
(vertically-stacked-grid
GRID-ELEMENT-COMPONENT info-textbox
GRID-ELEMENT-SUBGRID sub-grid
GRID-ELEMENT-COMPONENT (make-button -1 -1 "Create")))
(define form (make-form #:flags FLAG-NOF12))
(add-form-to-grid grid form #t)
(make-wrapped-grid-window grid "Installer dump")
(define prompt-tag (make-prompt-tag))
(let loop ()
(call-with-prompt prompt-tag
(lambda ()
(receive (exit-reason argument)
(run-form-with-clients form
`(dump-page))
(match exit-reason
('exit-component
(let ((result
(map (match-lambda
((edit checkbox filename)
(if (components=? edit argument)
(abort-to-prompt prompt-tag filename)
(cons filename (eq? #\x
(checkbox-value checkbox))))))
components)))
(destroy-form-and-pop form)
result))
;; TODO
('exit-fd-ready
(raise (condition (&serious)))))))
(lambda (k file)
(edit-file (string-append base-dir "/" file))
(loop)))))

View file

@ -36,10 +36,8 @@
#:export (run-partitioning-page)) #:export (run-partitioning-page))
(define (button-exit-action) (define (button-exit-action)
"Raise the &installer-step-abort condition." "Abort the installer step."
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
(define (run-scheme-page) (define (run-scheme-page)
"Run a page asking the user for a partitioning scheme." "Run a page asking the user for a partitioning scheme."
@ -801,9 +799,9 @@ by pressing the Exit button.~%~%")))
;; Make sure the disks are not in use before proceeding to formatting. ;; Make sure the disks are not in use before proceeding to formatting.
(free-parted eligible-devices) (free-parted eligible-devices)
(format-user-partitions user-partitions-with-pass) (format-user-partitions user-partitions-with-pass)
(syslog "formatted ~a user partitions~%" (installer-log-line "formatted ~a user partitions"
(length user-partitions-with-pass)) (length user-partitions-with-pass))
(syslog "user-partitions: ~a~%" user-partitions) (installer-log-line "user-partitions: ~a" user-partitions)
(destroy-form-and-pop form) (destroy-form-and-pop form)
user-partitions)) user-partitions))

View file

@ -46,9 +46,7 @@ to choose from them later when you log in.")
#:checkbox-tree-height 9 #:checkbox-tree-height 9
#:exit-button-callback-procedure #:exit-button-callback-procedure
(lambda () (lambda ()
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-networking-cbt-page) (define (run-networking-cbt-page)
"Run a page allowing the user to select networking services." "Run a page allowing the user to select networking services."
@ -65,9 +63,7 @@ system.")
#:checkbox-tree-height 5 #:checkbox-tree-height 5
#:exit-button-callback-procedure #:exit-button-callback-procedure
(lambda () (lambda ()
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-printing-services-cbt-page) (define (run-printing-services-cbt-page)
"Run a page allowing the user to select document services such as CUPS." "Run a page allowing the user to select document services such as CUPS."
@ -85,9 +81,7 @@ system.")
#:checkbox-tree-height 9 #:checkbox-tree-height 9
#:exit-button-callback-procedure #:exit-button-callback-procedure
(lambda () (lambda ()
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-console-services-cbt-page) (define (run-console-services-cbt-page)
"Run a page to select various system adminstration services for non-graphical "Run a page to select various system adminstration services for non-graphical
@ -130,9 +124,7 @@ client may be enough for a server.")
#:button-text (G_ "Exit") #:button-text (G_ "Exit")
#:button-callback-procedure #:button-callback-procedure
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort)))))
(condition
(&installer-step-abort)))))))
(define (run-services-page) (define (run-services-page)
(let ((desktop (run-desktop-environments-cbt-page))) (let ((desktop (run-desktop-environments-cbt-page)))

View file

@ -65,9 +65,7 @@ returned."
#:button-callback-procedure #:button-callback-procedure
(if (null? path) (if (null? path)
(lambda _ (lambda _
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
(lambda _ (lambda _
(loop (all-but-last path)))) (loop (all-but-last path))))
#:listbox-callback-procedure #:listbox-callback-procedure

View file

@ -20,7 +20,6 @@
(define-module (gnu installer newt user) (define-module (gnu installer newt user)
#:use-module (gnu installer user) #:use-module (gnu installer user)
#:use-module ((gnu installer steps) #:select (&installer-step-abort))
#:use-module (gnu installer newt page) #:use-module (gnu installer newt page)
#:use-module (gnu installer newt utils) #:use-module (gnu installer newt utils)
#:use-module (gnu installer utils) #:use-module (gnu installer utils)
@ -144,7 +143,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
(name name) (name name)
(real-name real-name) (real-name real-name)
(home-directory home-directory) (home-directory home-directory)
(password password)) (password (make-secret password)))
(run-user-add-page #:name name (run-user-add-page #:name name
#:real-name real-name #:real-name real-name
#:home-directory #:home-directory
@ -257,9 +256,7 @@ administrator (\"root\").")
(run users)) (run users))
(reverse users)) (reverse users))
((components=? argument exit-button) ((components=? argument exit-button)
(raise (abort-to-prompt 'installer-step 'abort))))
(condition
(&installer-step-abort))))))
('exit-fd-ready ('exit-fd-ready
;; Read the complete user list at once. ;; Read the complete user list at once.
(match argument (match argument
@ -269,7 +266,7 @@ administrator (\"root\").")
(map (lambda (name real-name home password) (map (lambda (name real-name home password)
(user (name name) (real-name real-name) (user (name name) (real-name real-name)
(home-directory home) (home-directory home)
(password password))) (password (make-secret password))))
names real-names homes passwords)))))) names real-names homes passwords))))))
(lambda () (lambda ()
(destroy-form-and-pop form)))))) (destroy-form-and-pop form))))))
@ -277,5 +274,5 @@ administrator (\"root\").")
;; Add a "root" user simply to convey the root password. ;; Add a "root" user simply to convey the root password.
(cons (user (name "root") (cons (user (name "root")
(home-directory "/root") (home-directory "/root")
(password (run-root-password-page))) (password (make-secret (run-root-password-page))))
(run '()))) (run '())))

View file

@ -84,7 +84,7 @@ we want this page to occupy all the screen space available."
(string=? str (listbox-item->text item)))) (string=? str (listbox-item->text item))))
keys) keys)
((key . item) item) ((key . item) item)
(#f (raise (condition (&installer-step-abort)))))) (#f (abort-to-prompt 'installer-step 'abort))))
(set-textbox-text logo-textbox (read-all logo)) (set-textbox-text logo-textbox (read-all logo))

View file

@ -237,9 +237,7 @@ force a wifi scan."
(run-wifi-scan-page) (run-wifi-scan-page)
(run-wifi-page)) (run-wifi-page))
((components=? argument exit-button) ((components=? argument exit-button)
(raise (abort-to-prompt 'installer-step 'abort))
(condition
(&installer-step-abort))))
((components=? argument listbox) ((components=? argument listbox)
(let ((result (connect-wifi-service listbox service-items))) (let ((result (connect-wifi-service listbox service-items)))
(unless result (unless result

View file

@ -343,13 +343,12 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation."
(define (remove-logical-devices) (define (remove-logical-devices)
"Remove all active logical devices." "Remove all active logical devices."
(with-null-output-ports ((run-command-in-installer) "dmsetup" "remove_all"))
(invoke "dmsetup" "remove_all")))
(define (installer-root-partition-path) (define (installer-root-partition-path)
"Return the root partition path, or #f if it could not be detected." "Return the root partition path, or #f if it could not be detected."
(let* ((cmdline (linux-command-line)) (let* ((cmdline (linux-command-line))
(root (find-long-option "--root" cmdline))) (root (find-long-option "root" cmdline)))
(and root (and root
(or (and (access? root F_OK) root) (or (and (access? root F_OK) root)
(find-partition-by-label root) (find-partition-by-label root)
@ -371,7 +370,8 @@ which are smaller than %MIN-DEVICE-SIZE."
(let ((length (device-length device)) (let ((length (device-length device))
(sector-size (device-sector-size device))) (sector-size (device-sector-size device)))
(and (< (* length sector-size) %min-device-size) (and (< (* length sector-size) %min-device-size)
(syslog "~a is not eligible because it is smaller than ~a.~%" (installer-log-line "~a is not eligible because it is smaller than \
~a."
(device-path device) (device-path device)
(unit-format-custom-byte device (unit-format-custom-byte device
%min-device-size %min-device-size
@ -391,7 +391,8 @@ which are smaller than %MIN-DEVICE-SIZE."
(string=? the-installer-root-partition-path (string=? the-installer-root-partition-path
(partition-get-path partition))) (partition-get-path partition)))
(disk-partitions disk))))) (disk-partitions disk)))))
(syslog "~a is not eligible because it is the installation device.~%" (installer-log-line "~a is not eligible because it is the \
installation device."
(device-path device)))) (device-path device))))
(remove (remove
@ -634,8 +635,14 @@ determined by MAX-LENGTH-COLUMN procedure."
(define (mklabel device type-name) (define (mklabel device type-name)
"Create a partition table on DEVICE. TYPE-NAME is the type of the partition "Create a partition table on DEVICE. TYPE-NAME is the type of the partition
table, \"msdos\" or \"gpt\"." table, \"msdos\" or \"gpt\"."
(let ((type (disk-type-get type-name))) (let* ((type (disk-type-get type-name))
(disk-new-fresh device type))) (disk (disk-new-fresh device type)))
(or disk
(raise
(condition
(&error)
(&message (message (format #f "Cannot create partition table of type
~a on device ~a." type-name (device-path device)))))))))
;; ;;
@ -817,24 +824,22 @@ cause them to cross."
(disk-add-partition disk partition no-constraint))) (disk-add-partition disk partition no-constraint)))
(partition-ok? (partition-ok?
(or partition-constraint-ok? partition-no-contraint-ok?))) (or partition-constraint-ok? partition-no-contraint-ok?)))
(syslog "Creating partition: (installer-log-line "Creating partition:")
~/type: ~a (installer-log-line "~/type: ~a" partition-type)
~/filesystem-type: ~a (installer-log-line "~/filesystem-type: ~a"
~/start: ~a (filesystem-type-name filesystem-type))
~/end: ~a (installer-log-line "~/start: ~a" start-sector*)
~/start-range: [~a, ~a] (installer-log-line "~/end: ~a" end-sector)
~/end-range: [~a, ~a] (installer-log-line "~/start-range: [~a, ~a]"
~/constraint: ~a (geometry-start start-range)
~/no-constraint: ~a (geometry-end start-range))
" (installer-log-line "~/end-range: [~a, ~a]"
partition-type (geometry-start end-range)
(filesystem-type-name filesystem-type) (geometry-end end-range))
start-sector* (installer-log-line "~/constraint: ~a"
end-sector partition-constraint-ok?)
(geometry-start start-range) (geometry-end start-range) (installer-log-line "~/no-constraint: ~a"
(geometry-start end-range) (geometry-end end-range) partition-no-contraint-ok?)
partition-constraint-ok?
partition-no-contraint-ok?)
;; Set the partition name if supported. ;; Set the partition name if supported.
(when (and partition-ok? has-name? name) (when (and partition-ok? has-name? name)
(partition-set-name partition name)) (partition-set-name partition name))
@ -1115,53 +1120,37 @@ list and return the updated list."
(file-name file-name)))) (file-name file-name))))
user-partitions)) user-partitions))
(define-syntax-rule (with-null-output-ports exp ...)
"Evaluate EXP with both the output port and the error port pointing to the
bit bucket."
(with-output-to-port (%make-void-port "w")
(lambda ()
(with-error-to-port (%make-void-port "w")
(lambda () exp ...)))))
(define (create-btrfs-file-system partition) (define (create-btrfs-file-system partition)
"Create a btrfs file-system for PARTITION file-name." "Create a btrfs file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.btrfs" "-f" partition))
(invoke "mkfs.btrfs" "-f" partition)))
(define (create-ext4-file-system partition) (define (create-ext4-file-system partition)
"Create an ext4 file-system for PARTITION file-name." "Create an ext4 file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.ext4" "-F" partition))
(invoke "mkfs.ext4" "-F" partition)))
(define (create-fat16-file-system partition) (define (create-fat16-file-system partition)
"Create a fat16 file-system for PARTITION file-name." "Create a fat16 file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.fat" "-F16" partition))
(invoke "mkfs.fat" "-F16" partition)))
(define (create-fat32-file-system partition) (define (create-fat32-file-system partition)
"Create a fat32 file-system for PARTITION file-name." "Create a fat32 file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.fat" "-F32" partition))
(invoke "mkfs.fat" "-F32" partition)))
(define (create-jfs-file-system partition) (define (create-jfs-file-system partition)
"Create a JFS file-system for PARTITION file-name." "Create a JFS file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "jfs_mkfs" "-f" partition))
(invoke "jfs_mkfs" "-f" partition)))
(define (create-ntfs-file-system partition) (define (create-ntfs-file-system partition)
"Create a JFS file-system for PARTITION file-name." "Create a JFS file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.ntfs" "-F" "-f" partition))
(invoke "mkfs.ntfs" "-F" "-f" partition)))
(define (create-xfs-file-system partition) (define (create-xfs-file-system partition)
"Create an XFS file-system for PARTITION file-name." "Create an XFS file-system for PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkfs.xfs" "-f" partition))
(invoke "mkfs.xfs" "-f" partition)))
(define (create-swap-partition partition) (define (create-swap-partition partition)
"Set up swap area on PARTITION file-name." "Set up swap area on PARTITION file-name."
(with-null-output-ports ((run-command-in-installer) "mkswap" "-f" partition))
(invoke "mkswap" "-f" partition)))
(define (call-with-luks-key-file password proc) (define (call-with-luks-key-file password proc)
"Write PASSWORD in a temporary file and pass it to PROC as argument." "Write PASSWORD in a temporary file and pass it to PROC as argument."
@ -1188,17 +1177,18 @@ USER-PARTITION if it is encrypted, or the plain file-name otherwise."
(call-with-luks-key-file (call-with-luks-key-file
password password
(lambda (key-file) (lambda (key-file)
(syslog "formatting and opening LUKS entry ~s at ~s~%" (installer-log-line "formatting and opening LUKS entry ~s at ~s"
label file-name) label file-name)
(system* "cryptsetup" "-q" "luksFormat" file-name key-file) ((run-command-in-installer) "cryptsetup" "-q" "luksFormat"
(system* "cryptsetup" "open" "--type" "luks" file-name key-file)
"--key-file" key-file file-name label))))) ((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
"--key-file" key-file file-name label)))))
(define (luks-close user-partition) (define (luks-close user-partition)
"Close the encrypted partition pointed by USER-PARTITION." "Close the encrypted partition pointed by USER-PARTITION."
(let ((label (user-partition-crypt-label user-partition))) (let ((label (user-partition-crypt-label user-partition)))
(syslog "closing LUKS entry ~s~%" label) (installer-log-line "closing LUKS entry ~s" label)
(system* "cryptsetup" "close" label))) ((run-command-in-installer) "cryptsetup" "close" label)))
(define (format-user-partitions user-partitions) (define (format-user-partitions user-partitions)
"Format the <user-partition> records in USER-PARTITIONS list with "Format the <user-partition> records in USER-PARTITIONS list with
@ -1279,7 +1269,7 @@ respective mount-points."
(file-name (file-name
(user-partition-upper-file-name user-partition))) (user-partition-upper-file-name user-partition)))
(mkdir-p target) (mkdir-p target)
(syslog "mounting ~s on ~s~%" file-name target) (installer-log-line "mounting ~s on ~s" file-name target)
(mount file-name target mount-type))) (mount file-name target mount-type)))
sorted-partitions))) sorted-partitions)))
@ -1295,7 +1285,7 @@ respective mount-points."
(target (target
(string-append (%installer-target-dir) (string-append (%installer-target-dir)
mount-point))) mount-point)))
(syslog "unmounting ~s~%" target) (installer-log-line "unmounting ~s" target)
(umount target) (umount target)
(when crypt-label (when crypt-label
(luks-close user-partition)))) (luks-close user-partition))))
@ -1486,6 +1476,6 @@ the devices not to be used before returning."
(error (error
(format #f (G_ "Device ~a is still in use.") (format #f (G_ "Device ~a is still in use.")
file-name)) file-name))
(syslog "Syncing ~a took ~a seconds.~%" (installer-log-line "Syncing ~a took ~a seconds."
file-name (time-second time))))) file-name (time-second time)))))
device-file-names))) device-file-names)))

View file

@ -41,7 +41,10 @@
installer-services-page installer-services-page
installer-welcome-page installer-welcome-page
installer-parameters-menu installer-parameters-menu
installer-parameters-page)) installer-parameters-page
installer-dump-page
installer-run-command
installer-report-page))
;;; ;;;
@ -61,7 +64,7 @@
(init installer-init) (init installer-init)
;; procedure: void -> void ;; procedure: void -> void
(exit installer-exit) (exit installer-exit)
;; procedure (key arguments) -> void ;; procedure (key arguments) -> (action)
(exit-error installer-exit-error) (exit-error installer-exit-error)
;; procedure void -> void ;; procedure void -> void
(final-page installer-final-page) (final-page installer-final-page)
@ -91,4 +94,10 @@
;; procedure (menu-proc) -> void ;; procedure (menu-proc) -> void
(parameters-menu installer-parameters-menu) (parameters-menu installer-parameters-menu)
;; procedure (keyboard-layout-selection) -> void ;; procedure (keyboard-layout-selection) -> void
(parameters-page installer-parameters-page)) (parameters-page installer-parameters-page)
;; procedure (dump) -> void
(dump-page installer-dump-page)
;; procedure command -> bool
(run-command installer-run-command)
;; procedure (report) -> void
(report-page installer-report-page))

View file

@ -28,13 +28,7 @@
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module (rnrs io ports) #:use-module (rnrs io ports)
#:export (&installer-step-abort #:export (<installer-step>
installer-step-abort?
&installer-step-break
installer-step-break?
<installer-step>
installer-step installer-step
make-installer-step make-installer-step
installer-step? installer-step?
@ -52,15 +46,13 @@
%installer-configuration-file %installer-configuration-file
%installer-target-dir %installer-target-dir
format-configuration format-configuration
configuration->file)) configuration->file
;; This condition may be raised to abort the current step. %current-result))
(define-condition-type &installer-step-abort &condition
installer-step-abort?)
;; This condition may be raised to break out from the steps execution. ;; Hash table storing the step results. Use it only for logging and debug
(define-condition-type &installer-step-break &condition ;; purposes.
installer-step-break?) (define %current-result (make-hash-table))
;; An installer-step record is basically an id associated to a compute ;; An installer-step record is basically an id associated to a compute
;; procedure. The COMPUTE procedure takes exactly one argument, an association ;; procedure. The COMPUTE procedure takes exactly one argument, an association
@ -88,8 +80,10 @@
(rewind-strategy 'previous) (rewind-strategy 'previous)
(menu-proc (const #f))) (menu-proc (const #f)))
"Run the COMPUTE procedure of all <installer-step> records in STEPS "Run the COMPUTE procedure of all <installer-step> records in STEPS
sequentially. If the &installer-step-abort condition is raised, fallback to a sequentially, inside a the 'installer-step prompt. When aborted to with a
previous install-step, accordingly to the specified REWIND-STRATEGY. parameter of 'abort, fallback to a previous install-step, accordingly to the
specified REWIND-STRATEGY. When aborted to with a parameter of 'break, stop
the computation and return the accumalated result so far.
REWIND-STRATEGY possible values are 'previous, 'menu and 'start. If 'previous REWIND-STRATEGY possible values are 'previous, 'menu and 'start. If 'previous
is selected, the execution will resume at the previous installer-step. If is selected, the execution will resume at the previous installer-step. If
@ -106,10 +100,7 @@ the form:
where STEP-ID is the ID field of the installer-step and COMPUTE-RESULT the where STEP-ID is the ID field of the installer-step and COMPUTE-RESULT the
result of the associated COMPUTE procedure. This result association list is result of the associated COMPUTE procedure. This result association list is
passed as argument of every COMPUTE procedure. It is finally returned when the passed as argument of every COMPUTE procedure. It is finally returned when the
computation is over. computation is over."
If the &installer-step-break condition is raised, stop the computation and
return the accumalated result so far."
(define (pop-result list) (define (pop-result list)
(cdr list)) (cdr list))
@ -143,62 +134,61 @@ return the accumalated result so far."
(match todo-steps (match todo-steps
(() (reverse result)) (() (reverse result))
((step . rest-steps) ((step . rest-steps)
(guard (c ((installer-step-abort? c) (call-with-prompt 'installer-step
(case rewind-strategy (lambda ()
((previous) (installer-log-line "running step '~a'" (installer-step-id step))
(match done-steps (let* ((id (installer-step-id step))
(() (compute (installer-step-compute step))
;; We cannot go previous the first step. So re-raise (res (compute result done-steps)))
;; the exception. It might be useful in the case of (hash-set! %current-result id res)
;; nested run-installer-steps. Abort to 'raise-above (run (alist-cons id res result)
;; prompt to prevent the condition from being catched #:todo-steps rest-steps
;; by one of the previously installed guard. #:done-steps (append done-steps (list step)))))
(abort-to-prompt 'raise-above c)) (lambda (k action)
((prev-done ... last-done) (match action
(run (pop-result result) ('abort
#:todo-steps (cons last-done todo-steps) (case rewind-strategy
#:done-steps prev-done)))) ((previous)
((menu) (match done-steps
(let ((goto-step (menu-proc (()
(append done-steps (list step))))) ;; We cannot go previous the first step. Abort again to
(if (eq? goto-step step) ;; 'installer-step prompt. It might be useful in the case
(run result ;; of nested run-installer-steps.
#:todo-steps todo-steps (abort-to-prompt 'installer-step action))
#:done-steps done-steps) ((prev-done ... last-done)
(skip-to-step goto-step result (run (pop-result result)
#:todo-steps todo-steps #:todo-steps (cons last-done todo-steps)
#:done-steps done-steps)))) #:done-steps prev-done))))
((start) ((menu)
(if (null? done-steps) (let ((goto-step (menu-proc
;; Same as above, it makes no sense to jump to start (append done-steps (list step)))))
;; when we are at the first installer-step. Abort to (if (eq? goto-step step)
;; 'raise-above prompt to re-raise the condition. (run result
(abort-to-prompt 'raise-above c) #:todo-steps todo-steps
(run '() #:done-steps done-steps)
#:todo-steps steps (skip-to-step goto-step result
#:done-steps '()))))) #:todo-steps todo-steps
((installer-step-break? c) #:done-steps done-steps))))
(reverse result))) ((start)
(syslog "running step '~a'~%" (installer-step-id step)) (if (null? done-steps)
(let* ((id (installer-step-id step)) ;; Same as above, it makes no sense to jump to start
(compute (installer-step-compute step)) ;; when we are at the first installer-step. Abort to
(res (compute result done-steps))) ;; 'installer-step prompt again.
(run (alist-cons id res result) (abort-to-prompt 'installer-step action)
#:todo-steps rest-steps (run '()
#:done-steps (append done-steps (list step)))))))) #:todo-steps steps
#:done-steps '())))))
('break
(reverse result))))))))
;; Ignore SIGPIPE so that we don't die if a client closes the connection ;; Ignore SIGPIPE so that we don't die if a client closes the connection
;; prematurely. ;; prematurely.
(sigaction SIGPIPE SIG_IGN) (sigaction SIGPIPE SIG_IGN)
(with-server-socket (with-server-socket
(call-with-prompt 'raise-above (run '()
(lambda () #:todo-steps steps
(run '() #:done-steps '())))
#:todo-steps steps
#:done-steps '()))
(lambda (k condition)
(raise condition)))))
(define (find-step-by-id steps id) (define (find-step-by-id steps id)
"Find and return the step in STEPS whose id is equal to ID." "Find and return the step in STEPS whose id is equal to ID."

View file

@ -19,7 +19,14 @@
(define-module (gnu installer user) (define-module (gnu installer user)
#:use-module (guix records) #:use-module (guix records)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:export (<user> #:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:export (<secret>
secret?
make-secret
secret-content
<user>
user user
make-user make-user
user-name user-name
@ -30,6 +37,16 @@
users->configuration)) users->configuration))
(define-record-type <secret>
(make-secret content)
secret?
(content secret-content))
(set-record-type-printer!
<secret>
(lambda (secret port)
(format port "<secret>")))
(define-record-type* <user> (define-record-type* <user>
user make-user user make-user
user? user?

View file

@ -25,7 +25,10 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-19) #:use-module (srfi srfi-19)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 control)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim) #:use-module (ice-9 rdelim)
#:use-module (ice-9 regex) #:use-module (ice-9 regex)
#:use-module (ice-9 format) #:use-module (ice-9 format)
@ -34,10 +37,17 @@
read-all read-all
nearest-exact-integer nearest-exact-integer
read-percentage read-percentage
run-external-command-with-handler
run-external-command-with-line-hooks
run-command run-command
run-command-in-installer
syslog-port syslog-port
syslog %syslog-line-hook
installer-log-port
%installer-log-line-hook
%default-installer-line-hooks
installer-log-line
call-with-time call-with-time
let/time let/time
@ -74,37 +84,99 @@ number. If no percentage is found, return #f"
(and result (and result
(string->number (match:substring result 1))))) (string->number (match:substring result 1)))))
(define* (run-external-command-with-handler handler command)
"Run command specified by the list COMMAND in a child with output handler
HANDLER. HANDLER is a procedure taking an input port, to which the command
will write its standard output and error. Returns the integer status value of
the child process as returned by waitpid."
(match-let (((input . output) (pipe)))
;; Hack to work around Guile bug 52835
(define dup-output (duplicate-port output "w"))
;; Void pipe, but holds the pid for close-pipe.
(define dummy-pipe
(with-input-from-file "/dev/null"
(lambda ()
(with-output-to-port output
(lambda ()
(with-error-to-port dup-output
(lambda ()
(apply open-pipe* (cons "" command)))))))))
(close-port output)
(close-port dup-output)
(handler input)
(close-port input)
(close-pipe dummy-pipe)))
(define (run-external-command-with-line-hooks line-hooks command)
"Run command specified by the list COMMAND in a child, processing each
output line with the procedures in LINE-HOOKS. Returns the integer status
value of the child process as returned by waitpid."
(define (handler input)
(and
(and=> (get-line input)
(lambda (line)
(if (eof-object? line)
#f
(begin (for-each (lambda (f) (f line))
(append line-hooks
%default-installer-line-hooks))
#t))))
(handler input)))
(run-external-command-with-handler handler command))
(define* (run-command command) (define* (run-command command)
"Run COMMAND, a list of strings. Return true if COMMAND exited "Run COMMAND, a list of strings. Return true if COMMAND exited
successfully, #f otherwise." successfully, #f otherwise."
(define env (environ))
(define (pause) (define (pause)
(format #t (G_ "Press Enter to continue.~%")) (format #t (G_ "Press Enter to continue.~%"))
(send-to-clients '(pause)) (send-to-clients '(pause))
(environ env) ;restore environment variables
(match (select (cons (current-input-port) (current-clients)) (match (select (cons (current-input-port) (current-clients))
'() '()) '() '())
(((port _ ...) _ _) (((port _ ...) _ _)
(read-line port)))) (read-line port))))
(setenv "PATH" "/run/current-system/profile/bin") (installer-log-line "running command ~s" command)
(define result (run-external-command-with-line-hooks
(list %display-line-hook)
command))
(define exit-val (status:exit-val result))
(define term-sig (status:term-sig result))
(define stop-sig (status:stop-sig result))
(define succeeded?
(cond
((and exit-val (not (zero? exit-val)))
(installer-log-line "command ~s exited with value ~a"
command exit-val)
(format #t (G_ "Command ~s exited with value ~a")
command exit-val)
#f)
(term-sig
(installer-log-line "command ~s killed by signal ~a"
command term-sig)
(format #t (G_ "Command ~s killed by signal ~a")
command term-sig)
#f)
(stop-sig
(installer-log-line "command ~s stopped by signal ~a"
command stop-sig)
(format #t (G_ "Command ~s stopped by signal ~a")
command stop-sig)
#f)
(else
(installer-log-line "command ~s succeeded" command)
(format #t (G_ "Command ~s succeeded") command)
#t)))
(newline)
(pause)
succeeded?)
(guard (c ((invoke-error? c) (define run-command-in-installer
(newline) (make-parameter
(format (current-error-port) (lambda (. args)
(G_ "Command failed with exit code ~a.~%") (raise
(invoke-error-exit-status c)) (condition
(syslog "command ~s failed with exit code ~a" (&serious)
command (invoke-error-exit-status c)) (&message (message "run-command-in-installer not set")))))))
(pause)
#f))
(syslog "running command ~s~%" command)
(apply invoke command)
(syslog "command ~s succeeded~%" command)
(newline)
(pause)
#t))
;;; ;;;
@ -142,6 +214,9 @@ values."
(set! port (open-syslog-port))) (set! port (open-syslog-port)))
(or port (%make-void-port "w"))))) (or port (%make-void-port "w")))))
(define (%syslog-line-hook line)
(format (syslog-port) "installer[~d]: ~a~%" (getpid) line))
(define-syntax syslog (define-syntax syslog
(lambda (s) (lambda (s)
"Like 'format', but write to syslog." "Like 'format', but write to syslog."
@ -152,6 +227,43 @@ values."
(syntax->datum #'fmt)))) (syntax->datum #'fmt))))
#'(format (syslog-port) fmt (getpid) args ...)))))) #'(format (syslog-port) fmt (getpid) args ...))))))
(define (open-new-log-port)
(define now (localtime (time-second (current-time))))
(define filename
(format #f "/tmp/installer.~a.log"
(strftime "%F.%T" now)))
(open filename (logior O_RDWR
O_CREAT)))
(define installer-log-port
(let ((port #f))
(lambda ()
"Return an input and output port to the installer log."
(unless port
(set! port (open-new-log-port)))
port)))
(define (%installer-log-line-hook line)
(format (installer-log-port) "~a~%" line))
(define (%display-line-hook line)
(display line)
(newline))
(define %default-installer-line-hooks
(list %syslog-line-hook
%installer-log-line-hook))
(define-syntax installer-log-line
(lambda (s)
"Like 'format', but uses the default line hooks, and only formats one line."
(syntax-case s ()
((_ fmt args ...)
(string? (syntax->datum #'fmt))
#'(let ((formatted (format #f fmt args ...)))
(for-each (lambda (f) (f formatted))
%default-installer-line-hooks))))))
;;; ;;;
;;; Client protocol. ;;; Client protocol.
@ -214,8 +326,9 @@ accepting socket."
(let ((errno (system-error-errno args))) (let ((errno (system-error-errno args)))
(if (memv errno (list EPIPE ECONNRESET ECONNABORTED)) (if (memv errno (list EPIPE ECONNRESET ECONNABORTED))
(begin (begin
(syslog "removing client ~s due to ~s while replying~%" (installer-log-line
(fileno client) (strerror errno)) "removing client ~s due to ~s while replying"
(fileno client) (strerror errno))
(false-if-exception (close-port client)) (false-if-exception (close-port client))
remainder) remainder)
(cons client remainder)))))) (cons client remainder))))))

View file

@ -7,7 +7,7 @@
# Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net> # Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
# Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org> # Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org>
# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org> # Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> # Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> # Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
# Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com> # Copyright © 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
# Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> # Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
@ -41,7 +41,7 @@
# Copyright © 2020 Vinicius Monego <monego@posteo.net> # Copyright © 2020 Vinicius Monego <monego@posteo.net>
# Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> # Copyright © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
# Copyright © 2021 Greg Hogan <code@greghogan.com> # Copyright © 2021 Greg Hogan <code@greghogan.com>
# Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> # Copyright © 2021, 2022 Philip McGrath <philip@philipmcgrath.com>
# Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net> # Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
# Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> # Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
# Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz> # Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
@ -79,6 +79,7 @@ GNU_SYSTEM_MODULES = \
%D%/ci.scm \ %D%/ci.scm \
%D%/home.scm \ %D%/home.scm \
%D%/home/services.scm \ %D%/home/services.scm \
%D%/home/services/desktop.scm \
%D%/home/services/symlink-manager.scm \ %D%/home/services/symlink-manager.scm \
%D%/home/services/fontutils.scm \ %D%/home/services/fontutils.scm \
%D%/home/services/shells.scm \ %D%/home/services/shells.scm \
@ -121,6 +122,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/axoloti.scm \ %D%/packages/axoloti.scm \
%D%/packages/backup.scm \ %D%/packages/backup.scm \
%D%/packages/base.scm \ %D%/packages/base.scm \
%D%/packages/barrier.scm \
%D%/packages/bash.scm \ %D%/packages/bash.scm \
%D%/packages/batik.scm \ %D%/packages/batik.scm \
%D%/packages/bdw-gc.scm \ %D%/packages/bdw-gc.scm \
@ -581,6 +583,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/time.scm \ %D%/packages/time.scm \
%D%/packages/tls.scm \ %D%/packages/tls.scm \
%D%/packages/tmux.scm \ %D%/packages/tmux.scm \
%D%/packages/toolkits.scm \
%D%/packages/tor.scm \ %D%/packages/tor.scm \
%D%/packages/tv.scm \ %D%/packages/tv.scm \
%D%/packages/uglifyjs.scm \ %D%/packages/uglifyjs.scm \
@ -601,6 +604,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/vulkan.scm \ %D%/packages/vulkan.scm \
%D%/packages/w3m.scm \ %D%/packages/w3m.scm \
%D%/packages/wdiff.scm \ %D%/packages/wdiff.scm \
%D%/packages/weather.scm \
%D%/packages/web.scm \ %D%/packages/web.scm \
%D%/packages/web-browsers.scm \ %D%/packages/web-browsers.scm \
%D%/packages/webkit.scm \ %D%/packages/webkit.scm \
@ -758,6 +762,7 @@ GNU_SYSTEM_MODULES = \
INSTALLER_MODULES = \ INSTALLER_MODULES = \
%D%/installer.scm \ %D%/installer.scm \
%D%/installer/connman.scm \ %D%/installer/connman.scm \
%D%/installer/dump.scm \
%D%/installer/final.scm \ %D%/installer/final.scm \
%D%/installer/hostname.scm \ %D%/installer/hostname.scm \
%D%/installer/keymap.scm \ %D%/installer/keymap.scm \
@ -859,6 +864,7 @@ dist_patch_DATA = \
%D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \ %D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
%D%/packages/patches/atlas-gfortran-compat.patch \ %D%/packages/patches/atlas-gfortran-compat.patch \
%D%/packages/patches/audacity-ffmpeg-fallback.patch \
%D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \ %D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \
%D%/packages/patches/audiofile-fix-sign-conversion.patch \ %D%/packages/patches/audiofile-fix-sign-conversion.patch \
%D%/packages/patches/audiofile-CVE-2015-7747.patch \ %D%/packages/patches/audiofile-CVE-2015-7747.patch \
@ -880,7 +886,6 @@ dist_patch_DATA = \
%D%/packages/patches/awesome-4.3-fno-common.patch \ %D%/packages/patches/awesome-4.3-fno-common.patch \
%D%/packages/patches/aws-c-auth-install-private-headers.patch \ %D%/packages/patches/aws-c-auth-install-private-headers.patch \
%D%/packages/patches/azr3.patch \ %D%/packages/patches/azr3.patch \
%D%/packages/patches/bash-reproducible-linux-pgrp-pipe.patch \
%D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bash-linux-pgrp-pipe.patch \ %D%/packages/patches/bash-linux-pgrp-pipe.patch \
%D%/packages/patches/bastet-change-source-of-unordered_set.patch \ %D%/packages/patches/bastet-change-source-of-unordered_set.patch \
@ -909,6 +914,8 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \ %D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \ %D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/binutils-CVE-2021-45078.patch \ %D%/packages/patches/binutils-CVE-2021-45078.patch \
%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/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \ %D%/packages/patches/bubblewrap-fix-locale-in-tests.patch \
@ -916,7 +923,6 @@ dist_patch_DATA = \
%D%/packages/patches/cabal-install-ghc8.10.patch \ %D%/packages/patches/cabal-install-ghc8.10.patch \
%D%/packages/patches/cairo-CVE-2018-19876.patch \ %D%/packages/patches/cairo-CVE-2018-19876.patch \
%D%/packages/patches/cairo-CVE-2020-35492.patch \ %D%/packages/patches/cairo-CVE-2020-35492.patch \
%D%/packages/patches/calibre-fix-zeroconf.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-sqlite.patch \ %D%/packages/patches/calibre-remove-test-sqlite.patch \
%D%/packages/patches/calibre-remove-test-unrar.patch \ %D%/packages/patches/calibre-remove-test-unrar.patch \
@ -965,6 +971,7 @@ dist_patch_DATA = \
%D%/packages/patches/coq-fix-envvars.patch \ %D%/packages/patches/coq-fix-envvars.patch \
%D%/packages/patches/coreutils-ls.patch \ %D%/packages/patches/coreutils-ls.patch \
%D%/packages/patches/cpuinfo-system-libraries.patch \ %D%/packages/patches/cpuinfo-system-libraries.patch \
%D%/packages/patches/cpulimit-with-glib-2.32.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \ %D%/packages/patches/crawl-upgrade-saves.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/clucene-contribs-lib.patch \ %D%/packages/patches/clucene-contribs-lib.patch \
@ -1008,7 +1015,6 @@ dist_patch_DATA = \
%D%/packages/patches/ecl-16-ignore-stderr-write-error.patch \ %D%/packages/patches/ecl-16-ignore-stderr-write-error.patch \
%D%/packages/patches/ecl-16-libffi.patch \ %D%/packages/patches/ecl-16-libffi.patch \
%D%/packages/patches/efibootmgr-remove-extra-decl.patch \ %D%/packages/patches/efibootmgr-remove-extra-decl.patch \
%D%/packages/patches/efivar-gcc-compat.patch \
%D%/packages/patches/eigen-remove-openmp-error-counting.patch \ %D%/packages/patches/eigen-remove-openmp-error-counting.patch \
%D%/packages/patches/eigen-stabilise-sparseqr-test.patch \ %D%/packages/patches/eigen-stabilise-sparseqr-test.patch \
%D%/packages/patches/einstein-build.patch \ %D%/packages/patches/einstein-build.patch \
@ -1035,7 +1041,6 @@ dist_patch_DATA = \
%D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/esmtp-add-lesmtp.patch \ %D%/packages/patches/esmtp-add-lesmtp.patch \
%D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/eudev-rules-directory.patch \
%D%/packages/patches/evilwm-lost-focus-bug.patch \
%D%/packages/patches/exercism-disable-self-update.patch \ %D%/packages/patches/exercism-disable-self-update.patch \
%D%/packages/patches/extempore-unbundle-external-dependencies.patch \ %D%/packages/patches/extempore-unbundle-external-dependencies.patch \
%D%/packages/patches/extundelete-e2fsprogs-1.44.patch \ %D%/packages/patches/extundelete-e2fsprogs-1.44.patch \
@ -1049,6 +1054,10 @@ dist_patch_DATA = \
%D%/packages/patches/fasthenry-spSolve.patch \ %D%/packages/patches/fasthenry-spSolve.patch \
%D%/packages/patches/fasthenry-spFactor.patch \ %D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fbreader-curl-7.62.patch \ %D%/packages/patches/fbreader-curl-7.62.patch \
%D%/packages/patches/fenics-dolfin-algorithm.patch \
%D%/packages/patches/fenics-dolfin-demo-init.patch \
%D%/packages/patches/fenics-dolfin-boost.patch \
%D%/packages/patches/fenics-dolfin-config-slepc.patch \
%D%/packages/patches/fifengine-boost-compat.patch \ %D%/packages/patches/fifengine-boost-compat.patch \
%D%/packages/patches/fifengine-swig-compat.patch \ %D%/packages/patches/fifengine-swig-compat.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
@ -1063,8 +1072,6 @@ dist_patch_DATA = \
%D%/packages/patches/fp16-system-libraries.patch \ %D%/packages/patches/fp16-system-libraries.patch \
%D%/packages/patches/fpc-reproducibility.patch \ %D%/packages/patches/fpc-reproducibility.patch \
%D%/packages/patches/fplll-std-fenv.patch \ %D%/packages/patches/fplll-std-fenv.patch \
%D%/packages/patches/freecad-boost-serialization.patch \
%D%/packages/patches/freecad-vtk9.patch \
%D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \
%D%/packages/patches/freeglut-gcc-compat.patch \ %D%/packages/patches/freeglut-gcc-compat.patch \
%D%/packages/patches/freeimage-unbundle.patch \ %D%/packages/patches/freeimage-unbundle.patch \
@ -1130,10 +1137,10 @@ dist_patch_DATA = \
%D%/packages/patches/geeqie-clutter.patch \ %D%/packages/patches/geeqie-clutter.patch \
%D%/packages/patches/genimage-mke2fs-test.patch \ %D%/packages/patches/genimage-mke2fs-test.patch \
%D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-4.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \ %D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
%D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \ %D%/packages/patches/ghc-language-haskell-extract-ghc-8.10.patch \
%D%/packages/patches/ghc-monad-par-fix-tests.patch \
%D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \
@ -1144,8 +1151,6 @@ dist_patch_DATA = \
%D%/packages/patches/glib-networking-gnutls-binding.patch \ %D%/packages/patches/glib-networking-gnutls-binding.patch \
%D%/packages/patches/glib-networking-32-bit-time.patch \ %D%/packages/patches/glib-networking-32-bit-time.patch \
%D%/packages/patches/glib-skip-failing-test.patch \ %D%/packages/patches/glib-skip-failing-test.patch \
%D%/packages/patches/glibc-CVE-2018-11236.patch \
%D%/packages/patches/glibc-CVE-2018-11237.patch \
%D%/packages/patches/glibc-CVE-2019-7309.patch \ %D%/packages/patches/glibc-CVE-2019-7309.patch \
%D%/packages/patches/glibc-CVE-2019-9169.patch \ %D%/packages/patches/glibc-CVE-2019-9169.patch \
%D%/packages/patches/glibc-CVE-2019-19126.patch \ %D%/packages/patches/glibc-CVE-2019-19126.patch \
@ -1164,7 +1169,6 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \ %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \
%D%/packages/patches/glibc-hurd-gettyent.patch \ %D%/packages/patches/glibc-hurd-gettyent.patch \
%D%/packages/patches/glibc-hurd-mach-print.patch \ %D%/packages/patches/glibc-hurd-mach-print.patch \
%D%/packages/patches/glibc-hurd-magic-pid.patch \
%D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch \ %D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch \
%D%/packages/patches/glibc-ldd-powerpc.patch \ %D%/packages/patches/glibc-ldd-powerpc.patch \
%D%/packages/patches/glibc-ldd-x86_64.patch \ %D%/packages/patches/glibc-ldd-x86_64.patch \
@ -1209,7 +1213,6 @@ dist_patch_DATA = \
%D%/packages/patches/grantlee-merge-theme-dirs.patch \ %D%/packages/patches/grantlee-merge-theme-dirs.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/grfcodec-gcc-compat.patch \ %D%/packages/patches/grfcodec-gcc-compat.patch \
%D%/packages/patches/grocsvs-dont-use-admiral.patch \
%D%/packages/patches/gromacs-tinyxml2.patch \ %D%/packages/patches/gromacs-tinyxml2.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \ %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/grub-efi-fat-serial-number.patch \ %D%/packages/patches/grub-efi-fat-serial-number.patch \
@ -1225,15 +1228,15 @@ dist_patch_DATA = \
%D%/packages/patches/guile-3.0-relocatable.patch \ %D%/packages/patches/guile-3.0-relocatable.patch \
%D%/packages/patches/guile-linux-syscalls.patch \ %D%/packages/patches/guile-linux-syscalls.patch \
%D%/packages/patches/guile-3.0-linux-syscalls.patch \ %D%/packages/patches/guile-3.0-linux-syscalls.patch \
%D%/packages/patches/guile-cross-compilation.patch \
%D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \ %D%/packages/patches/guile-fibers-destroy-peer-schedulers.patch \
%D%/packages/patches/guile-fibers-wait-for-io-readiness.patch \
%D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \ %D%/packages/patches/guile-gdbm-ffi-support-gdbm-1.14.patch \
%D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \ %D%/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch \
%D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-present-coding.patch \
%D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \
%D%/packages/patches/guile-emacs-fix-configure.patch \ %D%/packages/patches/guile-emacs-fix-configure.patch \
%D%/packages/patches/guile-email-fix-tests.patch \ %D%/packages/patches/guile-email-fix-tests.patch \
%D%/packages/patches/guile-ssh-fix-test-suite.patch \
%D%/packages/patches/guile-ssh-read-error.patch \
%D%/packages/patches/gtk2-fix-builder-test.patch \ %D%/packages/patches/gtk2-fix-builder-test.patch \
%D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \
%D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
@ -1267,7 +1270,6 @@ dist_patch_DATA = \
%D%/packages/patches/hueplusplus-mbedtls.patch \ %D%/packages/patches/hueplusplus-mbedtls.patch \
%D%/packages/patches/hurd-cross.patch \ %D%/packages/patches/hurd-cross.patch \
%D%/packages/patches/hurd-xattr.patch \ %D%/packages/patches/hurd-xattr.patch \
%D%/packages/patches/hydra-disable-darcs-test.patch \
%D%/packages/patches/i7z-gcc-10.patch \ %D%/packages/patches/i7z-gcc-10.patch \
%D%/packages/patches/icecat-makeicecat.patch \ %D%/packages/patches/icecat-makeicecat.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \
@ -1285,7 +1287,6 @@ dist_patch_DATA = \
%D%/packages/patches/imagemagick-ReadDCMImage-fix.patch \ %D%/packages/patches/imagemagick-ReadDCMImage-fix.patch \
%D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch \ %D%/packages/patches/imagemagick-ReadDCMPixels-fix.patch \
%D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch \ %D%/packages/patches/imagemagick-WriteTHUMBNAILImage-fix.patch \
%D%/packages/patches/inkscape-poppler-0.76.patch \
%D%/packages/patches/instead-use-games-path.patch \ %D%/packages/patches/instead-use-games-path.patch \
%D%/packages/patches/intel-xed-fix-nondeterminism.patch \ %D%/packages/patches/intel-xed-fix-nondeterminism.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/intltool-perl-compatibility.patch \
@ -1298,6 +1299,9 @@ dist_patch_DATA = \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \ %D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jsoncpp-pkg-config-version.patch \ %D%/packages/patches/jsoncpp-pkg-config-version.patch \
%D%/packages/patches/jami-fix-crash-on-quit.patch \ %D%/packages/patches/jami-fix-crash-on-quit.patch \
%D%/packages/patches/jami-images-loading.patch \
%D%/packages/patches/jami-memory-usage.patch \
%D%/packages/patches/jami-libclient-audio-managers.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \ %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \ %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
@ -1327,7 +1331,6 @@ dist_patch_DATA = \
%D%/packages/patches/libffi-float128-powerpc64le.patch \ %D%/packages/patches/libffi-float128-powerpc64le.patch \
%D%/packages/patches/librime-fix-build-with-gcc10.patch \ %D%/packages/patches/librime-fix-build-with-gcc10.patch \
%D%/packages/patches/libvirt-add-install-prefix.patch \ %D%/packages/patches/libvirt-add-install-prefix.patch \
%D%/packages/patches/libvirt-create-machine-cgroup.patch \
%D%/packages/patches/libziparchive-add-includes.patch \ %D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/localed-xorg-keyboard.patch \ %D%/packages/patches/localed-xorg-keyboard.patch \
%D%/packages/patches/kdiagram-Fix-missing-link-libraries.patch \ %D%/packages/patches/kdiagram-Fix-missing-link-libraries.patch \
@ -1401,6 +1404,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \ %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \ %D%/packages/patches/libquicktime-ffmpeg.patch \
%D%/packages/patches/librecad-support-for-boost-1.76.patch \
%D%/packages/patches/libssh2-CVE-2019-17498.patch \ %D%/packages/patches/libssh2-CVE-2019-17498.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \
%D%/packages/patches/libtgvoip-disable-sse2.patch \ %D%/packages/patches/libtgvoip-disable-sse2.patch \
@ -1430,7 +1434,6 @@ dist_patch_DATA = \
%D%/packages/patches/linbox-fix-pkgconfig.patch \ %D%/packages/patches/linbox-fix-pkgconfig.patch \
%D%/packages/patches/linphone-desktop-without-sdk.patch \ %D%/packages/patches/linphone-desktop-without-sdk.patch \
%D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \ %D%/packages/patches/linux-libre-support-for-Pinebook-Pro.patch \
%D%/packages/patches/linux-libre-arm64-generic-pinebook-lcd.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \ %D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/linux-pam-unix_chkpwd.patch \ %D%/packages/patches/linux-pam-unix_chkpwd.patch \
%D%/packages/patches/linuxdcpp-openssl-1.1.patch \ %D%/packages/patches/linuxdcpp-openssl-1.1.patch \
@ -1461,13 +1464,12 @@ dist_patch_DATA = \
%D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/lvm2-static-link.patch \
%D%/packages/patches/mailutils-variable-lookup.patch \ %D%/packages/patches/mailutils-variable-lookup.patch \
%D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/marble-qt-add-qt-headers.patch \ %D%/packages/patches/mariadb-link-libatomic.patch \
%D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.patch \ %D%/packages/patches/mars-sfml-2.3.patch \
%D%/packages/patches/mathjax-disable-webpack.patch \ %D%/packages/patches/mathjax-disable-webpack.patch \
%D%/packages/patches/mathjax-no-a11y.patch \ %D%/packages/patches/mathjax-no-a11y.patch \
%D%/packages/patches/maxima-defsystem-mkdir.patch \ %D%/packages/patches/maxima-defsystem-mkdir.patch \
%D%/packages/patches/maven-enforcer-api-fix-old-dependencies.patch \
%D%/packages/patches/maven-generate-component-xml.patch \ %D%/packages/patches/maven-generate-component-xml.patch \
%D%/packages/patches/maven-generate-javax-inject-named.patch \ %D%/packages/patches/maven-generate-javax-inject-named.patch \
%D%/packages/patches/mcrypt-CVE-2012-4409.patch \ %D%/packages/patches/mcrypt-CVE-2012-4409.patch \
@ -1479,7 +1481,6 @@ dist_patch_DATA = \
%D%/packages/patches/mercurial-hg-extension-path.patch \ %D%/packages/patches/mercurial-hg-extension-path.patch \
%D%/packages/patches/mesa-opencl-all-targets.patch \ %D%/packages/patches/mesa-opencl-all-targets.patch \
%D%/packages/patches/mesa-skip-tests.patch \ %D%/packages/patches/mesa-skip-tests.patch \
%D%/packages/patches/mescc-tools-boot.patch \
%D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch \ %D%/packages/patches/meson-allow-dirs-outside-of-prefix.patch \
%D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \
%D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch \ %D%/packages/patches/minetest-add-MINETEST_MOD_PATH.patch \
@ -1504,6 +1505,7 @@ dist_patch_DATA = \
%D%/packages/patches/mozjs38-shell-version.patch \ %D%/packages/patches/mozjs38-shell-version.patch \
%D%/packages/patches/mozjs38-tracelogger.patch \ %D%/packages/patches/mozjs38-tracelogger.patch \
%D%/packages/patches/mozjs38-version-detection.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/mrrescue-support-love-11.patch \
%D%/packages/patches/mtools-mformat-uninitialized.patch \ %D%/packages/patches/mtools-mformat-uninitialized.patch \
%D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mumps-build-parallelism.patch \
@ -1524,9 +1526,7 @@ dist_patch_DATA = \
%D%/packages/patches/netsurf-system-utf8proc.patch \ %D%/packages/patches/netsurf-system-utf8proc.patch \
%D%/packages/patches/netsurf-y2038-tests.patch \ %D%/packages/patches/netsurf-y2038-tests.patch \
%D%/packages/patches/netsurf-longer-test-timeout.patch \ %D%/packages/patches/netsurf-longer-test-timeout.patch \
%D%/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.patch \ %D%/packages/patches/nhc98-c-update.patch \
%D%/packages/patches/nettle-3.5-CVE-2021-3580-pt1.patch \
%D%/packages/patches/nettle-3.5-CVE-2021-3580-pt2.patch \
%D%/packages/patches/nix-dont-build-html-doc.diff \ %D%/packages/patches/nix-dont-build-html-doc.diff \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \ %D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \
@ -1545,37 +1545,30 @@ dist_patch_DATA = \
%D%/packages/patches/nvi-db4.patch \ %D%/packages/patches/nvi-db4.patch \
%D%/packages/patches/nyacc-binary-literals.patch \ %D%/packages/patches/nyacc-binary-literals.patch \
%D%/packages/patches/obs-modules-location.patch \ %D%/packages/patches/obs-modules-location.patch \
%D%/packages/patches/ocaml-bitstring-fix-configure.patch \
%D%/packages/patches/ocaml-CVE-2015-8869.patch \
%D%/packages/patches/ocaml-Add-a-.file-directive.patch \
%D%/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch \
%D%/packages/patches/ocaml-dose3-add-unix-dependency.patch \ %D%/packages/patches/ocaml-dose3-add-unix-dependency.patch \
%D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch \ %D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch \
%D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \ %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \
%D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \ %D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \
%D%/packages/patches/ocaml-multiple-definitions.patch \ %D%/packages/patches/ocaml-multiple-definitions.patch \
%D%/packages/patches/ocaml-4.09-multiple-definitions.patch \ %D%/packages/patches/ocaml-4.09-multiple-definitions.patch \
%D%/packages/patches/ocaml-qcheck-fix-test-whitespace.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/oneko-remove-nonfree-characters.patch \ %D%/packages/patches/oneko-remove-nonfree-characters.patch \
%D%/packages/patches/onnx-optimizer-system-library.patch \ %D%/packages/patches/onnx-optimizer-system-library.patch \
%D%/packages/patches/onnx-use-system-googletest.patch \ %D%/packages/patches/onnx-use-system-googletest.patch \
%D%/packages/patches/onnx-shared-libraries.patch \ %D%/packages/patches/onnx-shared-libraries.patch \
%D%/packages/patches/onnx-skip-model-downloads.patch \ %D%/packages/patches/onnx-skip-model-downloads.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \ %D%/packages/patches/openboardview-use-system-imgui.patch \
%D%/packages/patches/openboardview-use-system-utf8.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \ %D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openjdk-14-builtins.patch \
%D%/packages/patches/openmpi-mtl-priorities.patch \ %D%/packages/patches/openmpi-mtl-priorities.patch \
%D%/packages/patches/openssh-hurd.patch \ %D%/packages/patches/openssh-hurd.patch \
%D%/packages/patches/openresolv-restartcmd-guix.patch \ %D%/packages/patches/openresolv-restartcmd-guix.patch \
%D%/packages/patches/openrgb-unbundle-hueplusplus.patch \ %D%/packages/patches/openrgb-unbundle-hueplusplus.patch \
%D%/packages/patches/opensles-add-license-file.patch \ %D%/packages/patches/opensles-add-license-file.patch \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \ %D%/packages/patches/openssl-1.1-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \ %D%/packages/patches/openssl-3.0-c-rehash-in.patch \
%D%/packages/patches/openssl-CVE-2019-1559.patch \
%D%/packages/patches/open-zwave-hidapi.patch \ %D%/packages/patches/open-zwave-hidapi.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \ %D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/osip-CVE-2017-7853.patch \ %D%/packages/patches/osip-CVE-2017-7853.patch \
@ -1586,7 +1579,6 @@ dist_patch_DATA = \
%D%/packages/patches/p7zip-remove-unused-code.patch \ %D%/packages/patches/p7zip-remove-unused-code.patch \
%D%/packages/patches/pam-krb5-CVE-2020-10595.patch \ %D%/packages/patches/pam-krb5-CVE-2020-10595.patch \
%D%/packages/patches/pango-skip-libthai-test.patch \ %D%/packages/patches/pango-skip-libthai-test.patch \
%D%/packages/patches/passwordsafe-meson-remove-extra-argument.patch \
%D%/packages/patches/password-store-tree-compat.patch \ %D%/packages/patches/password-store-tree-compat.patch \
%D%/packages/patches/pciutils-hurd-configure.patch \ %D%/packages/patches/pciutils-hurd-configure.patch \
%D%/packages/patches/pciutils-hurd-fix.patch \ %D%/packages/patches/pciutils-hurd-fix.patch \
@ -1612,8 +1604,10 @@ dist_patch_DATA = \
%D%/packages/patches/strace-readlink-tests.patch \ %D%/packages/patches/strace-readlink-tests.patch \
%D%/packages/patches/sunxi-tools-remove-sys-io.patch \ %D%/packages/patches/sunxi-tools-remove-sys-io.patch \
%D%/packages/patches/p11-kit-hurd.patch \ %D%/packages/patches/p11-kit-hurd.patch \
%D%/packages/patches/patchutils-test-perms.patch \
%D%/packages/patches/patch-hurd-path-max.patch \ %D%/packages/patches/patch-hurd-path-max.patch \
%D%/packages/patches/perl-5.14-autosplit-default-time.patch \
%D%/packages/patches/perl-5.14-module-pluggable-search.patch \
%D%/packages/patches/perl-5.14-no-sys-dirs.patch \
%D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \
%D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \ %D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
%D%/packages/patches/perl-image-exiftool-CVE-2021-22204.patch \ %D%/packages/patches/perl-image-exiftool-CVE-2021-22204.patch \
@ -1645,11 +1639,13 @@ dist_patch_DATA = \
%D%/packages/patches/plib-CVE-2011-4620.patch \ %D%/packages/patches/plib-CVE-2011-4620.patch \
%D%/packages/patches/plib-CVE-2012-4552.patch \ %D%/packages/patches/plib-CVE-2012-4552.patch \
%D%/packages/patches/plotutils-spline-test.patch \ %D%/packages/patches/plotutils-spline-test.patch \
%D%/packages/patches/polkit-CVE-2021-4034.patch \
%D%/packages/patches/polkit-configure-elogind.patch \ %D%/packages/patches/polkit-configure-elogind.patch \
%D%/packages/patches/polkit-use-duktape.patch \ %D%/packages/patches/polkit-use-duktape.patch \
%D%/packages/patches/portaudio-audacity-compat.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \
%D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/portmidi-modular-build.patch \
%D%/packages/patches/postgresql-disable-resolve_symlinks.patch \ %D%/packages/patches/postgresql-disable-resolve_symlinks.patch \
%D%/packages/patches/postgresql-riscv-spinlocks.patch \
%D%/packages/patches/procmail-ambiguous-getline-debian.patch \ %D%/packages/patches/procmail-ambiguous-getline-debian.patch \
%D%/packages/patches/procmail-CVE-2014-3618.patch \ %D%/packages/patches/procmail-CVE-2014-3618.patch \
%D%/packages/patches/procmail-CVE-2017-16844.patch \ %D%/packages/patches/procmail-CVE-2017-16844.patch \
@ -1678,14 +1674,9 @@ dist_patch_DATA = \
%D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-3-fix-tests.patch \
%D%/packages/patches/python-3-hurd-configure.patch \ %D%/packages/patches/python-3-hurd-configure.patch \
%D%/packages/patches/python-3-no-static-lib.patch \ %D%/packages/patches/python-3-no-static-lib.patch \
%D%/packages/patches/python-CVE-2018-14647.patch \
%D%/packages/patches/python-CVE-2020-26116.patch \
%D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \ %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \
%D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \ %D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \
%D%/packages/patches/python-axolotl-AES-fix.patch \
%D%/packages/patches/python-babel-fix-parse-future-test.patch \
%D%/packages/patches/python-cross-compile.patch \ %D%/packages/patches/python-cross-compile.patch \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-configobj-setuptools.patch \ %D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-docopt-pytest6-compat.patch \ %D%/packages/patches/python-docopt-pytest6-compat.patch \
%D%/packages/patches/python-execnet-read-only-fix.patch \ %D%/packages/patches/python-execnet-read-only-fix.patch \
@ -1698,10 +1689,10 @@ dist_patch_DATA = \
%D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \ %D%/packages/patches/python-piexif-fix-tests-with-pillow-7.2.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \ %D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
%D%/packages/patches/python-pyflakes-test-location.patch \ %D%/packages/patches/python-pyflakes-test-location.patch \
%D%/packages/patches/python2-pyopenssl-openssl-compat.patch \
%D%/packages/patches/python-flint-includes.patch \ %D%/packages/patches/python-flint-includes.patch \
%D%/packages/patches/python-libxml2-utf8.patch \ %D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-magic-python-bytecode.patch \ %D%/packages/patches/python-magic-python-bytecode.patch \
%D%/packages/patches/python-matplotlib-run-under-wayland-gtk3.patch \
%D%/packages/patches/python-memcached-syntax-warnings.patch \ %D%/packages/patches/python-memcached-syntax-warnings.patch \
%D%/packages/patches/python-mox3-python3.6-compat.patch \ %D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-typing-inspect-fix.patch \ %D%/packages/patches/python-typing-inspect-fix.patch \
@ -1714,24 +1705,27 @@ dist_patch_DATA = \
%D%/packages/patches/python-pyan3-fix-positional-arguments.patch \ %D%/packages/patches/python-pyan3-fix-positional-arguments.patch \
%D%/packages/patches/python2-pygobject-2-deprecation.patch \ %D%/packages/patches/python2-pygobject-2-deprecation.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
%D%/packages/patches/python-pytest-asyncio-python-3.8.patch \
%D%/packages/patches/python-pytorch-runpath.patch \ %D%/packages/patches/python-pytorch-runpath.patch \
%D%/packages/patches/python-pytorch-system-libraries.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-source-date-epoch.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-kde-test.patch \
%D%/packages/patches/python-seaborn-2690.patch \
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \ %D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \ %D%/packages/patches/python-unittest2-remove-argparse.patch \
%D%/packages/patches/python-versioneer-guix-support.patch \ %D%/packages/patches/python-versioneer-guix-support.patch \
%D%/packages/patches/python-waitress-fix-tests.patch \ %D%/packages/patches/python-waitress-fix-tests.patch \
%D%/packages/patches/python-werkzeug-tests.patch \ %D%/packages/patches/python-werkzeug-tests.patch \
%D%/packages/patches/python-mypy-12332.patch \
%D%/packages/patches/qemu-build-info-manual.patch \ %D%/packages/patches/qemu-build-info-manual.patch \
%D%/packages/patches/qemu-glibc-2.27.patch \ %D%/packages/patches/qemu-glibc-2.27.patch \
%D%/packages/patches/qemu-glibc-2.30.patch \ %D%/packages/patches/qemu-glibc-2.30.patch \
%D%/packages/patches/qemu-fix-agent-paths.patch \ %D%/packages/patches/qemu-fix-agent-paths.patch \
%D%/packages/patches/qpdfview-qt515-compat.patch \ %D%/packages/patches/qpdfview-qt515-compat.patch \
%D%/packages/patches/qrcodegen-cpp-make-install.patch \ %D%/packages/patches/qrcodegen-cpp-make-install.patch \
%D%/packages/patches/qt4-ldflags.patch \
%D%/packages/patches/qtbase-absolute-runpath.patch \ %D%/packages/patches/qtbase-absolute-runpath.patch \
%D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch \ %D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch \
%D%/packages/patches/qtbase-use-TZDIR.patch \ %D%/packages/patches/qtbase-use-TZDIR.patch \
@ -1751,7 +1745,6 @@ dist_patch_DATA = \
%D%/packages/patches/raptor2-heap-overflow.patch \ %D%/packages/patches/raptor2-heap-overflow.patch \
%D%/packages/patches/ratpoints-sturm_and_rp_private.patch \ %D%/packages/patches/ratpoints-sturm_and_rp_private.patch \
%D%/packages/patches/ratpoison-shell.patch \ %D%/packages/patches/ratpoison-shell.patch \
%D%/packages/patches/rcs-5.10.0-no-stdin.patch \
%D%/packages/patches/rct-add-missing-headers.patch \ %D%/packages/patches/rct-add-missing-headers.patch \
%D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-link-ncurses.patch \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
@ -1762,6 +1755,8 @@ dist_patch_DATA = \
%D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.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/racket-minimal-sh-via-rktio.patch \
%D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/remake-impure-dirs.patch \
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
@ -1774,10 +1769,10 @@ dist_patch_DATA = \
%D%/packages/patches/rocm-opencl-runtime-4.3-noclinfo.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-nocltrace.patch \
%D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.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 \ %D%/packages/patches/ruby-sanitize-system-libxml.patch \
%D%/packages/patches/rustc-1.39.0-src.patch \ %D%/packages/patches/rustc-1.39.0-src.patch \
%D%/packages/patches/rust-adblock-ignore-live-tests.patch \ %D%/packages/patches/rust-adblock-ignore-live-tests.patch \
%D%/packages/patches/rust-coresimd-doctest.patch \
%D%/packages/patches/i3status-rust-enable-unstable-features.patch \ %D%/packages/patches/i3status-rust-enable-unstable-features.patch \
%D%/packages/patches/rust-ndarray-remove-blas-src-dep.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.13-remove-blas-src.patch \
@ -1796,7 +1791,6 @@ dist_patch_DATA = \
%D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scheme48-tests.patch \
%D%/packages/patches/scotch-build-parallelism.patch \ %D%/packages/patches/scotch-build-parallelism.patch \
%D%/packages/patches/scotch-integer-declarations.patch \ %D%/packages/patches/scotch-integer-declarations.patch \
%D%/packages/patches/screen-CVE-2021-26937.patch \
%D%/packages/patches/screen-hurd-path-max.patch \ %D%/packages/patches/screen-hurd-path-max.patch \
%D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \
%D%/packages/patches/seed-webkit.patch \ %D%/packages/patches/seed-webkit.patch \
@ -1823,7 +1817,6 @@ dist_patch_DATA = \
%D%/packages/patches/spice-vdagent-glib-2.68.patch \ %D%/packages/patches/spice-vdagent-glib-2.68.patch \
%D%/packages/patches/sssd-fix-samba.patch \ %D%/packages/patches/sssd-fix-samba.patch \
%D%/packages/patches/sssd-system-directories.patch \ %D%/packages/patches/sssd-system-directories.patch \
%D%/packages/patches/streamlink-update-test.patch \
%D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/suitesparse-mongoose-cmake.patch \ %D%/packages/patches/suitesparse-mongoose-cmake.patch \
%D%/packages/patches/superlu-dist-awpm-grid.patch \ %D%/packages/patches/superlu-dist-awpm-grid.patch \
@ -1843,7 +1836,7 @@ dist_patch_DATA = \
%D%/packages/patches/tao-fix-parser-types.patch \ %D%/packages/patches/tao-fix-parser-types.patch \
%D%/packages/patches/tar-remove-wholesparse-check.patch \ %D%/packages/patches/tar-remove-wholesparse-check.patch \
%D%/packages/patches/tar-skip-unreliable-tests.patch \ %D%/packages/patches/tar-skip-unreliable-tests.patch \
%D%/packages/patches/tcc-boot-0.9.27.patch \ %D%/packages/patches/tbb-fix-test-on-aarch64.patch \
%D%/packages/patches/tclxml-3.2-install.patch \ %D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-fix-autotest.patch \ %D%/packages/patches/tcsh-fix-autotest.patch \
%D%/packages/patches/teensy-loader-cli-help.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \
@ -1866,6 +1859,7 @@ dist_patch_DATA = \
gnu/packages/patches/tootle-reason-phrase.patch \ gnu/packages/patches/tootle-reason-phrase.patch \
%D%/packages/patches/tor-sandbox-i686.patch \ %D%/packages/patches/tor-sandbox-i686.patch \
%D%/packages/patches/transcode-ffmpeg.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/transmission-honor-localedir.patch \
%D%/packages/patches/tremc-fix-decodestring.patch \ %D%/packages/patches/tremc-fix-decodestring.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \ %D%/packages/patches/trytond-add-egg-modules-to-path.patch \
@ -1881,7 +1875,6 @@ dist_patch_DATA = \
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \ %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
%D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \ %D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \ %D%/packages/patches/ucx-tcp-iface-ioctl.patch \
%D%/packages/patches/ungoogled-chromium-accelerated-video-decode.patch \
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \ %D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
%D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch \ %D%/packages/patches/ungoogled-chromium-ffmpeg-compat.patch \
%D%/packages/patches/ungoogled-chromium-RUNPATH.patch \ %D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
@ -1925,7 +1918,8 @@ dist_patch_DATA = \
%D%/packages/patches/upx-CVE-2021-20285.patch \ %D%/packages/patches/upx-CVE-2021-20285.patch \
%D%/packages/patches/ustr-fix-build-with-gcc-5.patch \ %D%/packages/patches/ustr-fix-build-with-gcc-5.patch \
%D%/packages/patches/util-linux-tests.patch \ %D%/packages/patches/util-linux-tests.patch \
%D%/packages/patches/upower-builddir.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-enable-arm.patch \
%D%/packages/patches/vboot-utils-fix-format-load-address.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-fix-tests-show-contents.patch \
@ -1937,10 +1931,11 @@ dist_patch_DATA = \
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
%D%/packages/patches/vtk-fix-freetypetools-build-failure.patch \ %D%/packages/patches/vtk-fix-freetypetools-build-failure.patch \
%D%/packages/patches/vtk-8-fix-freetypetools-build-failure.patch \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/webkitgtk-share-store.patch \
%D%/packages/patches/webkitgtk-bind-all-fonts.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/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \

View file

@ -51,7 +51,7 @@
;;; Commentary: ;;; Commentary:
;;; ;;;
;;; This module provides the types used to declare individual machines in a ;;; This module provides the types used to declare individual machines in a
;;; heterogeneous Guix deployment. The interface allows users of specify system ;;; heterogeneous Guix deployment. The interface allows users to specify system
;;; configurations and the means by which resources should be provisioned on a ;;; configurations and the means by which resources should be provisioned on a
;;; per-host basis. ;;; per-host basis.
;;; ;;;

View file

@ -422,7 +422,8 @@ of MACHINE's system profile, ordered from most recent to oldest."
(let* ((params (call-with-input-string serialized-params (let* ((params (call-with-input-string serialized-params
read-boot-parameters)) read-boot-parameters))
(root (boot-parameters-root-device params)) (root (boot-parameters-root-device params))
(label (boot-parameters-label params))) (label (boot-parameters-label params))
(version (boot-parameters-version params)))
(boot-parameters (boot-parameters
(inherit params) (inherit params)
(label (label
@ -433,7 +434,7 @@ of MACHINE's system profile, ordered from most recent to oldest."
"~Y-~m-~d ~H:~M")) "~Y-~m-~d ~H:~M"))
")")) ")"))
(kernel-arguments (kernel-arguments
(append (bootable-kernel-arguments system-path root) (append (bootable-kernel-arguments system-path root version)
(boot-parameters-kernel-arguments params)))))))) (boot-parameters-kernel-arguments params))))))))
generations)))) generations))))

View file

@ -30,7 +30,6 @@
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages lisp) #:use-module (gnu packages lisp)
#:use-module (gnu packages base)
#:use-module (gnu packages ocaml) #:use-module (gnu packages ocaml)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages polkit) #:use-module (gnu packages polkit)
@ -174,7 +173,6 @@ terminals.")
flite flite
glib glib
gpm gpm
libiconv
icu4c icu4c
libbraille libbraille
pcre2 pcre2

View file

@ -1,8 +1,8 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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 © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020, 2021 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020, 2021, 2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com> ;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
@ -28,11 +28,11 @@
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org> ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019, 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019, 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@ -876,10 +876,27 @@ hostname.")
"Shadow provides a number of authentication-related tools, including: "Shadow provides a number of authentication-related tools, including:
login, passwd, su, groupadd, and useradd.") login, passwd, su, groupadd, and useradd.")
(properties '((hidden? . #t))) ;see below
;; The `vipw' program is GPLv2+. ;; The `vipw' program is GPLv2+.
;; libmisc/salt.c is public domain. ;; libmisc/salt.c is public domain.
(license license:bsd-3))) (license license:bsd-3)))
(define-public shadow-with-man-pages
;; TODO: Merge with 'shadow' on the next core-updates cycle.
(package/inherit shadow
(properties '()) ;not hidden
(arguments
(substitute-keyword-arguments (package-arguments shadow)
((#:phases phases '%standard-phases)
`(modify-phases ,phases
(add-after 'install 'install-man-pages
(lambda _
;; The top-level Makefile.am wrongfully has "SUBDIRS += man"
;; under "if ENABLE_REGENERATE_MAN", even though prebuilt man
;; pages are available. Thus, install them manually.
(invoke "make" "-C" "man" "install")))))))))
(define-public mingetty (define-public mingetty
(package (package
(name "mingetty") (name "mingetty")
@ -1166,7 +1183,7 @@ connection alive.")
(define-public isc-dhcp (define-public isc-dhcp
(let* ((bind-major-version "9") (let* ((bind-major-version "9")
(bind-minor-version "11") (bind-minor-version "11")
(bind-patch-version "36") (bind-patch-version "37")
(bind-release-type "") ; for patch release, use "-P" (bind-release-type "") ; for patch release, use "-P"
(bind-release-version "") ; for patch release, e.g. "6" (bind-release-version "") ; for patch release, e.g. "6"
(bind-version (string-append bind-major-version (bind-version (string-append bind-major-version
@ -1220,6 +1237,21 @@ connection alive.")
;; build system uses the built 'gen' executable. ;; build system uses the built 'gen' executable.
(setenv "BUILD_CC" "gcc")))) (setenv "BUILD_CC" "gcc"))))
'()) '())
(add-before 'build 'update-config-scripts
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(for-each (lambda (file)
(install-file
(search-input-file
(or native-inputs inputs)
(string-append "/bin/" file)) "."))
'("config.guess" "config.sub"))
(for-each (lambda (file)
(install-file
(search-input-file
(or native-inputs inputs)
(string-append "/bin/" file))
(string-append "bind/bind-" ,bind-version)))
'("config.guess" "config.sub"))))
(add-after 'configure 'post-configure (add-after 'configure 'post-configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; Point to the right client script, which will be ;; Point to the right client script, which will be
@ -1282,7 +1314,7 @@ connection alive.")
(list inetutils net-tools coreutils sed)))))))))) (list inetutils net-tools coreutils sed))))))))))
(native-inputs (native-inputs
(list perl file)) (list config perl file))
(inputs `(("inetutils" ,inetutils) (inputs `(("inetutils" ,inetutils)
("bash" ,bash-minimal) ("bash" ,bash-minimal)
@ -1300,7 +1332,7 @@ connection alive.")
"/bind-" bind-version ".tar.gz")) "/bind-" bind-version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"108nh7hha4r0lb5hf1fn7lqaascvhsrghpz6afm5lf9vf2vgqly9")))) "1zsszgxs9043dfpxb6xs1iwk9jg7nxkl5pbawj8dlshnxkkzp3hd"))))
("coreutils*" ,coreutils) ("coreutils*" ,coreutils)
("sed*" ,sed))) ("sed*" ,sed)))
@ -1692,7 +1724,7 @@ system administrator.")
(define-public sudo (define-public sudo
(package (package
(name "sudo") (name "sudo")
(version "1.9.8p2") (version "1.9.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -1702,7 +1734,7 @@ system administrator.")
version ".tar.gz"))) version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"0b8gd15l2g22w4fhhz0gzmq5c8370klanmy2c1p3px6yly6qnfwy")) "1x34k8sd2msfjjsahff1q143gr5j9z19jx2rmkkbiiz7k084d8a4"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -1786,7 +1818,7 @@ commands and their arguments.")
(define-public opendoas (define-public opendoas
(package (package
(name "opendoas") (name "opendoas")
(version "6.8.1") (version "6.8.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1795,7 +1827,7 @@ commands and their arguments.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0gfcssm21vdfg6kcrcc7hz1h4jmhy2zv29rfqyrrj3a6r9b5ah8p")))) "1qrin7x9vcprk5pwjbr3w8z2qj8hk6xbvxicdhlk27xr6vcr1qzn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -1804,7 +1836,7 @@ commands and their arguments.")
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(substitute* "GNUmakefile" (substitute* "GNUmakefile"
(("^\tchown.*$") "")) (("^\tchown.*$") ""))
;; OpenDoas look for binaries in safepath when a rule specify a ;; OpenDoas looks for binaries in safepath when a rule specifies a
;; relative command, such as “permit keepenv :wheel cmd guix”. ;; relative command, such as “permit keepenv :wheel cmd guix”.
(substitute* "doas.c" (substitute* "doas.c"
(("safepath =" match) (("safepath =" match)
@ -1812,8 +1844,7 @@ commands and their arguments.")
"/run/setuid-programs:" "/run/setuid-programs:"
"/run/current-system/profile/bin:" "/run/current-system/profile/bin:"
"/run/current-system/profile/sbin:" "/run/current-system/profile/sbin:"
"\" "))) "\" ")))))
#t))
(replace 'configure (replace 'configure
;; The configure script doesn't accept most of the default flags. ;; The configure script doesn't accept most of the default flags.
(lambda* (#:key configure-flags #:allow-other-keys) (lambda* (#:key configure-flags #:allow-other-keys)
@ -2327,45 +2358,17 @@ characters (such as \"$\") get replaced with \"_\". ISO 8859-1 (Latin-1)
characters can be replaced as well, as can UTF-8 characters.") characters can be replaced as well, as can UTF-8 characters.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public testdisk
(package
(name "testdisk")
(version "7.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.cgsecurity.org/testdisk-"
version ".tar.bz2"))
(sha256
(base32
"1zlh44w67py416hkvw6nrfmjickc2d43v51vcli5p374d5sw84ql"))))
(build-system gnu-build-system)
(inputs
(list ntfs-3g
`(,util-linux "lib")
openssl
;; FIXME: add reiserfs.
zlib
e2fsprogs
libjpeg-turbo
ncurses))
(home-page "https://www.cgsecurity.org/wiki/TestDisk")
(synopsis "Data recovery tool")
(description
"TestDisk is a program for data recovery, primarily designed to help
recover lost partitions and/or make non-booting disks bootable again.")
(license license:gpl2+)))
(define-public tree (define-public tree
(package (package
(name "tree") (name "tree")
(version "2.0.1") (version "2.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://mama.indstate.edu/users/ice/tree/src/tree-" "http://mama.indstate.edu/users/ice/tree/src/tree-"
version ".tgz")) version ".tgz"))
(sha256 (sha256
(base32 "0f92vx6gpz7v29wi9clklzah57v7lgx5kv0m1w4b9xjc35d9qcz3")))) (base32 "1bzfkr3kmn2v5x7ljir691fr9hhjvjxqsfz0fc5fgi6ki0fklsbx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
@ -2858,7 +2861,8 @@ lookup to YAML Mode. You could enable the mode with @code{(add-hook
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh")))) (base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))
(patches (search-patches "cpulimit-with-glib-2.32.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
@ -3052,13 +3056,13 @@ platform-specific methods.")
(package (package
(name "audit") (name "audit")
(home-page "https://people.redhat.com/sgrubb/audit/") (home-page "https://people.redhat.com/sgrubb/audit/")
(version "3.0.6") (version "3.0.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append home-page "audit-" version ".tar.gz")) (uri (string-append home-page "audit-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0pnc9wzslks9p6kxw0llp1n8h8yg0frcxl3x84fl0hisa5vlvr63")))) "15r5lrrkv2zj3dvpqssd46w61hmrq27y7c2rz33s20ck59iphk4b"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags (list "--with-python=no" `(#:configure-flags (list "--with-python=no"
@ -3881,7 +3885,8 @@ hard-coded.")
(let ((out (assoc-ref %outputs "out"))) (let ((out (assoc-ref %outputs "out")))
(list (string-append "--with-dbus-sys-dir=" (list (string-append "--with-dbus-sys-dir="
out "/etc/dbus-1/system.d") out "/etc/dbus-1/system.d")
"--localstatedir=/var")) "--localstatedir=/var"
"--disable-werror"))
#:make-flags #:make-flags
(list "V=1") ; log build commands (list "V=1") ; log build commands
#:phases #:phases
@ -4753,7 +4758,7 @@ disk utilization, priority, username, state, and exit code.")
(install-file "novena-eeprom" out-bin) (install-file "novena-eeprom" out-bin)
(install-file "novena-eeprom.8" out-share-man))))))) (install-file "novena-eeprom.8" out-share-man)))))))
(inputs (inputs
(list i2c-tools)) (list i2c-tools-3))
(synopsis "Novena EEPROM editor") (synopsis "Novena EEPROM editor")
(description "This package provides an editor for the Novena EEPROM. (description "This package provides an editor for the Novena EEPROM.
Novena boards contain a device-dependent descriptive EEPROM that defines Novena boards contain a device-dependent descriptive EEPROM that defines
@ -4895,23 +4900,20 @@ exit code reports successful or failed execution to
(define-public udpcast (define-public udpcast
(package (package
(name "udpcast") (name "udpcast")
(version "20200328") (version "20211207")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
;; XXX: Original server is at https://www.udpcast.linux.lu is not ;; XXX: Original server is at https://www.udpcast.linux.lu is not
;; reliable. ;; reliable.
(uri (list (string-append (uri (list (string-append
"http://sources.buildroot.net/udpcast/udpcast-"
version ".tar.gz")
(string-append
"https://fossies.org/linux/privat/udpcast-" "https://fossies.org/linux/privat/udpcast-"
version ".tar.gz") version ".tar.gz")
(string-append (string-append
"https://www.udpcast.linux.lu/download/udpcast-" "https://www.udpcast.linux.lu/download/udpcast-"
version ".tar.gz"))) version ".tar.gz")))
(sha256 (sha256
(base32 "06pj86nbi9hx7abbb0z2c5ynhfq0rv89b7nmy0kq3xz2lsxfw6cw")))) (base32 "0l6hck694szrrvz85nm48rwb7mzvg2z2bwa50v51pkvym3kvxkm3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf automake m4 perl)) (list autoconf automake m4 perl))

View file

@ -1,13 +1,13 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 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 © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 20162022 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019, 2021 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2017, 2019, 2021, 2022 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
@ -69,6 +69,7 @@
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system r) #:use-module (guix build-system r)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix hg-download) #:use-module (guix hg-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
@ -328,7 +329,7 @@ precision.")
(define-public giac (define-public giac
(package (package
(name "giac") (name "giac")
(version "1.7.0-45") (version "1.7.0-51")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -340,42 +341,42 @@ precision.")
"~parisse/debian/dists/stable/main/source/" "~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz")) "giac_" version ".tar.gz"))
(sha256 (sha256
(base32 "19hxbx27n5zby96d4pzhxxqn7mzk29g8sxn08fi638l17lr9x2q2")))) (base32 "0wgqa2nxpv652348fxpchx5zvaj6ssc403jxwsdp5ky9pdpap2zs"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((ice-9 ftw) (list
#:modules '((ice-9 ftw)
(guix build utils) (guix build utils)
(guix build gnu-build-system)) (guix build gnu-build-system))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-bin-cp (add-after 'unpack 'patch-bin-cp
;; Some Makefiles contain hard-coded "/bin/cp". ;; Some Makefiles contain hard-coded "/bin/cp".
(lambda _ (lambda _
(substitute* (cons "micropython-1.12/xcas/Makefile" (substitute* (cons "micropython-1.12/xcas/Makefile"
(find-files "doc" "^Makefile")) (find-files "doc" "^Makefile"))
(("/bin/cp") (which "cp"))))) (("/bin/cp") (which "cp")))))
(add-after 'unpack 'disable-failing-test (add-after 'unpack 'disable-failing-test
;; FIXME: Test failing. Not sure why. ;; FIXME: Test failing. Not sure why.
(lambda _ (lambda _
(substitute* "check/Makefile.in" (substitute* "check/Makefile.in"
(("chk_fhan11") "")))) (("chk_fhan11") ""))))
(add-after 'install 'fix-doc (add-after 'install 'fix-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) ;; Most French documentation has a non-commercial license, so we
;; Most French documentation has a non-commercial ;; need to remove it.
;; license, so we need to remove it. (with-directory-excursion
(with-directory-excursion (string-append out "/share/giac/doc/fr") (string-append #$output "/share/giac/doc/fr")
(for-each delete-file-recursively (for-each delete-file-recursively
'("cascas" "casexo" "casgeo" "casrouge" "cassim" '("cascas" "casexo" "casgeo" "casrouge" "cassim"
"castor"))) "castor")))
;; Remove duplicate documentation in ;; Remove duplicate documentation in "%out/share/doc/giac/",
;; "%out/share/doc/giac/", where Xcas does not expect ;; where Xcas does not expect to find it.
;; to find it. (delete-file-recursively
(delete-file-recursively (string-append out "/share/doc/giac"))))) (string-append #$output "/share/doc/giac"))))
(add-after 'install 'remove-unnecessary-executable (add-after 'install 'remove-unnecessary-executable
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) (delete-file (string-append #$output "/bin/xcasnew")))))))
(delete-file (string-append out "/bin/xcasnew"))))))))
(inputs (inputs
;; TODO: Add libnauty, unbundle "libmicropython.a". ;; TODO: Add libnauty, unbundle "libmicropython.a".
(list ao (list ao
@ -1139,7 +1140,7 @@ features, and more.")
(define-public xtensor (define-public xtensor
(package (package
(name "xtensor") (name "xtensor")
(version "0.20.10") (version "0.24.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1147,11 +1148,11 @@ features, and more.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"1fmv2hpx610xwhxrndfsfvlbqfyk4l3gi5q5d7pa9m82kblxjj9l")) "14fpzwdq26p2fqdrmc78hny9pp09k9c53jnwlh7f8x54ikzm23c2"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
(list googletest xtl)) (list doctest googletest xtl))
(arguments (arguments
`(#:configure-flags `(#:configure-flags
'("-DBUILD_TESTS=ON") '("-DBUILD_TESTS=ON")
@ -1181,7 +1182,7 @@ xtensor provides:
(add-after 'unpack 'remove-march=native (add-after 'unpack 'remove-march=native
(lambda _ (lambda _
(substitute* "benchmark/CMakeLists.txt" (substitute* "benchmark/CMakeLists.txt"
(("-march=native") "")))) (("-march=native\"") "\""))))
(add-after 'unpack 'link-with-googlebenchmark (add-after 'unpack 'link-with-googlebenchmark
(lambda _ (lambda _
(substitute* "benchmark/CMakeLists.txt" (substitute* "benchmark/CMakeLists.txt"
@ -1348,14 +1349,14 @@ objects.")
(define-public gappa (define-public gappa
(package (package
(name "gappa") (name "gappa")
(version "1.3.5") (version "1.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gforge.inria.fr/frs/download.php/latestfile/" (uri (string-append "https://gappa.gitlabpages.inria.fr/releases/"
"2699/gappa-" version ".tar.gz")) "gappa-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0q1wdiwqj6fsbifaayb1zkp20bz8a1my81sqjsail577jmzwi07w")))) "12x42z901pr05ldmparqdi8sq9s7fxbavhzk2dbq3l6hy247dwbb"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list boost gmp mpfr)) (list boost gmp mpfr))
@ -1382,7 +1383,7 @@ filters for CGAL and it is used to certify elementary functions in CRlibm.
While Gappa is intended to be used directly, it can also act as a backend While Gappa is intended to be used directly, it can also act as a backend
prover for the Why3 software verification platform or as an automatic tactic prover for the Why3 software verification platform or as an automatic tactic
for the Coq proof assistant.") for the Coq proof assistant.")
(license (list license:gpl3+ license:cecill-c)))) ; either/or (license (list license:gpl3+ license:cecill)))) ; either/or
(define-public givaro (define-public givaro
(package (package

View file

@ -1,11 +1,11 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 by Amar Singh <nly@disroot.org> ;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in> ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2021, 2022 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Greg Hogan <code@greghogan.com> ;;; Copyright © 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
@ -297,7 +297,7 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
(define-public gnuastro (define-public gnuastro
(package (package
(name "gnuastro") (name "gnuastro")
(version "0.16") (version "0.17")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -305,19 +305,19 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
version ".tar.lz")) version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"07xr0r5dmjpnrz7ylf7k3vmjjna2jafi16lfvkqwxj9fyssmz207")))) "1gq37axs9l556pxxmnh47h088gbmp7sk3xjg59qzk2bsycg3dkgh"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--disable-static"))) '(#:configure-flags '("--disable-static")))
(inputs (inputs
`(("cfitsio" ,cfitsio) (list cfitsio
("curl" ,curl-minimal) curl-minimal
("gsl" ,gsl) gsl
("libgit2" ,libgit2) libgit2
("libjpeg" ,libjpeg-turbo) libjpeg-turbo
("libtiff" ,libtiff) libtiff
("wcslib" ,wcslib) wcslib
("zlib" ,zlib))) zlib))
(native-inputs (native-inputs
(list libtool lzip)) (list libtool lzip))
(home-page "https://www.gnu.org/software/gnuastro/") (home-page "https://www.gnu.org/software/gnuastro/")
@ -614,13 +614,13 @@ accurately in real time at any rate desired.")
(define-public python-astropy (define-public python-astropy
(package (package
(name "python-astropy") (name "python-astropy")
(version "5.0") (version "5.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "astropy" version)) (uri (pypi-uri "astropy" version))
(sha256 (sha256
(base32 "09rr9z2kn5qw34fqpwxgcwsn9m5aw6f0dd0pm232aa8k3qakw83h")) (base32 "09wh589ywjsgjvi76v2d2zqd9sri0461rrnml0b0pah5lbkcv0k3"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -826,21 +826,20 @@ of astronomical sources.")
(define-public python-pyvo (define-public python-pyvo
(package (package
(name "python-pyvo") (name "python-pyvo")
(version "1.2") (version "1.2.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyvo" version)) (uri (pypi-uri "pyvo" version))
(sha256 (sha256
(base32 "1lap703wxbyxqlbk85myirp4pkdnc6cg10xhfajfsvz5k0hm5ffw")))) (base32 "1ri5yp6903386lkn79mdcmlax7zsfrrrjbcvb91wxydcc9yasc1n"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(when tests? (when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest" "--pyargs" "pyvo" "-k" (invoke "python" "-m" "pytest" "--pyargs" "pyvo" "-k"
(string-append ; these tests use the network (string-append ; these tests use the network
"not test_access_with_string" "not test_access_with_string"
@ -1460,34 +1459,221 @@ of stand-alone functions and classes.")
(define-public python-asdf (define-public python-asdf
(package (package
(name "python-asdf") (name "python-asdf")
(version "2.7.4") (version "2.8.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "asdf" version)) (uri (pypi-uri "asdf" version))
(sha256 (sha256
(base32 "1mj52l2m8pbhiqacgjakjpvqi8kyx470yw151lcsswbq5wp0rsc6")))) (base32 "0i4vq1hsympjgb1yvn4ql0gm8j1mki9ggmj03533kmg0nbzp03yy"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; TODO: (Sharlatan-20210207T165820+0000): Tests depend on astropy, astropy ;; NOTE: (Sharlatan-20211229T201059+0000): Tests depend on astropy and
;; depends on asdf. Disable circular dependence. ;; gwcs, astropy gwcs depend on asdf. Disable circular dependence.
`(#:tests? #f)) `(#:tests? #f))
(native-inputs (native-inputs
`(("packaging" ,python-packaging) (list python-setuptools-scm
("semantic-version" ,python-semantic-version) python-semantic-version
("setuptools-scm" ,python-setuptools-scm))) python-packaging))
(inputs (propagated-inputs
`(("importlib-resources" ,python-importlib-resources) (list python-importlib-resources
("jsonschema" ,python-jsonschema) python-jsonschema
("numpy" ,python-numpy) python-jmespath
("pyyaml" ,python-pyyaml))) python-numpy
(home-page "https://github.com/asdf-format/asdf") python-pyyaml))
(synopsis "Python tools to handle ASDF files") (home-page "https://github.com/asdf-format/asdf")
(description (synopsis "Python tools to handle ASDF files")
"The Advanced Scientific Data Format (ASDF) is a next-generation (description
"The Advanced Scientific Data Format (ASDF) is a next-generation
interchange format for scientific data. This package contains the Python interchange format for scientific data. This package contains the Python
implementation of the ASDF Standard.") implementation of the ASDF Standard.")
(license license:bsd-3))) (license license:bsd-3)))
(define python-asdf-transform-schemas
(package
(name "python-asdf-transform-schemas")
(version "0.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_transform_schemas" version))
(sha256
(base32 "1gmzd81hw4ppsvzrc91wcbjpcw9hhv9gavllv7nyi7qjb54c837g"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-pytest
python-semantic-version
python-setuptools-scm))
(propagated-inputs
(list python-asdf))
(home-page "https://github.com/asdf-format/asdf-transform-schemas")
(synopsis "ASDF schemas for transforms")
(description
"This package provides ASDF schemas for validating transform tags. Users
should not need to install this directly; instead, install an implementation
package such as asdf-astropy.")
(license license:bsd-3)))
(define python-asdf-coordinates-schemas
(package
(name "python-asdf-coordinates-schemas")
(version "0.1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_coordinates_schemas" version))
(sha256
(base32 "0ahwhsz5jzljnpkfd2kvspirg823lnj5ip9sfkd9cx09z1nlz8jg"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-pytest
python-semantic-version
python-setuptools-scm))
(propagated-inputs
(list python-asdf))
(home-page "https://github.com/asdf-format/asdf-coordinates-schemas")
(synopsis "ASDF coordinates schemas")
(description "This package provides ASDF schemas for validating
coordinates tags. Users should not need to install this directly; instead,
install an implementation package such as asdf-astropy.")
(license license:bsd-3)))
(define-public python-asdf-astropy
(package
(name "python-asdf-astropy")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_astropy" version))
(sha256
(base32 "0bzgah7gskvnz6jcrzipvzixv8k2jzjkskqwxngzwp4nxgjbcvi4"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-coverage
python-h5py
python-matplotlib
python-pandas
python-pytest-astropy
python-scipy
python-semantic-version
python-setuptools-scm))
(propagated-inputs
(list python-asdf
python-asdf-coordinates-schemas
python-asdf-transform-schemas
python-astropy
python-numpy
python-packaging))
(home-page "https://github.com/astropy/asdf-astropy")
(synopsis "ASDF serialization support for astropy")
(description
"This package includes plugins that provide ASDF serialization support for
Astropy objects.")
(license license:bsd-3)))
(define python-asdf-wcs-schemas
(package
(name "python-asdf-wcs-schemas")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asdf_wcs_schemas" version))
(sha256
(base32 "0khyab9mnf2lv755as8kwhk3lqqpd3f4291ny3b9yp3ik86fzhz1"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-pytest
python-setuptools-scm
python-semantic-version))
(propagated-inputs
(list python-asdf))
(home-page "https://github.com/asdf-format/asdf-wcs-schemas")
(synopsis "ASDF WCS Schemas")
(description
"This package provides ASDF schemas for validating World Coordinate
System (WCS) tags. Users should not need to install this directly; instead,
install an implementation package such as gwcs.")
(license license:bsd-3)))
(define-public python-gwcs
(package
(name "python-gwcs")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "gwcs" version))
(sha256
(base32 "194j49m8xjjzv9pp8cnj06igz8sdxb0nphyybcc7mhigw0f0kr30"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "python" "-m" "pytest")))))))
(native-inputs
(list python-jsonschema
python-jmespath
python-pytest
python-pytest-doctestplus
python-pyyaml
python-semantic-version
python-setuptools-scm))
(propagated-inputs
(list python-asdf
python-asdf-astropy
python-asdf-wcs-schemas
python-astropy
python-numpy
python-scipy))
(home-page "https://gwcs.readthedocs.io/en/latest/")
(synopsis "Generalized World Coordinate System")
(description "Generalized World Coordinate System (GWCS) is an Astropy
affiliated package providing tools for managing the World Coordinate System of
astronomical data.
GWCS takes a general approach to the problem of expressing transformations
between pixel and world coordinates. It supports a data model which includes
the entire transformation pipeline from input coordinates (detector by
default) to world coordinates.")
(license license:bsd-3)))
(define-public python-astroalign (define-public python-astroalign
(package (package

View file

@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@ -254,6 +254,45 @@ softsynth library that can be use with other applications.")
(sha256 (sha256
(base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0")))) (base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
;; TODO: Move this to a snippet/patch or remove with the upgrade to 1.0.
(if (or (target-riscv64?)
(target-powerpc?))
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda* (#:key inputs #:allow-other-keys)
(let ((patch-file
#$(local-file
(search-patch
"webrtc-audio-processing-big-endian.patch"))))
(invoke "patch" "--force" "-p1" "-i" patch-file)
(substitute* "webrtc/typedefs.h"
(("defined\\(__aarch64__\\)" all)
(string-append
;; powerpc-linux
"(defined(__PPC__) && __SIZEOF_SIZE_T__ == 4)\n"
"#define WEBRTC_ARCH_32_BITS\n"
"#define WEBRTC_ARCH_BIG_ENDIAN\n"
;; powerpc64-linux
"#elif (defined(__PPC64__) && defined(_BIG_ENDIAN))\n"
"#define WEBRTC_ARCH_64_BITS\n"
"#define WEBRTC_ARCH_BIG_ENDIAN\n"
;; aarch64-linux
"#elif " all
;; riscv64-linux
" || (defined(__riscv) && __riscv_xlen == 64)"
;; powerpc64le-linux
" || (defined(__PPC64__) && defined(_LITTLE_ENDIAN))"))))))))
'()))
(native-inputs
(if (or (target-riscv64?)
(target-powerpc?))
(list
(local-file (search-patch "webrtc-audio-processing-big-endian.patch"))
patch)
'()))
(synopsis "WebRTC's Audio Processing Library") (synopsis "WebRTC's Audio Processing Library")
(description "WebRTC-Audio-Processing library based on Google's (description "WebRTC-Audio-Processing library based on Google's
implementation of WebRTC.") implementation of WebRTC.")
@ -383,13 +422,13 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro
(inputs (inputs
`(("alsa" ,alsa-lib) `(("alsa" ,alsa-lib)
("flac" ,flac) ("flac" ,flac)
("mpg123" ,mpg123)
("portaudio" ,portaudio) ("portaudio" ,portaudio)
("pulseaudio" ,pulseaudio) ("pulseaudio" ,pulseaudio)
("sdl2" ,sdl2) ("sdl2" ,sdl2)
("sndfile" ,libsndfile) ("sndfile" ,libsndfile)))
("vorbis" ,libvorbis) (propagated-inputs
("zlib" ,zlib))) ;; In Requires.private
(list libogg libvorbis mpg123 zlib))
(synopsis "Audio tracking library") (synopsis "Audio tracking library")
(description "LibOpenMPT is a cross-platform C++ and C module playback (description "LibOpenMPT is a cross-platform C++ and C module playback
library. It is based on the player code of the Open ModPlug Tracker project.") library. It is based on the player code of the Open ModPlug Tracker project.")
@ -728,14 +767,17 @@ engineers, musicians, soundtrack editors and composers.")
(version "3.1.3") (version "3.1.3")
(source (source
(origin (origin
(method git-fetch) ;; If built from the release tag, Audacity will describe itself
(uri (git-reference ;; as an "Alpha test version" and suggest to users that they use
(url "https://github.com/audacity/audacity") ;; the "latest stable released version".
(commit (string-append "Audacity-" version)))) (method url-fetch)
(file-name (git-file-name name version)) (uri (string-append "https://github.com/audacity/audacity/releases/download/"
"Audacity-" version "/audacity-" version
"-source.tar.gz"))
(sha256 (sha256
(base32 (base32
"1689q9apbjf9nnda62shb8j7hm4hxd47mhk4l5h3c728mjjkilmi")) "189agx11361k9j958s6q5bngnnfx0rwaf0dwbjxy6fwvsb1wv3px"))
(patches (search-patches "audacity-ffmpeg-fallback.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Remove bundled libraries. ;; Remove bundled libraries.
@ -763,10 +805,10 @@ engineers, musicians, soundtrack editors and composers.")
alsa-lib alsa-lib
jack-1 jack-1
expat expat
ffmpeg
lame lame
linux-libre-headers linux-libre-headers
flac flac
ffmpeg
libid3tag libid3tag
libjpeg-turbo libjpeg-turbo
libmad libmad
@ -4080,6 +4122,40 @@ with support for HD extensions.")
(home-page "https://github.com/foo86/dcadec") (home-page "https://github.com/foo86/dcadec")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public drc
(package
(name "drc")
(version "3.2.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/drc-fir/drc-fir/"
version "/drc-" version ".tar.gz"))
(sha256
(base32
"08ljj4776pjx119zjmfqa8w56bf7x0m7spmi27yk1m455bmiglrj"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #false ;there are none
#:make-flags
#~(list (string-append "INSTALL_PREFIX=" #$output)
"-C" "source")
#:phases
'(modify-phases %standard-phases
(delete 'configure))))
(inputs (list fftw))
(home-page "http://drc-fir.sourceforge.net/")
(synopsis "Digital room correction")
(description
"DRC is a program used to generate correction filters for acoustic
compensation of HiFi and audio systems in general, including listening room
compensation. DRC generates just the FIR correction filters, which can be
used with a real time or offline convolver to provide real time or offline
correction. DRC doesn't provide convolution features, and provides only some
simplified, although really accurate, measuring tools.")
(license license:gpl2+)))
(define-public bs1770gain (define-public bs1770gain
(package (package
(name "bs1770gain") (name "bs1770gain")

View file

@ -40,7 +40,13 @@
(uri (string-append "mirror://gnu/autogen/rel" version (uri (string-append "mirror://gnu/autogen/rel" version
"/autogen-" version ".tar.xz")) "/autogen-" version ".tar.xz"))
(sha256 (sha256
(base32 "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq")))) (base32 "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq"))
(modules '((guix build utils)))
(snippet
;; Address '-Werror=format-overflow' error.
'(substitute* "getdefs/getdefs.c"
(("def_bf\\[[[:space:]]*MAXNAMELEN[[:space:]]*\\]")
"def_bf[MAXNAMELEN + 10]")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (list pkg-config which)) (native-inputs (list pkg-config which))
(inputs (list guile-2.2 perl)) ; for doc generator mdoc (inputs (list guile-2.2 perl)) ; for doc generator mdoc

View file

@ -1,7 +1,13 @@
" This appends all of the vim plugins to the end of Vim's runtimepath. " This appends all of the vim plugins to the end of Vim's runtimepath.
for directory in ["/run/current-system/profile", $HOME . "/.guix-profile", $GUIX_PROFILE, $GUIX_ENVIRONMENT] for directory in ["/run/current-system/profile", $HOME . "/.guix-profile", $HOME ."/.guix-home/profile", $GUIX_PROFILE, $GUIX_ENVIRONMENT]
let vimplugins = directory . "/share/vim/vimfiles" let vimplugins = directory . "/share/vim/vimfiles"
if isdirectory(vimplugins) if isdirectory(vimplugins)
let &rtp = join([&rtp,vimplugins], ',') let &rtp = join([&rtp,vimplugins], ',')
endif endif
endfor endfor
" Unconditionally add */after directories last, as intended by upstream
" TODO: Remove duplicate */after directories
for directory in [$VIM . "/vimfiles", $HOME ."/.vim"]
let vimplugins = directory . "/after"
let &rtp = join([&rtp,vimplugins], ',')
endfor

View file

@ -5437,6 +5437,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_EMU10K1_SEQ is not set # CONFIG_SND_EMU10K1_SEQ is not set
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set

View file

@ -938,7 +938,7 @@ CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Executable file formats / Emulations # Executable file formats / Emulations
@ -8495,13 +8495,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

@ -454,7 +454,7 @@ CONFIG_FREEZER=y
# #
# Processor type and features # Processor type and features
# #
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_FAST_FEATURE_TESTS=y
@ -928,7 +928,7 @@ CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Executable file formats / Emulations # Executable file formats / Emulations
@ -5958,6 +5958,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_EMU10K1_SEQ is not set # CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
@ -8332,13 +8334,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

@ -5598,6 +5598,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set # CONFIG_SND_FM801 is not set

View file

@ -5331,6 +5331,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set # CONFIG_SND_FM801 is not set

View file

@ -713,7 +713,7 @@ CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Binary Emulations # Binary Emulations
@ -737,13 +737,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

@ -273,7 +273,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
# #
# Processor type and features # Processor type and features
# #
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y CONFIG_X86_X2APIC=y
@ -684,7 +684,7 @@ CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_RAPIDIO_RXS_GEN3=m CONFIG_RAPIDIO_RXS_GEN3=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Binary Emulations # Binary Emulations
@ -714,13 +714,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -6173,6 +6167,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m CONFIG_SND_FM801=m

View file

@ -825,7 +825,7 @@ CONFIG_RAPIDIO_TSI57X=m
CONFIG_RAPIDIO_CPS_XX=m CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Executable file formats / Emulations # Executable file formats / Emulations
@ -7679,13 +7679,7 @@ CONFIG_DMI_SYSFS=m
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

@ -384,7 +384,7 @@ CONFIG_FREEZER=y
# #
# Processor type and features # Processor type and features
# #
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y CONFIG_X86_X2APIC=y
@ -795,7 +795,7 @@ CONFIG_RAPIDIO_TSI57X=m
CONFIG_RAPIDIO_CPS_XX=m CONFIG_RAPIDIO_CPS_XX=m
CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_TSI568=m
CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_CPS_GEN2=m
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# #
# Executable file formats / Emulations # Executable file formats / Emulations
@ -5494,6 +5494,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m CONFIG_SND_FM801=m
@ -7461,13 +7463,7 @@ CONFIG_DMI_SYSFS=m
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support

View file

@ -409,7 +409,7 @@ CONFIG_FREEZER=y
# #
# Processor type and features # Processor type and features
# #
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_FAST_FEATURE_TESTS=y
@ -5733,6 +5733,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m CONFIG_SND_FM801=m

View file

@ -9101,7 +9101,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
CONFIG_DLM_DEBUG=y CONFIG_DLM_DEBUG=y
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y CONFIG_IO_WQ=y
# end of File systems # end of File systems

View file

@ -9221,7 +9221,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
CONFIG_DLM_DEBUG=y CONFIG_DLM_DEBUG=y
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y CONFIG_IO_WQ=y
# end of File systems # end of File systems

View file

@ -292,7 +292,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
# #
# Processor type and features # Processor type and features
# #
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_MPPARSE=y CONFIG_X86_MPPARSE=y
@ -650,7 +650,7 @@ CONFIG_ALIX=y
CONFIG_NET5501=y CONFIG_NET5501=y
CONFIG_GEOS=y CONFIG_GEOS=y
CONFIG_AMD_NB=y CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.) # end of Bus options (PCI etc.)
# #
@ -674,13 +674,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -6782,6 +6776,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m CONFIG_SND_FM801=m
@ -9899,7 +9895,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set # CONFIG_DLM_DEBUG is not set
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y CONFIG_IO_WQ=y
# end of File systems # end of File systems

View file

@ -308,7 +308,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
# #
# Processor type and features # Processor type and features
# #
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y CONFIG_X86_X2APIC=y
@ -643,7 +643,7 @@ CONFIG_MMCONF_FAM10H=y
# CONFIG_ISA_BUS is not set # CONFIG_ISA_BUS is not set
CONFIG_ISA_DMA_API=y CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.) # end of Bus options (PCI etc.)
# #
@ -670,13 +670,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -6671,6 +6665,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m CONFIG_SND_FM801=m
@ -9868,7 +9864,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set # CONFIG_DLM_DEBUG is not set
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y CONFIG_IO_WQ=y
# end of File systems # end of File systems

View file

@ -9364,7 +9364,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
CONFIG_DLM_DEBUG=y CONFIG_DLM_DEBUG=y
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y CONFIG_IO_WQ=y
# end of File systems # end of File systems

View file

@ -9728,7 +9728,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
CONFIG_DLM_DEBUG=y CONFIG_DLM_DEBUG=y
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y CONFIG_IO_WQ=y
# end of File systems # end of File systems

View file

@ -992,7 +992,7 @@ CONFIG_PAGE_IDLE_FLAG=y
CONFIG_IDLE_PAGE_TRACKING=y CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_ZONE_DMA_SET=y CONFIG_ARCH_HAS_ZONE_DMA_SET=y
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_HMM_MIRROR=y CONFIG_HMM_MIRROR=y
CONFIG_VMAP_PFN=y CONFIG_VMAP_PFN=y
# CONFIG_PERCPU_STATS is not set # CONFIG_PERCPU_STATS is not set
@ -2249,14 +2249,8 @@ CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_SYSFB=y CONFIG_SYSFB=y
CONFIG_SYSFB_SIMPLEFB=y # CONFIG_SYSFB_SIMPLEFB is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=m
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -6731,7 +6725,7 @@ CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_HYPERV=m CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=y CONFIG_FB_SIMPLE=m
CONFIG_FB_SSD1307=m CONFIG_FB_SSD1307=m
CONFIG_FB_SM712=m CONFIG_FB_SM712=m
# end of Frame buffer Devices # end of Frame buffer Devices
@ -6942,6 +6936,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m CONFIG_SND_FM801=m
@ -10163,7 +10159,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set # CONFIG_DLM_DEBUG is not set
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y CONFIG_IO_WQ=y
# end of File systems # end of File systems

View file

@ -1025,7 +1025,7 @@ CONFIG_IDLE_PAGE_TRACKING=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_PTE_DEVMAP=y CONFIG_ARCH_HAS_PTE_DEVMAP=y
CONFIG_ARCH_HAS_ZONE_DMA_SET=y CONFIG_ARCH_HAS_ZONE_DMA_SET=y
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_ZONE_DMA32=y CONFIG_ZONE_DMA32=y
CONFIG_ZONE_DEVICE=y CONFIG_ZONE_DEVICE=y
CONFIG_DEV_PAGEMAP_OPS=y CONFIG_DEV_PAGEMAP_OPS=y
@ -2282,14 +2282,8 @@ CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_SYSFB=y CONFIG_SYSFB=y
CONFIG_SYSFB_SIMPLEFB=y # CONFIG_SYSFB_SIMPLEFB is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=m
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -6688,7 +6682,7 @@ CONFIG_FB_MB862XX=m
CONFIG_FB_MB862XX_PCI_GDC=y CONFIG_FB_MB862XX_PCI_GDC=y
CONFIG_FB_MB862XX_I2C=y CONFIG_FB_MB862XX_I2C=y
CONFIG_FB_HYPERV=m CONFIG_FB_HYPERV=m
CONFIG_FB_SIMPLE=y CONFIG_FB_SIMPLE=m
CONFIG_FB_SSD1307=m CONFIG_FB_SSD1307=m
CONFIG_FB_SM712=m CONFIG_FB_SM712=m
# end of Frame buffer Devices # end of Frame buffer Devices
@ -6856,6 +6850,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m CONFIG_SND_FM801=m
@ -10202,7 +10198,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set # CONFIG_DLM_DEBUG is not set
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
CONFIG_IO_WQ=y CONFIG_IO_WQ=y
# end of File systems # end of File systems

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -6045,6 +6045,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set # CONFIG_SND_FM801 is not set
@ -8695,7 +8697,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
CONFIG_DLM_DEBUG=y CONFIG_DLM_DEBUG=y
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
# end of File systems # end of File systems
# #

View file

@ -5870,6 +5870,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
# CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set # CONFIG_SND_ENS1371 is not set
# CONFIG_SND_FM801 is not set # CONFIG_SND_FM801 is not set
@ -8642,7 +8644,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
CONFIG_DLM_DEBUG=y CONFIG_DLM_DEBUG=y
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
# end of File systems # end of File systems
# #

View file

@ -648,7 +648,7 @@ CONFIG_ALIX=y
CONFIG_NET5501=y CONFIG_NET5501=y
CONFIG_GEOS=y CONFIG_GEOS=y
CONFIG_AMD_NB=y CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.) # end of Bus options (PCI etc.)
# #
@ -672,13 +672,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -9581,7 +9575,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set # CONFIG_DLM_DEBUG is not set
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
# end of File systems # end of File systems
# #

View file

@ -294,7 +294,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
# #
# Processor type and features # Processor type and features
# #
# CONFIG_ZONE_DMA is not set CONFIG_ZONE_DMA=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y CONFIG_X86_X2APIC=y
@ -632,7 +632,7 @@ CONFIG_MMCONF_FAM10H=y
# CONFIG_ISA_BUS is not set # CONFIG_ISA_BUS is not set
CONFIG_ISA_DMA_API=y CONFIG_ISA_DMA_API=y
CONFIG_AMD_NB=y CONFIG_AMD_NB=y
CONFIG_X86_SYSFB=y # CONFIG_X86_SYSFB is not set
# end of Bus options (PCI etc.) # end of Bus options (PCI etc.)
# #
@ -659,13 +659,7 @@ CONFIG_ISCSI_IBFT_FIND=y
CONFIG_ISCSI_IBFT=m CONFIG_ISCSI_IBFT=m
CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS=m
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set # CONFIG_FW_CFG_SYSFS_CMDLINE is not set
CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GOOGLE_SMI is not set
CONFIG_GOOGLE_COREBOOT_TABLE=y
# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set
CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT=m
# CONFIG_GOOGLE_MEMCONSOLE_COREBOOT is not set
# CONFIG_GOOGLE_VPD is not set
# #
# EFI (Extensible Firmware Interface) Support # EFI (Extensible Firmware Interface) Support
@ -6469,6 +6463,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_ENS1370=m CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m CONFIG_SND_ENS1371=m
CONFIG_SND_FM801=m CONFIG_SND_FM801=m
@ -9500,7 +9496,8 @@ CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m CONFIG_NLS_UTF8=m
CONFIG_DLM=m CONFIG_DLM=m
# CONFIG_DLM_DEBUG is not set # CONFIG_DLM_DEBUG is not set
# CONFIG_UNICODE is not set CONFIG_UNICODE=y
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
# end of File systems # end of File systems
# #

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
@ -42,6 +42,7 @@
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
@ -50,6 +51,7 @@
#:use-module (guix build-system go) #:use-module (guix build-system go)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages acl) #:use-module (gnu packages acl)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
@ -81,13 +83,16 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages rsync) #:use-module (gnu packages rsync)
#:use-module (gnu packages ruby) #:use-module (gnu packages ruby)
#:use-module (gnu packages serialization) #:use-module (gnu packages serialization)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages time)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages valgrind) #:use-module (gnu packages valgrind)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml))
@ -746,8 +751,8 @@ detection, and lossless compression.")
supports compression and authenticated encryption. The main goal of Borg is to supports compression and authenticated encryption. The main goal of Borg is to
provide an efficient and secure way to backup data. The data deduplication provide an efficient and secure way to backup data. The data deduplication
technique used makes Borg suitable for daily backups since only changes are technique used makes Borg suitable for daily backups since only changes are
stored. The authenticated encryption technique makes it suitable for backups stored. The authenticated encryption technique makes it suitable for
to not fully trusted targets. Borg is a fork of Attic.") storing backups on untrusted computers.")
(home-page "https://www.borgbackup.org/") (home-page "https://www.borgbackup.org/")
(license license:bsd-3))) (license license:bsd-3)))
@ -1267,3 +1272,63 @@ and workstations. Protect your files with client-side encryption. Backup
your databases too. Monitor it all with integrated third-party services. your databases too. Monitor it all with integrated third-party services.
borgmatic is powered by borg.") borgmatic is powered by borg.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public vorta
(package
(name "vorta")
(version "0.8.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "vorta" version))
(sha256
(base32
"0674crxsmf1gwiacpi9ixypgz685fyzr5y3f9sd768b0bmh7ilsn"))))
(build-system python-build-system)
(arguments
(list
#:imported-modules `((guix build qt-utils)
(guix build cmake-build-system)
(guix build qt-build-system)
,@%python-build-system-modules)
#:modules '((guix build utils)
(guix build python-build-system)
((guix build qt-build-system) #:prefix qt:))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-borg-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/vorta/borg/borg_job.py"
(("which\\('borg'\\)")
(string-append "which('" #$(this-package-input "borg")
"/bin/borg')")))))
;; XXX This phase tries to write to $HOME
(add-before 'sanity-check 'set-HOME
(lambda _
(setenv "HOME" "/tmp")))
;; Otherwise, the user interface's icons will be missing.
(add-after 'wrap 'qt-wrap
(assoc-ref qt:%standard-phases 'qt-wrap)))))
(native-inputs
(list python-pytest-mock
python-pytest-qt
python-pytest-runner
python-setuptools-git))
(inputs
(list borg
python-appdirs
python-dateutil
python-keyring
python-paramiko
python-peewee
python-psutil
python-pyqt-without-qtwebkit
python-secretstorage
;; This is included so that the qt-wrap phase picks it up.
qtsvg))
(home-page "https://github.com/borgbase/vorta")
(synopsis "Graphical backup client based on BorgBackup")
(description "Vorta is a graphical backup client based on the Borg backup
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+)))

68
gnu/packages/barrier.scm Normal file
View file

@ -0,0 +1,68 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Mathieu Othacehe <othacehe@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 packages barrier)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages avahi)
#:use-module (gnu packages check)
#:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages tls)
#:use-module (gnu packages xorg))
(define-public barrier
(package
(name "barrier")
(version "2.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/debauchee/barrier")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "10xk9szxxnqgfym53mcd9hqj1cw2ipncmiixw3i3ajlj1vn88qh1"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
(list "-DBARRIER_USE_EXTERNAL_GTEST=ON")
#:tests? #f)) ;tests require a running x server
(native-inputs
(list googletest pkg-config))
(inputs
(list avahi curl gulrak-filesystem libx11 libxtst openssl qtbase-5))
(synopsis "Keyboard Video Mouse switch software")
(description "@code{Barrier} is software that mimics the functionality of
a KVM switch, which historically would allow you to use a single keyboard and
mouse to control multiple computers by physically turning a dial on the box to
switch the machine you're controlling at any given moment. Barrier does this
in software, allowing you to tell it which machine to control by moving your
mouse to the edge of the screen, or by using a keypress to switch focus to a
different system.")
(home-page "https://github.com/debauchee/barrier")
(license license:gpl2)))

View file

@ -13,7 +13,7 @@
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2019, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> ;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net> ;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
@ -46,6 +46,7 @@
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages ed) #:use-module (gnu packages ed)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
@ -84,14 +85,14 @@
(define-public hello (define-public hello
(package (package
(name "hello") (name "hello")
(version "2.11") (version "2.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/hello/hello-" version (uri (string-append "mirror://gnu/hello/hello-" version
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1g84a3hqs4pgx3yzs99cysv3iq440ncdw77bf03fsi1w5mby174c")))) "1ayhp9v4m4rdhjmnl2bq3cibrbqqkgjbl3s7yk2nhlh8vj3ay16g"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Hello, GNU world: An example GNU package") (synopsis "Hello, GNU world: An example GNU package")
(description (description
@ -1170,7 +1171,8 @@ test environments.")
(define-public glibc-locales (define-public glibc-locales
(make-glibc-locales glibc)) (make-glibc-locales glibc))
(define-public glibc-utf8-locales (define-public glibc-utf8-locales
(make-glibc-utf8-locales glibc)) (hidden-package
(make-glibc-utf8-locales glibc)))
;; Packages provided to ease use of binaries linked against the previous libc. ;; Packages provided to ease use of binaries linked against the previous libc.
(define-public glibc-locales-2.29 (define-public glibc-locales-2.29

View file

@ -8,7 +8,7 @@
;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 malte Frank Gerdes <malte.f.gerdes@gmail.com> ;;; Copyright © 2020 malte Frank Gerdes <malte.f.gerdes@gmail.com>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Greg Hogan <code@greghogan.com> ;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
@ -31,22 +31,33 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages c)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #: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 linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mpi) #:use-module (gnu packages mpi)
#:use-module (gnu packages opencl) #:use-module (gnu packages opencl)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-science) #:use-module (gnu packages python-science)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages xml)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
(define-public fio (define-public fio
@ -383,3 +394,178 @@ and options. With careful benchmarking, different hardware can be compared.")
devices. It only measures the peak metrics that can be achieved using devices. It only measures the peak metrics that can be achieved using
vector operations and does not represent a real-world use case.") vector operations and does not represent a real-world use case.")
(license license:unlicense)))) (license license:unlicense))))
(define-public kdiskmark
(package
(name "kdiskmark")
(version "2.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/JonMagon/KDiskMark")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1l4sw05yx70pcnaa64arjc414mgvyz05pn3gz9nc9hga8v2d3rzn"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags
;; Drop runtime dependency on KDE's KFAuth.
#~(list "-DPERFORM_PAGECACHE_CLEARING_USING_KF5AUTH=no")
#:tests? #f ;no test suite
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/benchmark.cpp"
(("\"fio\"")
(format #f "~s" (search-input-file inputs "bin/fio")))))))))
(native-inputs (list extra-cmake-modules qttools))
(inputs (list fio qtbase-5))
(home-page "https://github.com/JonMagon/KDiskMark")
(synopsis "Simple disk benchmark tool")
(description "KDiskMark is an HDD and SSD benchmark tool. KDiskMark
abstracts away the complexity of the Flexible I/O Tester (@command{fio})
command via a convenient graphical user interface (GUI) and handles its output
to provide an easy to view and interpret benchmark result. The application is
written in C++ with Qt and doesn't have any runtime KDE dependencies. Among
its features are:
@itemize
@item Configurable block size, queues, and threads count for each test
@item Many languages support
@item Report generation.
@end itemize")
(license license:gpl3+)))
(define-public sysbench
(package
(name "sysbench")
(version "1.0.20")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/akopytov/sysbench")
(commit version)))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet '(begin
;; Ensure no bundled libraries get used.
(delete-file-recursively "third_party")
(substitute* "configure.ac"
(("^third_party/.*")
""))
(substitute* "Makefile.am"
((".*(LUAJIT|CK)_DIR =.*")
""))))
(sha256
(base32
"1sanvl2a52ff4shj62nw395zzgdgywplqvwip74ky8q7s6qjf5qy"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags #~(list "--with-pgsql"
;; Explicitly specify the library directory of
;; MySQL, otherwise `mysql_config` gets
;; consulted and adds unnecessary link
;; directives.
(string-append "--with-mysql-libs="
#$(this-package-input "mysql")
"/lib")
"--with-system-luajit"
"--with-system-ck"
;; If we let the build tool select the most
;; optimal compiler architecture flag, the
;; build is not reproducible.
"--without-gcc-arch")
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-test-runner
(lambda _
(substitute* "tests/test_run.sh"
(("/bin/bash")
(which "bash"))
;; Do not attempt to invoke the cram command via
;; Python, as on Guix it is a shell script (wrapper).
(("\\$\\(command -v cram\\)")
"-m cram"))))
(add-after 'unpack 'disable-test-installation
(lambda _
(substitute* "tests/Makefile.am"
(("install-data-local")
"do-not-install-data-local")
(("^test_SCRIPTS.*")
""))))
(add-after 'unpack 'fix-docbook
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(substitute* "m4/ax_check_docbook.m4"
(("DOCBOOK_ROOT=.*" all)
(string-append
all "XML_CATALOG="
(search-input-file (or native-inputs inputs)
"xml/dtd/docbook/catalog.xml")
"\n")))
(substitute* "doc/xsl/xhtml.xsl"
(("http://docbook.sourceforge.net/release/xsl\
/current/xhtml/docbook.xsl")
(search-input-file
(or native-inputs inputs)
(string-append "xml/xsl/docbook-xsl-"
#$(package-version docbook-xsl)
"/xhtml/docbook.xsl"))))
(substitute* "doc/xsl/xhtml-chunk.xsl"
(("http://docbook.sourceforge.net/release/xsl\
/current/xhtml/chunk.xsl")
(search-input-file
(or native-inputs inputs)
(string-append "xml/xsl/docbook-xsl-"
#$(package-version docbook-xsl)
"/xhtml/chunk.xsl")))))))))
(native-inputs (list autoconf
automake
libtool
pkg-config
python-cram
python-wrapper
which
;; For documentation
libxml2 ;for XML_CATALOG_FILES
libxslt
docbook-xml
docbook-xsl))
(inputs (list ck libaio luajit mysql postgresql))
(home-page "https://github.com/akopytov/sysbench/")
(synopsis "Scriptable database and system performance benchmark")
(description "@command{sysbench} is a scriptable multi-threaded benchmark
tool based on LuaJIT. It is most frequently used for database benchmarks, but
can also be used to create arbitrarily complex workloads that do not involve a
database server. @command{sysbench} comes with the following bundled
benchmarks:
@table @file
@item oltp_*.lua
A collection of OLTP-like database benchmarks.
@item fileio
A filesystem-level benchmark.
@item cpu
A simple CPU benchmark.
@item memory
A memory access benchmark.
@item threads
A thread-based scheduler benchmark.
@item mutex
A POSIX mutex benchmark.
@end table
It includes features such as:
@itemize
@item
Extensive statistics about rate and latency is available, including latency
percentiles and histograms.
@item
Low overhead even with thousands of concurrent threads. @command{sysbench} is
capable of generating and tracking hundreds of millions of events per second.
@item
New benchmarks can be easily created by implementing pre-defined hooks in
user-provided Lua scripts.
@item
@end itemize")
(license license:gpl2+)))

View file

@ -737,6 +737,44 @@ as provided by UCSC (hg38, Dec. 2013) and stored in Biostrings objects.")
"This package exposes an annotation database generated from Ensembl.") "This package exposes an annotation database generated from Ensembl.")
(license license:artistic2.0))) (license license:artistic2.0)))
(define-public r-ensdb-hsapiens-v86
(package
(name "r-ensdb-hsapiens-v86")
(version "2.99.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "EnsDb.Hsapiens.v86" version 'annotation))
(sha256
(base32 "1gp7xrzddpvmh2vrcp571wyy00skxgxfl39ksj4h0hm1qay0fb2m"))))
(properties `((upstream-name . "EnsDb.Hsapiens.v86")))
(build-system r-build-system)
(propagated-inputs (list r-ensembldb))
(home-page "https://bioconductor.org/packages/EnsDb.Hsapiens.v86")
(synopsis "Ensembl based annotation package")
(description "This package exposes an annotation database generated from
Ensembl.")
(license license:artistic2.0)))
(define-public r-ensdb-mmusculus-v79
(package
(name "r-ensdb-mmusculus-v79")
(version "2.99.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "EnsDb.Mmusculus.v79" version 'annotation))
(sha256
(base32 "1zpmq7v55if6q9r0h883q9k8l70ym20b01m9hxf121wb256rl9f7"))))
(properties `((upstream-name . "EnsDb.Mmusculus.v79")))
(build-system r-build-system)
(propagated-inputs (list r-ensembldb))
(home-page "https://bioconductor.org/packages/EnsDb.Mmusculus.v79")
(synopsis "Ensembl based annotation package")
(description "This package exposes an annotation database generated from
Ensembl.")
(license license:artistic2.0)))
(define-public r-txdb-dmelanogaster-ucsc-dm6-ensgene (define-public r-txdb-dmelanogaster-ucsc-dm6-ensgene
(package (package
(name "r-txdb-dmelanogaster-ucsc-dm6-ensgene") (name "r-txdb-dmelanogaster-ucsc-dm6-ensgene")
@ -2966,6 +3004,44 @@ testing. The package also provides functions for the visualization and
exploration of the results.") exploration of the results.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public r-diffcyt
(package
(name "r-diffcyt")
(version "1.14.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "diffcyt" version))
(sha256
(base32 "1yc9mlc0ifb7h6rzskq97bsdq1kwdp5qq9l9mciwyxf6yjkmv5ni"))))
(properties `((upstream-name . "diffcyt")))
(build-system r-build-system)
(propagated-inputs
(list r-circlize
r-complexheatmap
r-dplyr
r-edger
r-flowcore
r-flowsom
r-limma
r-lme4
r-magrittr
r-multcomp
r-reshape2
r-s4vectors
r-summarizedexperiment
r-tidyr))
(native-inputs (list r-knitr))
(home-page "https://github.com/lmweber/diffcyt")
(synopsis "Differential discovery in high-dimensional cytometry")
(description
"This package provides statistical methods for differential discovery
analyses in high-dimensional cytometry data (including flow cytometry, mass
cytometry or CyTOF, and oligonucleotide-tagged cytometry), based on a
combination of high-resolution clustering and empirical Bayes moderated tests
adapted from transcriptomics.")
(license license:expat)))
(define-public r-dirichletmultinomial (define-public r-dirichletmultinomial
(package (package
(name "r-dirichletmultinomial") (name "r-dirichletmultinomial")
@ -4349,6 +4425,43 @@ differential expression analysis, RNAseq data and related problems.")
;; Any version of the LGPL ;; Any version of the LGPL
(license license:lgpl3+))) (license license:lgpl3+)))
(define-public r-scannotatr
(package
(name "r-scannotatr")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "scAnnotatR" version))
(sha256
(base32 "08jq04ckjw8a5y753almc5bl8vnn4j6qp2zb7bb9w3ql3ddy7b21"))))
(properties `((upstream-name . "scAnnotatR")))
(build-system r-build-system)
(propagated-inputs
(list r-annotationhub
r-ape
r-caret
r-data-tree
r-dplyr
r-e1071
r-ggplot2
r-kernlab
r-proc
r-rocr
r-seurat
r-singlecellexperiment
r-summarizedexperiment))
(native-inputs (list r-knitr))
(home-page "https://github.com/grisslab/scAnnotatR")
(synopsis "Pretrained models for prediction on single cell RNA-sequencing data")
(description
"This package comprises a set of pretrained machine learning models to
predict basic immune cell types. This enables to quickly get a first
annotation of the cell types present in the dataset without requiring prior
knowledge. The package also lets you train using own models to predict new
cell types based on specific research needs.")
(license license:expat)))
(define-public r-scdblfinder (define-public r-scdblfinder
(package (package
(name "r-scdblfinder") (name "r-scdblfinder")

View file

@ -4,8 +4,8 @@
;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2020, 2021 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2020, 2021 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com> ;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
@ -2218,7 +2218,7 @@ well as many of the command line options.")
(define-public bwa-meth (define-public bwa-meth
(package (package
(name "bwa-meth") (name "bwa-meth")
(version "0.2.2") (version "0.2.3")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2227,7 +2227,7 @@ well as many of the command line options.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"17j31i7zws5j7mhsq9x3qgkxly6mlmrgwhfq0qbflgxrmx04yaiz")))) "0c695lkrr0996zwkibl7324wg2vxmn6522sz30xv4a9gaf0lnbh3"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -2238,8 +2238,7 @@ well as many of the command line options.")
(("bwa (mem|index)" _ command) (("bwa (mem|index)" _ command)
(string-append (which "bwa") " " command)) (string-append (which "bwa") " " command))
;; There's an ill-advised check for "samtools" on PATH. ;; There's an ill-advised check for "samtools" on PATH.
(("^checkX.*") "")) (("^checkX.*") "")))))))
#t)))))
(inputs (inputs
(list bwa)) (list bwa))
(native-inputs (native-inputs
@ -3340,8 +3339,8 @@ data and settings.")
texlive-hyperref texlive-hyperref
texlive-ms texlive-ms
texlive-latex-natbib texlive-latex-natbib
texlive-bibtex ; style files used by natbib texlive-bibtex ;style files used by natbib
texlive-pgf ; tikz texlive-pgf ;tikz
texlive-latex-verbatimbox))) texlive-latex-verbatimbox)))
("imagemagick" ,imagemagick))) ("imagemagick" ,imagemagick)))
(home-page "https://dorina.mdc-berlin.de/public/rajewsky/discrover/") (home-page "https://dorina.mdc-berlin.de/public/rajewsky/discrover/")
@ -10895,6 +10894,9 @@ once. This package provides tools to perform Drop-seq analyses.")
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif"))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
(add-before 'check 'set-timezone (add-before 'check 'set-timezone
;; The readr package is picky about timezones. ;; The readr package is picky about timezones.
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -10969,7 +10971,10 @@ expression report comparing samples in an easily configurable manner.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif")))))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(inputs (inputs
(list grep (list grep
coreutils coreutils
@ -11055,6 +11060,9 @@ in an easily configurable manner.")
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif"))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
(add-before 'check 'set-timezone (add-before 'check 'set-timezone
;; The readr package is picky about timezones. ;; The readr package is picky about timezones.
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -11123,7 +11131,10 @@ methylation and segmentation.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif")))))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(native-inputs (native-inputs
(list automake autoconf)) (list automake autoconf))
(inputs (inputs
@ -11197,7 +11208,10 @@ based methods.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'bootstrap 'autoreconf (add-before 'bootstrap 'autoreconf
(lambda _ (lambda _
(invoke "autoreconf" "-vif")))))) (invoke "autoreconf" "-vif")))
(add-before 'configure 'set-PYTHONPATH
(lambda _
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
(native-inputs (native-inputs
(list automake autoconf)) (list automake autoconf))
(inputs (inputs
@ -11395,7 +11409,7 @@ version does count multisplits.")
(define-public minimap2 (define-public minimap2
(package (package
(name "minimap2") (name "minimap2")
(version "2.23") (version "2.24")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -11404,7 +11418,7 @@ version does count multisplits.")
"minimap2-" version ".tar.bz2")) "minimap2-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"00ngbz1swcgxk5apx9dz5xkh1z8abdpysx5lc7w8fbrfxp41w0j0")))) "05d6h2c1h95s5vblf1fijn9g0r4g69nsvkabji42j642y0gw7m4x"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; there are none `(#:tests? #f ; there are none
@ -11681,6 +11695,49 @@ including:
;; the GPL, but the license headers include the "or later" clause. ;; the GPL, but the license headers include the "or later" clause.
(license license:gpl3+))) (license license:gpl3+)))
(define-public r-dyngen
(let ((commit "37fd1798fcbd41093fb3d7775bb2d268e2fc82b6")
(revision "1"))
(package
(name "r-dyngen")
(version (git-version "1.0.3" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dynverse/dyngen")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "05pr6v1b8yji1jnj3fwx0crmg8ay6yy6lp9qjmcyvhkwbmf3kvc7"))))
(properties `((upstream-name . "dyngen")))
(build-system r-build-system)
(propagated-inputs
(list r-assertthat
r-dplyr
r-dynutils
r-ggplot2
r-ggraph
r-ggrepel
r-gillespiessa2
r-igraph
r-lmds
r-matrix
r-patchwork
r-pbapply
r-purrr
r-rlang
r-tibble
r-tidygraph
r-tidyr
r-viridis))
(home-page "https://github.com/dynverse/dyngen")
(synopsis "Multi-Modal simulator for single-cell omics analyses")
(description
"This package provides a multi-modal simulation engine for studying
dynamic cellular processes at single-cell resolution.")
(license license:expat))))
(define-public r-circus (define-public r-circus
(package (package
(name "r-circus") (name "r-circus")
@ -12013,7 +12070,7 @@ implementation differs in these ways:
python-igraph python-igraph
python-joblib python-joblib
python-legacy-api-wrap python-legacy-api-wrap
python-louvain-0.6 python-louvain-0.7
python-matplotlib python-matplotlib
python-natsort python-natsort
python-networkx python-networkx
@ -13826,6 +13883,35 @@ vast-tools, an RNA-Seq pipeline for alternative splicing analysis. The plots
are generated using @code{ggplot2}.") are generated using @code{ggplot2}.")
(license license:expat))) (license license:expat)))
(define-public r-scopeloomr
(let ((commit "99726f5f7da794042036b73924b6a10d6e7b4d5d")
(revision "1"))
(package
(name "r-scopeloomr")
(version (git-version "0.13.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aertslab/SCopeLoomR")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1ci17ms0c0hf7yfp9ckcg7a2y1s0nm19jj3cifsd55hwc0gdglmz"))))
(properties `((upstream-name . "SCopeLoomR")))
(build-system r-build-system)
(propagated-inputs
(list r-base64enc r-hdf5r r-igraph r-matrix r-plyr r-rjson r-rlist))
(home-page "https://github.com/aertslab/SCopeLoomR")
(synopsis "Build .loom files and extract data from them")
(description
"This is an R package to build generic @code{.loom} files aligning with
the default naming convention of the @code{.loom} format and to integrate
other data types e.g.: regulons (SCENIC), clusters from Seurat, trajectory
information... The package can also be used to extract data from @code{.loom}
files.")
(license license:expat))))
(define-public vbz-compression (define-public vbz-compression
(package (package
(name "vbz-compression") (name "vbz-compression")
@ -14606,55 +14692,48 @@ alignments, trees and genomic annotations.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public python-gffutils (define-public python-gffutils
;; The latest release is older more than a year than the latest commit (package
(let ((commit "4034c54600813b1402945e12faa91b3a53162cf1") (name "python-gffutils")
(revision "1")) (version "0.10.1")
(package (source
(name "python-gffutils") (origin
(version (git-version "0.9" revision commit)) (method git-fetch)
(source (uri (git-reference
(origin (url "https://github.com/daler/gffutils")
(method git-fetch) (commit (string-append "v" version))))
(uri (git-reference (file-name (git-file-name name version))
(url "https://github.com/daler/gffutils") (sha256
(commit commit))) (base32
(file-name (git-file-name name version)) "1gkzk7ps6w3ai2r81js9s9bzpba0jmxychnd2da6n9ggdnf2xzqz"))))
(sha256 (build-system python-build-system)
(base32 (arguments
"1rwafjdnbir5wnk0ap06ww4lra3p5frhy7mfs03rlldgfnwxymsn")))) '(#:phases
(build-system python-build-system) (modify-phases %standard-phases
(arguments (replace 'check
`(#:phases (lambda* (#:key tests? #:allow-other-keys)
(modify-phases %standard-phases (when tests?
(replace 'check
(lambda _
;; Tests need to access the HOME directory ;; Tests need to access the HOME directory
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
(invoke "nosetests" "-a" "!slow"))) (invoke "nosetests" "-a" "!slow")))))))
(add-after 'unpack 'make-gz-files-writable (propagated-inputs
(lambda _ (list python-argcomplete
(for-each make-file-writable python-argh
(find-files "." "\\.gz")) python-biopython
#t))))) python-pybedtools
(propagated-inputs python-pyfaidx
(list python-argcomplete python-simplejson
python-argh python-six))
python-biopython (native-inputs
python-pybedtools (list python-nose))
python-pyfaidx (home-page "https://github.com/daler/gffutils")
python-simplejson (synopsis "Tool for manipulation of GFF and GTF files")
python-six)) (description
(native-inputs "python-gffutils is a Python package for working with and manipulating
(list python-nose))
(home-page "https://github.com/daler/gffutils")
(synopsis "Tool for manipulation of GFF and GTF files")
(description
"python-gffutils is a Python package for working with and manipulating
the GFF and GTF format files typically used for genomic annotations. The the GFF and GTF format files typically used for genomic annotations. The
files are loaded into a SQLite database, allowing much more complex files are loaded into a SQLite database, allowing much more complex
manipulation of hierarchical features (e.g., genes, transcripts, and exons) manipulation of hierarchical features (e.g., genes, transcripts, and exons)
than is possible with plain-text methods alone.") than is possible with plain-text methods alone.")
(license license:expat)))) (license license:expat)))
(define-public indelfixer (define-public indelfixer
(package (package
@ -15568,6 +15647,69 @@ aligner.")
;; bwa itself is licenced under GNU General Public License v3.0. ;; bwa itself is licenced under GNU General Public License v3.0.
(license license:mpl2.0))) (license license:mpl2.0)))
(define-public scvelo
(package
(name "scvelo")
(version "0.2.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scvelo" version))
(sha256
(base32 "0h5ha1459ljs0qgpnlfsw592i8dxqn6p9bl08l1ikpwk36baxb7z"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; Numba needs a writable dir to cache functions.
(add-before 'check 'set-numba-cache-dir
(lambda _
(setenv "NUMBA_CACHE_DIR" "/tmp")))
(replace 'check
(lambda* (#:key outputs tests? #:allow-other-keys)
(when tests?
;; The discovered test file names must match the names of the
;; compiled files, so we cannot run the tests from
;; /tmp/guix-build-*.
(with-directory-excursion
(string-append (assoc-ref outputs "out")
"/lib/python3.9/site-packages/scvelo/core/tests/")
(invoke "pytest" "-v"))))))))
(propagated-inputs
(list python-anndata
python-hnswlib
python-isort
python-igraph
python-loompy
python-louvain
python-matplotlib
python-numba
python-numpy
python-pandas
python-scanpy
python-scikit-learn
python-scipy
python-umap-learn
pybind11))
(native-inputs
(list python-black
python-flake8
python-hypothesis
python-pre-commit
python-pytest
python-setuptools-scm
python-wheel))
(home-page "https://scvelo.org")
(synopsis "RNA velocity generalized through dynamical modeling")
(description "ScVelo is a scalable toolkit for RNA velocity analysis in
single cells. RNA velocity enables the recovery of directed dynamic
information by leveraging splicing kinetics. scVelo generalizes the concept of
RNA velocity by relaxing previously made assumptions with a stochastic and a
dynamical model that solves the full transcriptional dynamics. It thereby
adapts RNA velocity to widely varying specifications such as non-stationary
populations.")
(license license:bsd-3)))
(define-public scregseg (define-public scregseg
(package (package
(name "scregseg") (name "scregseg")

View file

@ -15,6 +15,7 @@
;;; Copyright © 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch> ;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
;;; Copyright © 2022 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2022 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2022 Jacob Hart <hartja1@yahoo.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -477,7 +478,7 @@ desktops.")
(define-public qbittorrent (define-public qbittorrent
(package (package
(name "qbittorrent") (name "qbittorrent")
(version "4.4.0") (version "4.4.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -486,7 +487,7 @@ desktops.")
(commit (string-append "release-" version)))) (commit (string-append "release-" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0aqrcwxi3s2alila3fa7fjs4hifkq7055wa4xvz17hajchs3l567")))) (base32 "00whc4p209g2krsggxyq4sna01djbk1rbzkyjbq4qczvya01xn0w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View file

@ -6,7 +6,7 @@
;;; Copyright © 2016, 2017, 2018, 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016, 2017 David Craven <david@craven.ch> ;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
;;; Copyright © 2017, 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 nee <nee@cock.li> ;;; Copyright © 2019 nee <nee@cock.li>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
@ -448,18 +448,21 @@ menu to select one of the installed operating systems.")
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"mirror://kernel.org/software/utils/dtc/" "mirror://kernel.org/software/utils/dtc/"
"dtc-" version ".tar.xz")) "dtc-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0wrl43rvd8nnm1v1wyfdr17vk8q7ymib62vli6da8n9ni4lwbkk5")))) "0xm38h31jb29xfh2sfyk48d8wdfq4b8lmb412zx9vjr35izjb9iq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list bison (append
flex (list bison
libyaml flex
pkg-config libyaml
swig pkg-config
valgrind)) swig)
(if (member (%current-system) (package-supported-systems valgrind))
(list valgrind)
'())))
(inputs (inputs
(list python)) (list python))
(arguments (arguments
@ -480,10 +483,7 @@ menu to select one of the installed operating systems.")
(substitute* '("Makefile" (substitute* '("Makefile"
"tests/run_tests.sh") "tests/run_tests.sh")
(("pkg-config") (("pkg-config")
(or (which "pkg-config") ,(pkg-config-for-target)))))
(string-append ,(%current-target-system)
"-pkg-config"))))
#t))
(delete 'configure)))) ; no configure script (delete 'configure)))) ; no configure script
(home-page "https://www.devicetree.org") (home-page "https://www.devicetree.org")
(synopsis "Compiles device tree source files") (synopsis "Compiles device tree source files")

View file

@ -51,16 +51,18 @@ supported content to the Kodi media center.")
(define ublock-origin (define ublock-origin
(package (package
(name "ublock-origin") (name "ublock-origin")
(version "1.40.8") (version "1.41.6")
(home-page "https://github.com/gorhill/uBlock") (home-page "https://github.com/gorhill/uBlock")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (url home-page) (commit version) (uri (git-reference (url home-page) (commit version)
;; Also fetch the tightly coupled
;; "uAssets" submodule.
(recursive? #t))) (recursive? #t)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"17pywblp87npj5z3zyvy9rmllnxhm916fnfyyfbvfbczswkbp78s")))) "05flr4jksa3l4cwi0fgkzmzn46rg5znaqd73615lwnxmnpr4va9d"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium")) (outputs '("xpi" "firefox" "chromium"))
(arguments (arguments

View file

@ -9,7 +9,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com> ;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
;;; Copyright © 2021 David Dashyan <mail@davie.li> ;;; Copyright © 2021 David Dashyan <mail@davie.li>
;;; ;;;
@ -38,6 +38,7 @@
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (guix store)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages bootstrap) #:use-module (gnu packages bootstrap)
@ -895,3 +896,119 @@ Service (S3) protocol for object storage.")
Telemetry Transport (MQTT) publish-subscribe messaging protocol.") Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
(home-page "https://github.com/awslabs/aws-c-mqtt") (home-page "https://github.com/awslabs/aws-c-mqtt")
(license license:asl2.0))) (license license:asl2.0)))
;;; Factored out of the ck package so that it can be adjusted and called on
;;; the host side easily, without impacting the package definition.
(define (gnu-triplet->ck-machine target)
(letrec-syntax
((matches (syntax-rules (=>)
((_ (target-prefix => machine) rest ...)
(if (string-prefix? target-prefix target)
machine
(matches rest ...)))
((_)
(error "unsupported target" target)))))
;; This basically reproduces the logic handling the
;; PLATFORM variable in the configure script of ck.
(matches ("x86_64" => "x86_64")
("i586" => "x86")
("i686" => "x86")
("aarch64" => "aarch64")
("arm" => "arm")
("ppc64" => "ppc64")
("ppc" => "ppc")
("s390x" => "s390x")
("sparc64" => "sparcv9"))))
(define-public ck
(package
(name "ck")
(version "0.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/concurrencykit/ck")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"020yzfpvymdc8lc44znlnxmxb8mvp42g4nb4p8k814klazqvwh0x"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'configure
;; ck uses a custom configure script that stumbles on
;; '--enable-fast-install', among other things.
(lambda* (#:key parallel-build? #:allow-other-keys)
(define target-machine #$(and=> (%current-target-system)
gnu-triplet->ck-machine))
(when target-machine
;; The configure script doesn't currently work for
;; cross-compiling (see:
;; https://github.com/concurrencykit/ck/issues/191).
(error "ck cannot currently be cross-compiled"))
;; The custom configure script doesn't make cross-compilation
;; adjustments itself, so manually set the archiver, compiler
;; and linker.
(setenv "AR" #$(ar-for-target))
(setenv "CC" #$(cc-for-target))
(setenv "LD" #$(ld-for-target))
(apply invoke "./configure"
`(,@(if target-machine
(list (string-append "--profile=" target-machine))
'())
,(string-append "--prefix=" #$output)
,(string-append "--mandir=" #$output "/share/man")
,(string-append "--cores="
(if parallel-build?
(number->string (parallel-job-count))
"1")))))))))
(home-page "https://github.com/concurrencykit/ck")
(synopsis "C library for concurrent systems")
(description "Concurrency Kit (@code{ck}) provides concurrency primitives,
safe memory reclamation mechanisms and non-blocking (including lock-free) data
structures designed to aid in the research, design and implementation of high
performance concurrent systems developed in C99+.")
(license (list license:bsd-2 ;everything except...
license:asl2.0)))) ;src/ck_hp.c
(define-public utf8-h
;; The latest tag is used as there is no release.
(let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734")
(revision "0"))
(package
(name "utf8-h")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sheredom/utf8.h")
(commit commit)))
(file-name (git-file-name "utf8.h" version))
(sha256
(base32
"0x9f7ivww8c7cigf4ck0hfx2bm79qgx6q4ccwzqbzkrmcrl9shfb"))))
(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 "utf8.h" (string-append out "/include"))))))))
(home-page "https://github.com/sheredom/utf8.h")
(synopsis "Single header UTF-8 string functions for C and C++")
(description "A simple one header solution to supporting UTF-8 strings in
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))))

View file

@ -313,37 +313,37 @@ format, commonly used for VCDs or disks with subchannel data.")
(string-append (string-append
"actual_os := $(shell uname -o)\n" "actual_os := $(shell uname -o)\n"
"actual_arch := $(shell uname -m)\n" "actual_arch := $(shell uname -m)\n"
"VERSION_OS = _$(actual_os)_$(actual_arch)\n"))) "VERSION_OS = _$(actual_os)_$(actual_arch)\n")))))
#t))
(patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch")))) (patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia. ;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia.
(arguments (arguments
`(#:make-flags (list #:make-flags
(list "RM=rm" "LN=ln" "SYMLINK=ln -s" #~(list "RM=rm" "LN=ln" "SYMLINK=ln -s"
"CONFIG_SHELL=sh" "CCOM=gcc" "CONFIG_SHELL=sh"
(string-append "INS_BASE=" (assoc-ref %outputs "out")) (string-append "CCOM=" #$(cc-for-target))
(string-append "INS_RBASE=" (assoc-ref %outputs "out"))) "LINKMODE=dynamic"
;; Parallel builds appear to be unsafe, see (string-append "INS_BASE=" #$output)
;; https://hydra.gnu.org/build/3346840/log/raw (string-append "INS_RBASE=" #$output))
#:parallel-build? #f ;; Parallel builds appear to be unsafe, see
#:phases ;; https://hydra.gnu.org/build/3346840/log/raw
(modify-phases %standard-phases #:parallel-build? #f
(delete 'configure) #:phases
(add-before 'build 'set-linux-headers #~(modify-phases %standard-phases
(lambda _ (delete 'configure)
(substitute* "autoconf/configure" (add-before 'build 'set-linux-headers
(("/usr/src/linux") (lambda _
(assoc-ref %build-inputs "kernel-headers"))) (substitute* "autoconf/configure"
#t)) (("/usr/src/linux")
(add-before 'build 'substitute-dirs (assoc-ref %build-inputs "kernel-headers")))))
(lambda _ (add-before 'build 'avoid-bogus-RPATH-entry
(substitute* (append (find-files "DEFAULTS" "^Defaults\\.") (lambda _
(find-files "DEFAULTS_ENG" "^Defaults\\.") (substitute* (append (find-files "DEFAULTS" "^Defaults\\.")
(find-files "TEMPLATES" "^Defaults\\.")) (find-files "DEFAULTS_ENG" "^Defaults\\.")
(("/opt/schily") (assoc-ref %outputs "out"))) (find-files "TEMPLATES" "^Defaults\\."))
#t))) (("/opt/schily")
#:tests? #f)) ; no tests #$output)))))
#:tests? #f)) ; no tests
(synopsis "Command line utilities to manipulate and burn CD/DVD/BD images") (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images")
(description "cdrtools is a collection of command line utilities to create (description "cdrtools is a collection of command line utilities to create
CD's, DVD's or Blue Ray discs. The most important components are CD's, DVD's or Blue Ray discs. The most important components are

View file

@ -35,8 +35,9 @@
;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com> ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr> ;;; Copyright © 2021 Hugo Lecomte <hugo.lecomte@inria.fr>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -90,6 +91,45 @@
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public pict
(package
(name "pict")
(version "3.7.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Microsoft/pict")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0bpyl0zklw2fyxgynrc7shg0xamw8rr68zmh528niscrpavsmfpi"))))
(build-system gnu-build-system)
(arguments
(list
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda _
(install-file "pict" (string-append #$output "/bin"))
(install-file "doc/pict.md"
(string-append #$output
"/share/doc/pict-" #$version)))))))
(native-inputs (list perl))
(home-page "https://www.pairwise.org/")
(synopsis "Pairwise Independent Combinatorial Tool")
(description "PICT is a pairwise testing tool that generates test cases
and test configurations. With PICT, you can generate tests that are more
effective than manually generated tests and in a fraction of the time required
by hands-on test case design. PICT runs as a command line tool. It takes a
model file detailing the parameters of the interface as an input and generates
a compact set of parameter value choices that represent the test cases you
should use to get comprehensive combinatorial coverage of your parameters.")
(license license:expat)))
(define-public pedansee (define-public pedansee
(package (package
(name "pedansee") (name "pedansee")
@ -209,45 +249,46 @@ source code editors and IDEs.")
(define-public clitest (define-public clitest
(package (package
(name "clitest") (name "clitest")
(version "0.3.0") (version "0.4.0")
(home-page "https://github.com/aureliojargas/clitest") (home-page "https://github.com/aureliojargas/clitest")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference (url home-page) (commit version)))
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0zw5wra9hc717srmcar1wm4i34kyj8c49ny4bb7y3nrvkjp2pdb5")))) "1p745mxiq3hgi3ywfljs5sa1psi06awwjxzw0j9c2xx1b09yqv4a"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (list
(modify-phases %standard-phases #:phases
;; This package is distributed as a single shell script and comes #~(modify-phases %standard-phases
;; without a proper build system. ;; This package is distributed as a single shell script and comes
(delete 'configure) ;; without a proper build system.
(delete 'build) (delete 'configure)
(replace 'check (delete 'build)
(lambda _ (replace 'check
(substitute* "test.md" (lambda* (#:key tests? #:allow-other-keys)
;; One test looks for an error from grep in the form "grep: foo", (when tests?
;; but our grep returns the absolute file name on errors. Adjust (substitute* "test.md"
;; the test to cope with that. ;; One test looks for an error from grep in the form "grep: foo",
(("sed 's/\\^e\\*grep: \\.\\*/") ;; but our grep returns the absolute file name on errors. Adjust
"sed 's/.*e*grep: .*/")) ;; the test to cope with that.
(("sed 's/\\^e\\*grep: \\.\\*/")
"sed 's/.*e*grep: .*/"))
(setenv "HOME" "/tmp") (setenv "HOME" "/tmp")
(invoke "./clitest" "test.md"))) (invoke "./clitest" "test.md"))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) (install-file "clitest" (string-append #$output "/bin"))
(install-file "clitest" (string-append out "/bin")) (install-file "README.md"
(install-file "README.md" (string-append #$output "/share/doc/clitest-"
(string-append out "/share/doc/clitest-" ,version)) #$(package-version this-package))))))))
#t))))))
(native-inputs (native-inputs
(list perl)) ;for tests (list perl)) ;for tests
(inputs
(list bash-minimal))
(synopsis "Command line test tool") (synopsis "Command line test tool")
(description (description
"@command{clitest} is a portable shell script that performs automatic "@command{clitest} is a portable shell script that performs automatic
@ -421,7 +462,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(define-public catch-framework2 (define-public catch-framework2
(package (package
(name "catch2") (name "catch2")
(version "2.13.2") (version "2.13.8")
(home-page "https://github.com/catchorg/Catch2") (home-page "https://github.com/catchorg/Catch2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
@ -431,7 +472,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"100r0kmra8jmra2hv92lzvwcmphpaiccwvq3lpdsa5b7hailhach")))) "18a6d7rcb6ilhxd5dff32jkfdf2ik58pbywrv04ras70217kdq4c"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
(list python-wrapper)) (list python-wrapper))
@ -565,15 +606,16 @@ and it supports a very flexible form of test discovery.")
(define-public doctest (define-public doctest
(package (package
(name "doctest") (name "doctest")
(version "2.4.6") (version "2.4.8")
(home-page "https://github.com/onqtam/doctest") (home-page "https://github.com/onqtam/doctest")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (url home-page) (commit version))) (uri (git-reference (url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx")))) "057wdkv3gcz42mh1j284sgvm16i5fk1f9b1plgvavca70q4p52gz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(synopsis "C++ test framework") (synopsis "C++ test framework")
(description (description
@ -2695,13 +2737,13 @@ mocks, stubs and fakes.")
(define-public python-flaky (define-public python-flaky
(package (package
(name "python-flaky") (name "python-flaky")
(version "3.5.3") (version "3.7.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "flaky" version)) (uri (pypi-uri "flaky" version))
(sha256 (sha256
(base32 (base32
"1nm1kjf857z5aw7v642ffsy1vwf255c6wjvmil71kckjyd0mxg8j")))) "03daz352021211kvdb056f3afrd2gsdq0rd1awgr38910xw01l9s"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; TODO: Tests require 'coveralls' and 'genty' which are not in Guix yet. ;; TODO: Tests require 'coveralls' and 'genty' which are not in Guix yet.
@ -2807,7 +2849,8 @@ portable to just about any platform.")
;; indefinitely. See README.packagers for more information. ;; indefinitely. See README.packagers for more information.
;; There are specific instructions to not enable more flags ;; There are specific instructions to not enable more flags
;; than absolutely needed. ;; than absolutely needed.
,(if (target-ppc64le?) ,(if (or (target-ppc64le?)
(target-riscv64?))
`(setenv "FAKETIME_COMPILE_CFLAGS" `(setenv "FAKETIME_COMPILE_CFLAGS"
"-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER") "-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER")
`(setenv "FAKETIME_COMPILE_CFLAGS" `(setenv "FAKETIME_COMPILE_CFLAGS"
@ -2843,13 +2886,27 @@ provides a simple way to achieve this.")
"0xmi24ckpps32k7hc139psgbsnsf4g106sv4l9m445m46amkxggd")))) "0xmi24ckpps32k7hc139psgbsnsf4g106sv4l9m445m46amkxggd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (list #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'fix-test (add-after 'unpack 'fix-test
(lambda _ (lambda _
(substitute* "tests/test-umockdev.c" (substitute* "tests/test-umockdev.c"
(("/run") "/tmp")) (("/run") "/tmp"))))
#t))))) ;; Avoid having to set 'LD_LIBRARY_PATH' to use umockdev
;; via introspection.
(add-after 'unpack 'absolute-introspection-library
(lambda _
(substitute* "Makefile.in"
(("g-ir-compiler -l libumockdev")
(string-append "g-ir-compiler -l " #$output
"/lib/libumockdev")))))
(add-after 'install 'absolute-filenames
(lambda* (#:key inputs #:allow-other-keys)
;; 'patch-shebangs' will take care of the shebang.
(substitute* (string-append #$output "/bin/umockdev-wrapper")
(("env") (search-input-file inputs "bin/env"))
(("libumockdev")
(string-append #$output "/lib/libumockdev"))))))))
(native-inputs (native-inputs
(list vala (list vala
gobject-introspection gobject-introspection
@ -2859,7 +2916,9 @@ provides a simple way to achieve this.")
python python
which)) which))
(inputs (inputs
(list glib eudev libgudev)) (list bash-minimal ;for umockdev-wrapper
coreutils-minimal ;for bin/env
glib eudev libgudev))
(home-page "https://github.com/martinpitt/umockdev/") (home-page "https://github.com/martinpitt/umockdev/")
(synopsis "Mock hardware devices for creating unit tests") (synopsis "Mock hardware devices for creating unit tests")
(description "umockdev mocks hardware devices for creating integration (description "umockdev mocks hardware devices for creating integration
@ -3023,6 +3082,41 @@ to mark some tests as dependent from other tests. These tests will then be
skipped if any of the dependencies did fail or has been skipped.") skipped if any of the dependencies did fail or has been skipped.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public python-pytest-pudb
;; PyPi does not include tests
(let ((commit "a6b3d2f4d35e558d72bccff472ecde9c9d9c69e5"))
(package
(name "python-pytest-pudb")
;; Version mentioned in setup.py version field.
(version "0.7.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wronglink/pytest-pudb")
(commit commit)))
(file-name (git-file-name name commit))
(sha256
(base32
"1c0pypxx3y8w7s5bz9iy3w3aablnhn81rnhmb0is8hf2qpm6k3w0"))))
(build-system python-build-system)
(propagated-inputs (list pudb))
(native-inputs (list python-pytest))
(arguments
`(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
(when tests?
(add-installed-pythonpath inputs outputs)
(invoke "pytest" "-v")))))))
(home-page "https://github.com/wronglink/pytest-pudb")
(synopsis "Pytest PuDB debugger integration")
(description
"@code{python-pytest-pudb} provides PuDB debugger integration based
on pytest PDB integration. For example, the software developer can
call pudb by running @code{py.test --pudb} from the command line or by
including @code{pudb.set_trace} in their test file(s).")
(license license:expat))))
(define-public python-pytest-datadir (define-public python-pytest-datadir
(package (package
(name "python-pytest-datadir") (name "python-pytest-datadir")

File diff suppressed because it is too large Load diff

View file

@ -82,9 +82,6 @@
"base/third_party/symbolize" ;BSD-3 "base/third_party/symbolize" ;BSD-3
"base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0 "base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
"base/third_party/xdg_user_dirs" ;Expat "base/third_party/xdg_user_dirs" ;Expat
;; XXX: Chromium requires a newer C++ standard library. Remove this when
;; the default GCC is 9 or later.
"buildtools/third_party/libc++" ;ASL2.0, with LLVM exceptions
"chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+ "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license "courgette/third_party/bsdiff" ;BSD-2, BSD protection license
"courgette/third_party/divsufsort" ;Expat "courgette/third_party/divsufsort" ;Expat
@ -170,8 +167,6 @@
"third_party/iccjpeg" ;IJG "third_party/iccjpeg" ;IJG
"third_party/inspector_protocol" ;BSD-3 "third_party/inspector_protocol" ;BSD-3
"third_party/jinja2" ;BSD-3 "third_party/jinja2" ;BSD-3
;; XXX: Unbundle this when switching back to libstdc++.
"third_party/jsoncpp" ;Public Domain or Expat
"third_party/jstemplate" ;ASL2.0 "third_party/jstemplate" ;ASL2.0
"third_party/khronos" ;Expat, SGI "third_party/khronos" ;Expat, SGI
"third_party/leveldatabase" ;BSD-3 "third_party/leveldatabase" ;BSD-3
@ -237,9 +232,6 @@
"third_party/protobuf/third_party/six" ;Expat "third_party/protobuf/third_party/six" ;Expat
"third_party/pyjson5" ;ASL2.0 "third_party/pyjson5" ;ASL2.0
"third_party/qcms" ;Expat "third_party/qcms" ;Expat
;; XXX: System re2 cannot be used when Chromium uses libc++ because the re2
;; ABI relies on libstdc++ internals. See build/linux/unbundle/re2.gn.
"third_party/re2" ;BSD-3
"third_party/rnnoise" ;BSD-3 "third_party/rnnoise" ;BSD-3
"third_party/ruy" ;ASL2.0 "third_party/ruy" ;ASL2.0
"third_party/s2cellid" ;ASL2.0 "third_party/s2cellid" ;ASL2.0
@ -318,13 +310,19 @@
;; run the Blink performance tests, just remove everything to save ~70MiB. ;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests")) '("third_party/blink/perf_tests"))
(define* (arch-patch name hash #:optional (revision %arch-revision)) (define %chromium-version "98.0.4758.102")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision "debian/90.0.4430.85-1")
(define %ungoogled-origin
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://raw.githubusercontent.com/archlinux" (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
"/svntogit-packages/" revision "/trunk/" name)) (commit %ungoogled-revision)))
(file-name (string-append "ungoogled-chromium-" name)) (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256 (base32 hash)))) (sha256
(base32
"0baz90fnzpldw0wwibhmh4pmki7vlpci9b9vvifa0rj5cwckl8a0"))))
(define* (debian-patch name hash #:optional (revision %debian-revision)) (define* (debian-patch name hash #:optional (revision %debian-revision))
(origin (origin
@ -336,33 +334,16 @@
(string-append "ungoogled-chromium-" category "-" name)))) (string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash)))) (sha256 (base32 hash))))
(define %chromium-version "97.0.4692.99")
(define %ungoogled-revision (string-append %chromium-version "-1"))
(define %arch-revision "db2157b84924ce84201a8245e68a02f7d55f6491")
(define %debian-revision "debian/90.0.4430.85-1")
(define %arch-patches
(list (arch-patch "chromium-94-ffmpeg-roll.patch"
"1kiskdjr9v3d491sq0wdjxliflh2vq5700gbygcixayj8gkvdb2n")))
(define %debian-patches (define %debian-patches
(list (debian-patch "fixes/nomerge.patch" (list (debian-patch "fixes/nomerge.patch"
"0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3") "0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3")
(debian-patch "system/jsoncpp.patch"
"16lvhci10hz0q9axc6p921b95a76kbzcla5cl81czxzfwnynr1w5")
(debian-patch "system/zlib.patch" (debian-patch "system/zlib.patch"
"0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv") "0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv")
(debian-patch "system/openjpeg.patch" (debian-patch "system/openjpeg.patch"
"048405xh84pys0kky81vlqhaxjyxvcql4py217z01qxiv991zxaj"))) "048405xh84pys0kky81vlqhaxjyxvcql4py217z01qxiv991zxaj")))
(define %ungoogled-origin
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
(commit %ungoogled-revision)))
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256
(base32
"1jgxpp3wl24hq39291mgmdwcxbarxg4rpa6il53k8z3rf6gd2s4i"))))
(define %guix-patches (define %guix-patches
(list (local-file (list (local-file
(assume-valid-file-name (assume-valid-file-name
@ -370,9 +351,6 @@
(local-file (local-file
(assume-valid-file-name (assume-valid-file-name
(search-patch "ungoogled-chromium-RUNPATH.patch"))) (search-patch "ungoogled-chromium-RUNPATH.patch")))
(local-file
(assume-valid-file-name
(search-patch "ungoogled-chromium-accelerated-video-decode.patch")))
(local-file (local-file
(assume-valid-file-name (assume-valid-file-name
(search-patch "ungoogled-chromium-ffmpeg-compat.patch"))) (search-patch "ungoogled-chromium-ffmpeg-compat.patch")))
@ -406,13 +384,6 @@
patch "--no-backup-if-mismatch")) patch "--no-backup-if-mismatch"))
(append '#+%debian-patches '#+%guix-patches)) (append '#+%debian-patches '#+%guix-patches))
;; These patches are "reversed"; i.e. they represent changes
;; already present in the source, but which should be reverted.
(for-each (lambda (patch)
(invoke "patch" "-Rp1" "--force" "--input"
patch "--no-backup-if-mismatch"))
'#$%arch-patches)
(with-directory-excursion #+%ungoogled-origin (with-directory-excursion #+%ungoogled-origin
(format #t "Ungooglifying...~%") (format #t "Ungooglifying...~%")
(force-output) (force-output)
@ -449,7 +420,7 @@
"--system-libraries" "ffmpeg" "flac" "fontconfig" "--system-libraries" "ffmpeg" "flac" "fontconfig"
"freetype" "harfbuzz-ng" "icu" "libdrm" "libevent" "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
"libjpeg" "libpng" "libwebp" "libxml" "libxslt" "libjpeg" "libpng" "libwebp" "libxml" "libxslt"
"openh264" "opus" "zlib"))))) "openh264" "opus" "re2" "zlib")))))
(define opus+custom (define opus+custom
(package/inherit opus (package/inherit opus
@ -480,7 +451,7 @@
%chromium-version ".tar.xz")) %chromium-version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1fpc07zvashaqqalwn7wxnswxclrxvhjrxy1rzr6gcq5awhaw6y9")) "0gpk13k8pfk65vinlmkg3p7mm0qb8z35psajkxzx0v3n2bllfns1"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet)))) (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -501,13 +472,11 @@
;; a developer build. ;; a developer build.
"is_official_build=true" "is_official_build=true"
"clang_use_chrome_plugins=false" "clang_use_chrome_plugins=false"
"is_cfi=false" ;requires ThinLTO "use_custom_libcxx=false"
"use_thin_lto=false" ;XXX lld segfaults
"chrome_pgo_phase=0" "chrome_pgo_phase=0"
"use_sysroot=false" "use_sysroot=false"
"goma_dir=\"\"" "goma_dir=\"\""
"enable_nacl=false" "enable_nacl=false"
"enable_nacl_nonsfi=false"
"use_unofficial_version_number=false" "use_unofficial_version_number=false"
"treat_warnings_as_errors=false" "treat_warnings_as_errors=false"
"use_official_google_api_keys=false" "use_official_google_api_keys=false"
@ -577,7 +546,11 @@
"rtc_use_pipewire=true" "rtc_use_pipewire=true"
"rtc_link_pipewire=true" "rtc_link_pipewire=true"
;; Don't use bundled sources. ;; Don't use bundled sources.
"rtc_build_json=true" ;FIXME: libc++ std::string ABI difference "rtc_build_json=false"
(string-append "rtc_jsoncpp_root=\""
(search-input-directory %build-inputs
"include/json")
"\"")
"rtc_build_libevent=false" "rtc_build_libevent=false"
;; XXX: Use the bundled libvpx for WebRTC because unbundling ;; XXX: Use the bundled libvpx for WebRTC because unbundling
;; currently fails (see above), and the versions must match. ;; currently fails (see above), and the versions must match.
@ -623,6 +596,15 @@
(find-files (string-append "third_party/webrtc/modules" (find-files (string-append "third_party/webrtc/modules"
"/audio_coding/codecs/opus"))) "/audio_coding/codecs/opus")))
(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/...". ;; Many files try to include ICU headers from "third_party/icu/...".
;; Remove the "third_party/" prefix to use system headers instead. ;; Remove the "third_party/" prefix to use system headers instead.
(substitute* (find-files "chrome" "\\.cc$") (substitute* (find-files "chrome" "\\.cc$")
@ -668,7 +650,6 @@
(substitute* (substitute*
'("ui/ozone/platform/x11/gl_ozone_glx.cc" '("ui/ozone/platform/x11/gl_ozone_glx.cc"
"ui/ozone/common/egl_util.cc" "ui/ozone/common/egl_util.cc"
"ui/gl/init/gl_initializer_linux_x11.cc"
"third_party/angle/src/libANGLE/renderer/gl/glx\ "third_party/angle/src/libANGLE/renderer/gl/glx\
/FunctionsGLX.cpp") /FunctionsGLX.cpp")
(("libGL\\.so\\.1") (("libGL\\.so\\.1")
@ -683,18 +664,6 @@
"include/c++")) "include/c++"))
(node (search-input-file (or native-inputs inputs) (node (search-input-file (or native-inputs inputs)
"/bin/node"))) "/bin/node")))
;; Remove the default compiler from CPLUS_INCLUDE_PATH to
;; prevent header conflict with the bundled libcxx.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete c++
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))
;; Define the GN toolchain. ;; Define the GN toolchain.
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm") (setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++") (setenv "CC" "clang") (setenv "CXX" "clang++")
@ -766,7 +735,9 @@
(resources (string-append lib "/resources")) (resources (string-append lib "/resources"))
(preferences (preferences
;; This file contains defaults for new user profiles. ;; This file contains defaults for new user profiles.
#$(local-file "aux-files/chromium/master-preferences.json")) #$(local-file
(search-auxiliary-file
"chromium/master-preferences.json")))
(gtk+ (assoc-ref inputs "gtk+")) (gtk+ (assoc-ref inputs "gtk+"))
(xdg-utils (assoc-ref inputs "xdg-utils"))) (xdg-utils (assoc-ref inputs "xdg-utils")))
@ -846,6 +817,7 @@
gtk+ gtk+
harfbuzz-3.0 harfbuzz-3.0
icu4c icu4c
jsoncpp
lcms lcms
libevent libevent
libffi libffi
@ -879,6 +851,7 @@
pciutils pciutils
pipewire-0.3 pipewire-0.3
pulseaudio pulseaudio
re2
snappy snappy
speech-dispatcher speech-dispatcher
eudev eudev

View file

@ -332,8 +332,14 @@ is on par with Java implementations, e.g., Apache commons-codec.")
(build-system clojure-build-system) (build-system clojure-build-system)
(arguments (arguments
'(#:source-dirs '("src/main/clojure") '(#:source-dirs '("src/main/clojure")
#:test-dirs '("src/test/clojure") #:test-dirs '("src/test/clojure" "src/test/resources")
#:doc-dirs '())) #:doc-dirs '()
#:phases
(modify-phases %standard-phases
(add-before 'build 'delete-cljs-tests
(lambda _
(delete-file "src/test/resources/clojure/data/xml/cljs_testsuite.clj")
(delete-file "src/test/clojure/clojure/data/xml/test_cljs.clj"))))))
(propagated-inputs (list clojure-data-codec)) (propagated-inputs (list clojure-data-codec))
(synopsis "Clojure library for reading and writing XML data") (synopsis "Clojure library for reading and writing XML data")
(description "@code{data.xml} is a Clojure library for reading and writing (description "@code{data.xml} is a Clojure library for reading and writing

View file

@ -12,6 +12,7 @@
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -3033,9 +3034,6 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
(define (%boot3-inputs) (define (%boot3-inputs)
;; 4th stage inputs. ;; 4th stage inputs.
`(("gcc" ,gcc-final) `(("gcc" ,gcc-final)
,@(if (target-riscv64?)
`(("gcc:lib" ,gcc-final "lib"))
'())
("ld-wrapper" ,ld-wrapper-boot3) ("ld-wrapper" ,ld-wrapper-boot3)
,@(alist-delete "gcc" (%boot2-inputs)))) ,@(alist-delete "gcc" (%boot2-inputs))))

View file

@ -811,8 +811,11 @@ decompression of some loosely related file formats used by Microsoft.")
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs (list "out" "static")) (outputs (list "out" "static"))
(native-inputs (native-inputs
(list ;; For tests. (append
python valgrind)) (list python) ;; For tests.
(if (member (%current-system) (package-supported-systems valgrind))
(list valgrind)
'())))
(arguments (arguments
`(;; Not designed for parallel testing. `(;; Not designed for parallel testing.
;; See https://github.com/lz4/lz4/issues/957#issuecomment-737419821 ;; See https://github.com/lz4/lz4/issues/957#issuecomment-737419821
@ -871,7 +874,7 @@ time for compression ratio.")
"LZO_SUPPORT=1" "LZO_SUPPORT=1"
"LZ4_SUPPORT=1" "LZ4_SUPPORT=1"
"ZSTD_SUPPORT=1" "ZSTD_SUPPORT=1"
(string-append "INSTALL_DIR=" %output "/bin")) (string-append "INSTALL_DIR=" (assoc-ref %outputs "out") "/bin"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
@ -2091,7 +2094,7 @@ single-member files which can't be decompressed in parallel.")
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) `(#:tests? #f))
(inputs (list boost libiconv xz)) (inputs (list boost xz))
(native-inputs (list pkg-config)) (native-inputs (list pkg-config))
(home-page "https://constexpr.org/innoextract/") (home-page "https://constexpr.org/innoextract/")
(synopsis "Tool for extracting Inno Setup installers") (synopsis "Tool for extracting Inno Setup installers")

View file

@ -3,6 +3,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org> ;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -110,7 +111,7 @@ performance).
(define-public picom (define-public picom
(package (package
(name "picom") (name "picom")
(version "8.2") (version "9.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -119,7 +120,7 @@ performance).
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 (base32
"0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl")) "0q7j6kh9k7i201cwhnfc3bmp0hqrx7ngk3v4qsp8k0qfy1n3ma8n"))
(file-name (string-append "picom-" version)))) (file-name (string-append "picom-" version))))
(build-system meson-build-system) (build-system meson-build-system)
(inputs (inputs

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2019, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
@ -45,19 +45,20 @@
(define-public connman (define-public connman
(package (package
(name "connman") (name "connman")
(version "1.40") (version "1.41")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/linux/network/connman/" (uri (string-append "mirror://kernel.org/linux/network/connman/"
"connman-" version ".tar.xz")) "connman-" version ".tar.xz"))
(sha256 (sha256
(base32 "04nbxpaxykncp65fyh4lk778vn9145fbxhxa8hbkmailw9yawmqs")))) (base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list "--enable-nmcompat" (list "--enable-nmcompat"
"--enable-polkit" ; Polkit doesn't need to be present at build time. "--enable-polkit" ; Polkit doesn't need to be present at build time.
"--enable-iwd"
"--enable-openconnect" "--enable-openconnect"
"--enable-openvpn" "--enable-openvpn"
"--enable-vpnc" "--enable-vpnc"
@ -68,8 +69,8 @@
(string-append (string-append
"--with-dbusdatadir=" (assoc-ref %outputs "out") "/share")))) "--with-dbusdatadir=" (assoc-ref %outputs "out") "/share"))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) (list pkg-config
("python" ,python-wrapper))) python-wrapper))
(inputs (inputs
(list dbus (list dbus
glib glib

View file

@ -52,7 +52,7 @@
(define-public coq-core (define-public coq-core
(package (package
(name "coq-core") (name "coq-core")
(version "8.14.1") (version "8.15.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -62,7 +62,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0q634fmrh5ivpxy7ammdiqdh9xp72ji2726vcz1bd55ln0d08z40")) "0473mmc4wv8zbbcbvqqn0z9gz9y8gf4w2q6j6h50lx0jphpg2n8z"))
(patches (search-patches "coq-fix-envvars.patch")))) (patches (search-patches "coq-fix-envvars.patch"))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
@ -229,7 +229,7 @@ provers.")
(define-public coq-flocq (define-public coq-flocq
(package (package
(name "coq-flocq") (name "coq-flocq")
(version "3.4.2") (version "4.0.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -239,7 +239,7 @@ provers.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0j7vq7ifqcdaj2x881aha2rl51l2p72y1cn7r2xya0fjgsssfigy")))) "159ykkhxz7zms28r4v8jjccapl5vv00csdz29mfy83lwrv5b6rwk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf automake ocaml which coq)) (list autoconf automake ocaml which coq))
@ -276,7 +276,7 @@ inside Coq.")
(define-public coq-gappa (define-public coq-gappa
(package (package
(name "coq-gappa") (name "coq-gappa")
(version "1.5.0") (version "1.5.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -286,7 +286,7 @@ inside Coq.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ivh8xm1c8191rm4riamjzya2x6ls96qax5byir1fywf9hbxr1vg")))) "18y4mv44mcgyam77rf4xs7l06mg7pxx1qli3yvs0kklmnnvwa463"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf (list autoconf
@ -334,7 +334,7 @@ assistant.")
(define-public coq-mathcomp (define-public coq-mathcomp
(package (package
(name "coq-mathcomp") (name "coq-mathcomp")
(version "1.13.0") (version "1.14.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -343,7 +343,7 @@ assistant.")
(commit (string-append "mathcomp-" version)))) (commit (string-append "mathcomp-" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0aj8hsdzzds5w0p1858s2b6k9zssjcxa6kgpi0q1nvaml4zfpkcc")))) (base32 "1rqg47dg84wr6d9v2pzna54dm62awcm8xdwx4dqwdwhf58fjxa9i"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list ocaml which coq)) (list ocaml which coq))
@ -420,7 +420,7 @@ theorems between the two libraries.")
(define-public coq-bignums (define-public coq-bignums
(package (package
(name "coq-bignums") (name "coq-bignums")
(version "8.14.0") (version "8.15.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -429,7 +429,7 @@ theorems between the two libraries.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06")))) "093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list ocaml coq)) (list ocaml coq))
@ -452,7 +452,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(define-public coq-interval (define-public coq-interval
(package (package
(name "coq-interval") (name "coq-interval")
(version "4.3.1") (version "4.4.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -462,7 +462,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0sr9psildc0sda07r2r47rfgyry49yklk38bg04yyvry5j5pryb6")))) "1rlcbv1nqm7zv60n63lca6nnxcq3c18akgzl72s1n3h89gvhs87z"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list autoconf automake ocaml which coq)) (list autoconf automake ocaml which coq))
@ -546,11 +546,11 @@ uses Ltac to synthesize the substitution operation.")
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/mattam82/Coq-Equations") (url "https://github.com/mattam82/Coq-Equations")
(commit (string-append "v" version "-8.14")))) (commit (string-append "v" version "-8.15"))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"19bj9nncd1r9g4273h5qx35gs3i4bw5z9bhjni24b413hyj55hkv")))) "1vfcfpsp9zyj0sw0cwibk76nj6n0r6gwh8m1aa3lbvc0b1kbm32k"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
(list ocaml coq camlp5)) (list ocaml coq camlp5))
@ -625,7 +625,7 @@ also provided in Coq, without associated proofs.")
(define-public coq-stdpp (define-public coq-stdpp
(package (package
(name "coq-stdpp") (name "coq-stdpp")
(version "1.6.0") (version "1.7.0")
(synopsis "Alternative Coq standard library std++") (synopsis "Alternative Coq standard library std++")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
@ -635,7 +635,7 @@ also provided in Coq, without associated proofs.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1l1w6srzydjg0h3f4krrfgvz455h56shyy2lbcnwdbzjkahibl7v")))) "0447wbzm23f9rl8byqf6vglasfn6c1wy6cxrrwagqjwsh3i5lx8y"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list coq)) (list coq))

View file

@ -3,7 +3,7 @@
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019, 2020, 2022 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
@ -11,10 +11,10 @@
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org> ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com> ;;; Copyright © 2020-2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute> ;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
@ -25,6 +25,10 @@
;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com> ;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com>
;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -48,7 +52,9 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix modules) #:use-module (guix modules)
#:use-module (guix gexp) #:use-module (guix gexp)
@ -73,13 +79,15 @@
#:use-module (gnu packages onc-rpc) #:use-module (gnu packages onc-rpc)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print) #:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml)
#:use-module (ice-9 match))
(define-public argagg (define-public argagg
(let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0")) (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0"))
@ -168,6 +176,10 @@ development effort.")
(sha256 (sha256
(base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh")))) (base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments
(list
#:configure-flags
#~(list "-DRANGES_NATIVE=OFF")))
(native-inputs (native-inputs
(list doxygen gcc-9 perl)) (list doxygen gcc-9 perl))
(inputs (inputs
@ -219,6 +231,53 @@ use by the C++ Core Guidelines maintained by the Standard C++ Foundation.")
(home-page "https://github.com/microsoft/GSL/") (home-page "https://github.com/microsoft/GSL/")
(license license:expat))) (license license:expat)))
(define-public c2ffi
(package
(name "c2ffi")
;; As per the c2ffi README: the first three elements are encoding the
;; required Clang/LLVM version, and the last one is the c2ffi revision.
(version "12.0.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rpav/c2ffi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1qq8dfismd20d9kfxpfvwz07v9mfvd0y7p5r3c92mk2pm4xnmzfy"))
(modules '((guix build utils)))
(snippet
'(substitute* "CMakeLists.txt"
;; Guix seems to be packaging LLVM libs separately thus -lLLVM
;; won't work, every used library must be specified explicitly.
(("c2ffi PUBLIC clang-cpp LLVM")
"c2ffi PUBLIC clang-cpp LLVMCore LLVMSupport LLVMMCParser \
LLVMOption LLVMBitReader LLVMProfileData")))))
(build-system cmake-build-system)
(arguments
'(;; If LLVM was built without RTTI, we need to also be built without
;; it. See: https://stackoverflow.com/q/11904519
#:configure-flags '("-DCMAKE_CXX_FLAGS=-fno-rtti")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./bin/c2ffi" "--help")))))))
(native-inputs
(list clang-12)) ; CMakeLists.txt invokes `clang -print-resource-dir`
(inputs
(list clang-12)) ; Compiled with gcc, but links against libclang-cpp.so
(home-page "https://github.com/rpav/c2ffi")
(synopsis "Clang-based FFI wrapper generator")
(description
"@code{c2ffi} is a tool for extracting definitions from C, C++, and
Objective C headers for use with foreign function call interfaces. It uses
the @code{Clang/LLVM} infrastructure to extract the data, and emits it in
various formats, including @code{json}.")
(license license:gpl2+)))
(define-public libzen (define-public libzen
(package (package
(name "libzen") (name "libzen")
@ -347,7 +406,7 @@ combination of these streams.")
(define-public xsimd (define-public xsimd
(package (package
(name "xsimd") (name "xsimd")
(version "7.5.0") (version "8.0.5")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -355,7 +414,7 @@ combination of these streams.")
(url "https://github.com/QuantStack/xsimd") (url "https://github.com/QuantStack/xsimd")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "0c9pq5vz43j99z83w3b9qylfi66mn749k1afpv5cwfxggbxvy63f")) (base32 "0fph1gzrj13knfkl3fvg098ccvqkbzs0jb8n323m7pnxajpzhzij"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -452,51 +511,48 @@ functions, class methods, and stl containers.
(license license:bsd-3))) (license license:bsd-3)))
(define-public fifo-map (define-public fifo-map
(let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9") (package
(revision "0") (name "fifo-map")
(version (git-version "1.1.1" revision commit))) (version "1.0.0")
(package (home-page "https://github.com/nlohmann/fifo_map")
(name "fifo-map") (source (origin
(version version) (method git-fetch)
(home-page "https://github.com/nlohmann/fifo_map") (uri (git-reference
(source (origin (url home-page)
(method git-fetch) (commit (string-append "v" version))))
(uri (git-reference (sha256
(url home-page) (base32
(commit commit))) "0y59fk6ycrgjln9liwcja3l5j1vxpa5i671bynpbsjlyq5f2560q"))
(sha256 (patches (search-patches "fifo-map-remove-catch.hpp.patch"
(base32 "fifo-map-fix-flags-for-gcc.patch"))
"0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196")) (file-name (git-file-name name version))
(patches (search-patches "fifo-map-remove-catch.hpp.patch" (modules '((guix build utils)))
"fifo-map-fix-flags-for-gcc.patch")) (snippet '(delete-file-recursively "./test/thirdparty"))))
(file-name (git-file-name name version)) (inputs
(modules '((guix build utils))) (list catch-framework2-1))
(snippet '(delete-file-recursively "./test/thirdparty")))) (build-system cmake-build-system)
(native-inputs (arguments
(list catch-framework2-1)) '(#:phases
(build-system cmake-build-system) (modify-phases %standard-phases
(arguments (replace 'check
`(#:phases (lambda* (#:key tests? #:allow-other-keys)
(modify-phases %standard-phases (when tests? (invoke "./unit"))))
(replace 'check (replace 'install
(lambda _ (lambda* (#:key outputs #:allow-other-keys)
(invoke "./unit"))) (let* ((out (assoc-ref outputs "out"))
(replace 'install (inc (string-append out "/include/fifo_map")))
(lambda* (#:key outputs #:allow-other-keys) (with-directory-excursion "../source"
(let* ((out (assoc-ref outputs "out")) (install-file "src/fifo_map.hpp" inc))))))))
(inc (string-append out "/include/fifo_map"))) (synopsis "FIFO-ordered associative container for C++")
(with-directory-excursion "../source" (description "Fifo_map is a C++ header only library for associative
(install-file "src/fifo_map.hpp" inc))))))))
(synopsis "FIFO-ordered associative container for C++")
(description "Fifo_map is a C++ header only library for associative
container which uses the order in which keys were inserted to the container container which uses the order in which keys were inserted to the container
as ordering relation.") as ordering relation.")
(license license:expat)))) (license license:expat)))
(define-public json-modern-cxx (define-public json-modern-cxx
(package (package
(name "json-modern-cxx") (name "json-modern-cxx")
(version "3.9.1") (version "3.10.5")
(home-page "https://github.com/nlohmann/json") (home-page "https://github.com/nlohmann/json")
(source (source
(origin (origin
@ -504,7 +560,7 @@ as ordering relation.")
(uri (git-reference (url home-page) (uri (git-reference (url home-page)
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 "0ar4mzp53lskxw3vdzw07f47njcshl3lwid9jfq6l7yx6ds2nyjc")) (base32 "1f9mi45ilwjc2w92grjc53sw038840bjpn8yjf6wc6bxs2nijfqd"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
@ -513,7 +569,7 @@ as ordering relation.")
;; is a wrapper library added by this package. ;; is a wrapper library added by this package.
(install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp") (install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp")
(for-each delete-file-recursively (for-each delete-file-recursively
'("./third_party" "./test/thirdparty" "./benchmarks/thirdparty")) '("./third_party" "./test/thirdparty"))
(install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest") (install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest")
;; Adjust for the unbundled fifo_map and doctest. ;; Adjust for the unbundled fifo_map and doctest.
@ -525,43 +581,39 @@ as ordering relation.")
(substitute* files (substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp) (("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append (string-append
"#include <fifo_map/" fifo-map-hpp ">"))))) "#include <fifo_map/" fifo-map-hpp ">")))))))))
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
(list "-DJSON_MultipleHeaders=ON" ; For json_fwd.hpp. (list "-DJSON_MultipleHeaders=ON" ; For json_fwd.hpp.
(string-append "-DJSON_TestDataDirectory=" (string-append "-DJSON_TestDataDirectory="
(assoc-ref %build-inputs "json_test_data"))) (dirname
(search-input-directory %build-inputs
"json_nlohmann_tests"))))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
;; XXX: When tests are enabled, the install phase will cause (replace 'check
;; a needless rebuild without the given configure flags, (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
;; ultimately creating both $out/lib and $out/lib64. Move
;; the check phase after install to work around it.
(delete 'check)
(add-after 'install 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests? (if tests?
;; Some tests need git and a full checkout, skip those. ;; Some tests need git and a full checkout, skip those.
(invoke "ctest" "-LE" "git_required") (invoke "ctest" "-LE" "git_required"
(format #t "test suite not run~%")) "-j" (if parallel-tests?
#t))))) (number->string (parallel-job-count))
"1"))
(format #t "test suite not run~%")))))))
(native-inputs (native-inputs
`(("amalgamate" ,amalgamate) (list amalgamate
("doctest" ,doctest) (let ((version "3.0.0"))
("json_test_data" (origin
,(let ((version "3.0.0")) (method git-fetch)
(origin (uri (git-reference
(method git-fetch) (url "https://github.com/nlohmann/json_test_data")
(uri (git-reference (commit (string-append "v" version))))
(url "https://github.com/nlohmann/json_test_data") (file-name (git-file-name "json_test_data" version))
(commit (string-append "v" version)))) (sha256
(file-name (git-file-name "json_test_data" version)) (base32
(sha256 "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))))
(base32
"0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv")))))))
(inputs (inputs
(list fifo-map)) (list doctest fifo-map))
(synopsis "JSON parser and printer library for C++") (synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides (description "JSON for Modern C++ is a C++ JSON library that provides
intuitive syntax and trivial integration.") intuitive syntax and trivial integration.")
@ -570,7 +622,7 @@ intuitive syntax and trivial integration.")
(define-public xtl (define-public xtl
(package (package
(name "xtl") (name "xtl")
(version "0.6.23") (version "0.7.4")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (uri
@ -579,20 +631,19 @@ intuitive syntax and trivial integration.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"1kd9zl4h6nrsg29hq13vwp4zhfj8sa90vj40726lpw6vxz48k4di")) "134pgvmf9cx5dxs0m0m3qhp3m3r1gl86ic3xax21zc4sdj8sdq46"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(native-inputs (native-inputs
(list googletest json-modern-cxx)) (list doctest googletest json-modern-cxx))
(arguments (arguments
`(#:configure-flags '(#:configure-flags
'("-DBUILD_TESTS=ON") '("-DBUILD_TESTS=ON")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda* _ (lambda* _
(with-directory-excursion "test" (with-directory-excursion "test"
(invoke "./test_xtl") (invoke "./test_xtl")))))))
#t))))))
(home-page "https://github.com/QuantStack/xtl") (home-page "https://github.com/QuantStack/xtl")
(build-system cmake-build-system) (build-system cmake-build-system)
(synopsis "C++ template library providing some basic tools") (synopsis "C++ template library providing some basic tools")
@ -771,7 +822,7 @@ library.")
(define-public cpplint (define-public cpplint
(package (package
(name "cpplint") (name "cpplint")
(version "1.4.5") (version "1.5.5")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -781,19 +832,49 @@ library.")
(url "https://github.com/cpplint/cpplint") (url "https://github.com/cpplint/cpplint")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "1yzcxqx0186sh80p0ydl9z0ld51fn2cdpz9hmhrp15j53g9ira7c")) (base32 "13l86aq0h1jga949k79k9x3hw2xqchjc162sclg2f99vz98zcz15"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(arguments (arguments
`(#:phases (list #:modules `((srfi srfi-1)
(modify-phases %standard-phases (srfi srfi-26)
(add-before 'check 'use-later-pytest ,@%python-build-system-modules)
(lambda _ #:phases
(substitute* "test-requirements" #~(modify-phases (@ (guix build python-build-system) %standard-phases)
(("pytest.*") "pytest\n")) (add-before 'wrap 'reduce-GUIX_PYTHONPATH
#t))))) (lambda _
;; Hide the transitive native inputs from GUIX_PYTHONPATH
;; to prevent them from ending up in the run-time closure.
;; See also <https://bugs.gnu.org/25235>.
(let ((transitive-native-inputs
'#$(match (package-transitive-native-inputs
this-package)
(((labels packages) ...) packages))))
;; Save the original PYTHONPATH because we need it for
;; tests later.
(setenv "TMP_PYTHONPATH" (getenv "GUIX_PYTHONPATH"))
(setenv "GUIX_PYTHONPATH"
(string-join
(filter (lambda (path)
(not (any (cut string-prefix? <> path)
transitive-native-inputs)))
(search-path-as-string->list
(getenv "GUIX_PYTHONPATH")))
":")))))
(add-after 'wrap 'reset-GUIX_PYTHONPATH
(lambda _
(setenv "GUIX_PYTHONPATH"
(getenv "TMP_PYTHONPATH"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv")))))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
(list python-pytest python-pytest-cov python-pytest-runner)) (list python-coverage
python-pytest
python-pytest-cov
python-pytest-runner
python-testfixtures))
(home-page "https://github.com/cpplint/cpplint") (home-page "https://github.com/cpplint/cpplint")
(synopsis "Static code checker for C++") (synopsis "Static code checker for C++")
(description "@code{cpplint} is a command-line tool to check C/C++ files (description "@code{cpplint} is a command-line tool to check C/C++ files
@ -962,7 +1043,7 @@ Google's C++ code base.")
(define-public pegtl (define-public pegtl
(package (package
(name "pegtl") (name "pegtl")
(version "2.8.3") (version "3.2.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -971,7 +1052,7 @@ Google's C++ code base.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"17crgjfdx55imi2dqnz6xpvsxq07390yfgkz5nd2g77ydkvq9db3")))) "1viwrlsw5nwvbv8d88mf5r77syapgxx3xm1kv5kmn6drw8jgsmzf"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(home-page "https://github.com/taocpp/PEGTL") (home-page "https://github.com/taocpp/PEGTL")
(synopsis "Parsing Expression Grammar template library") (synopsis "Parsing Expression Grammar template library")
@ -1047,6 +1128,39 @@ of C++14 components that complements @code{std} and Boost.")
(supported-systems '("aarch64-linux" "x86_64-linux")) (supported-systems '("aarch64-linux" "x86_64-linux"))
(license license:asl2.0))) (license license:asl2.0)))
(define-public poco
(package
(name "poco")
(version "1.11.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pocoproject/poco")
(commit (string-append "poco-" version "-release"))))
(file-name (git-file-name name version))
(sha256
(base32
"0qkf8vb4qwds6idk9fkw6wjvcdk5k8h77x3gv47l0i4jfl5hwn8b"))))
(build-system cmake-build-system)
(arguments
(list
#:configure-flags #~(list "-DENABLE_TESTS=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-problematic-tests
(lambda _
(substitute* (list "Foundation/CMakeLists.txt" ; XXX: fails.
;; Require network access
"Net/CMakeLists.txt"
"MongoDB/CMakeLists.txt"
"Redis/CMakeLists.txt")
(("ENABLE_TESTS") "FALSE")))))))
(home-page "https://pocoproject.org/")
(synopsis "Portable C++ components")
(description "A collection of libraries intended to be useful for building
network-based applications.")
(license license:boost1.0)))
(define-public aws-crt-cpp (define-public aws-crt-cpp
(let* ((commit "b6d311d76b504bf8ace5134d3fca0e672c36c9c3") (let* ((commit "b6d311d76b504bf8ace5134d3fca0e672c36c9c3")
(revision "1")) (revision "1"))
@ -1162,6 +1276,44 @@ provides a number of utilities to make coding with expected cleaner.")
(home-page "https://tl.tartanllama.xyz/") (home-page "https://tl.tartanllama.xyz/")
(license license:cc0))) (license license:cc0)))
(define-public atomic-queue
(package
(name "atomic-queue")
(version "1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/max0x7ba/atomic_queue")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ssff73wlvrsk2nma99dmvm0ijyzfr54jk37kxgpb694r7ajc90l"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dbenchmarks=false")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(lambda _
(invoke "make" "run_tests")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively "../source/include/atomic_queue"
(string-append (assoc-ref outputs "out")
"/include/atomic_queue")))))))
(native-inputs
(list boost
pkg-config))
(home-page "https://github.com/max0x7ba/atomic_queue")
(synopsis "C++ lockless queue")
(description
"This package contains a C++11 multiple-producer-multiple-consumer lockless
queues header library based on circular buffer with @code{std::atomic}.")
(license license:expat)))
(define-public magic-enum (define-public magic-enum
(package (package
(name "magic-enum") (name "magic-enum")
@ -1592,3 +1744,123 @@ microparallel algorithms to implement a strict JSON parser with UTF-8
validation.") validation.")
(home-page "https://github.com/simdjson/simdjson") (home-page "https://github.com/simdjson/simdjson")
(license license:asl2.0))) (license license:asl2.0)))
(define-public bloomberg-bde-tools
(let ((commit "094885bd177e0159232d4e6a060a04edb1edd786"))
(package
(name "bloomberg-bde-tools")
;; Recent releases are not tagged so commit must be used for checkout.
(version "3.97.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bloomberg/bde-tools")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0mbbai73z8amh23ah3wy35kmy612380yr5wg89mic60qwqmpqb02"))
(patches
(search-patches
"bloomberg-bde-tools-fix-install-path.patch"))))
(build-system copy-build-system)
;; Unable to be an inline dependency of bloomberg-bde due to patch.
(properties '((hidden? . #t)))
(synopsis "Tools for developing and building libraries modeled on BDE")
(description
"This package provides the cmake imports needed to build bloomberg-bde.")
(home-page "https://github.com/bloomberg/bde-tools")
(license license:asl2.0))))
(define-public bloomberg-bde
(let ((commit "b6bcc0e24a5862bf77aea7edd831dedf50e21d64"))
(package
(name "bloomberg-bde")
;; Recent releases are not tagged so commit must be used for checkout.
(version "3.98.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bloomberg/bde")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0y3lipi1lj9qazgc935851r2qsx5aq3vvc4y52jq57riyz8wg3ma"))
(patches
(search-patches
"bloomberg-bde-cmake-module-path.patch"))
;;(modules '((guix build utils)))
(snippet
`(begin
;; FIXME: Delete bundled software. The third-party packages
;; may be patched or modified from upstream sources.
;;(for-each delete-file-recursively
;; (list "thirdparty"))
;; Delete failing tests.
(for-each
delete-file
(list "groups/bal/ball/ball_asyncfileobserver.t.cpp"
"groups/bal/ball/ball_fileobserver2.t.cpp"
"groups/bal/ball/ball_recordstringformatter.t.cpp"
"groups/bal/balst/balst_stacktraceutil.t.cpp"
"groups/bdl/bdlmt/bdlmt_eventscheduler.t.cpp"
"groups/bdl/bdlmt/bdlmt_timereventscheduler.t.cpp"
"groups/bdl/bdls/bdls_filesystemutil.t.cpp"
"groups/bsl/bslh/bslh_hashpair.t.cpp"
"groups/bsl/bsls/bsls_platform.t.cpp"
"groups/bsl/bsls/bsls_stackaddressutil.t.cpp"
"groups/bsl/bsls/bsls_stopwatch.t.cpp"
"groups/bsl/bslstl/bslstl_function_invokerutil.t.cpp"))
#t))))
(build-system cmake-build-system)
(arguments
`(#:parallel-tests? #f ; Test parallelism may fail inconsistently.
;; Set UFID to build shared libraries. Flag descriptions can be found at
;; https://bloomberg.github.io/bde-tools/reference/bde_repo.html#ufid
#:configure-flags ,(match %current-system
((or "i686-linux" "armhf-linux")
''("-DUFID=opt_dbg_exc_mt_32_shr_cpp17"))
(_
''("-DUFID=opt_dbg_exc_mt_64_shr_cpp17")))
#:phases
(modify-phases %standard-phases
;; Explicitly build tests separate from the main build.
(add-after 'build 'build-tests
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "all.t"
`(,@(if #:parallel-build?
`("-j" ,(number->string (parallel-job-count)))
'())
,@make-flags)))))))
(native-inputs
(list bloomberg-bde-tools pkg-config python))
(synopsis "Foundational C++ libraries used at Bloomberg")
(description
"The BDE Development Environment libraries provide an enhanced
implementation of STL containers, vocabulary types for representing common
concepts (like dates and times), and building blocks for developing
multi-threaded applications and network applications.")
(home-page "https://github.com/bloomberg/bde")
(license license:asl2.0))))
(define-public gulrak-filesystem
(package
(name "gulrak-filesystem")
(version "1.5.10")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gulrak/filesystem")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0dx1yvbz5rnisymkqap7z0b06ag9fcs6q6l82vgi8caylhkwsqs7"))))
(build-system cmake-build-system)
(synopsis "Header only C++ std::filesystem compatible library")
(description "This package provides a header-only single-file
std::filesystem compatible helper library, based on the C++17 and C++20 specs,
but implemented for C++11, C++14, C++17 or C++20.")
(home-page "https://github.com/gulrak/filesystem")
(license license:expat)))

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