Merge branch 'staging' into core-updates.
This commit is contained in:
commit
a9429c8f22
527 changed files with 357880 additions and 247173 deletions
|
@ -52,6 +52,7 @@
|
|||
(eval . (put 'test-equal '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-port 'scheme-indent-function 1))
|
||||
(eval . (put 'guard 'scheme-indent-function 1))
|
||||
(eval . (put 'lambda* 'scheme-indent-function 1))
|
||||
(eval . (put 'substitute* 'scheme-indent-function 1))
|
||||
|
@ -60,8 +61,6 @@
|
|||
;; 'modify-inputs' and its keywords.
|
||||
(eval . (put 'modify-inputs '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.
|
||||
(eval . (put 'modify-phases 'scheme-indent-function 1))
|
||||
|
@ -150,6 +149,8 @@
|
|||
|
||||
(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
|
||||
;; preceding symbol is one of these.
|
||||
(eval . (modify-syntax-entry ?~ "'"))
|
||||
|
|
149
CODE-OF-CONDUCT
149
CODE-OF-CONDUCT
|
@ -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
|
||||
|
||||
Note: In the sequel, "project" refers to GNU Guix, and "project
|
||||
maintainer(s)" refers to maintainer(s) of GNU Guix.
|
||||
|
||||
Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||
education, socio-economic status, nationality, personal appearance, race,
|
||||
religion, or sexual identity and orientation.
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, 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
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* 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
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* 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
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others’ private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Publishing others’ private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
|
||||
Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
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.
|
||||
|
||||
Enforcement Responsibilities
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at guix-maintainers@gnu.org. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project’s leadership.
|
||||
|
||||
reported to the community leaders responsible for enforcement at
|
||||
guix-maintainers@gnu.org.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
Enforcement Guidelines
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
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
|
||||
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
|
||||
Mozilla’s 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
|
||||
|
|
11
Makefile.am
11
Makefile.am
|
@ -1,5 +1,5 @@
|
|||
# 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 © 2015, 2017 Alex Kost <alezost@gmail.com>
|
||||
# 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/emacs/guix-emacs.el \
|
||||
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-arm64.conf \
|
||||
gnu/packages/aux-files/linux-libre/5.15-i686.conf \
|
||||
|
@ -483,6 +487,7 @@ SCM_TESTS = \
|
|||
tests/gremlin.scm \
|
||||
tests/hackage.scm \
|
||||
tests/home-import.scm \
|
||||
tests/http-client.scm \
|
||||
tests/import-git.scm \
|
||||
tests/import-github.scm \
|
||||
tests/import-utils.scm \
|
||||
|
@ -1023,10 +1028,12 @@ assert-no-store-file-names:
|
|||
exit 1 ; \
|
||||
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)
|
||||
$(AM_V_at)$(top_builddir)/pre-inst-env \
|
||||
guix weather -m "$(top_srcdir)/etc/release-manifest.scm" \
|
||||
--substitute-urls="https://ci.guix.gnu.org" \
|
||||
--display-missing
|
||||
|
||||
# Make sure the final inputs don't refer to bootstrap tools.
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
(define %languages
|
||||
;; The cookbook is not translated in the same languages as the manual
|
||||
(if (string=? %manual "guix-cookbook")
|
||||
'("de" "en" "fr")
|
||||
'("de" "en" "fr" "sk")
|
||||
'("de" "en" "es" "fr" "ru" "zh_CN")))
|
||||
|
||||
(define (texinfo-manual-images source)
|
||||
|
|
|
@ -98,8 +98,14 @@ shell}:
|
|||
guix shell -D guix help2man git strace --pure
|
||||
@end example
|
||||
|
||||
Run @command{./bootstrap} to generate the build system infrastructure
|
||||
using Autoconf and Automake. If you get an error like this one:
|
||||
From there you can generate the build system infrastructure
|
||||
using Autoconf and Automake:
|
||||
|
||||
@example
|
||||
./bootstrap
|
||||
@end example
|
||||
|
||||
If you get an error like this one:
|
||||
|
||||
@example
|
||||
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
|
||||
more information.
|
||||
|
||||
Then, run @command{./configure --localstatedir=@var{directory}}, where
|
||||
@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}.
|
||||
Then, run:
|
||||
|
||||
Finally, you have to invoke @code{make && make check} to build Guix and
|
||||
run the tests (@pxref{Running the Test Suite}). If anything fails, take
|
||||
a look at installation instructions (@pxref{Installation}) or send a
|
||||
message to the @email{guix-devel@@gnu.org, mailing list}.
|
||||
@example
|
||||
./configure --localstatedir=/var
|
||||
@end example
|
||||
|
||||
@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
|
||||
checkout by running:
|
||||
|
@ -157,6 +176,18 @@ You are advised to run @command{make authenticate} after every
|
|||
changes to the repository.
|
||||
@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
|
||||
@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
|
||||
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
|
||||
@section The Perfect Setup
|
||||
|
@ -1386,9 +1435,14 @@ what your usertag means.
|
|||
@cindex commit access, for developers
|
||||
Everyone can contribute to Guix without having commit access
|
||||
(@pxref{Submitting Patches}). However, for frequent contributors,
|
||||
having write access to the repository can be convenient. 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.
|
||||
having write access to the repository can be convenient. As a rule of
|
||||
thumb, a contributor should have accumulated fifty (50) reviewed commits
|
||||
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
|
||||
to push commits, and the policies and community expectations for commits
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
@settitle GNU Guix Cookbook
|
||||
@c %**end of header
|
||||
|
||||
@c Onion service for ci.guix.gnu.org.
|
||||
@set SUBSTITUTE-TOR-URL https://4zwzi66wwdaalbhgnix55ea3ab4pvvw66ll2ow53kjub6se4q2bclcyd.onion
|
||||
|
||||
@copying
|
||||
Copyright @copyright{} 2019 Ricardo Wurmus@*
|
||||
Copyright @copyright{} 2019 Efraim Flashner@*
|
||||
|
@ -2354,7 +2357,8 @@ follow:
|
|||
config => (guix-configuration
|
||||
(inherit config)
|
||||
;; ci.guix.gnu.org's Onion service
|
||||
(substitute-urls "https://bp7o7ckwlewr4slm.onion")
|
||||
(substitute-urls
|
||||
"@value{SUBSTITUTE-TOR-URL}")
|
||||
(http-proxy "http://localhost:9250")))))))
|
||||
@end lisp
|
||||
|
||||
|
@ -2372,7 +2376,8 @@ want to get a substitute from the Tor tunnel run:
|
|||
|
||||
@example
|
||||
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
|
||||
|
||||
@node Setting up NGINX with Lua
|
||||
|
|
1509
doc/guix.texi
1509
doc/guix.texi
File diff suppressed because it is too large
Load diff
|
@ -23,7 +23,7 @@
|
|||
|
||||
# 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
|
||||
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.
|
||||
# Arg2: The file name stem.
|
||||
|
@ -50,8 +50,10 @@ info_TEXINFOS = %D%/guix.texi \
|
|||
%D%/guix-cookbook.fi.texi \
|
||||
%D%/guix-cookbook.fr.texi \
|
||||
%D%/guix-cookbook.ko.texi \
|
||||
%D%/guix-cookbook.pt_BR.texi \
|
||||
%D%/guix-cookbook.ru.texi \
|
||||
%D%/guix-cookbook.sk.texi \
|
||||
%D%/guix-cookbook.uk.texi \
|
||||
%D%/guix-cookbook.zh_Hans.texi
|
||||
|
||||
%C%_guix_TEXINFOS = \
|
||||
|
|
|
@ -302,9 +302,6 @@
|
|||
(allow guix_daemon_t
|
||||
guix_daemon_conf_t
|
||||
(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
|
||||
(file (getattr open read)))
|
||||
(allow guix_daemon_t net_conf_t
|
||||
|
@ -358,7 +355,7 @@
|
|||
(unix_stream_socket (listen)))
|
||||
(allow guix_daemon_t
|
||||
guix_daemon_conf_t
|
||||
(sock_file (create unlink)))
|
||||
(sock_file (create unlink write)))
|
||||
(allow guix_daemon_t
|
||||
self
|
||||
(unix_stream_socket (create
|
||||
|
|
163
etc/news.scm
163
etc/news.scm
|
@ -9,7 +9,7 @@
|
|||
;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;; 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 Zhu Zihao <all_but_last@163.com>
|
||||
;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
|
||||
|
@ -25,6 +25,139 @@
|
|||
(channel-news
|
||||
(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")
|
||||
(title
|
||||
(en "@command{guix style} can format package definitions")
|
||||
|
@ -229,14 +362,14 @@ d'informations.")))
|
|||
|
||||
(entry (commit "52cb5cf5b852117b5151a67af187d80764849ad3")
|
||||
(title
|
||||
(en "Icedove 91: profile folder moved to @file{~/.thunderbird}")
|
||||
(de "Icedove 91: Profilordner jetzt unter @file{~/.thunderbird}"))
|
||||
(en "Icedove 91: profile folder moved to @file{~/.thunderbird}")
|
||||
(de "Icedove 91: Profilordner jetzt unter @file{~/.thunderbird}"))
|
||||
(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
|
||||
@file{~./thunderbird}. It may be required to start Icedove with
|
||||
@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
|
||||
@file{~/.thunderbird} kopieren. Eventuell muss Icedove das erste Mal nach der
|
||||
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
|
||||
@uref{https://issues.guix.gnu.org/47229} pour plus d'informations sur cette
|
||||
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
|
||||
probleem doet zich voor bij installaties met meerdere gebruikers waarop een
|
||||
lokale @command{guix-daemon} draait.
|
||||
|
@ -921,7 +1054,7 @@ guix import go golang.org/x/sys
|
|||
@end example
|
||||
|
||||
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
|
||||
naam van een Go-pakket te vinden op @url{https://proxy.golang.org}:
|
||||
|
||||
|
@ -934,28 +1067,28 @@ informatie.")))
|
|||
|
||||
(entry (commit "1b5b882120daf7d111aa351a919a90e818324347")
|
||||
(title
|
||||
(en "The @code{linux-libre} kernel is updated to 5.11.2")
|
||||
(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")
|
||||
(nl "De @code{linux-libre}-kernel werd bijgewertk naar 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")
|
||||
(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"))
|
||||
(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
|
||||
improved Wine performance, unprivileged Overlayfs mounts, support for Intel SGX,
|
||||
support for new graphics hardware, and improved performance of the Btrfs
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
nouveaux périphériques graphiques et de meilleures performances du système de
|
||||
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
|
||||
andere verbeterde prestaties voor Wine en het Btfrs-bestandssysteem, laat
|
||||
gewone gebruikers toe om met Overlayfs bestandssystemen te combineren, en
|
||||
|
|
|
@ -389,8 +389,8 @@ improvement."
|
|||
"/run/current-system")
|
||||
|
||||
(define (boot-time-system)
|
||||
"Return the '--system' argument passed on the kernel command line."
|
||||
(find-long-option "--system" (if (string-contains %host-type "linux-gnu")
|
||||
"Return the 'gnu.system' argument passed on the kernel command line."
|
||||
(find-long-option "gnu.system" (if (string-contains %host-type "linux-gnu")
|
||||
(linux-command-line)
|
||||
(command-line))))
|
||||
|
||||
|
|
|
@ -254,7 +254,7 @@ set."
|
|||
"This procedure is meant to be called from an early RC script.
|
||||
|
||||
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.
|
||||
|
||||
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 "Use '--repl' for an initrd REPL.\n\n")
|
||||
(display "Use 'gnu.repl' for an initrd REPL.\n\n")
|
||||
|
||||
(call-with-error-handling
|
||||
(lambda ()
|
||||
|
||||
(let* ((args (command-line))
|
||||
(system (find-long-option "--system" args))
|
||||
(to-load (find-long-option "--load" args)))
|
||||
(system (find-long-option "gnu.system" args))
|
||||
(to-load (find-long-option "gnu.load" args)))
|
||||
|
||||
(format #t "Setting-up essential translators...\n")
|
||||
(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"))
|
||||
(format #t "FAILED...Good luck!\n"))
|
||||
|
||||
(cond ((member "--repl" args)
|
||||
(cond ((member "gnu.repl" args)
|
||||
(format #t "Starting repl...\n")
|
||||
(start-repl))
|
||||
(to-load
|
||||
|
@ -298,7 +298,7 @@ XXX TODO: use Linux xattr/setxattr to remove (settrans in) /libexec/RUNSYSTEM
|
|||
(sleep 2)
|
||||
(reboot))
|
||||
(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")
|
||||
(start-repl)))))
|
||||
#:on-error on-error))
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2016 Christine Lemmer-Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -62,8 +62,10 @@
|
|||
|
||||
(define (estimate-partition-size root)
|
||||
"Given the ROOT directory, evaluate and return its size. As this doesn't
|
||||
take the partition metadata size into account, take a 25% margin."
|
||||
(* 1.25 (file-size root)))
|
||||
take the partition metadata size into account, take a 25% margin. As this in
|
||||
turn doesn't take any constant overhead into account, force a 1-MiB minimum."
|
||||
(max (ash 1 20)
|
||||
(* 1.25 (file-size root))))
|
||||
|
||||
(define* (make-ext-image partition target root
|
||||
#:key
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2016, 2017, 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||
;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -93,7 +94,7 @@
|
|||
get-string-all)))
|
||||
|
||||
(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."
|
||||
(let ((opt (string-append option "=")))
|
||||
(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
|
||||
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
|
||||
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,
|
||||
if any.
|
||||
Mount the root file system, specified by the 'root' command-line argument, if
|
||||
any.
|
||||
|
||||
MOUNTS must be a list of <file-system> objects.
|
||||
|
||||
|
@ -515,33 +518,50 @@ upon error."
|
|||
(string=? (file-system-mount-point fs) "/"))
|
||||
|
||||
(define (device-string->file-system-device device-string)
|
||||
;; The "--root=SPEC" kernel command-line option always provides a
|
||||
;; string, but the string can represent a device, an nfs-root, a UUID, or a
|
||||
;; label. So check for all four.
|
||||
;; The "root=SPEC" kernel command-line option always provides a string,
|
||||
;; but the string can represent a device, an nfs-root, a UUID, or a label.
|
||||
;; So check for all four.
|
||||
(cond ((string-prefix? "/" device-string) device-string)
|
||||
((string-contains device-string ":/") device-string) ; nfs-root
|
||||
((uuid device-string) => identity)
|
||||
(else (file-system-label device-string))))
|
||||
|
||||
(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
|
||||
(lambda ()
|
||||
(mount-essential-file-systems)
|
||||
(let* ((args (linux-command-line))
|
||||
(to-load (find-long-option "--load" args))
|
||||
;; If present, ‘--root’ on the kernel command line takes precedence
|
||||
(to-load (find-long-option "gnu.load" args))
|
||||
;; If present, ‘root’ on the kernel command line takes precedence
|
||||
;; 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))
|
||||
(root-fs (or (find root-mount-point? mounts)
|
||||
;; Fall back to fictitious defaults.
|
||||
(file-system (device (or root-device "/dev/root"))
|
||||
(mount-point "/")
|
||||
(type "ext4"))))
|
||||
(rootfstype (find-long-option "rootfstype" args))
|
||||
(rootflags (find-long-option "rootflags" args))
|
||||
(root-fs* (find root-mount-point? mounts))
|
||||
(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)
|
||||
(match fsck.mode
|
||||
("skip" #f)
|
||||
|
@ -562,7 +582,7 @@ upon error."
|
|||
(_ 'preen))
|
||||
(file-system-repair fs))))
|
||||
|
||||
(when (member "--repl" args)
|
||||
(when (member "gnu.repl" args)
|
||||
(start-repl))
|
||||
|
||||
(display "loading kernel modules...\n")
|
||||
|
@ -596,9 +616,8 @@ upon error."
|
|||
(let ((root-delay (and=> (find-long-option "rootdelay" args)
|
||||
string->number)))
|
||||
(when root-delay
|
||||
(format #t
|
||||
"Pausing for rootdelay=~a seconds before mounting the root file system...\n"
|
||||
root-delay)
|
||||
(format #t "Pausing for rootdelay=~a seconds before mounting \
|
||||
the root file system...\n" root-delay)
|
||||
(sleep root-delay)))
|
||||
|
||||
;; Prepare the real root file system under /root.
|
||||
|
@ -614,18 +633,18 @@ upon error."
|
|||
|
||||
(setenv "EXT2FS_NO_MTAB_OK" "1")
|
||||
|
||||
(if root-device
|
||||
(mount-root-file-system (canonicalize-device-spec root-device)
|
||||
(file-system-type root-fs)
|
||||
#:volatile-root? volatile-root?
|
||||
#:flags (mount-flags->bit-mask
|
||||
(file-system-flags root-fs))
|
||||
#:options (file-system-options root-fs)
|
||||
#:check? (check? root-fs)
|
||||
#:skip-check-if-clean?
|
||||
(skip-check-if-clean? root-fs)
|
||||
#:repair (repair root-fs))
|
||||
(mount "none" "/root" "tmpfs"))
|
||||
;; Mount the root file system.
|
||||
(mount-root-file-system (canonicalize-device-spec
|
||||
(file-system-device root-fs))
|
||||
(file-system-type root-fs)
|
||||
#:volatile-root? volatile-root?
|
||||
#:flags (mount-flags->bit-mask
|
||||
(file-system-flags root-fs))
|
||||
#:options (file-system-options root-fs)
|
||||
#:check? (check? root-fs)
|
||||
#:skip-check-if-clean?
|
||||
(skip-check-if-clean? root-fs)
|
||||
#:repair (repair root-fs))
|
||||
|
||||
;; Mount the specified non-root file systems.
|
||||
(for-each (lambda (fs)
|
||||
|
@ -651,7 +670,7 @@ upon error."
|
|||
(sleep 2)
|
||||
(reboot))
|
||||
(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")
|
||||
(start-repl)))))
|
||||
#:on-error on-error))
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#:use-module (guix discovery)
|
||||
#:use-module (guix diagnostics)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match)
|
||||
|
||||
|
@ -37,12 +38,17 @@
|
|||
home-profile-service-type
|
||||
home-environment-variables-service-type
|
||||
home-files-service-type
|
||||
home-xdg-configuration-files-service-type
|
||||
home-run-on-first-login-service-type
|
||||
home-activation-service-type
|
||||
home-run-on-change-service-type
|
||||
home-provenance-service-type
|
||||
|
||||
home-files-directory
|
||||
xdg-configuration-files-directory
|
||||
|
||||
fold-home-service-types
|
||||
home-provenance
|
||||
|
||||
%initialize-gettext)
|
||||
|
||||
|
@ -72,12 +78,11 @@
|
|||
;;; file (details described in the manual).
|
||||
;;;
|
||||
;;; 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
|
||||
;;; can be different for different home environments: The default one is called
|
||||
;;; symlink-manager (will be introudced in a separate patch series), which creates
|
||||
;;; links for various dotfiles (like $XDG_CONFIG_HOME/$APP/...) to store, but is
|
||||
;;; possible to implement alternative approaches like read-only home from Julien's
|
||||
;;; guix-home-manager.
|
||||
;;; home-activation, because deploy mechanism for config files is pluggable
|
||||
;;; and can be different for different home environments: The default one is
|
||||
;;; called symlink-manager, which creates links for various dotfiles and xdg
|
||||
;;; configuration files to store, but is possible to implement alternative
|
||||
;;; approaches like read-only home from Julien's guix-home-manager.
|
||||
;;;
|
||||
;;; 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
|
||||
|
@ -260,11 +265,14 @@ esac
|
|||
|
||||
(file-union "files" files))
|
||||
|
||||
;; Used by symlink-manager
|
||||
(define home-files-directory "files")
|
||||
|
||||
(define (files-entry files)
|
||||
"Return an entry for the @file{~/.guix-home/files}
|
||||
directory containing FILES."
|
||||
(with-monad %store-monad
|
||||
(return `(("files" ,(files->files-directory files))))))
|
||||
(return `((,home-files-directory ,(files->files-directory files))))))
|
||||
|
||||
(define home-files-service-type
|
||||
(service-type (name 'home-files)
|
||||
|
@ -274,20 +282,41 @@ directory containing FILES."
|
|||
(compose concatenate)
|
||||
(extend append)
|
||||
(default-value '())
|
||||
(description "Configuration files for programs that
|
||||
will be put in @file{~/.guix-home/files}.")))
|
||||
(description "Files that will be put in
|
||||
@file{~~/.guix-home/files}, and further processed during activation.")))
|
||||
|
||||
(define xdg-configuration-files-directory "config")
|
||||
|
||||
(define (xdg-configuration-files 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
|
||||
#~(begin
|
||||
(bindtextdomain %gettext-domain
|
||||
(string-append #$guix "/share/locale"))
|
||||
(textdomain %gettext-domain)
|
||||
(setlocale LC_ALL "")))
|
||||
(textdomain %gettext-domain)))
|
||||
|
||||
(define (compute-on-first-login-script _ gexps)
|
||||
(program-file
|
||||
"on-first-login"
|
||||
#~(begin
|
||||
(with-imported-modules (source-module-closure '((guix i18n)))
|
||||
#~(begin
|
||||
(use-modules (guix i18n))
|
||||
#$%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
|
||||
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
|
||||
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)
|
||||
"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)
|
||||
#~(begin
|
||||
(with-imported-modules (source-module-closure '((guix i18n)))
|
||||
#~(begin
|
||||
(use-modules (guix i18n))
|
||||
|
||||
#$%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 "\
|
||||
On-change gexps won't be evaluated; evaluation has been disabled in the
|
||||
service configuration"))))
|
||||
service configuration")))))
|
||||
|
||||
(define home-run-on-change-service-type
|
||||
(service-type (name 'home-run-on-change)
|
||||
|
|
174
gnu/home/services/desktop.scm
Normal file
174
gnu/home/services/desktop.scm
Normal 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.")))
|
|
@ -34,7 +34,7 @@
|
|||
;;; Code:
|
||||
|
||||
(define (add-fontconfig-config-file he-symlink-path)
|
||||
`(("config/fontconfig/fonts.conf"
|
||||
`(("fontconfig/fonts.conf"
|
||||
,(mixed-text-file
|
||||
"fonts.conf"
|
||||
"<?xml version='1.0'?>
|
||||
|
@ -51,7 +51,7 @@
|
|||
(service-type (name 'home-fontconfig)
|
||||
(extensions
|
||||
(list (service-extension
|
||||
home-files-service-type
|
||||
home-xdg-configuration-files-service-type
|
||||
add-fontconfig-config-file)
|
||||
(service-extension
|
||||
home-run-on-change-service-type
|
||||
|
|
|
@ -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
|
||||
another process for example)."))
|
||||
|
||||
(define (add-zsh-configuration config)
|
||||
(let* ((xdg-flavor? (home-zsh-configuration-xdg-flavor? config)))
|
||||
(define (zsh-filter-fields field)
|
||||
(filter-configuration-fields home-zsh-configuration-fields (list field)))
|
||||
|
||||
(define prefix-file
|
||||
(cut string-append
|
||||
(if xdg-flavor?
|
||||
"config/zsh/."
|
||||
"") <>))
|
||||
(define (zsh-serialize-field config field)
|
||||
(serialize-configuration config (zsh-filter-fields field)))
|
||||
|
||||
(define (filter-fields field)
|
||||
(filter-configuration-fields home-zsh-configuration-fields
|
||||
(list field)))
|
||||
(define* (zsh-field-not-empty? config field)
|
||||
(let ((file-name (symbol->string field))
|
||||
(field-obj (car (zsh-filter-fields field))))
|
||||
(not (null? ((configuration-field-getter field-obj) config)))))
|
||||
|
||||
(define (serialize-field field)
|
||||
(serialize-configuration
|
||||
config
|
||||
(filter-fields field)))
|
||||
(define (zsh-file-zshenv config)
|
||||
(mixed-text-file
|
||||
"zshenv"
|
||||
(zsh-serialize-field config 'zshenv)
|
||||
(zsh-serialize-field config 'environment-variables)))
|
||||
|
||||
(define (file-if-not-empty field)
|
||||
(let ((file-name (symbol->string field))
|
||||
(field-obj (car (filter-fields field))))
|
||||
(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"
|
||||
"\
|
||||
(define (zsh-file-zprofile config)
|
||||
(mixed-text-file
|
||||
"zprofile"
|
||||
"\
|
||||
# Setups system and user profiles and related variables
|
||||
source /etc/profile
|
||||
# Setups home environment profile
|
||||
|
@ -229,11 +200,47 @@ source ~/.profile
|
|||
# It's only necessary if zsh is a login shell, otherwise profiles will
|
||||
# be already sourced by bash
|
||||
"
|
||||
(serialize-field 'zprofile)))
|
||||
(zsh-serialize-field config 'zprofile)))
|
||||
|
||||
,@(list (file-if-not-empty 'zshrc)
|
||||
(file-if-not-empty 'zlogin)
|
||||
(file-if-not-empty 'zlogout))))))
|
||||
(define (zsh-file-by-field config field)
|
||||
(match field
|
||||
('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)
|
||||
(list (home-zsh-configuration-package config)))
|
||||
|
@ -291,7 +298,10 @@ source ~/.profile
|
|||
(extensions
|
||||
(list (service-extension
|
||||
home-files-service-type
|
||||
add-zsh-configuration)
|
||||
zsh-home-files)
|
||||
(service-extension
|
||||
home-xdg-configuration-files-service-type
|
||||
zsh-xdg-configuration-files)
|
||||
(service-extension
|
||||
home-profile-service-type
|
||||
add-zsh-packages)))
|
||||
|
@ -324,7 +334,7 @@ source ~/.profile
|
|||
(guix-defaults?
|
||||
(boolean #t)
|
||||
"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
|
||||
(alist '())
|
||||
"Association list of environment variables to set for the Bash session. The
|
||||
|
@ -448,7 +458,7 @@ if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
|
|||
'bashrc
|
||||
(if (home-bash-configuration-guix-defaults? config)
|
||||
(list (serialize-field 'aliases) guix-bashrc)
|
||||
(list (serialize-field 'alises))))
|
||||
(list (serialize-field 'aliases))))
|
||||
(file-if-not-empty 'bash-logout)))))
|
||||
|
||||
(define (add-bash-packages config)
|
||||
|
|
|
@ -24,12 +24,27 @@
|
|||
#:use-module (guix sets)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
|
||||
#:use-module (srfi srfi-1)
|
||||
|
||||
#: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
|
||||
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))
|
||||
|
||||
(define-record-type* <home-shepherd-configuration>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
|
||||
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
|
||||
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -20,219 +21,199 @@
|
|||
(define-module (gnu home services symlink-manager)
|
||||
#:use-module (gnu home services)
|
||||
#:use-module (guix gexp)
|
||||
|
||||
#:use-module (guix modules)
|
||||
#:export (home-symlink-manager-service-type))
|
||||
|
||||
;;; Comment:
|
||||
;;;
|
||||
;;; symlink-manager cares about configuration files: it backs up files
|
||||
;;; created by user, removes symlinks and directories created by a
|
||||
;;; previous generation, and creates new directories and symlinks to
|
||||
;;; configuration files according to the content of files/ directory
|
||||
;;; (created by home-files-service) of the current home environment
|
||||
;;; generation.
|
||||
;;; symlink-manager cares about xdg configurations and other files: it backs
|
||||
;;; up files created by user, removes symlinks and directories created by a
|
||||
;;; previous generation, and creates new directories and symlinks to files
|
||||
;;; according to the content of directories (created by home-files-service) of
|
||||
;;; the current home environment generation.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define (update-symlinks-script)
|
||||
(program-file
|
||||
"update-symlinks"
|
||||
#~(begin
|
||||
(use-modules (ice-9 ftw)
|
||||
(ice-9 curried-definitions)
|
||||
(ice-9 match)
|
||||
(srfi srfi-1)
|
||||
(guix i18n))
|
||||
#$%initialize-gettext
|
||||
(define ((simplify-file-tree parent) file)
|
||||
"Convert the result produced by `file-system-tree' to less
|
||||
verbose and more suitable for further processing format.
|
||||
(with-imported-modules (source-module-closure
|
||||
'((guix build utils)
|
||||
(guix i18n)))
|
||||
#~(begin
|
||||
(use-modules (ice-9 ftw)
|
||||
(ice-9 match)
|
||||
(srfi srfi-1)
|
||||
(guix i18n)
|
||||
(guix build utils))
|
||||
|
||||
Extract dir/file info from stat and compose a relative path to the
|
||||
root of the file tree.
|
||||
(define home-directory
|
||||
(getenv "HOME"))
|
||||
|
||||
Sample output:
|
||||
(define xdg-config-home
|
||||
(or (getenv "XDG_CONFIG_HOME")
|
||||
(string-append (getenv "HOME") "/.config")))
|
||||
|
||||
((dir . \".\")
|
||||
((dir . \"config\")
|
||||
((dir . \"config/fontconfig\")
|
||||
(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 backup-directory
|
||||
(string-append home-directory "/" (number->string (current-time))
|
||||
"-guix-home-legacy-configs-backup"))
|
||||
|
||||
(define ((file-tree-traverse preordering) node)
|
||||
"Traverses the file tree in different orders, depending on PREORDERING.
|
||||
(define (preprocess-file file)
|
||||
"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
|
||||
before files located in those directories, otherwise directory will
|
||||
appear only after all nested items already listed."
|
||||
(let ((prepend (lambda (a b) (append b a))))
|
||||
(match node
|
||||
(('file . path) (list node))
|
||||
((('dir . path) . rest)
|
||||
((if preordering append prepend)
|
||||
(list (cons 'dir path))
|
||||
(append-map (file-tree-traverse preordering) rest))))))
|
||||
(define (target-file file)
|
||||
;; Return the target of FILE, a config file name sans leading dot
|
||||
;; such as "config/fontconfig/fonts.conf" or "bashrc".
|
||||
(string-append home-directory "/" (preprocess-file file)))
|
||||
|
||||
(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")
|
||||
(string-append (getenv "HOME") "/.config")))
|
||||
(define (backup-file file)
|
||||
(define backup
|
||||
(string-append backup-directory "/" (preprocess-file file)))
|
||||
|
||||
(he-path (string-append (getenv "HOME") "/.guix-home"))
|
||||
(new-he-path (string-append he-path ".new"))
|
||||
(new-home (getenv "GUIX_NEW_HOME"))
|
||||
(old-home (getenv "GUIX_OLD_HOME"))
|
||||
(mkdir-p backup-directory)
|
||||
(format #t (G_ "Backing up ~a...") (target-file file))
|
||||
(mkdir-p (dirname backup))
|
||||
(rename-file (target-file file) backup)
|
||||
(display (G_ " done\n")))
|
||||
|
||||
(new-files-path (string-append new-home "/files"))
|
||||
;; Trailing dot is required, because files itself is symlink and
|
||||
;; to make file-system-tree works it should be a directory.
|
||||
(new-files-dir-path (string-append new-files-path "/."))
|
||||
(define (cleanup-symlinks home-generation)
|
||||
;; Delete from $HOME files that originate in HOME-GENERATION, the
|
||||
;; store item containing a home generation.
|
||||
(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"))
|
||||
(backup-dir (string-append home-path "/"
|
||||
(number->string (current-time))
|
||||
"-guix-home-legacy-configs-backup"))
|
||||
(define (strip file)
|
||||
(string-drop file
|
||||
(+ 1 (string-length config-file-directory))))
|
||||
|
||||
(old-tree (if old-home
|
||||
((simplify-file-tree "")
|
||||
(file-system-tree
|
||||
(string-append old-home "/files/.")))
|
||||
#f))
|
||||
(new-tree ((simplify-file-tree "")
|
||||
(file-system-tree new-files-dir-path)))
|
||||
(format #t (G_ "Cleaning up symlinks from previous home at ~a.~%")
|
||||
home-generation)
|
||||
(newline)
|
||||
|
||||
(get-source-path
|
||||
(lambda (path)
|
||||
(readlink (string-append new-files-path "/" path))))
|
||||
(file-system-fold
|
||||
(const #t)
|
||||
(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
|
||||
(lambda (path)
|
||||
(string-append home-path "/." path)))
|
||||
(const #t) ;down
|
||||
(lambda (directory stat _) ;up
|
||||
(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
|
||||
(lambda (path)
|
||||
(string-append backup-dir "/." path)))
|
||||
(display (G_ "Cleanup finished.\n\n")))
|
||||
|
||||
(directory?
|
||||
(lambda (path)
|
||||
(equal? (stat:type (stat path)) 'directory)))
|
||||
(define (create-symlinks home-generation)
|
||||
;; Create in $HOME symlinks for the files in HOME-GENERATION.
|
||||
(define config-file-directory
|
||||
;; Note: Trailing slash is needed because "files" is a symlink.
|
||||
(string-append home-generation "/" #$home-files-directory "/"))
|
||||
|
||||
(empty-directory?
|
||||
(lambda (dir)
|
||||
(equal? (scandir dir) '("." ".."))))
|
||||
(define (strip file)
|
||||
(string-drop file
|
||||
(+ 1 (string-length config-file-directory))))
|
||||
|
||||
(symlink-to-store?
|
||||
(lambda (path)
|
||||
(and
|
||||
(equal? (stat:type (lstat path)) 'symlink)
|
||||
(store-file-name? (readlink path)))))
|
||||
(define (source-file file)
|
||||
(readlink (string-append config-file-directory file)))
|
||||
|
||||
(backup-file
|
||||
(lambda (path)
|
||||
(mkdir-p backup-dir)
|
||||
(format #t (G_ "Backing up ~a...") (get-target-path path))
|
||||
(mkdir-p (dirname (get-backup-path path)))
|
||||
(rename-file (get-target-path path) (get-backup-path path))
|
||||
(display (G_ " done\n"))))
|
||||
(file-system-fold
|
||||
(const #t) ;enter?
|
||||
(lambda (file stat result) ;leaf
|
||||
(let ((source (source-file (strip file)))
|
||||
(target (target-file (strip file))))
|
||||
(when (file-exists? target)
|
||||
(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
|
||||
(lambda ()
|
||||
(let ((to-delete ((file-tree-traverse #f) old-tree)))
|
||||
(display
|
||||
(G_
|
||||
"Cleaning up symlinks from previous home-environment.\n\n"))
|
||||
(map
|
||||
(match-lambda
|
||||
(('dir . ".")
|
||||
(display (G_ "Cleanup finished.\n\n")))
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(mkdir target))
|
||||
(lambda args
|
||||
(let ((errno (system-error-errno args)))
|
||||
(unless (= EEXIST errno)
|
||||
(format #t (G_ "failed to create directory ~a: ~s~%")
|
||||
target (strerror errno))
|
||||
(apply throw args))))))))
|
||||
(const #t) ;up
|
||||
(const #t) ;skip
|
||||
(const #t) ;error
|
||||
#t ;init
|
||||
config-file-directory))
|
||||
|
||||
(('dir . path)
|
||||
(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))))
|
||||
#$%initialize-gettext
|
||||
|
||||
(('file . path)
|
||||
(when (file-exists? (get-target-path path))
|
||||
;; 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? (get-target-path path))
|
||||
(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))))
|
||||
(let* ((home (string-append home-directory "/.guix-home"))
|
||||
(pivot (string-append home ".new"))
|
||||
(new-home (getenv "GUIX_NEW_HOME"))
|
||||
(old-home (getenv "GUIX_OLD_HOME")))
|
||||
(when old-home
|
||||
(cleanup-symlinks old-home))
|
||||
|
||||
(create-symlinks
|
||||
(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))
|
||||
(create-symlinks new-home)
|
||||
|
||||
(('dir . path)
|
||||
(let ((target-path (get-target-path path)))
|
||||
(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"))))))
|
||||
(symlink new-home pivot)
|
||||
(rename-file pivot home)
|
||||
|
||||
(display (G_" done\nFinished updating symlinks.\n\n")))))))
|
||||
|
||||
(define (update-symlinks-gexp _)
|
||||
#~(primitive-load #$(update-symlinks-script)))
|
||||
|
|
|
@ -190,11 +190,11 @@ pre-populated content.")
|
|||
"Default directory for videos."))
|
||||
|
||||
(define (home-xdg-user-directories-files-service config)
|
||||
`(("config/user-dirs.conf"
|
||||
`(("user-dirs.conf"
|
||||
,(mixed-text-file
|
||||
"user-dirs.conf"
|
||||
"enabled=False\n"))
|
||||
("config/user-dirs.dirs"
|
||||
("user-dirs.dirs"
|
||||
,(mixed-text-file
|
||||
"user-dirs.dirs"
|
||||
(serialize-configuration
|
||||
|
@ -218,7 +218,7 @@ pre-populated content.")
|
|||
(service-type (name 'home-xdg-user-directories)
|
||||
(extensions
|
||||
(list (service-extension
|
||||
home-files-service-type
|
||||
home-xdg-configuration-files-service-type
|
||||
home-xdg-user-directories-files-service)
|
||||
(service-extension
|
||||
home-activation-service-type
|
||||
|
@ -374,7 +374,7 @@ configuration."
|
|||
"=" val "\n")))
|
||||
|
||||
(define (serialize-alist config)
|
||||
(generic-serialize-alist identity format-config config))
|
||||
(generic-serialize-alist append format-config config))
|
||||
|
||||
(define (serialize-xdg-desktop-action 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
|
||||
@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)
|
||||
(let ((file (first entry))
|
||||
(config (second entry)))
|
||||
|
@ -425,16 +425,16 @@ that the application cannot open the specified MIME type.")
|
|||
(apply mixed-text-file
|
||||
(format #f "xdg-desktop-~a-entry" file)
|
||||
config))))
|
||||
(map (compose add-xdg-desktop-entry-file serialize-xdg-desktop-entry)
|
||||
(home-xdg-mime-applications-configuration-desktop-entries config)))
|
||||
|
||||
(append
|
||||
`(("config/mimeapps.list"
|
||||
,(mixed-text-file
|
||||
"xdg-mime-appplications"
|
||||
(serialize-configuration
|
||||
config
|
||||
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-xdg-files config)
|
||||
`(("mimeapps.list"
|
||||
,(mixed-text-file
|
||||
"xdg-mime-appplications"
|
||||
(serialize-configuration
|
||||
config
|
||||
home-xdg-mime-applications-configuration-fields)))))
|
||||
|
||||
(define (home-xdg-mime-applications-extension old-config extension-configs)
|
||||
(define (extract-fields config)
|
||||
|
@ -469,7 +469,10 @@ that the application cannot open the specified MIME type.")
|
|||
(extensions
|
||||
(list (service-extension
|
||||
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)
|
||||
(extend home-xdg-mime-applications-extension)
|
||||
(default-value (home-xdg-mime-applications-configuration))
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages connman)
|
||||
#:use-module (gnu packages cryptsetup)
|
||||
#:use-module (gnu packages disk)
|
||||
|
@ -42,6 +43,7 @@
|
|||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||
#:use-module (gnu packages iso-codes)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages nano)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages tls)
|
||||
|
@ -333,9 +335,11 @@ selected keymap."
|
|||
ntfs-3g ;mkfs.ntfs
|
||||
xfsprogs ;mkfs.xfs
|
||||
kbd ;chvt
|
||||
guix ;guix system init call
|
||||
util-linux ;mkwap
|
||||
nano
|
||||
shadow
|
||||
tar ;dump
|
||||
gzip ;dump
|
||||
coreutils)))
|
||||
(with-output-to-port (%make-void-port "w")
|
||||
(lambda ()
|
||||
|
@ -352,7 +356,8 @@ selected keymap."
|
|||
;; packages …), etc. modules.
|
||||
(with-extensions (list guile-gcrypt guile-newt
|
||||
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
|
||||
`(,@modules
|
||||
(gnu services herd)
|
||||
|
@ -363,6 +368,7 @@ selected keymap."
|
|||
(use-modules (gnu installer record)
|
||||
(gnu installer keymap)
|
||||
(gnu installer steps)
|
||||
(gnu installer dump)
|
||||
(gnu installer final)
|
||||
(gnu installer hostname)
|
||||
(gnu installer locale)
|
||||
|
@ -379,7 +385,8 @@ selected keymap."
|
|||
(guix build utils)
|
||||
((system repl debug)
|
||||
#:select (terminal-width))
|
||||
(ice-9 match))
|
||||
(ice-9 match)
|
||||
(ice-9 textual-ports))
|
||||
|
||||
;; Initialize gettext support so that installers can use
|
||||
;; (guix i18n) module.
|
||||
|
@ -407,43 +414,56 @@ selected keymap."
|
|||
;; verbose.
|
||||
(terminal-width 200)
|
||||
|
||||
(let* ((current-installer newt-installer)
|
||||
(steps (#$steps current-installer)))
|
||||
((installer-init current-installer))
|
||||
(define current-installer newt-installer)
|
||||
(define steps (#$steps current-installer))
|
||||
|
||||
(catch #t
|
||||
(lambda ()
|
||||
(define results
|
||||
(run-installer-steps
|
||||
#:rewind-strategy 'menu
|
||||
#:menu-proc (installer-menu-page current-installer)
|
||||
#:steps steps))
|
||||
(dynamic-wind
|
||||
(installer-init current-installer)
|
||||
(lambda ()
|
||||
(parameterize
|
||||
((run-command-in-installer
|
||||
(installer-run-command current-installer)))
|
||||
(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)
|
||||
('success
|
||||
;; We did it! Let's reboot!
|
||||
(sync)
|
||||
(stop-service 'root))
|
||||
(_
|
||||
;; The installation failed, exit so that it is restarted
|
||||
;; by login.
|
||||
#f)))
|
||||
(const #f)
|
||||
(lambda (key . args)
|
||||
(syslog "crashing due to uncaught exception: ~s ~s~%"
|
||||
key args)
|
||||
(let ((error-file "/tmp/last-installer-error"))
|
||||
(call-with-output-file error-file
|
||||
(lambda (port)
|
||||
(display-backtrace (make-stack #t) port)
|
||||
(print-exception port
|
||||
(stack-ref (make-stack #t) 1)
|
||||
key args)))
|
||||
((installer-exit-error current-installer)
|
||||
error-file key args))
|
||||
(primitive-exit 1)))
|
||||
(match (result-step results 'final)
|
||||
('success
|
||||
;; We did it! Let's reboot!
|
||||
(sync)
|
||||
(stop-service 'root))
|
||||
(_
|
||||
;; The installation failed, exit so that it is
|
||||
;; restarted by login.
|
||||
#f)))
|
||||
(const #f)
|
||||
(lambda (key . args)
|
||||
(installer-log-line "crashing due to uncaught exception: ~s ~s"
|
||||
key args)
|
||||
(define dump-dir
|
||||
(prepare-dump key args #:result %current-result))
|
||||
(define action
|
||||
((installer-exit-error current-installer)
|
||||
(get-string-all
|
||||
(open-input-file
|
||||
(string-append dump-dir "/installer-backtrace")))))
|
||||
(match action
|
||||
('dump
|
||||
(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
|
||||
"installer"
|
||||
|
|
|
@ -287,7 +287,7 @@ list so that each keys of a given technology are gathered in a separate list."
|
|||
|
||||
(define (connman-online?)
|
||||
(let ((state (connman-state)))
|
||||
(eq? state 'online)))
|
||||
(memq state '(ready online))))
|
||||
|
||||
(define (connman-connect-with-auth service password-proc)
|
||||
"Connect to the given SERVICE with the password returned by calling
|
||||
|
|
118
gnu/installer/dump.scm
Normal file
118
gnu/installer/dump.scm
Normal 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)))))
|
|
@ -85,8 +85,9 @@ USERS."
|
|||
(uid (if root? 0 #f))
|
||||
(home-directory
|
||||
(user-home-directory user))
|
||||
(password (crypt (user-password user)
|
||||
(salt)))
|
||||
(password (crypt
|
||||
(secret-content (user-password user))
|
||||
(salt)))
|
||||
|
||||
;; We need a string here, not a file-like, hence
|
||||
;; this choice.
|
||||
|
@ -125,15 +126,15 @@ it can interact with the rest of the system."
|
|||
(setlocale LC_ALL locale))))
|
||||
(if supported?
|
||||
(begin
|
||||
(syslog "install supported locale ~a~%." locale)
|
||||
(installer-log-line "install supported locale ~a." locale)
|
||||
(setenv "LC_ALL" locale))
|
||||
(begin
|
||||
;; If the selected locale is not supported, install a default UTF-8
|
||||
;; locale. This is required to copy some files with UTF-8
|
||||
;; characters, in the nss-certs package notably. Set LANGUAGE
|
||||
;; anyways, to have translated messages if possible.
|
||||
(syslog "~a locale is not supported, installating en_US.utf8 \
|
||||
locale instead.~%" locale)
|
||||
(installer-log-line "~a locale is not supported, installing \
|
||||
en_US.utf8 locale instead." locale)
|
||||
(setlocale LC_ALL "en_US.utf8")
|
||||
(setenv "LC_ALL" "en_US.utf8")
|
||||
(setenv "LANGUAGE"
|
||||
|
@ -208,17 +209,9 @@ or #f. Return #t on success and #f on failure."
|
|||
(setvbuf (current-output-port) 'none)
|
||||
(setvbuf (current-error-port) 'none)
|
||||
|
||||
;; If there are any connected clients, assume that we are running
|
||||
;; installation tests. In that case, dump the standard and error
|
||||
;; outputs to syslog.
|
||||
(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))))
|
||||
(setenv "PATH" "/run/current-system/profile/bin/")
|
||||
|
||||
(set! ret (run-command install-command)))
|
||||
(lambda ()
|
||||
;; Restart guix-daemon so that it does no keep the MNT namespace
|
||||
;; alive.
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
(define-module (gnu installer newt)
|
||||
#:use-module (gnu installer record)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (gnu installer dump)
|
||||
#:use-module (gnu installer newt ethernet)
|
||||
#:use-module (gnu installer newt final)
|
||||
#:use-module (gnu installer newt parameters)
|
||||
|
@ -39,7 +40,12 @@
|
|||
#:use-module (guix config)
|
||||
#:use-module (guix discovery)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (srfi srfi-1)
|
||||
#: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)
|
||||
#:export (newt-installer))
|
||||
|
||||
|
@ -47,7 +53,7 @@
|
|||
(newt-init)
|
||||
(clear-screen)
|
||||
(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
|
||||
(format #f (G_ "Press <F1> for installation parameters."))))
|
||||
|
||||
|
@ -55,25 +61,102 @@
|
|||
(newt-finish)
|
||||
(clear-screen))
|
||||
|
||||
(define (exit-error file key args)
|
||||
(define (exit-error error)
|
||||
(newt-set-color COLORSET-ROOT "white" "red")
|
||||
(let ((width (nearest-exact-integer
|
||||
(* (screen-columns) 0.8)))
|
||||
(height (nearest-exact-integer
|
||||
(* (screen-rows) 0.7))))
|
||||
(run-file-textbox-page
|
||||
#: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)
|
||||
(define action
|
||||
(run-textbox-page
|
||||
#:info-text (G_ "The installer has encountered an unexpected problem. \
|
||||
The backtrace is displayed below. You may choose to exit or create a dump \
|
||||
archive.")
|
||||
#:title (G_ "Unexpected problem")
|
||||
#:file file
|
||||
#:exit-button? #f
|
||||
#:info-textbox-width width
|
||||
#:file-textbox-width width
|
||||
#:file-textbox-height height))
|
||||
#:content error
|
||||
#:buttons-spec
|
||||
(list
|
||||
(cons (G_ "Dump") (const 'dump))
|
||||
(cons (G_ "Exit") (const 'exit)))))
|
||||
(newt-set-color COLORSET-ROOT "white" "blue")
|
||||
(newt-finish)
|
||||
(clear-screen))
|
||||
action)
|
||||
|
||||
(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)
|
||||
(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)
|
||||
(welcome-page welcome-page)
|
||||
(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)))
|
||||
|
|
|
@ -65,9 +65,7 @@ connection is pending."
|
|||
(run-error-page
|
||||
(G_ "No ethernet service available, please try again.")
|
||||
(G_ "No service"))
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))
|
||||
(abort-to-prompt 'installer-step 'abort))
|
||||
((service)
|
||||
;; Only one service is available so return it directly.
|
||||
service)
|
||||
|
@ -81,7 +79,5 @@ connection is pending."
|
|||
#:button-text (G_ "Exit")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))
|
||||
(abort-to-prompt 'installer-step 'abort))
|
||||
#:listbox-callback-procedure connect-ethernet-service))))
|
||||
|
|
|
@ -59,9 +59,7 @@ This will take a few minutes.")
|
|||
#:file-textbox-height height
|
||||
#:exit-button-callback-procedure
|
||||
(lambda ()
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (run-install-success-page)
|
||||
(match (current-clients)
|
||||
|
@ -88,9 +86,7 @@ press the button to reboot.")))
|
|||
(G_ "Restart the installer")
|
||||
(G_ "The final system installation step failed. You can resume from \
|
||||
a specific step, or restart the installer."))
|
||||
(1 (raise
|
||||
(condition
|
||||
(&installer-step-abort))))
|
||||
(1 (abort-to-prompt 'installer-step 'abort))
|
||||
(2
|
||||
;; Keep going, the installer will be restarted later on.
|
||||
#t)))
|
||||
|
@ -109,7 +105,7 @@ a specific step, or restart the installer."))
|
|||
(define (run-final-page result prev-steps)
|
||||
(define (wait-for-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))
|
||||
(match (select (current-clients) '() '())
|
||||
(((port _ ...) _ _)
|
||||
|
@ -119,7 +115,7 @@ a specific step, or restart the installer."))
|
|||
;; things such as changing the swap partition label.
|
||||
(wait-for-clients)
|
||||
|
||||
(syslog "proceeding with final step~%")
|
||||
(installer-log-line "proceeding with final step")
|
||||
(let* ((configuration (format-configuration prev-steps result))
|
||||
(user-partitions (result-step result 'partition))
|
||||
(locale (result-step result 'locale))
|
||||
|
|
|
@ -59,9 +59,7 @@ different layout at any time from the parameters menu.")))
|
|||
((param) (const #f))
|
||||
(else
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))))
|
||||
|
||||
(define (run-variant-page variants variant->text)
|
||||
(let ((title (G_ "Variant")))
|
||||
|
@ -74,9 +72,7 @@ different layout at any time from the parameters menu.")))
|
|||
#:button-text (G_ "Back")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (sort-layouts layouts)
|
||||
"Sort LAYOUTS list by putting the US layout ahead and return it."
|
||||
|
|
|
@ -43,9 +43,7 @@ installation process and for the installed system.")
|
|||
#:button-text (G_ "Exit")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))))
|
||||
(abort-to-prompt 'installer-step 'abort))))
|
||||
|
||||
;; Immediately install the chosen language so that the territory page that
|
||||
;; 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-callback-procedure
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (run-codeset-page codesets)
|
||||
(let ((title (G_ "Locale codeset")))
|
||||
|
@ -78,9 +74,7 @@ installation process and for the installed system.")
|
|||
#:button-text (G_ "Back")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (run-modifier-page modifiers modifier->text)
|
||||
(let ((title (G_ "Locale modifier")))
|
||||
|
@ -94,9 +88,7 @@ symbol.")
|
|||
#:button-text (G_ "Back")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define* (run-locale-page #:key
|
||||
supported-locales
|
||||
|
@ -110,11 +102,10 @@ associating a territory code with a territory name. The formatted locale, under
|
|||
glibc format is returned."
|
||||
|
||||
(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."
|
||||
(and (= (length locales) 1)
|
||||
(raise
|
||||
(condition (&installer-step-break)))))
|
||||
(abort-to-prompt 'installer-step 'break)))
|
||||
|
||||
(define (filter-locales locales result)
|
||||
"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
|
||||
;; through all steps (language, territory, codeset and modifier) to select a
|
||||
;; locale. In that case, like if we exited by raising &installer-step-break
|
||||
;; condition, turn the result into a glibc locale string and return it.
|
||||
;; locale. In that case, like if we exited by breaking to the installer
|
||||
;; step, turn the result into a glibc locale string and return it.
|
||||
(result->locale-string
|
||||
supported-locales
|
||||
(run-installer-steps #:steps locale-steps)))
|
||||
|
|
|
@ -65,12 +65,8 @@ Internet and return the selected technology. For now, only technologies with
|
|||
(G_ "Exit")
|
||||
(G_ "The install process requires Internet access but no \
|
||||
network devices were found. Do you want to continue anyway?"))
|
||||
((1) (raise
|
||||
(condition
|
||||
(&installer-step-break))))
|
||||
((2) (raise
|
||||
(condition
|
||||
(&installer-step-abort))))))
|
||||
((1) (abort-to-prompt 'installer-step 'break))
|
||||
((2) (abort-to-prompt 'installer-step 'abort))))
|
||||
((technology)
|
||||
;; Since there's only one technology available, skip the selection
|
||||
;; screen.
|
||||
|
@ -86,9 +82,7 @@ network devices were found. Do you want to continue anyway?"))
|
|||
#:button-text (G_ "Exit")
|
||||
#:button-callback-procedure
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))))))
|
||||
(abort-to-prompt 'installer-step 'abort))))))
|
||||
|
||||
(define (find-technology-by-type technologies type)
|
||||
"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 \
|
||||
Internet and the Guix substitute server, please try again.")
|
||||
(G_ "Connection error"))
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))))
|
||||
(abort-to-prompt 'installer-step 'abort))))
|
||||
|
||||
(define (run-network-page)
|
||||
"Run a page to allow the user to configure connman so that it can access the
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#:use-module (gnu installer steps)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (gnu installer newt utils)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (ice-9 i18n)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -43,6 +44,10 @@
|
|||
run-scale-page
|
||||
run-checkbox-tree-page
|
||||
run-file-textbox-page
|
||||
%ok-button
|
||||
%exit-button
|
||||
run-textbox-page
|
||||
run-dump-page
|
||||
|
||||
run-form-with-clients))
|
||||
|
||||
|
@ -93,9 +98,9 @@ disconnect.
|
|||
Like 'run-form', return two values: the exit reason, and an \"argument\"."
|
||||
(define* (discard-client! port #:optional errno)
|
||||
(if errno
|
||||
(syslog "removing client ~d due to ~s~%"
|
||||
(installer-log-line "removing client ~d due to ~s"
|
||||
(fileno port) (strerror errno))
|
||||
(syslog "removing client ~d due to EOF~%"
|
||||
(installer-log-line "removing client ~d due to EOF"
|
||||
(fileno port)))
|
||||
|
||||
;; 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)
|
||||
|
||||
(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)))
|
||||
|
||||
;; 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)
|
||||
(loop))
|
||||
(obj
|
||||
(syslog "form ~s (~s): client ~d replied ~s~%"
|
||||
(installer-log-line "form ~s (~s): client ~d replied ~s"
|
||||
form title (fileno port) obj)
|
||||
(values 'exit-fd-ready obj))))
|
||||
(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.
|
||||
(match (accept port)
|
||||
((client . _)
|
||||
(syslog "accepting new client ~d while on form ~s~%"
|
||||
(fileno client) form)
|
||||
(installer-log-line
|
||||
"accepting new client ~d while on form ~s"
|
||||
(fileno client) form)
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(write exp client)
|
||||
|
@ -486,7 +492,7 @@ the current listbox item has to be selected by key."
|
|||
(string=? str (listbox-item->text item))))
|
||||
keys)
|
||||
((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,
|
||||
;; 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))))
|
||||
keys)
|
||||
((key . item) item)
|
||||
(#f (raise (condition (&installer-step-abort))))))
|
||||
(#f (abort-to-prompt 'installer-step 'abort))))
|
||||
|
||||
(add-form-to-grid grid form #t)
|
||||
(make-wrapped-grid-window grid title)
|
||||
|
@ -726,8 +732,7 @@ ITEMS when 'Ok' is pressed."
|
|||
(newt-suspend)
|
||||
;; Use Nano because it syntax-highlights Scheme by default.
|
||||
;; TODO: Add a menu to choose an editor?
|
||||
(run-command (list "/run/current-system/profile/bin/nano" file)
|
||||
#:locale locale)
|
||||
(invoke "nano" file)
|
||||
(newt-resume))
|
||||
|
||||
(define* (run-file-textbox-page #:key
|
||||
|
@ -811,6 +816,151 @@ ITEMS when 'Ok' is pressed."
|
|||
(destroy-form-and-pop form))))
|
||||
|
||||
(if (and (eq? exit-reason 'exit-component)
|
||||
edit-button
|
||||
(components=? argument edit-button))
|
||||
(loop) ;recurse in tail position
|
||||
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)))))
|
||||
|
|
|
@ -36,10 +36,8 @@
|
|||
#:export (run-partitioning-page))
|
||||
|
||||
(define (button-exit-action)
|
||||
"Raise the &installer-step-abort condition."
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))
|
||||
"Abort the installer step."
|
||||
(abort-to-prompt 'installer-step 'abort))
|
||||
|
||||
(define (run-scheme-page)
|
||||
"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.
|
||||
(free-parted eligible-devices)
|
||||
(format-user-partitions user-partitions-with-pass)
|
||||
(syslog "formatted ~a user partitions~%"
|
||||
(installer-log-line "formatted ~a user partitions"
|
||||
(length user-partitions-with-pass))
|
||||
(syslog "user-partitions: ~a~%" user-partitions)
|
||||
(installer-log-line "user-partitions: ~a" user-partitions)
|
||||
|
||||
(destroy-form-and-pop form)
|
||||
user-partitions))
|
||||
|
|
|
@ -46,9 +46,7 @@ to choose from them later when you log in.")
|
|||
#:checkbox-tree-height 9
|
||||
#:exit-button-callback-procedure
|
||||
(lambda ()
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (run-networking-cbt-page)
|
||||
"Run a page allowing the user to select networking services."
|
||||
|
@ -65,9 +63,7 @@ system.")
|
|||
#:checkbox-tree-height 5
|
||||
#:exit-button-callback-procedure
|
||||
(lambda ()
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (run-printing-services-cbt-page)
|
||||
"Run a page allowing the user to select document services such as CUPS."
|
||||
|
@ -85,9 +81,7 @@ system.")
|
|||
#:checkbox-tree-height 9
|
||||
#:exit-button-callback-procedure
|
||||
(lambda ()
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (run-console-services-cbt-page)
|
||||
"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-callback-procedure
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort)))))))
|
||||
(abort-to-prompt 'installer-step 'abort)))))
|
||||
|
||||
(define (run-services-page)
|
||||
(let ((desktop (run-desktop-environments-cbt-page)))
|
||||
|
|
|
@ -65,9 +65,7 @@ returned."
|
|||
#:button-callback-procedure
|
||||
(if (null? path)
|
||||
(lambda _
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))
|
||||
(abort-to-prompt 'installer-step 'abort))
|
||||
(lambda _
|
||||
(loop (all-but-last path))))
|
||||
#:listbox-callback-procedure
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
|
||||
(define-module (gnu installer newt 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 utils)
|
||||
#:use-module (gnu installer utils)
|
||||
|
@ -144,7 +143,7 @@ REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
|
|||
(name name)
|
||||
(real-name real-name)
|
||||
(home-directory home-directory)
|
||||
(password password))
|
||||
(password (make-secret password)))
|
||||
(run-user-add-page #:name name
|
||||
#:real-name real-name
|
||||
#:home-directory
|
||||
|
@ -257,9 +256,7 @@ administrator (\"root\").")
|
|||
(run users))
|
||||
(reverse users))
|
||||
((components=? argument exit-button)
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))))
|
||||
(abort-to-prompt 'installer-step 'abort))))
|
||||
('exit-fd-ready
|
||||
;; Read the complete user list at once.
|
||||
(match argument
|
||||
|
@ -269,7 +266,7 @@ administrator (\"root\").")
|
|||
(map (lambda (name real-name home password)
|
||||
(user (name name) (real-name real-name)
|
||||
(home-directory home)
|
||||
(password password)))
|
||||
(password (make-secret password))))
|
||||
names real-names homes passwords))))))
|
||||
(lambda ()
|
||||
(destroy-form-and-pop form))))))
|
||||
|
@ -277,5 +274,5 @@ administrator (\"root\").")
|
|||
;; Add a "root" user simply to convey the root password.
|
||||
(cons (user (name "root")
|
||||
(home-directory "/root")
|
||||
(password (run-root-password-page)))
|
||||
(password (make-secret (run-root-password-page))))
|
||||
(run '())))
|
||||
|
|
|
@ -84,7 +84,7 @@ we want this page to occupy all the screen space available."
|
|||
(string=? str (listbox-item->text item))))
|
||||
keys)
|
||||
((key . item) item)
|
||||
(#f (raise (condition (&installer-step-abort))))))
|
||||
(#f (abort-to-prompt 'installer-step 'abort))))
|
||||
|
||||
(set-textbox-text logo-textbox (read-all logo))
|
||||
|
||||
|
|
|
@ -237,9 +237,7 @@ force a wifi scan."
|
|||
(run-wifi-scan-page)
|
||||
(run-wifi-page))
|
||||
((components=? argument exit-button)
|
||||
(raise
|
||||
(condition
|
||||
(&installer-step-abort))))
|
||||
(abort-to-prompt 'installer-step 'abort))
|
||||
((components=? argument listbox)
|
||||
(let ((result (connect-wifi-service listbox service-items)))
|
||||
(unless result
|
||||
|
|
|
@ -343,13 +343,12 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation."
|
|||
|
||||
(define (remove-logical-devices)
|
||||
"Remove all active logical devices."
|
||||
(with-null-output-ports
|
||||
(invoke "dmsetup" "remove_all")))
|
||||
((run-command-in-installer) "dmsetup" "remove_all"))
|
||||
|
||||
(define (installer-root-partition-path)
|
||||
"Return the root partition path, or #f if it could not be detected."
|
||||
(let* ((cmdline (linux-command-line))
|
||||
(root (find-long-option "--root" cmdline)))
|
||||
(root (find-long-option "root" cmdline)))
|
||||
(and root
|
||||
(or (and (access? root F_OK) root)
|
||||
(find-partition-by-label root)
|
||||
|
@ -371,7 +370,8 @@ which are smaller than %MIN-DEVICE-SIZE."
|
|||
(let ((length (device-length device))
|
||||
(sector-size (device-sector-size device)))
|
||||
(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)
|
||||
(unit-format-custom-byte device
|
||||
%min-device-size
|
||||
|
@ -391,7 +391,8 @@ which are smaller than %MIN-DEVICE-SIZE."
|
|||
(string=? the-installer-root-partition-path
|
||||
(partition-get-path partition)))
|
||||
(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))))
|
||||
|
||||
(remove
|
||||
|
@ -634,8 +635,14 @@ determined by MAX-LENGTH-COLUMN procedure."
|
|||
(define (mklabel device type-name)
|
||||
"Create a partition table on DEVICE. TYPE-NAME is the type of the partition
|
||||
table, \"msdos\" or \"gpt\"."
|
||||
(let ((type (disk-type-get type-name)))
|
||||
(disk-new-fresh device type)))
|
||||
(let* ((type (disk-type-get type-name))
|
||||
(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)))
|
||||
(partition-ok?
|
||||
(or partition-constraint-ok? partition-no-contraint-ok?)))
|
||||
(syslog "Creating partition:
|
||||
~/type: ~a
|
||||
~/filesystem-type: ~a
|
||||
~/start: ~a
|
||||
~/end: ~a
|
||||
~/start-range: [~a, ~a]
|
||||
~/end-range: [~a, ~a]
|
||||
~/constraint: ~a
|
||||
~/no-constraint: ~a
|
||||
"
|
||||
partition-type
|
||||
(filesystem-type-name filesystem-type)
|
||||
start-sector*
|
||||
end-sector
|
||||
(geometry-start start-range) (geometry-end start-range)
|
||||
(geometry-start end-range) (geometry-end end-range)
|
||||
partition-constraint-ok?
|
||||
partition-no-contraint-ok?)
|
||||
(installer-log-line "Creating partition:")
|
||||
(installer-log-line "~/type: ~a" partition-type)
|
||||
(installer-log-line "~/filesystem-type: ~a"
|
||||
(filesystem-type-name filesystem-type))
|
||||
(installer-log-line "~/start: ~a" start-sector*)
|
||||
(installer-log-line "~/end: ~a" end-sector)
|
||||
(installer-log-line "~/start-range: [~a, ~a]"
|
||||
(geometry-start start-range)
|
||||
(geometry-end start-range))
|
||||
(installer-log-line "~/end-range: [~a, ~a]"
|
||||
(geometry-start end-range)
|
||||
(geometry-end end-range))
|
||||
(installer-log-line "~/constraint: ~a"
|
||||
partition-constraint-ok?)
|
||||
(installer-log-line "~/no-constraint: ~a"
|
||||
partition-no-contraint-ok?)
|
||||
;; Set the partition name if supported.
|
||||
(when (and partition-ok? has-name? name)
|
||||
(partition-set-name partition name))
|
||||
|
@ -1115,53 +1120,37 @@ list and return the updated list."
|
|||
(file-name file-name))))
|
||||
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)
|
||||
"Create a btrfs file-system for PARTITION file-name."
|
||||
(with-null-output-ports
|
||||
(invoke "mkfs.btrfs" "-f" partition)))
|
||||
((run-command-in-installer) "mkfs.btrfs" "-f" partition))
|
||||
|
||||
(define (create-ext4-file-system partition)
|
||||
"Create an ext4 file-system for PARTITION file-name."
|
||||
(with-null-output-ports
|
||||
(invoke "mkfs.ext4" "-F" partition)))
|
||||
((run-command-in-installer) "mkfs.ext4" "-F" partition))
|
||||
|
||||
(define (create-fat16-file-system partition)
|
||||
"Create a fat16 file-system for PARTITION file-name."
|
||||
(with-null-output-ports
|
||||
(invoke "mkfs.fat" "-F16" partition)))
|
||||
((run-command-in-installer) "mkfs.fat" "-F16" partition))
|
||||
|
||||
(define (create-fat32-file-system partition)
|
||||
"Create a fat32 file-system for PARTITION file-name."
|
||||
(with-null-output-ports
|
||||
(invoke "mkfs.fat" "-F32" partition)))
|
||||
((run-command-in-installer) "mkfs.fat" "-F32" partition))
|
||||
|
||||
(define (create-jfs-file-system partition)
|
||||
"Create a JFS file-system for PARTITION file-name."
|
||||
(with-null-output-ports
|
||||
(invoke "jfs_mkfs" "-f" partition)))
|
||||
((run-command-in-installer) "jfs_mkfs" "-f" partition))
|
||||
|
||||
(define (create-ntfs-file-system partition)
|
||||
"Create a JFS file-system for PARTITION file-name."
|
||||
(with-null-output-ports
|
||||
(invoke "mkfs.ntfs" "-F" "-f" partition)))
|
||||
((run-command-in-installer) "mkfs.ntfs" "-F" "-f" partition))
|
||||
|
||||
(define (create-xfs-file-system partition)
|
||||
"Create an XFS file-system for PARTITION file-name."
|
||||
(with-null-output-ports
|
||||
(invoke "mkfs.xfs" "-f" partition)))
|
||||
((run-command-in-installer) "mkfs.xfs" "-f" partition))
|
||||
|
||||
(define (create-swap-partition partition)
|
||||
"Set up swap area on PARTITION file-name."
|
||||
(with-null-output-ports
|
||||
(invoke "mkswap" "-f" partition)))
|
||||
((run-command-in-installer) "mkswap" "-f" partition))
|
||||
|
||||
(define (call-with-luks-key-file password proc)
|
||||
"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
|
||||
password
|
||||
(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)
|
||||
(system* "cryptsetup" "-q" "luksFormat" file-name key-file)
|
||||
(system* "cryptsetup" "open" "--type" "luks"
|
||||
"--key-file" key-file file-name label)))))
|
||||
((run-command-in-installer) "cryptsetup" "-q" "luksFormat"
|
||||
file-name key-file)
|
||||
((run-command-in-installer) "cryptsetup" "open" "--type" "luks"
|
||||
"--key-file" key-file file-name label)))))
|
||||
|
||||
(define (luks-close user-partition)
|
||||
"Close the encrypted partition pointed by USER-PARTITION."
|
||||
(let ((label (user-partition-crypt-label user-partition)))
|
||||
(syslog "closing LUKS entry ~s~%" label)
|
||||
(system* "cryptsetup" "close" label)))
|
||||
(installer-log-line "closing LUKS entry ~s" label)
|
||||
((run-command-in-installer) "cryptsetup" "close" label)))
|
||||
|
||||
(define (format-user-partitions user-partitions)
|
||||
"Format the <user-partition> records in USER-PARTITIONS list with
|
||||
|
@ -1279,7 +1269,7 @@ respective mount-points."
|
|||
(file-name
|
||||
(user-partition-upper-file-name user-partition)))
|
||||
(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)))
|
||||
sorted-partitions)))
|
||||
|
||||
|
@ -1295,7 +1285,7 @@ respective mount-points."
|
|||
(target
|
||||
(string-append (%installer-target-dir)
|
||||
mount-point)))
|
||||
(syslog "unmounting ~s~%" target)
|
||||
(installer-log-line "unmounting ~s" target)
|
||||
(umount target)
|
||||
(when crypt-label
|
||||
(luks-close user-partition))))
|
||||
|
@ -1486,6 +1476,6 @@ the devices not to be used before returning."
|
|||
(error
|
||||
(format #f (G_ "Device ~a is still in use.")
|
||||
file-name))
|
||||
(syslog "Syncing ~a took ~a seconds.~%"
|
||||
(installer-log-line "Syncing ~a took ~a seconds."
|
||||
file-name (time-second time)))))
|
||||
device-file-names)))
|
||||
|
|
|
@ -41,7 +41,10 @@
|
|||
installer-services-page
|
||||
installer-welcome-page
|
||||
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)
|
||||
;; procedure: void -> void
|
||||
(exit installer-exit)
|
||||
;; procedure (key arguments) -> void
|
||||
;; procedure (key arguments) -> (action)
|
||||
(exit-error installer-exit-error)
|
||||
;; procedure void -> void
|
||||
(final-page installer-final-page)
|
||||
|
@ -91,4 +94,10 @@
|
|||
;; procedure (menu-proc) -> void
|
||||
(parameters-menu installer-parameters-menu)
|
||||
;; 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))
|
||||
|
|
|
@ -28,13 +28,7 @@
|
|||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (rnrs io ports)
|
||||
#:export (&installer-step-abort
|
||||
installer-step-abort?
|
||||
|
||||
&installer-step-break
|
||||
installer-step-break?
|
||||
|
||||
<installer-step>
|
||||
#:export (<installer-step>
|
||||
installer-step
|
||||
make-installer-step
|
||||
installer-step?
|
||||
|
@ -52,15 +46,13 @@
|
|||
%installer-configuration-file
|
||||
%installer-target-dir
|
||||
format-configuration
|
||||
configuration->file))
|
||||
configuration->file
|
||||
|
||||
;; This condition may be raised to abort the current step.
|
||||
(define-condition-type &installer-step-abort &condition
|
||||
installer-step-abort?)
|
||||
%current-result))
|
||||
|
||||
;; This condition may be raised to break out from the steps execution.
|
||||
(define-condition-type &installer-step-break &condition
|
||||
installer-step-break?)
|
||||
;; Hash table storing the step results. Use it only for logging and debug
|
||||
;; purposes.
|
||||
(define %current-result (make-hash-table))
|
||||
|
||||
;; An installer-step record is basically an id associated to a compute
|
||||
;; procedure. The COMPUTE procedure takes exactly one argument, an association
|
||||
|
@ -88,8 +80,10 @@
|
|||
(rewind-strategy 'previous)
|
||||
(menu-proc (const #f)))
|
||||
"Run the COMPUTE procedure of all <installer-step> records in STEPS
|
||||
sequentially. If the &installer-step-abort condition is raised, fallback to a
|
||||
previous install-step, accordingly to the specified REWIND-STRATEGY.
|
||||
sequentially, inside a the 'installer-step prompt. When aborted to with a
|
||||
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
|
||||
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
|
||||
result of the associated COMPUTE procedure. This result association list is
|
||||
passed as argument of every COMPUTE procedure. It is finally returned when the
|
||||
computation is over.
|
||||
|
||||
If the &installer-step-break condition is raised, stop the computation and
|
||||
return the accumalated result so far."
|
||||
computation is over."
|
||||
(define (pop-result list)
|
||||
(cdr list))
|
||||
|
||||
|
@ -143,62 +134,61 @@ return the accumalated result so far."
|
|||
(match todo-steps
|
||||
(() (reverse result))
|
||||
((step . rest-steps)
|
||||
(guard (c ((installer-step-abort? c)
|
||||
(case rewind-strategy
|
||||
((previous)
|
||||
(match done-steps
|
||||
(()
|
||||
;; We cannot go previous the first step. So re-raise
|
||||
;; the exception. It might be useful in the case of
|
||||
;; nested run-installer-steps. Abort to 'raise-above
|
||||
;; prompt to prevent the condition from being catched
|
||||
;; by one of the previously installed guard.
|
||||
(abort-to-prompt 'raise-above c))
|
||||
((prev-done ... last-done)
|
||||
(run (pop-result result)
|
||||
#:todo-steps (cons last-done todo-steps)
|
||||
#:done-steps prev-done))))
|
||||
((menu)
|
||||
(let ((goto-step (menu-proc
|
||||
(append done-steps (list step)))))
|
||||
(if (eq? goto-step step)
|
||||
(run result
|
||||
#:todo-steps todo-steps
|
||||
#:done-steps done-steps)
|
||||
(skip-to-step goto-step result
|
||||
#:todo-steps todo-steps
|
||||
#:done-steps done-steps))))
|
||||
((start)
|
||||
(if (null? done-steps)
|
||||
;; Same as above, it makes no sense to jump to start
|
||||
;; when we are at the first installer-step. Abort to
|
||||
;; 'raise-above prompt to re-raise the condition.
|
||||
(abort-to-prompt 'raise-above c)
|
||||
(run '()
|
||||
#:todo-steps steps
|
||||
#:done-steps '())))))
|
||||
((installer-step-break? c)
|
||||
(reverse result)))
|
||||
(syslog "running step '~a'~%" (installer-step-id step))
|
||||
(let* ((id (installer-step-id step))
|
||||
(compute (installer-step-compute step))
|
||||
(res (compute result done-steps)))
|
||||
(run (alist-cons id res result)
|
||||
#:todo-steps rest-steps
|
||||
#:done-steps (append done-steps (list step))))))))
|
||||
(call-with-prompt 'installer-step
|
||||
(lambda ()
|
||||
(installer-log-line "running step '~a'" (installer-step-id step))
|
||||
(let* ((id (installer-step-id step))
|
||||
(compute (installer-step-compute step))
|
||||
(res (compute result done-steps)))
|
||||
(hash-set! %current-result id res)
|
||||
(run (alist-cons id res result)
|
||||
#:todo-steps rest-steps
|
||||
#:done-steps (append done-steps (list step)))))
|
||||
(lambda (k action)
|
||||
(match action
|
||||
('abort
|
||||
(case rewind-strategy
|
||||
((previous)
|
||||
(match done-steps
|
||||
(()
|
||||
;; We cannot go previous the first step. Abort again to
|
||||
;; 'installer-step prompt. It might be useful in the case
|
||||
;; of nested run-installer-steps.
|
||||
(abort-to-prompt 'installer-step action))
|
||||
((prev-done ... last-done)
|
||||
(run (pop-result result)
|
||||
#:todo-steps (cons last-done todo-steps)
|
||||
#:done-steps prev-done))))
|
||||
((menu)
|
||||
(let ((goto-step (menu-proc
|
||||
(append done-steps (list step)))))
|
||||
(if (eq? goto-step step)
|
||||
(run result
|
||||
#:todo-steps todo-steps
|
||||
#:done-steps done-steps)
|
||||
(skip-to-step goto-step result
|
||||
#:todo-steps todo-steps
|
||||
#:done-steps done-steps))))
|
||||
((start)
|
||||
(if (null? done-steps)
|
||||
;; Same as above, it makes no sense to jump to start
|
||||
;; when we are at the first installer-step. Abort to
|
||||
;; 'installer-step prompt again.
|
||||
(abort-to-prompt 'installer-step action)
|
||||
(run '()
|
||||
#:todo-steps steps
|
||||
#:done-steps '())))))
|
||||
('break
|
||||
(reverse result))))))))
|
||||
|
||||
;; Ignore SIGPIPE so that we don't die if a client closes the connection
|
||||
;; prematurely.
|
||||
(sigaction SIGPIPE SIG_IGN)
|
||||
|
||||
(with-server-socket
|
||||
(call-with-prompt 'raise-above
|
||||
(lambda ()
|
||||
(run '()
|
||||
#:todo-steps steps
|
||||
#:done-steps '()))
|
||||
(lambda (k condition)
|
||||
(raise condition)))))
|
||||
(run '()
|
||||
#:todo-steps steps
|
||||
#:done-steps '())))
|
||||
|
||||
(define (find-step-by-id steps id)
|
||||
"Find and return the step in STEPS whose id is equal to ID."
|
||||
|
|
|
@ -19,7 +19,14 @@
|
|||
(define-module (gnu installer user)
|
||||
#:use-module (guix records)
|
||||
#: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
|
||||
make-user
|
||||
user-name
|
||||
|
@ -30,6 +37,16 @@
|
|||
|
||||
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>
|
||||
user make-user
|
||||
user?
|
||||
|
|
|
@ -25,7 +25,10 @@
|
|||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (ice-9 control)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 popen)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (ice-9 regex)
|
||||
#:use-module (ice-9 format)
|
||||
|
@ -34,10 +37,17 @@
|
|||
read-all
|
||||
nearest-exact-integer
|
||||
read-percentage
|
||||
run-external-command-with-handler
|
||||
run-external-command-with-line-hooks
|
||||
run-command
|
||||
run-command-in-installer
|
||||
|
||||
syslog-port
|
||||
syslog
|
||||
%syslog-line-hook
|
||||
installer-log-port
|
||||
%installer-log-line-hook
|
||||
%default-installer-line-hooks
|
||||
installer-log-line
|
||||
call-with-time
|
||||
let/time
|
||||
|
||||
|
@ -74,37 +84,99 @@ number. If no percentage is found, return #f"
|
|||
(and result
|
||||
(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)
|
||||
"Run COMMAND, a list of strings. Return true if COMMAND exited
|
||||
successfully, #f otherwise."
|
||||
(define env (environ))
|
||||
|
||||
(define (pause)
|
||||
(format #t (G_ "Press Enter to continue.~%"))
|
||||
(send-to-clients '(pause))
|
||||
(environ env) ;restore environment variables
|
||||
(match (select (cons (current-input-port) (current-clients))
|
||||
'() '())
|
||||
(((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)
|
||||
(newline)
|
||||
(format (current-error-port)
|
||||
(G_ "Command failed with exit code ~a.~%")
|
||||
(invoke-error-exit-status c))
|
||||
(syslog "command ~s failed with exit code ~a"
|
||||
command (invoke-error-exit-status c))
|
||||
(pause)
|
||||
#f))
|
||||
(syslog "running command ~s~%" command)
|
||||
(apply invoke command)
|
||||
(syslog "command ~s succeeded~%" command)
|
||||
(newline)
|
||||
(pause)
|
||||
#t))
|
||||
(define run-command-in-installer
|
||||
(make-parameter
|
||||
(lambda (. args)
|
||||
(raise
|
||||
(condition
|
||||
(&serious)
|
||||
(&message (message "run-command-in-installer not set")))))))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -142,6 +214,9 @@ values."
|
|||
(set! port (open-syslog-port)))
|
||||
(or port (%make-void-port "w")))))
|
||||
|
||||
(define (%syslog-line-hook line)
|
||||
(format (syslog-port) "installer[~d]: ~a~%" (getpid) line))
|
||||
|
||||
(define-syntax syslog
|
||||
(lambda (s)
|
||||
"Like 'format', but write to syslog."
|
||||
|
@ -152,6 +227,43 @@ values."
|
|||
(syntax->datum #'fmt))))
|
||||
#'(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.
|
||||
|
@ -214,8 +326,9 @@ accepting socket."
|
|||
(let ((errno (system-error-errno args)))
|
||||
(if (memv errno (list EPIPE ECONNRESET ECONNABORTED))
|
||||
(begin
|
||||
(syslog "removing client ~s due to ~s while replying~%"
|
||||
(fileno client) (strerror errno))
|
||||
(installer-log-line
|
||||
"removing client ~s due to ~s while replying"
|
||||
(fileno client) (strerror errno))
|
||||
(false-if-exception (close-port client))
|
||||
remainder)
|
||||
(cons client remainder))))))
|
||||
|
|
103
gnu/local.mk
103
gnu/local.mk
|
@ -7,7 +7,7 @@
|
|||
# Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||
# 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, 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, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
|
||||
# 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 © 2021 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
# 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 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||
# Copyright © 2021 Dmitry Polyakov <polyakov@liltechdude.xyz>
|
||||
|
@ -79,6 +79,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/ci.scm \
|
||||
%D%/home.scm \
|
||||
%D%/home/services.scm \
|
||||
%D%/home/services/desktop.scm \
|
||||
%D%/home/services/symlink-manager.scm \
|
||||
%D%/home/services/fontutils.scm \
|
||||
%D%/home/services/shells.scm \
|
||||
|
@ -121,6 +122,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/axoloti.scm \
|
||||
%D%/packages/backup.scm \
|
||||
%D%/packages/base.scm \
|
||||
%D%/packages/barrier.scm \
|
||||
%D%/packages/bash.scm \
|
||||
%D%/packages/batik.scm \
|
||||
%D%/packages/bdw-gc.scm \
|
||||
|
@ -581,6 +583,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/time.scm \
|
||||
%D%/packages/tls.scm \
|
||||
%D%/packages/tmux.scm \
|
||||
%D%/packages/toolkits.scm \
|
||||
%D%/packages/tor.scm \
|
||||
%D%/packages/tv.scm \
|
||||
%D%/packages/uglifyjs.scm \
|
||||
|
@ -601,6 +604,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/vulkan.scm \
|
||||
%D%/packages/w3m.scm \
|
||||
%D%/packages/wdiff.scm \
|
||||
%D%/packages/weather.scm \
|
||||
%D%/packages/web.scm \
|
||||
%D%/packages/web-browsers.scm \
|
||||
%D%/packages/webkit.scm \
|
||||
|
@ -758,6 +762,7 @@ GNU_SYSTEM_MODULES = \
|
|||
INSTALLER_MODULES = \
|
||||
%D%/installer.scm \
|
||||
%D%/installer/connman.scm \
|
||||
%D%/installer/dump.scm \
|
||||
%D%/installer/final.scm \
|
||||
%D%/installer/hostname.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-objcopy.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-sign-conversion.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/aws-c-auth-install-private-headers.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-linux-pgrp-pipe.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-deterministic.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/byobu-writable-status.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/cairo-CVE-2018-19876.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-remove-test-sqlite.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/coreutils-ls.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/crda-optional-gcrypt.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-libffi.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-stabilise-sparseqr-test.patch \
|
||||
%D%/packages/patches/einstein-build.patch \
|
||||
|
@ -1035,7 +1041,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/erlang-man-path.patch \
|
||||
%D%/packages/patches/esmtp-add-lesmtp.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/extempore-unbundle-external-dependencies.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-spFactor.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-swig-compat.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/fpc-reproducibility.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/freeglut-gcc-compat.patch \
|
||||
%D%/packages/patches/freeimage-unbundle.patch \
|
||||
|
@ -1130,10 +1137,10 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/geeqie-clutter.patch \
|
||||
%D%/packages/patches/genimage-mke2fs-test.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-testsuite-dlopen-pie.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-uuid.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-32-bit-time.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-9169.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-gettyent.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-ldd-powerpc.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/grep-timing-sensitive-test.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/groovy-add-exceptionutilsgenerator.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-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-wait-for-io-readiness.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-present-coding.patch \
|
||||
%D%/packages/patches/guile-rsvg-pkgconfig.patch \
|
||||
%D%/packages/patches/guile-emacs-fix-configure.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-respect-GUIX_GTK2_PATH.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/hurd-cross.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/icecat-makeicecat.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-ReadDCMPixels-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/intel-xed-fix-nondeterminism.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/jsoncpp-pkg-config-version.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-armv7-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/librime-fix-build-with-gcc10.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/localed-xorg-keyboard.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/libqalculate-3.8.0-libcurl-ssl-fix.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/libtar-CVE-2013-4420.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/linphone-desktop-without-sdk.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-unix_chkpwd.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/mailutils-variable-lookup.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-sfml-2.3.patch \
|
||||
%D%/packages/patches/mathjax-disable-webpack.patch \
|
||||
%D%/packages/patches/mathjax-no-a11y.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-javax-inject-named.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/mesa-opencl-all-targets.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/mhash-keygen-test-segfault.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-tracelogger.patch \
|
||||
%D%/packages/patches/mozjs38-version-detection.patch \
|
||||
%D%/packages/patches/mozjs60-riscv64-support.patch \
|
||||
%D%/packages/patches/mrrescue-support-love-11.patch \
|
||||
%D%/packages/patches/mtools-mformat-uninitialized.patch \
|
||||
%D%/packages/patches/mumps-build-parallelism.patch \
|
||||
|
@ -1524,9 +1526,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/netsurf-system-utf8proc.patch \
|
||||
%D%/packages/patches/netsurf-y2038-tests.patch \
|
||||
%D%/packages/patches/netsurf-longer-test-timeout.patch \
|
||||
%D%/packages/patches/nettle-3.5-check-_pkcs1_sec_decrypt-msg-len.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/nhc98-c-update.patch \
|
||||
%D%/packages/patches/nix-dont-build-html-doc.diff \
|
||||
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
|
||||
%D%/packages/patches/ngircd-handle-zombies.patch \
|
||||
|
@ -1545,37 +1545,30 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/nvi-db4.patch \
|
||||
%D%/packages/patches/nyacc-binary-literals.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-Fix-for-ocaml-4.06.patch \
|
||||
%D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \
|
||||
%D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \
|
||||
%D%/packages/patches/ocaml-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/oneko-remove-nonfree-characters.patch \
|
||||
%D%/packages/patches/onnx-optimizer-system-library.patch \
|
||||
%D%/packages/patches/onnx-use-system-googletest.patch \
|
||||
%D%/packages/patches/onnx-shared-libraries.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/openfoam-4.1-cleanup.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/openssh-hurd.patch \
|
||||
%D%/packages/patches/openresolv-restartcmd-guix.patch \
|
||||
%D%/packages/patches/openrgb-unbundle-hueplusplus.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-c-rehash-in.patch \
|
||||
%D%/packages/patches/openssl-CVE-2019-1559.patch \
|
||||
%D%/packages/patches/openssl-3.0-c-rehash-in.patch \
|
||||
%D%/packages/patches/open-zwave-hidapi.patch \
|
||||
%D%/packages/patches/orpheus-cast-errors-and-includes.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/pam-krb5-CVE-2020-10595.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/pciutils-hurd-configure.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/sunxi-tools-remove-sys-io.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/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-finance-quote-unuse-mozilla-ca.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-2012-4552.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-use-duktape.patch \
|
||||
%D%/packages/patches/portaudio-audacity-compat.patch \
|
||||
%D%/packages/patches/portmidi-modular-build.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-CVE-2014-3618.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-hurd-configure.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-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/python2-larch-coverage-4.0a6-compatibility.patch \
|
||||
%D%/packages/patches/python-configobj-setuptools.patch \
|
||||
%D%/packages/patches/python-docopt-pytest6-compat.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-pyfakefs-remove-bad-test.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-libxml2-utf8.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-mox3-python3.6-compat.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/python2-pygobject-2-deprecation.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-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-ug2html.patch \
|
||||
%D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
|
||||
%D%/packages/patches/python-seaborn-kde-test.patch \
|
||||
%D%/packages/patches/python-seaborn-2690.patch \
|
||||
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
|
||||
%D%/packages/patches/python-unittest2-python3-compat.patch \
|
||||
%D%/packages/patches/python-unittest2-remove-argparse.patch \
|
||||
%D%/packages/patches/python-versioneer-guix-support.patch \
|
||||
%D%/packages/patches/python-waitress-fix-tests.patch \
|
||||
%D%/packages/patches/python-werkzeug-tests.patch \
|
||||
%D%/packages/patches/python-mypy-12332.patch \
|
||||
%D%/packages/patches/qemu-build-info-manual.patch \
|
||||
%D%/packages/patches/qemu-glibc-2.27.patch \
|
||||
%D%/packages/patches/qemu-glibc-2.30.patch \
|
||||
%D%/packages/patches/qemu-fix-agent-paths.patch \
|
||||
%D%/packages/patches/qpdfview-qt515-compat.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-moc-ignore-gcc-macro.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/ratpoints-sturm_and_rp_private.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/readline-link-ncurses.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/rpcbind-CVE-2017-8779.patch \
|
||||
%D%/packages/patches/rtags-separate-rct.patch \
|
||||
%D%/packages/patches/racket-enable-scheme-backport.patch \
|
||||
%D%/packages/patches/racket-gui-tethered-launcher-backport.patch \
|
||||
%D%/packages/patches/racket-minimal-sh-via-rktio.patch \
|
||||
%D%/packages/patches/remake-impure-dirs.patch \
|
||||
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
|
||||
|
@ -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-nocltrace.patch \
|
||||
%D%/packages/patches/rocm-opencl-runtime-4.3-noopencl.patch \
|
||||
%D%/packages/patches/ruby-mustache-1.1.1-fix-race-condition-tests.patch \
|
||||
%D%/packages/patches/ruby-sanitize-system-libxml.patch \
|
||||
%D%/packages/patches/rustc-1.39.0-src.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/rust-ndarray-remove-blas-src-dep.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/scotch-build-parallelism.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/sdl-libx11-1.6.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/sssd-fix-samba.patch \
|
||||
%D%/packages/patches/sssd-system-directories.patch \
|
||||
%D%/packages/patches/streamlink-update-test.patch \
|
||||
%D%/packages/patches/steghide-fixes.patch \
|
||||
%D%/packages/patches/suitesparse-mongoose-cmake.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/tar-remove-wholesparse-check.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/tcsh-fix-autotest.patch \
|
||||
%D%/packages/patches/teensy-loader-cli-help.patch \
|
||||
|
@ -1866,6 +1859,7 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/tootle-reason-phrase.patch \
|
||||
%D%/packages/patches/tor-sandbox-i686.patch \
|
||||
%D%/packages/patches/transcode-ffmpeg.patch \
|
||||
%D%/packages/patches/transfig-gcc10-fno-common.patch \
|
||||
%D%/packages/patches/transmission-honor-localedir.patch \
|
||||
%D%/packages/patches/tremc-fix-decodestring.patch \
|
||||
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
|
||||
|
@ -1881,7 +1875,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
|
||||
%D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \
|
||||
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
|
||||
%D%/packages/patches/ungoogled-chromium-accelerated-video-decode.patch \
|
||||
%D%/packages/patches/ungoogled-chromium-extension-search-path.patch \
|
||||
%D%/packages/patches/ungoogled-chromium-ffmpeg-compat.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/ustr-fix-build-with-gcc-5.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/vboot-utils-fix-format-load-address.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-pt2.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/webkitgtk-share-store.patch \
|
||||
%D%/packages/patches/webkitgtk-bind-all-fonts.patch \
|
||||
%D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
|
||||
%D%/packages/patches/webkitgtk-canonicalize-paths.patch \
|
||||
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
|
||||
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
|
||||
%D%/packages/patches/wicd-bitrate-none-fix.patch \
|
||||
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
;;; Commentary:
|
||||
;;;
|
||||
;;; 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
|
||||
;;; per-host basis.
|
||||
;;;
|
||||
|
|
|
@ -422,7 +422,8 @@ of MACHINE's system profile, ordered from most recent to oldest."
|
|||
(let* ((params (call-with-input-string serialized-params
|
||||
read-boot-parameters))
|
||||
(root (boot-parameters-root-device params))
|
||||
(label (boot-parameters-label params)))
|
||||
(label (boot-parameters-label params))
|
||||
(version (boot-parameters-version params)))
|
||||
(boot-parameters
|
||||
(inherit params)
|
||||
(label
|
||||
|
@ -433,7 +434,7 @@ of MACHINE's system profile, ordered from most recent to oldest."
|
|||
"~Y-~m-~d ~H:~M"))
|
||||
")"))
|
||||
(kernel-arguments
|
||||
(append (bootable-kernel-arguments system-path root)
|
||||
(append (bootable-kernel-arguments system-path root version)
|
||||
(boot-parameters-kernel-arguments params))))))))
|
||||
generations))))
|
||||
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages lisp)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages ocaml)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages polkit)
|
||||
|
@ -174,7 +173,6 @@ terminals.")
|
|||
flite
|
||||
glib
|
||||
gpm
|
||||
libiconv
|
||||
icu4c
|
||||
libbraille
|
||||
pcre2
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
;;; 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 © 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 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
|
||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||
|
@ -28,11 +28,11 @@
|
|||
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
|
||||
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.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 © 2020 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; 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 Morgan Smith <Morgan.J.Smith@outlook.com>
|
||||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
|
@ -876,10 +876,27 @@ hostname.")
|
|||
"Shadow provides a number of authentication-related tools, including:
|
||||
login, passwd, su, groupadd, and useradd.")
|
||||
|
||||
(properties '((hidden? . #t))) ;see below
|
||||
|
||||
;; The `vipw' program is GPLv2+.
|
||||
;; libmisc/salt.c is public domain.
|
||||
(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
|
||||
(package
|
||||
(name "mingetty")
|
||||
|
@ -1166,7 +1183,7 @@ connection alive.")
|
|||
(define-public isc-dhcp
|
||||
(let* ((bind-major-version "9")
|
||||
(bind-minor-version "11")
|
||||
(bind-patch-version "36")
|
||||
(bind-patch-version "37")
|
||||
(bind-release-type "") ; for patch release, use "-P"
|
||||
(bind-release-version "") ; for patch release, e.g. "6"
|
||||
(bind-version (string-append bind-major-version
|
||||
|
@ -1220,6 +1237,21 @@ connection alive.")
|
|||
;; build system uses the built 'gen' executable.
|
||||
(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
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Point to the right client script, which will be
|
||||
|
@ -1282,7 +1314,7 @@ connection alive.")
|
|||
(list inetutils net-tools coreutils sed))))))))))
|
||||
|
||||
(native-inputs
|
||||
(list perl file))
|
||||
(list config perl file))
|
||||
|
||||
(inputs `(("inetutils" ,inetutils)
|
||||
("bash" ,bash-minimal)
|
||||
|
@ -1300,7 +1332,7 @@ connection alive.")
|
|||
"/bind-" bind-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"108nh7hha4r0lb5hf1fn7lqaascvhsrghpz6afm5lf9vf2vgqly9"))))
|
||||
"1zsszgxs9043dfpxb6xs1iwk9jg7nxkl5pbawj8dlshnxkkzp3hd"))))
|
||||
|
||||
("coreutils*" ,coreutils)
|
||||
("sed*" ,sed)))
|
||||
|
@ -1692,7 +1724,7 @@ system administrator.")
|
|||
(define-public sudo
|
||||
(package
|
||||
(name "sudo")
|
||||
(version "1.9.8p2")
|
||||
(version "1.9.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -1702,7 +1734,7 @@ system administrator.")
|
|||
version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0b8gd15l2g22w4fhhz0gzmq5c8370klanmy2c1p3px6yly6qnfwy"))
|
||||
"1x34k8sd2msfjjsahff1q143gr5j9z19jx2rmkkbiiz7k084d8a4"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -1786,7 +1818,7 @@ commands and their arguments.")
|
|||
(define-public opendoas
|
||||
(package
|
||||
(name "opendoas")
|
||||
(version "6.8.1")
|
||||
(version "6.8.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1795,7 +1827,7 @@ commands and their arguments.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gfcssm21vdfg6kcrcc7hz1h4jmhy2zv29rfqyrrj3a6r9b5ah8p"))))
|
||||
"1qrin7x9vcprk5pwjbr3w8z2qj8hk6xbvxicdhlk27xr6vcr1qzn"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -1804,7 +1836,7 @@ commands and their arguments.")
|
|||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "GNUmakefile"
|
||||
(("^\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”.
|
||||
(substitute* "doas.c"
|
||||
(("safepath =" match)
|
||||
|
@ -1812,8 +1844,7 @@ commands and their arguments.")
|
|||
"/run/setuid-programs:"
|
||||
"/run/current-system/profile/bin:"
|
||||
"/run/current-system/profile/sbin:"
|
||||
"\" ")))
|
||||
#t))
|
||||
"\" ")))))
|
||||
(replace 'configure
|
||||
;; The configure script doesn't accept most of the default flags.
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "tree")
|
||||
(version "2.0.1")
|
||||
(version "2.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://mama.indstate.edu/users/ice/tree/src/tree-"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32 "0f92vx6gpz7v29wi9clklzah57v7lgx5kv0m1w4b9xjc35d9qcz3"))))
|
||||
(base32 "1bzfkr3kmn2v5x7ljir691fr9hhjvjxqsfz0fc5fgi6ki0fklsbx"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
|
@ -2858,7 +2861,8 @@ lookup to YAML Mode. You could enable the mode with @code{(add-hook
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))))
|
||||
(base32 "1dz045yhcsw1rdamzpz4bk8mw888in7fyqk1q1b3m1yk4pd1ahkh"))
|
||||
(patches (search-patches "cpulimit-with-glib-2.32.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
|
@ -3052,13 +3056,13 @@ platform-specific methods.")
|
|||
(package
|
||||
(name "audit")
|
||||
(home-page "https://people.redhat.com/sgrubb/audit/")
|
||||
(version "3.0.6")
|
||||
(version "3.0.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "audit-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pnc9wzslks9p6kxw0llp1n8h8yg0frcxl3x84fl0hisa5vlvr63"))))
|
||||
"15r5lrrkv2zj3dvpqssd46w61hmrq27y7c2rz33s20ck59iphk4b"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--with-python=no"
|
||||
|
@ -3881,7 +3885,8 @@ hard-coded.")
|
|||
(let ((out (assoc-ref %outputs "out")))
|
||||
(list (string-append "--with-dbus-sys-dir="
|
||||
out "/etc/dbus-1/system.d")
|
||||
"--localstatedir=/var"))
|
||||
"--localstatedir=/var"
|
||||
"--disable-werror"))
|
||||
#:make-flags
|
||||
(list "V=1") ; log build commands
|
||||
#:phases
|
||||
|
@ -4753,7 +4758,7 @@ disk utilization, priority, username, state, and exit code.")
|
|||
(install-file "novena-eeprom" out-bin)
|
||||
(install-file "novena-eeprom.8" out-share-man)))))))
|
||||
(inputs
|
||||
(list i2c-tools))
|
||||
(list i2c-tools-3))
|
||||
(synopsis "Novena EEPROM editor")
|
||||
(description "This package provides an editor for the Novena EEPROM.
|
||||
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
|
||||
(package
|
||||
(name "udpcast")
|
||||
(version "20200328")
|
||||
(version "20211207")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
;; XXX: Original server is at https://www.udpcast.linux.lu is not
|
||||
;; reliable.
|
||||
(uri (list (string-append
|
||||
"http://sources.buildroot.net/udpcast/udpcast-"
|
||||
version ".tar.gz")
|
||||
(string-append
|
||||
"https://fossies.org/linux/privat/udpcast-"
|
||||
version ".tar.gz")
|
||||
(string-append
|
||||
"https://www.udpcast.linux.lu/download/udpcast-"
|
||||
version ".tar.gz")))
|
||||
(sha256
|
||||
(base32 "06pj86nbi9hx7abbb0z2c5ynhfq0rv89b7nmy0kq3xz2lsxfw6cw"))))
|
||||
(base32 "0l6hck694szrrvz85nm48rwb7mzvg2z2bwa50v51pkvym3kvxkm3"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list autoconf automake m4 perl))
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016–2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2019, 2021 Eric Bavier <bavier@posteo.net>
|
||||
;;; Copyright © 2017, 2019, 2021, 2022 Eric Bavier <bavier@posteo.net>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
|
@ -69,6 +69,7 @@
|
|||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system r)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix hg-download)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
|
@ -328,7 +329,7 @@ precision.")
|
|||
(define-public giac
|
||||
(package
|
||||
(name "giac")
|
||||
(version "1.7.0-45")
|
||||
(version "1.7.0-51")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -340,42 +341,42 @@ precision.")
|
|||
"~parisse/debian/dists/stable/main/source/"
|
||||
"giac_" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "19hxbx27n5zby96d4pzhxxqn7mzk29g8sxn08fi638l17lr9x2q2"))))
|
||||
(base32 "0wgqa2nxpv652348fxpchx5zvaj6ssc403jxwsdp5ky9pdpap2zs"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((ice-9 ftw)
|
||||
(list
|
||||
#:modules '((ice-9 ftw)
|
||||
(guix build utils)
|
||||
(guix build gnu-build-system))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-bin-cp
|
||||
;; Some Makefiles contain hard-coded "/bin/cp".
|
||||
(lambda _
|
||||
(substitute* (cons "micropython-1.12/xcas/Makefile"
|
||||
(find-files "doc" "^Makefile"))
|
||||
(("/bin/cp") (which "cp")))))
|
||||
(add-after 'unpack 'disable-failing-test
|
||||
;; FIXME: Test failing. Not sure why.
|
||||
(lambda _
|
||||
(substitute* "check/Makefile.in"
|
||||
(("chk_fhan11") ""))))
|
||||
(add-after 'install 'fix-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Most French documentation has a non-commercial
|
||||
;; license, so we need to remove it.
|
||||
(with-directory-excursion (string-append out "/share/giac/doc/fr")
|
||||
(for-each delete-file-recursively
|
||||
'("cascas" "casexo" "casgeo" "casrouge" "cassim"
|
||||
"castor")))
|
||||
;; Remove duplicate documentation in
|
||||
;; "%out/share/doc/giac/", where Xcas does not expect
|
||||
;; to find it.
|
||||
(delete-file-recursively (string-append out "/share/doc/giac")))))
|
||||
(add-after 'install 'remove-unnecessary-executable
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(delete-file (string-append out "/bin/xcasnew"))))))))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-bin-cp
|
||||
;; Some Makefiles contain hard-coded "/bin/cp".
|
||||
(lambda _
|
||||
(substitute* (cons "micropython-1.12/xcas/Makefile"
|
||||
(find-files "doc" "^Makefile"))
|
||||
(("/bin/cp") (which "cp")))))
|
||||
(add-after 'unpack 'disable-failing-test
|
||||
;; FIXME: Test failing. Not sure why.
|
||||
(lambda _
|
||||
(substitute* "check/Makefile.in"
|
||||
(("chk_fhan11") ""))))
|
||||
(add-after 'install 'fix-doc
|
||||
(lambda _
|
||||
;; Most French documentation has a non-commercial license, so we
|
||||
;; need to remove it.
|
||||
(with-directory-excursion
|
||||
(string-append #$output "/share/giac/doc/fr")
|
||||
(for-each delete-file-recursively
|
||||
'("cascas" "casexo" "casgeo" "casrouge" "cassim"
|
||||
"castor")))
|
||||
;; Remove duplicate documentation in "%out/share/doc/giac/",
|
||||
;; where Xcas does not expect to find it.
|
||||
(delete-file-recursively
|
||||
(string-append #$output "/share/doc/giac"))))
|
||||
(add-after 'install 'remove-unnecessary-executable
|
||||
(lambda _
|
||||
(delete-file (string-append #$output "/bin/xcasnew")))))))
|
||||
(inputs
|
||||
;; TODO: Add libnauty, unbundle "libmicropython.a".
|
||||
(list ao
|
||||
|
@ -1139,7 +1140,7 @@ features, and more.")
|
|||
(define-public xtensor
|
||||
(package
|
||||
(name "xtensor")
|
||||
(version "0.20.10")
|
||||
(version "0.24.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1147,11 +1148,11 @@ features, and more.")
|
|||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"1fmv2hpx610xwhxrndfsfvlbqfyk4l3gi5q5d7pa9m82kblxjj9l"))
|
||||
"14fpzwdq26p2fqdrmc78hny9pp09k9c53jnwlh7f8x54ikzm23c2"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
(list googletest xtl))
|
||||
(list doctest googletest xtl))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("-DBUILD_TESTS=ON")
|
||||
|
@ -1181,7 +1182,7 @@ xtensor provides:
|
|||
(add-after 'unpack 'remove-march=native
|
||||
(lambda _
|
||||
(substitute* "benchmark/CMakeLists.txt"
|
||||
(("-march=native") ""))))
|
||||
(("-march=native\"") "\""))))
|
||||
(add-after 'unpack 'link-with-googlebenchmark
|
||||
(lambda _
|
||||
(substitute* "benchmark/CMakeLists.txt"
|
||||
|
@ -1348,14 +1349,14 @@ objects.")
|
|||
(define-public gappa
|
||||
(package
|
||||
(name "gappa")
|
||||
(version "1.3.5")
|
||||
(version "1.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://gforge.inria.fr/frs/download.php/latestfile/"
|
||||
"2699/gappa-" version ".tar.gz"))
|
||||
(uri (string-append "https://gappa.gitlabpages.inria.fr/releases/"
|
||||
"gappa-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0q1wdiwqj6fsbifaayb1zkp20bz8a1my81sqjsail577jmzwi07w"))))
|
||||
"12x42z901pr05ldmparqdi8sq9s7fxbavhzk2dbq3l6hy247dwbb"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(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
|
||||
prover for the Why3 software verification platform or as an automatic tactic
|
||||
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
|
||||
(package
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2018–2021 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 © 2020 R Veera Kumar <vkor@vkten.in>
|
||||
;;; 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 Greg Hogan <code@greghogan.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
|
||||
(package
|
||||
(name "gnuastro")
|
||||
(version "0.16")
|
||||
(version "0.17")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -305,19 +305,19 @@ astronomical image-processing packages like Drizzle, Swarp or SExtractor.")
|
|||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"07xr0r5dmjpnrz7ylf7k3vmjjna2jafi16lfvkqwxj9fyssmz207"))))
|
||||
"1gq37axs9l556pxxmnh47h088gbmp7sk3xjg59qzk2bsycg3dkgh"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--disable-static")))
|
||||
(inputs
|
||||
`(("cfitsio" ,cfitsio)
|
||||
("curl" ,curl-minimal)
|
||||
("gsl" ,gsl)
|
||||
("libgit2" ,libgit2)
|
||||
("libjpeg" ,libjpeg-turbo)
|
||||
("libtiff" ,libtiff)
|
||||
("wcslib" ,wcslib)
|
||||
("zlib" ,zlib)))
|
||||
(list cfitsio
|
||||
curl-minimal
|
||||
gsl
|
||||
libgit2
|
||||
libjpeg-turbo
|
||||
libtiff
|
||||
wcslib
|
||||
zlib))
|
||||
(native-inputs
|
||||
(list libtool lzip))
|
||||
(home-page "https://www.gnu.org/software/gnuastro/")
|
||||
|
@ -614,13 +614,13 @@ accurately in real time at any rate desired.")
|
|||
(define-public python-astropy
|
||||
(package
|
||||
(name "python-astropy")
|
||||
(version "5.0")
|
||||
(version "5.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "astropy" version))
|
||||
(sha256
|
||||
(base32 "09rr9z2kn5qw34fqpwxgcwsn9m5aw6f0dd0pm232aa8k3qakw83h"))
|
||||
(base32 "09wh589ywjsgjvi76v2d2zqd9sri0461rrnml0b0pah5lbkcv0k3"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -826,21 +826,20 @@ of astronomical sources.")
|
|||
(define-public python-pyvo
|
||||
(package
|
||||
(name "python-pyvo")
|
||||
(version "1.2")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyvo" version))
|
||||
(sha256
|
||||
(base32 "1lap703wxbyxqlbk85myirp4pkdnc6cg10xhfajfsvz5k0hm5ffw"))))
|
||||
(base32 "1ri5yp6903386lkn79mdcmlax7zsfrrrjbcvb91wxydcc9yasc1n"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs outputs tests? #:allow-other-keys)
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(invoke "python" "-m" "pytest" "--pyargs" "pyvo" "-k"
|
||||
(string-append ; these tests use the network
|
||||
"not test_access_with_string"
|
||||
|
@ -1460,34 +1459,221 @@ of stand-alone functions and classes.")
|
|||
(define-public python-asdf
|
||||
(package
|
||||
(name "python-asdf")
|
||||
(version "2.7.4")
|
||||
(version "2.8.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "asdf" version))
|
||||
(sha256
|
||||
(base32 "1mj52l2m8pbhiqacgjakjpvqi8kyx470yw151lcsswbq5wp0rsc6"))))
|
||||
(base32 "0i4vq1hsympjgb1yvn4ql0gm8j1mki9ggmj03533kmg0nbzp03yy"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; TODO: (Sharlatan-20210207T165820+0000): Tests depend on astropy, astropy
|
||||
;; depends on asdf. Disable circular dependence.
|
||||
;; NOTE: (Sharlatan-20211229T201059+0000): Tests depend on astropy and
|
||||
;; gwcs, astropy gwcs depend on asdf. Disable circular dependence.
|
||||
`(#:tests? #f))
|
||||
(native-inputs
|
||||
`(("packaging" ,python-packaging)
|
||||
("semantic-version" ,python-semantic-version)
|
||||
("setuptools-scm" ,python-setuptools-scm)))
|
||||
(inputs
|
||||
`(("importlib-resources" ,python-importlib-resources)
|
||||
("jsonschema" ,python-jsonschema)
|
||||
("numpy" ,python-numpy)
|
||||
("pyyaml" ,python-pyyaml)))
|
||||
(home-page "https://github.com/asdf-format/asdf")
|
||||
(synopsis "Python tools to handle ASDF files")
|
||||
(description
|
||||
"The Advanced Scientific Data Format (ASDF) is a next-generation
|
||||
(list python-setuptools-scm
|
||||
python-semantic-version
|
||||
python-packaging))
|
||||
(propagated-inputs
|
||||
(list python-importlib-resources
|
||||
python-jsonschema
|
||||
python-jmespath
|
||||
python-numpy
|
||||
python-pyyaml))
|
||||
(home-page "https://github.com/asdf-format/asdf")
|
||||
(synopsis "Python tools to handle ASDF files")
|
||||
(description
|
||||
"The Advanced Scientific Data Format (ASDF) is a next-generation
|
||||
interchange format for scientific data. This package contains the Python
|
||||
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
|
||||
(package
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
;;; 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 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
;;; 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 Nikita <nikita@n0.is>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
|
||||
|
@ -254,6 +254,45 @@ softsynth library that can be use with other applications.")
|
|||
(sha256
|
||||
(base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
|
||||
(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")
|
||||
(description "WebRTC-Audio-Processing library based on Google's
|
||||
implementation of WebRTC.")
|
||||
|
@ -383,13 +422,13 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro
|
|||
(inputs
|
||||
`(("alsa" ,alsa-lib)
|
||||
("flac" ,flac)
|
||||
("mpg123" ,mpg123)
|
||||
("portaudio" ,portaudio)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("sdl2" ,sdl2)
|
||||
("sndfile" ,libsndfile)
|
||||
("vorbis" ,libvorbis)
|
||||
("zlib" ,zlib)))
|
||||
("sndfile" ,libsndfile)))
|
||||
(propagated-inputs
|
||||
;; In Requires.private
|
||||
(list libogg libvorbis mpg123 zlib))
|
||||
(synopsis "Audio tracking library")
|
||||
(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.")
|
||||
|
@ -728,14 +767,17 @@ engineers, musicians, soundtrack editors and composers.")
|
|||
(version "3.1.3")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/audacity/audacity")
|
||||
(commit (string-append "Audacity-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
;; If built from the release tag, Audacity will describe itself
|
||||
;; as an "Alpha test version" and suggest to users that they use
|
||||
;; the "latest stable released version".
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/audacity/audacity/releases/download/"
|
||||
"Audacity-" version "/audacity-" version
|
||||
"-source.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1689q9apbjf9nnda62shb8j7hm4hxd47mhk4l5h3c728mjjkilmi"))
|
||||
"189agx11361k9j958s6q5bngnnfx0rwaf0dwbjxy6fwvsb1wv3px"))
|
||||
(patches (search-patches "audacity-ffmpeg-fallback.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Remove bundled libraries.
|
||||
|
@ -763,10 +805,10 @@ engineers, musicians, soundtrack editors and composers.")
|
|||
alsa-lib
|
||||
jack-1
|
||||
expat
|
||||
ffmpeg
|
||||
lame
|
||||
linux-libre-headers
|
||||
flac
|
||||
ffmpeg
|
||||
libid3tag
|
||||
libjpeg-turbo
|
||||
libmad
|
||||
|
@ -4080,6 +4122,40 @@ with support for HD extensions.")
|
|||
(home-page "https://github.com/foo86/dcadec")
|
||||
(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
|
||||
(package
|
||||
(name "bs1770gain")
|
||||
|
|
|
@ -40,7 +40,13 @@
|
|||
(uri (string-append "mirror://gnu/autogen/rel" version
|
||||
"/autogen-" version ".tar.xz"))
|
||||
(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)
|
||||
(native-inputs (list pkg-config which))
|
||||
(inputs (list guile-2.2 perl)) ; for doc generator mdoc
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
" 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"
|
||||
if isdirectory(vimplugins)
|
||||
let &rtp = join([&rtp,vimplugins], ',')
|
||||
endif
|
||||
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
|
||||
|
|
|
@ -5437,6 +5437,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
# CONFIG_SND_EMU10K1_SEQ is not set
|
||||
# CONFIG_SND_ENS1370 is not set
|
||||
# CONFIG_SND_ENS1371 is not set
|
||||
|
|
|
@ -938,7 +938,7 @@ CONFIG_RAPIDIO_CPS_XX=m
|
|||
CONFIG_RAPIDIO_TSI568=m
|
||||
CONFIG_RAPIDIO_CPS_GEN2=m
|
||||
CONFIG_RAPIDIO_RXS_GEN3=m
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
|
||||
#
|
||||
# Executable file formats / Emulations
|
||||
|
@ -8495,13 +8495,7 @@ CONFIG_ISCSI_IBFT_FIND=y
|
|||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
|
|
@ -454,7 +454,7 @@ CONFIG_FREEZER=y
|
|||
#
|
||||
# Processor type and features
|
||||
#
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_X86_FEATURE_NAMES=y
|
||||
CONFIG_X86_FAST_FEATURE_TESTS=y
|
||||
|
@ -928,7 +928,7 @@ CONFIG_RAPIDIO_CPS_XX=m
|
|||
CONFIG_RAPIDIO_TSI568=m
|
||||
CONFIG_RAPIDIO_CPS_GEN2=m
|
||||
CONFIG_RAPIDIO_RXS_GEN3=m
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
|
||||
#
|
||||
# Executable file formats / Emulations
|
||||
|
@ -5958,6 +5958,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
# CONFIG_SND_EMU10K1_SEQ is not set
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
|
@ -8332,13 +8334,7 @@ CONFIG_ISCSI_IBFT_FIND=y
|
|||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
|
|
@ -5598,6 +5598,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
# CONFIG_SND_ENS1370 is not set
|
||||
# CONFIG_SND_ENS1371 is not set
|
||||
# CONFIG_SND_FM801 is not set
|
||||
|
|
|
@ -5331,6 +5331,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
# CONFIG_SND_ENS1370 is not set
|
||||
# CONFIG_SND_ENS1371 is not set
|
||||
# CONFIG_SND_FM801 is not set
|
||||
|
|
|
@ -713,7 +713,7 @@ CONFIG_RAPIDIO_CPS_XX=m
|
|||
CONFIG_RAPIDIO_TSI568=m
|
||||
CONFIG_RAPIDIO_CPS_GEN2=m
|
||||
CONFIG_RAPIDIO_RXS_GEN3=m
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
|
||||
#
|
||||
# Binary Emulations
|
||||
|
@ -737,13 +737,7 @@ CONFIG_ISCSI_IBFT_FIND=y
|
|||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
|
|
@ -273,7 +273,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
|
|||
#
|
||||
# Processor type and features
|
||||
#
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_X86_FEATURE_NAMES=y
|
||||
CONFIG_X86_X2APIC=y
|
||||
|
@ -684,7 +684,7 @@ CONFIG_RAPIDIO_CPS_XX=m
|
|||
CONFIG_RAPIDIO_TSI568=m
|
||||
CONFIG_RAPIDIO_CPS_GEN2=m
|
||||
CONFIG_RAPIDIO_RXS_GEN3=m
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
|
||||
#
|
||||
# Binary Emulations
|
||||
|
@ -714,13 +714,7 @@ CONFIG_ISCSI_IBFT_FIND=y
|
|||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
@ -6173,6 +6167,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
CONFIG_SND_FM801=m
|
||||
|
|
|
@ -825,7 +825,7 @@ CONFIG_RAPIDIO_TSI57X=m
|
|||
CONFIG_RAPIDIO_CPS_XX=m
|
||||
CONFIG_RAPIDIO_TSI568=m
|
||||
CONFIG_RAPIDIO_CPS_GEN2=m
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
|
||||
#
|
||||
# Executable file formats / Emulations
|
||||
|
@ -7679,13 +7679,7 @@ CONFIG_DMI_SYSFS=m
|
|||
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
|
||||
CONFIG_ISCSI_IBFT_FIND=y
|
||||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
|
|
@ -384,7 +384,7 @@ CONFIG_FREEZER=y
|
|||
#
|
||||
# Processor type and features
|
||||
#
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_X86_FEATURE_NAMES=y
|
||||
CONFIG_X86_X2APIC=y
|
||||
|
@ -795,7 +795,7 @@ CONFIG_RAPIDIO_TSI57X=m
|
|||
CONFIG_RAPIDIO_CPS_XX=m
|
||||
CONFIG_RAPIDIO_TSI568=m
|
||||
CONFIG_RAPIDIO_CPS_GEN2=m
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
|
||||
#
|
||||
# Executable file formats / Emulations
|
||||
|
@ -5494,6 +5494,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
CONFIG_SND_FM801=m
|
||||
|
@ -7461,13 +7463,7 @@ CONFIG_DMI_SYSFS=m
|
|||
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
|
||||
CONFIG_ISCSI_IBFT_FIND=y
|
||||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
|
|
@ -409,7 +409,7 @@ CONFIG_FREEZER=y
|
|||
#
|
||||
# Processor type and features
|
||||
#
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_X86_FEATURE_NAMES=y
|
||||
CONFIG_X86_FAST_FEATURE_TESTS=y
|
||||
|
@ -5733,6 +5733,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
CONFIG_SND_FM801=m
|
||||
|
|
|
@ -9101,7 +9101,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
CONFIG_DLM_DEBUG=y
|
||||
# CONFIG_UNICODE is not set
|
||||
CONFIG_UNICODE=y
|
||||
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
|
||||
CONFIG_IO_WQ=y
|
||||
# end of File systems
|
||||
|
||||
|
|
|
@ -9221,7 +9221,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
CONFIG_DLM_DEBUG=y
|
||||
# CONFIG_UNICODE is not set
|
||||
CONFIG_UNICODE=y
|
||||
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
|
||||
CONFIG_IO_WQ=y
|
||||
# end of File systems
|
||||
|
||||
|
|
|
@ -292,7 +292,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
|
|||
#
|
||||
# Processor type and features
|
||||
#
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_X86_FEATURE_NAMES=y
|
||||
CONFIG_X86_MPPARSE=y
|
||||
|
@ -650,7 +650,7 @@ CONFIG_ALIX=y
|
|||
CONFIG_NET5501=y
|
||||
CONFIG_GEOS=y
|
||||
CONFIG_AMD_NB=y
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
# end of Bus options (PCI etc.)
|
||||
|
||||
#
|
||||
|
@ -674,13 +674,7 @@ CONFIG_ISCSI_IBFT_FIND=y
|
|||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
@ -6782,6 +6776,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
CONFIG_SND_FM801=m
|
||||
|
@ -9899,7 +9895,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
# 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
|
||||
# end of File systems
|
||||
|
||||
|
|
|
@ -308,7 +308,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
|
|||
#
|
||||
# Processor type and features
|
||||
#
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_X86_FEATURE_NAMES=y
|
||||
CONFIG_X86_X2APIC=y
|
||||
|
@ -643,7 +643,7 @@ CONFIG_MMCONF_FAM10H=y
|
|||
# CONFIG_ISA_BUS is not set
|
||||
CONFIG_ISA_DMA_API=y
|
||||
CONFIG_AMD_NB=y
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
# end of Bus options (PCI etc.)
|
||||
|
||||
#
|
||||
|
@ -670,13 +670,7 @@ CONFIG_ISCSI_IBFT_FIND=y
|
|||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
@ -6671,6 +6665,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
CONFIG_SND_FM801=m
|
||||
|
@ -9868,7 +9864,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
# 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
|
||||
# end of File systems
|
||||
|
||||
|
|
|
@ -9364,7 +9364,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
CONFIG_DLM_DEBUG=y
|
||||
# CONFIG_UNICODE is not set
|
||||
CONFIG_UNICODE=y
|
||||
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
|
||||
CONFIG_IO_WQ=y
|
||||
# end of File systems
|
||||
|
||||
|
|
|
@ -9728,7 +9728,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
CONFIG_DLM_DEBUG=y
|
||||
# CONFIG_UNICODE is not set
|
||||
CONFIG_UNICODE=y
|
||||
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
|
||||
CONFIG_IO_WQ=y
|
||||
# end of File systems
|
||||
|
||||
|
|
|
@ -992,7 +992,7 @@ CONFIG_PAGE_IDLE_FLAG=y
|
|||
CONFIG_IDLE_PAGE_TRACKING=y
|
||||
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
|
||||
CONFIG_ARCH_HAS_ZONE_DMA_SET=y
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_HMM_MIRROR=y
|
||||
CONFIG_VMAP_PFN=y
|
||||
# CONFIG_PERCPU_STATS is not set
|
||||
|
@ -2249,14 +2249,8 @@ CONFIG_ISCSI_IBFT=m
|
|||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_SYSFB=y
|
||||
CONFIG_SYSFB_SIMPLEFB=y
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_SYSFB_SIMPLEFB is not set
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
@ -6731,7 +6725,7 @@ CONFIG_FB_MB862XX=m
|
|||
CONFIG_FB_MB862XX_PCI_GDC=y
|
||||
CONFIG_FB_MB862XX_I2C=y
|
||||
CONFIG_FB_HYPERV=m
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_FB_SIMPLE=m
|
||||
CONFIG_FB_SSD1307=m
|
||||
CONFIG_FB_SM712=m
|
||||
# end of Frame buffer Devices
|
||||
|
@ -6942,6 +6936,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
CONFIG_SND_FM801=m
|
||||
|
@ -10163,7 +10159,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
# 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
|
||||
# end of File systems
|
||||
|
||||
|
|
|
@ -1025,7 +1025,7 @@ CONFIG_IDLE_PAGE_TRACKING=y
|
|||
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
|
||||
CONFIG_ARCH_HAS_PTE_DEVMAP=y
|
||||
CONFIG_ARCH_HAS_ZONE_DMA_SET=y
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_ZONE_DMA32=y
|
||||
CONFIG_ZONE_DEVICE=y
|
||||
CONFIG_DEV_PAGEMAP_OPS=y
|
||||
|
@ -2282,14 +2282,8 @@ CONFIG_ISCSI_IBFT=m
|
|||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_SYSFB=y
|
||||
CONFIG_SYSFB_SIMPLEFB=y
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_SYSFB_SIMPLEFB is not set
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
@ -6688,7 +6682,7 @@ CONFIG_FB_MB862XX=m
|
|||
CONFIG_FB_MB862XX_PCI_GDC=y
|
||||
CONFIG_FB_MB862XX_I2C=y
|
||||
CONFIG_FB_HYPERV=m
|
||||
CONFIG_FB_SIMPLE=y
|
||||
CONFIG_FB_SIMPLE=m
|
||||
CONFIG_FB_SSD1307=m
|
||||
CONFIG_FB_SM712=m
|
||||
# end of Frame buffer Devices
|
||||
|
@ -6856,6 +6850,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
CONFIG_SND_FM801=m
|
||||
|
@ -10202,7 +10198,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
# 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
|
||||
# end of File systems
|
||||
|
||||
|
|
10216
gnu/packages/aux-files/linux-libre/5.16-arm.conf
Normal file
10216
gnu/packages/aux-files/linux-libre/5.16-arm.conf
Normal file
File diff suppressed because it is too large
Load diff
10661
gnu/packages/aux-files/linux-libre/5.16-arm64.conf
Normal file
10661
gnu/packages/aux-files/linux-libre/5.16-arm64.conf
Normal file
File diff suppressed because it is too large
Load diff
11100
gnu/packages/aux-files/linux-libre/5.16-i686.conf
Normal file
11100
gnu/packages/aux-files/linux-libre/5.16-i686.conf
Normal file
File diff suppressed because it is too large
Load diff
11186
gnu/packages/aux-files/linux-libre/5.16-x86_64.conf
Normal file
11186
gnu/packages/aux-files/linux-libre/5.16-x86_64.conf
Normal file
File diff suppressed because it is too large
Load diff
|
@ -6045,6 +6045,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
# CONFIG_SND_ENS1370 is not set
|
||||
# CONFIG_SND_ENS1371 is not set
|
||||
# CONFIG_SND_FM801 is not set
|
||||
|
@ -8695,7 +8697,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
CONFIG_DLM_DEBUG=y
|
||||
# CONFIG_UNICODE is not set
|
||||
CONFIG_UNICODE=y
|
||||
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
|
||||
# end of File systems
|
||||
|
||||
#
|
||||
|
|
|
@ -5870,6 +5870,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
# CONFIG_SND_ENS1370 is not set
|
||||
# CONFIG_SND_ENS1371 is not set
|
||||
# CONFIG_SND_FM801 is not set
|
||||
|
@ -8642,7 +8644,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
CONFIG_DLM_DEBUG=y
|
||||
# CONFIG_UNICODE is not set
|
||||
CONFIG_UNICODE=y
|
||||
# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set
|
||||
# end of File systems
|
||||
|
||||
#
|
||||
|
|
|
@ -648,7 +648,7 @@ CONFIG_ALIX=y
|
|||
CONFIG_NET5501=y
|
||||
CONFIG_GEOS=y
|
||||
CONFIG_AMD_NB=y
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
# end of Bus options (PCI etc.)
|
||||
|
||||
#
|
||||
|
@ -672,13 +672,7 @@ CONFIG_ISCSI_IBFT_FIND=y
|
|||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
@ -9581,7 +9575,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
# 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
|
||||
|
||||
#
|
||||
|
|
|
@ -294,7 +294,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
|
|||
#
|
||||
# Processor type and features
|
||||
#
|
||||
# CONFIG_ZONE_DMA is not set
|
||||
CONFIG_ZONE_DMA=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_X86_FEATURE_NAMES=y
|
||||
CONFIG_X86_X2APIC=y
|
||||
|
@ -632,7 +632,7 @@ CONFIG_MMCONF_FAM10H=y
|
|||
# CONFIG_ISA_BUS is not set
|
||||
CONFIG_ISA_DMA_API=y
|
||||
CONFIG_AMD_NB=y
|
||||
CONFIG_X86_SYSFB=y
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
# end of Bus options (PCI etc.)
|
||||
|
||||
#
|
||||
|
@ -659,13 +659,7 @@ CONFIG_ISCSI_IBFT_FIND=y
|
|||
CONFIG_ISCSI_IBFT=m
|
||||
CONFIG_FW_CFG_SYSFS=m
|
||||
# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
|
||||
CONFIG_GOOGLE_FIRMWARE=y
|
||||
# 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
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
#
|
||||
# EFI (Extensible Firmware Interface) Support
|
||||
|
@ -6469,6 +6463,8 @@ CONFIG_SND_INDIGOIO=m
|
|||
CONFIG_SND_INDIGODJ=m
|
||||
CONFIG_SND_INDIGOIOX=m
|
||||
CONFIG_SND_INDIGODJX=m
|
||||
CONFIG_SND_EMU10K1=m
|
||||
CONFIG_SND_EMU10K1_SEQ=m
|
||||
CONFIG_SND_ENS1370=m
|
||||
CONFIG_SND_ENS1371=m
|
||||
CONFIG_SND_FM801=m
|
||||
|
@ -9500,7 +9496,8 @@ CONFIG_NLS_MAC_TURKISH=m
|
|||
CONFIG_NLS_UTF8=m
|
||||
CONFIG_DLM=m
|
||||
# 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
|
||||
|
||||
#
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2020 Eric Bavier <bavier@posteo.net>
|
||||
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
|
||||
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2015, 2016, 2017, 2021 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
|
||||
|
@ -42,6 +42,7 @@
|
|||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
|
@ -50,6 +51,7 @@
|
|||
#:use-module (guix build-system go)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system qt)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages acl)
|
||||
#:use-module (gnu packages autotools)
|
||||
|
@ -81,13 +83,16 @@
|
|||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages protobuf)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-check)
|
||||
#:use-module (gnu packages python-crypto)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages rsync)
|
||||
#:use-module (gnu packages ruby)
|
||||
#:use-module (gnu packages serialization)
|
||||
#:use-module (gnu packages ssh)
|
||||
#:use-module (gnu packages time)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages valgrind)
|
||||
#: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
|
||||
provide an efficient and secure way to backup data. The data deduplication
|
||||
technique used makes Borg suitable for daily backups since only changes are
|
||||
stored. The authenticated encryption technique makes it suitable for backups
|
||||
to not fully trusted targets. Borg is a fork of Attic.")
|
||||
stored. The authenticated encryption technique makes it suitable for
|
||||
storing backups on untrusted computers.")
|
||||
(home-page "https://www.borgbackup.org/")
|
||||
(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.
|
||||
borgmatic is powered by borg.")
|
||||
(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
68
gnu/packages/barrier.scm
Normal 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)))
|
|
@ -13,7 +13,7 @@
|
|||
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; 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 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
|
||||
|
@ -46,6 +46,7 @@
|
|||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
|
@ -84,14 +85,14 @@
|
|||
(define-public hello
|
||||
(package
|
||||
(name "hello")
|
||||
(version "2.11")
|
||||
(version "2.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/hello/hello-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1g84a3hqs4pgx3yzs99cysv3iq440ncdw77bf03fsi1w5mby174c"))))
|
||||
"1ayhp9v4m4rdhjmnl2bq3cibrbqqkgjbl3s7yk2nhlh8vj3ay16g"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Hello, GNU world: An example GNU package")
|
||||
(description
|
||||
|
@ -1170,7 +1171,8 @@ test environments.")
|
|||
(define-public glibc-locales
|
||||
(make-glibc-locales glibc))
|
||||
(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.
|
||||
(define-public glibc-locales-2.29
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
;;; Copyright © 2019, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@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 © 2021 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;;
|
||||
|
@ -31,22 +31,33 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#: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 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 lua)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages opencl)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-science)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(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
|
||||
vector operations and does not represent a real-world use case.")
|
||||
(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+)))
|
||||
|
|
|
@ -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.")
|
||||
(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
|
||||
(package
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "r-dirichletmultinomial")
|
||||
|
@ -4349,6 +4425,43 @@ differential expression analysis, RNAseq data and related problems.")
|
|||
;; Any version of the LGPL
|
||||
(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
|
||||
(package
|
||||
(name "r-scdblfinder")
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016, 2020, 2021 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2020, 2022 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
|
||||
|
@ -2218,7 +2218,7 @@ well as many of the command line options.")
|
|||
(define-public bwa-meth
|
||||
(package
|
||||
(name "bwa-meth")
|
||||
(version "0.2.2")
|
||||
(version "0.2.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -2227,7 +2227,7 @@ well as many of the command line options.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"17j31i7zws5j7mhsq9x3qgkxly6mlmrgwhfq0qbflgxrmx04yaiz"))))
|
||||
"0c695lkrr0996zwkibl7324wg2vxmn6522sz30xv4a9gaf0lnbh3"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -2238,8 +2238,7 @@ well as many of the command line options.")
|
|||
(("bwa (mem|index)" _ command)
|
||||
(string-append (which "bwa") " " command))
|
||||
;; There's an ill-advised check for "samtools" on PATH.
|
||||
(("^checkX.*") ""))
|
||||
#t)))))
|
||||
(("^checkX.*") "")))))))
|
||||
(inputs
|
||||
(list bwa))
|
||||
(native-inputs
|
||||
|
@ -3340,8 +3339,8 @@ data and settings.")
|
|||
texlive-hyperref
|
||||
texlive-ms
|
||||
texlive-latex-natbib
|
||||
texlive-bibtex ; style files used by natbib
|
||||
texlive-pgf ; tikz
|
||||
texlive-bibtex ;style files used by natbib
|
||||
texlive-pgf ;tikz
|
||||
texlive-latex-verbatimbox)))
|
||||
("imagemagick" ,imagemagick)))
|
||||
(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
|
||||
(lambda _
|
||||
(invoke "autoreconf" "-vif")))
|
||||
(add-before 'configure 'set-PYTHONPATH
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
|
||||
(add-before 'check 'set-timezone
|
||||
;; The readr package is picky about timezones.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
@ -10969,7 +10971,10 @@ expression report comparing samples in an easily configurable manner.")
|
|||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'autoreconf
|
||||
(lambda _
|
||||
(invoke "autoreconf" "-vif"))))))
|
||||
(invoke "autoreconf" "-vif")))
|
||||
(add-before 'configure 'set-PYTHONPATH
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
|
||||
(inputs
|
||||
(list grep
|
||||
coreutils
|
||||
|
@ -11055,6 +11060,9 @@ in an easily configurable manner.")
|
|||
(add-before 'bootstrap 'autoreconf
|
||||
(lambda _
|
||||
(invoke "autoreconf" "-vif")))
|
||||
(add-before 'configure 'set-PYTHONPATH
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
|
||||
(add-before 'check 'set-timezone
|
||||
;; The readr package is picky about timezones.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
@ -11123,7 +11131,10 @@ methylation and segmentation.")
|
|||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'autoreconf
|
||||
(lambda _
|
||||
(invoke "autoreconf" "-vif"))))))
|
||||
(invoke "autoreconf" "-vif")))
|
||||
(add-before 'configure 'set-PYTHONPATH
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
|
||||
(native-inputs
|
||||
(list automake autoconf))
|
||||
(inputs
|
||||
|
@ -11197,7 +11208,10 @@ based methods.")
|
|||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'autoreconf
|
||||
(lambda _
|
||||
(invoke "autoreconf" "-vif"))))))
|
||||
(invoke "autoreconf" "-vif")))
|
||||
(add-before 'configure 'set-PYTHONPATH
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
|
||||
(native-inputs
|
||||
(list automake autoconf))
|
||||
(inputs
|
||||
|
@ -11395,7 +11409,7 @@ version does count multisplits.")
|
|||
(define-public minimap2
|
||||
(package
|
||||
(name "minimap2")
|
||||
(version "2.23")
|
||||
(version "2.24")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -11404,7 +11418,7 @@ version does count multisplits.")
|
|||
"minimap2-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"00ngbz1swcgxk5apx9dz5xkh1z8abdpysx5lc7w8fbrfxp41w0j0"))))
|
||||
"05d6h2c1h95s5vblf1fijn9g0r4g69nsvkabji42j642y0gw7m4x"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are none
|
||||
|
@ -11681,6 +11695,49 @@ including:
|
|||
;; the GPL, but the license headers include the "or later" clause.
|
||||
(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
|
||||
(package
|
||||
(name "r-circus")
|
||||
|
@ -12013,7 +12070,7 @@ implementation differs in these ways:
|
|||
python-igraph
|
||||
python-joblib
|
||||
python-legacy-api-wrap
|
||||
python-louvain-0.6
|
||||
python-louvain-0.7
|
||||
python-matplotlib
|
||||
python-natsort
|
||||
python-networkx
|
||||
|
@ -13826,6 +13883,35 @@ vast-tools, an RNA-Seq pipeline for alternative splicing analysis. The plots
|
|||
are generated using @code{ggplot2}.")
|
||||
(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
|
||||
(package
|
||||
(name "vbz-compression")
|
||||
|
@ -14606,55 +14692,48 @@ alignments, trees and genomic annotations.")
|
|||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-gffutils
|
||||
;; The latest release is older more than a year than the latest commit
|
||||
(let ((commit "4034c54600813b1402945e12faa91b3a53162cf1")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "python-gffutils")
|
||||
(version (git-version "0.9" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/daler/gffutils")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1rwafjdnbir5wnk0ap06ww4lra3p5frhy7mfs03rlldgfnwxymsn"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(package
|
||||
(name "python-gffutils")
|
||||
(version "0.10.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/daler/gffutils")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gkzk7ps6w3ai2r81js9s9bzpba0jmxychnd2da6n9ggdnf2xzqz"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
;; Tests need to access the HOME directory
|
||||
(setenv "HOME" "/tmp")
|
||||
(invoke "nosetests" "-a" "!slow")))
|
||||
(add-after 'unpack 'make-gz-files-writable
|
||||
(lambda _
|
||||
(for-each make-file-writable
|
||||
(find-files "." "\\.gz"))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
(list python-argcomplete
|
||||
python-argh
|
||||
python-biopython
|
||||
python-pybedtools
|
||||
python-pyfaidx
|
||||
python-simplejson
|
||||
python-six))
|
||||
(native-inputs
|
||||
(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
|
||||
(invoke "nosetests" "-a" "!slow")))))))
|
||||
(propagated-inputs
|
||||
(list python-argcomplete
|
||||
python-argh
|
||||
python-biopython
|
||||
python-pybedtools
|
||||
python-pyfaidx
|
||||
python-simplejson
|
||||
python-six))
|
||||
(native-inputs
|
||||
(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
|
||||
files are loaded into a SQLite database, allowing much more complex
|
||||
manipulation of hierarchical features (e.g., genes, transcripts, and exons)
|
||||
than is possible with plain-text methods alone.")
|
||||
(license license:expat))))
|
||||
(license license:expat)))
|
||||
|
||||
(define-public indelfixer
|
||||
(package
|
||||
|
@ -15568,6 +15647,69 @@ aligner.")
|
|||
;; bwa itself is licenced under GNU General Public License v3.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
|
||||
(package
|
||||
(name "scregseg")
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
;;; Copyright © 2021 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
|
||||
;;; Copyright © 2022 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; Copyright © 2022 Jacob Hart <hartja1@yahoo.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -477,7 +478,7 @@ desktops.")
|
|||
(define-public qbittorrent
|
||||
(package
|
||||
(name "qbittorrent")
|
||||
(version "4.4.0")
|
||||
(version "4.4.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -486,7 +487,7 @@ desktops.")
|
|||
(commit (string-append "release-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0aqrcwxi3s2alila3fa7fjs4hifkq7055wa4xvz17hajchs3l567"))))
|
||||
(base32 "00whc4p209g2krsggxyq4sna01djbk1rbzkyjbq4qczvya01xn0w"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
;;; Copyright © 2016, 2017, 2018, 2021 Marius Bakke <marius@gnu.org>
|
||||
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
;;; 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 © 2019 nee <nee@cock.li>
|
||||
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
|
@ -448,18 +448,21 @@ menu to select one of the installed operating systems.")
|
|||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://kernel.org/software/utils/dtc/"
|
||||
"dtc-" version ".tar.xz"))
|
||||
"dtc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wrl43rvd8nnm1v1wyfdr17vk8q7ymib62vli6da8n9ni4lwbkk5"))))
|
||||
"0xm38h31jb29xfh2sfyk48d8wdfq4b8lmb412zx9vjr35izjb9iq"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list bison
|
||||
flex
|
||||
libyaml
|
||||
pkg-config
|
||||
swig
|
||||
valgrind))
|
||||
(append
|
||||
(list bison
|
||||
flex
|
||||
libyaml
|
||||
pkg-config
|
||||
swig)
|
||||
(if (member (%current-system) (package-supported-systems valgrind))
|
||||
(list valgrind)
|
||||
'())))
|
||||
(inputs
|
||||
(list python))
|
||||
(arguments
|
||||
|
@ -480,10 +483,7 @@ menu to select one of the installed operating systems.")
|
|||
(substitute* '("Makefile"
|
||||
"tests/run_tests.sh")
|
||||
(("pkg-config")
|
||||
(or (which "pkg-config")
|
||||
(string-append ,(%current-target-system)
|
||||
"-pkg-config"))))
|
||||
#t))
|
||||
,(pkg-config-for-target)))))
|
||||
(delete 'configure)))) ; no configure script
|
||||
(home-page "https://www.devicetree.org")
|
||||
(synopsis "Compiles device tree source files")
|
||||
|
|
|
@ -51,16 +51,18 @@ supported content to the Kodi media center.")
|
|||
(define ublock-origin
|
||||
(package
|
||||
(name "ublock-origin")
|
||||
(version "1.40.8")
|
||||
(version "1.41.6")
|
||||
(home-page "https://github.com/gorhill/uBlock")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference (url home-page) (commit version)
|
||||
;; Also fetch the tightly coupled
|
||||
;; "uAssets" submodule.
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"17pywblp87npj5z3zyvy9rmllnxhm916fnfyyfbvfbczswkbp78s"))))
|
||||
"05flr4jksa3l4cwi0fgkzmzn46rg5znaqd73615lwnxmnpr4va9d"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("xpi" "firefox" "chromium"))
|
||||
(arguments
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
|
||||
;;; 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 © 2021 David Dashyan <mail@davie.li>
|
||||
;;;
|
||||
|
@ -38,6 +38,7 @@
|
|||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix store)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bootstrap)
|
||||
|
@ -895,3 +896,119 @@ Service (S3) protocol for object storage.")
|
|||
Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
|
||||
(home-page "https://github.com/awslabs/aws-c-mqtt")
|
||||
(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))))
|
||||
|
|
|
@ -313,37 +313,37 @@ format, commonly used for VCDs or disks with subchannel data.")
|
|||
(string-append
|
||||
"actual_os := $(shell uname -o)\n"
|
||||
"actual_arch := $(shell uname -m)\n"
|
||||
"VERSION_OS = _$(actual_os)_$(actual_arch)\n")))
|
||||
#t))
|
||||
"VERSION_OS = _$(actual_os)_$(actual_arch)\n")))))
|
||||
(patches (search-patches "cdrtools-3.01-mkisofs-isoinfo.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
;; XXX cdrtools bundles a modified, relicensed early version of cdparanoia.
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list "RM=rm" "LN=ln" "SYMLINK=ln -s"
|
||||
"CONFIG_SHELL=sh" "CCOM=gcc"
|
||||
(string-append "INS_BASE=" (assoc-ref %outputs "out"))
|
||||
(string-append "INS_RBASE=" (assoc-ref %outputs "out")))
|
||||
;; Parallel builds appear to be unsafe, see
|
||||
;; https://hydra.gnu.org/build/3346840/log/raw
|
||||
#:parallel-build? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'set-linux-headers
|
||||
(lambda _
|
||||
(substitute* "autoconf/configure"
|
||||
(("/usr/src/linux")
|
||||
(assoc-ref %build-inputs "kernel-headers")))
|
||||
#t))
|
||||
(add-before 'build 'substitute-dirs
|
||||
(lambda _
|
||||
(substitute* (append (find-files "DEFAULTS" "^Defaults\\.")
|
||||
(find-files "DEFAULTS_ENG" "^Defaults\\.")
|
||||
(find-files "TEMPLATES" "^Defaults\\."))
|
||||
(("/opt/schily") (assoc-ref %outputs "out")))
|
||||
#t)))
|
||||
#:tests? #f)) ; no tests
|
||||
(list #:make-flags
|
||||
#~(list "RM=rm" "LN=ln" "SYMLINK=ln -s"
|
||||
"CONFIG_SHELL=sh"
|
||||
(string-append "CCOM=" #$(cc-for-target))
|
||||
"LINKMODE=dynamic"
|
||||
(string-append "INS_BASE=" #$output)
|
||||
(string-append "INS_RBASE=" #$output))
|
||||
;; Parallel builds appear to be unsafe, see
|
||||
;; https://hydra.gnu.org/build/3346840/log/raw
|
||||
#:parallel-build? #f
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'set-linux-headers
|
||||
(lambda _
|
||||
(substitute* "autoconf/configure"
|
||||
(("/usr/src/linux")
|
||||
(assoc-ref %build-inputs "kernel-headers")))))
|
||||
(add-before 'build 'avoid-bogus-RPATH-entry
|
||||
(lambda _
|
||||
(substitute* (append (find-files "DEFAULTS" "^Defaults\\.")
|
||||
(find-files "DEFAULTS_ENG" "^Defaults\\.")
|
||||
(find-files "TEMPLATES" "^Defaults\\."))
|
||||
(("/opt/schily")
|
||||
#$output)))))
|
||||
#:tests? #f)) ; no tests
|
||||
(synopsis "Command line utilities to manipulate and burn CD/DVD/BD images")
|
||||
(description "cdrtools is a collection of command line utilities to create
|
||||
CD's, DVD's or Blue Ray discs. The most important components are
|
||||
|
|
|
@ -35,8 +35,9 @@
|
|||
;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
|
||||
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
|
||||
;;; 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 © 2022 Maxime Devos <maximedevos@telenet.be>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -90,6 +91,45 @@
|
|||
#:use-module (guix build-system trivial)
|
||||
#: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
|
||||
(package
|
||||
(name "pedansee")
|
||||
|
@ -209,45 +249,46 @@ source code editors and IDEs.")
|
|||
(define-public clitest
|
||||
(package
|
||||
(name "clitest")
|
||||
(version "0.3.0")
|
||||
(version "0.4.0")
|
||||
(home-page "https://github.com/aureliojargas/clitest")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit (string-append "v" version))))
|
||||
(uri (git-reference (url home-page) (commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zw5wra9hc717srmcar1wm4i34kyj8c49ny4bb7y3nrvkjp2pdb5"))))
|
||||
"1p745mxiq3hgi3ywfljs5sa1psi06awwjxzw0j9c2xx1b09yqv4a"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; This package is distributed as a single shell script and comes
|
||||
;; without a proper build system.
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(substitute* "test.md"
|
||||
;; One test looks for an error from grep in the form "grep: foo",
|
||||
;; but our grep returns the absolute file name on errors. Adjust
|
||||
;; the test to cope with that.
|
||||
(("sed 's/\\^e\\*grep: \\.\\*/")
|
||||
"sed 's/.*e*grep: .*/"))
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
;; This package is distributed as a single shell script and comes
|
||||
;; without a proper build system.
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests?
|
||||
(substitute* "test.md"
|
||||
;; One test looks for an error from grep in the form "grep: foo",
|
||||
;; but our grep returns the absolute file name on errors. Adjust
|
||||
;; the test to cope with that.
|
||||
(("sed 's/\\^e\\*grep: \\.\\*/")
|
||||
"sed 's/.*e*grep: .*/"))
|
||||
|
||||
(setenv "HOME" "/tmp")
|
||||
(invoke "./clitest" "test.md")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(install-file "clitest" (string-append out "/bin"))
|
||||
(install-file "README.md"
|
||||
(string-append out "/share/doc/clitest-" ,version))
|
||||
#t))))))
|
||||
(setenv "HOME" "/tmp")
|
||||
(invoke "./clitest" "test.md"))))
|
||||
(replace 'install
|
||||
(lambda _
|
||||
(install-file "clitest" (string-append #$output "/bin"))
|
||||
(install-file "README.md"
|
||||
(string-append #$output "/share/doc/clitest-"
|
||||
#$(package-version this-package))))))))
|
||||
(native-inputs
|
||||
(list perl)) ;for tests
|
||||
(inputs
|
||||
(list bash-minimal))
|
||||
(synopsis "Command line test tool")
|
||||
(description
|
||||
"@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
|
||||
(package
|
||||
(name "catch2")
|
||||
(version "2.13.2")
|
||||
(version "2.13.8")
|
||||
(home-page "https://github.com/catchorg/Catch2")
|
||||
(source (origin
|
||||
(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))
|
||||
(sha256
|
||||
(base32
|
||||
"100r0kmra8jmra2hv92lzvwcmphpaiccwvq3lpdsa5b7hailhach"))))
|
||||
"18a6d7rcb6ilhxd5dff32jkfdf2ik58pbywrv04ras70217kdq4c"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
(list python-wrapper))
|
||||
|
@ -565,15 +606,16 @@ and it supports a very flexible form of test discovery.")
|
|||
(define-public doctest
|
||||
(package
|
||||
(name "doctest")
|
||||
(version "2.4.6")
|
||||
(version "2.4.8")
|
||||
(home-page "https://github.com/onqtam/doctest")
|
||||
(source (origin
|
||||
(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))
|
||||
(sha256
|
||||
(base32
|
||||
"14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx"))))
|
||||
"057wdkv3gcz42mh1j284sgvm16i5fk1f9b1plgvavca70q4p52gz"))))
|
||||
(build-system cmake-build-system)
|
||||
(synopsis "C++ test framework")
|
||||
(description
|
||||
|
@ -2695,13 +2737,13 @@ mocks, stubs and fakes.")
|
|||
(define-public python-flaky
|
||||
(package
|
||||
(name "python-flaky")
|
||||
(version "3.5.3")
|
||||
(version "3.7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "flaky" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1nm1kjf857z5aw7v642ffsy1vwf255c6wjvmil71kckjyd0mxg8j"))))
|
||||
"03daz352021211kvdb056f3afrd2gsdq0rd1awgr38910xw01l9s"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; 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.
|
||||
;; There are specific instructions to not enable more flags
|
||||
;; than absolutely needed.
|
||||
,(if (target-ppc64le?)
|
||||
,(if (or (target-ppc64le?)
|
||||
(target-riscv64?))
|
||||
`(setenv "FAKETIME_COMPILE_CFLAGS"
|
||||
"-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER")
|
||||
`(setenv "FAKETIME_COMPILE_CFLAGS"
|
||||
|
@ -2843,13 +2886,27 @@ provides a simple way to achieve this.")
|
|||
"0xmi24ckpps32k7hc139psgbsnsf4g106sv4l9m445m46amkxggd"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-test
|
||||
(lambda _
|
||||
(substitute* "tests/test-umockdev.c"
|
||||
(("/run") "/tmp"))
|
||||
#t)))))
|
||||
(list #:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-test
|
||||
(lambda _
|
||||
(substitute* "tests/test-umockdev.c"
|
||||
(("/run") "/tmp"))))
|
||||
;; 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
|
||||
(list vala
|
||||
gobject-introspection
|
||||
|
@ -2859,7 +2916,9 @@ provides a simple way to achieve this.")
|
|||
python
|
||||
which))
|
||||
(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/")
|
||||
(synopsis "Mock hardware devices for creating unit tests")
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "python-pytest-datadir")
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -82,9 +82,6 @@
|
|||
"base/third_party/symbolize" ;BSD-3
|
||||
"base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
|
||||
"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+
|
||||
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license
|
||||
"courgette/third_party/divsufsort" ;Expat
|
||||
|
@ -170,8 +167,6 @@
|
|||
"third_party/iccjpeg" ;IJG
|
||||
"third_party/inspector_protocol" ;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/khronos" ;Expat, SGI
|
||||
"third_party/leveldatabase" ;BSD-3
|
||||
|
@ -237,9 +232,6 @@
|
|||
"third_party/protobuf/third_party/six" ;Expat
|
||||
"third_party/pyjson5" ;ASL2.0
|
||||
"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/ruy" ;ASL2.0
|
||||
"third_party/s2cellid" ;ASL2.0
|
||||
|
@ -318,13 +310,19 @@
|
|||
;; run the Blink performance tests, just remove everything to save ~70MiB.
|
||||
'("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
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://raw.githubusercontent.com/archlinux"
|
||||
"/svntogit-packages/" revision "/trunk/" name))
|
||||
(file-name (string-append "ungoogled-chromium-" name))
|
||||
(sha256 (base32 hash))))
|
||||
(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
|
||||
"0baz90fnzpldw0wwibhmh4pmki7vlpci9b9vvifa0rj5cwckl8a0"))))
|
||||
|
||||
(define* (debian-patch name hash #:optional (revision %debian-revision))
|
||||
(origin
|
||||
|
@ -336,33 +334,16 @@
|
|||
(string-append "ungoogled-chromium-" category "-" name))))
|
||||
(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
|
||||
(list (debian-patch "fixes/nomerge.patch"
|
||||
"0lybs2b5gk08j8cr6vjrs9d3drd7qfw013z2r0y00by8dnpm74i3")
|
||||
(debian-patch "system/jsoncpp.patch"
|
||||
"16lvhci10hz0q9axc6p921b95a76kbzcla5cl81czxzfwnynr1w5")
|
||||
(debian-patch "system/zlib.patch"
|
||||
"0j313bd3q8qc065j60x97dckrfgbwl4qxc8jhz33iihvv4lwziwv")
|
||||
(debian-patch "system/openjpeg.patch"
|
||||
"048405xh84pys0kky81vlqhaxjyxvcql4py217z01qxiv991zxaj")))
|
||||
|
||||
(define %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
|
||||
(list (local-file
|
||||
(assume-valid-file-name
|
||||
|
@ -370,9 +351,6 @@
|
|||
(local-file
|
||||
(assume-valid-file-name
|
||||
(search-patch "ungoogled-chromium-RUNPATH.patch")))
|
||||
(local-file
|
||||
(assume-valid-file-name
|
||||
(search-patch "ungoogled-chromium-accelerated-video-decode.patch")))
|
||||
(local-file
|
||||
(assume-valid-file-name
|
||||
(search-patch "ungoogled-chromium-ffmpeg-compat.patch")))
|
||||
|
@ -406,13 +384,6 @@
|
|||
patch "--no-backup-if-mismatch"))
|
||||
(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
|
||||
(format #t "Ungooglifying...~%")
|
||||
(force-output)
|
||||
|
@ -449,7 +420,7 @@
|
|||
"--system-libraries" "ffmpeg" "flac" "fontconfig"
|
||||
"freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
|
||||
"libjpeg" "libpng" "libwebp" "libxml" "libxslt"
|
||||
"openh264" "opus" "zlib")))))
|
||||
"openh264" "opus" "re2" "zlib")))))
|
||||
|
||||
(define opus+custom
|
||||
(package/inherit opus
|
||||
|
@ -480,7 +451,7 @@
|
|||
%chromium-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1fpc07zvashaqqalwn7wxnswxclrxvhjrxy1rzr6gcq5awhaw6y9"))
|
||||
"0gpk13k8pfk65vinlmkg3p7mm0qb8z35psajkxzx0v3n2bllfns1"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet (force ungoogled-chromium-snippet))))
|
||||
(build-system gnu-build-system)
|
||||
|
@ -501,13 +472,11 @@
|
|||
;; a developer build.
|
||||
"is_official_build=true"
|
||||
"clang_use_chrome_plugins=false"
|
||||
"is_cfi=false" ;requires ThinLTO
|
||||
"use_thin_lto=false" ;XXX lld segfaults
|
||||
"use_custom_libcxx=false"
|
||||
"chrome_pgo_phase=0"
|
||||
"use_sysroot=false"
|
||||
"goma_dir=\"\""
|
||||
"enable_nacl=false"
|
||||
"enable_nacl_nonsfi=false"
|
||||
"use_unofficial_version_number=false"
|
||||
"treat_warnings_as_errors=false"
|
||||
"use_official_google_api_keys=false"
|
||||
|
@ -577,7 +546,11 @@
|
|||
"rtc_use_pipewire=true"
|
||||
"rtc_link_pipewire=true"
|
||||
;; 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"
|
||||
;; XXX: Use the bundled libvpx for WebRTC because unbundling
|
||||
;; currently fails (see above), and the versions must match.
|
||||
|
@ -623,6 +596,15 @@
|
|||
(find-files (string-append "third_party/webrtc/modules"
|
||||
"/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/...".
|
||||
;; Remove the "third_party/" prefix to use system headers instead.
|
||||
(substitute* (find-files "chrome" "\\.cc$")
|
||||
|
@ -668,7 +650,6 @@
|
|||
(substitute*
|
||||
'("ui/ozone/platform/x11/gl_ozone_glx.cc"
|
||||
"ui/ozone/common/egl_util.cc"
|
||||
"ui/gl/init/gl_initializer_linux_x11.cc"
|
||||
"third_party/angle/src/libANGLE/renderer/gl/glx\
|
||||
/FunctionsGLX.cpp")
|
||||
(("libGL\\.so\\.1")
|
||||
|
@ -683,18 +664,6 @@
|
|||
"include/c++"))
|
||||
(node (search-input-file (or native-inputs inputs)
|
||||
"/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.
|
||||
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
|
||||
(setenv "CC" "clang") (setenv "CXX" "clang++")
|
||||
|
@ -766,7 +735,9 @@
|
|||
(resources (string-append lib "/resources"))
|
||||
(preferences
|
||||
;; 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+"))
|
||||
(xdg-utils (assoc-ref inputs "xdg-utils")))
|
||||
|
||||
|
@ -846,6 +817,7 @@
|
|||
gtk+
|
||||
harfbuzz-3.0
|
||||
icu4c
|
||||
jsoncpp
|
||||
lcms
|
||||
libevent
|
||||
libffi
|
||||
|
@ -879,6 +851,7 @@
|
|||
pciutils
|
||||
pipewire-0.3
|
||||
pulseaudio
|
||||
re2
|
||||
snappy
|
||||
speech-dispatcher
|
||||
eudev
|
||||
|
|
|
@ -332,8 +332,14 @@ is on par with Java implementations, e.g., Apache commons-codec.")
|
|||
(build-system clojure-build-system)
|
||||
(arguments
|
||||
'(#:source-dirs '("src/main/clojure")
|
||||
#:test-dirs '("src/test/clojure")
|
||||
#:doc-dirs '()))
|
||||
#:test-dirs '("src/test/clojure" "src/test/resources")
|
||||
#: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))
|
||||
(synopsis "Clojure library for reading and writing XML data")
|
||||
(description "@code{data.xml} is a Clojure library for reading and writing
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; 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)
|
||||
;; 4th stage inputs.
|
||||
`(("gcc" ,gcc-final)
|
||||
,@(if (target-riscv64?)
|
||||
`(("gcc:lib" ,gcc-final "lib"))
|
||||
'())
|
||||
("ld-wrapper" ,ld-wrapper-boot3)
|
||||
,@(alist-delete "gcc" (%boot2-inputs))))
|
||||
|
||||
|
|
|
@ -811,8 +811,11 @@ decompression of some loosely related file formats used by Microsoft.")
|
|||
(build-system gnu-build-system)
|
||||
(outputs (list "out" "static"))
|
||||
(native-inputs
|
||||
(list ;; For tests.
|
||||
python valgrind))
|
||||
(append
|
||||
(list python) ;; For tests.
|
||||
(if (member (%current-system) (package-supported-systems valgrind))
|
||||
(list valgrind)
|
||||
'())))
|
||||
(arguments
|
||||
`(;; Not designed for parallel testing.
|
||||
;; See https://github.com/lz4/lz4/issues/957#issuecomment-737419821
|
||||
|
@ -871,7 +874,7 @@ time for compression ratio.")
|
|||
"LZO_SUPPORT=1"
|
||||
"LZ4_SUPPORT=1"
|
||||
"ZSTD_SUPPORT=1"
|
||||
(string-append "INSTALL_DIR=" %output "/bin"))
|
||||
(string-append "INSTALL_DIR=" (assoc-ref %outputs "out") "/bin"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
|
@ -2091,7 +2094,7 @@ single-member files which can't be decompressed in parallel.")
|
|||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f))
|
||||
(inputs (list boost libiconv xz))
|
||||
(inputs (list boost xz))
|
||||
(native-inputs (list pkg-config))
|
||||
(home-page "https://constexpr.org/innoextract/")
|
||||
(synopsis "Tool for extracting Inno Setup installers")
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
|
||||
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
|
||||
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -110,7 +111,7 @@ performance).
|
|||
(define-public picom
|
||||
(package
|
||||
(name "picom")
|
||||
(version "8.2")
|
||||
(version "9.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -119,7 +120,7 @@ performance).
|
|||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0gjksayz2xpmgglvw17ppsan2imrd1fijs579kbf27xwp503xgfl"))
|
||||
"0q7j6kh9k7i201cwhnfc3bmp0hqrx7ngk3v4qsp8k0qfy1n3ma8n"))
|
||||
(file-name (string-append "picom-" version))))
|
||||
(build-system meson-build-system)
|
||||
(inputs
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -45,19 +45,20 @@
|
|||
(define-public connman
|
||||
(package
|
||||
(name "connman")
|
||||
(version "1.40")
|
||||
(version "1.41")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/linux/network/connman/"
|
||||
"connman-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "04nbxpaxykncp65fyh4lk778vn9145fbxhxa8hbkmailw9yawmqs"))))
|
||||
(base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list "--enable-nmcompat"
|
||||
"--enable-polkit" ; Polkit doesn't need to be present at build time.
|
||||
"--enable-iwd"
|
||||
"--enable-openconnect"
|
||||
"--enable-openvpn"
|
||||
"--enable-vpnc"
|
||||
|
@ -68,8 +69,8 @@
|
|||
(string-append
|
||||
"--with-dbusdatadir=" (assoc-ref %outputs "out") "/share"))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("python" ,python-wrapper)))
|
||||
(list pkg-config
|
||||
python-wrapper))
|
||||
(inputs
|
||||
(list dbus
|
||||
glib
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
(define-public coq-core
|
||||
(package
|
||||
(name "coq-core")
|
||||
(version "8.14.1")
|
||||
(version "8.15.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -62,7 +62,7 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0q634fmrh5ivpxy7ammdiqdh9xp72ji2726vcz1bd55ln0d08z40"))
|
||||
"0473mmc4wv8zbbcbvqqn0z9gz9y8gf4w2q6j6h50lx0jphpg2n8z"))
|
||||
(patches (search-patches "coq-fix-envvars.patch"))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
|
@ -229,7 +229,7 @@ provers.")
|
|||
(define-public coq-flocq
|
||||
(package
|
||||
(name "coq-flocq")
|
||||
(version "3.4.2")
|
||||
(version "4.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -239,7 +239,7 @@ provers.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0j7vq7ifqcdaj2x881aha2rl51l2p72y1cn7r2xya0fjgsssfigy"))))
|
||||
"159ykkhxz7zms28r4v8jjccapl5vv00csdz29mfy83lwrv5b6rwk"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list autoconf automake ocaml which coq))
|
||||
|
@ -276,7 +276,7 @@ inside Coq.")
|
|||
(define-public coq-gappa
|
||||
(package
|
||||
(name "coq-gappa")
|
||||
(version "1.5.0")
|
||||
(version "1.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -286,7 +286,7 @@ inside Coq.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ivh8xm1c8191rm4riamjzya2x6ls96qax5byir1fywf9hbxr1vg"))))
|
||||
"18y4mv44mcgyam77rf4xs7l06mg7pxx1qli3yvs0kklmnnvwa463"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list autoconf
|
||||
|
@ -334,7 +334,7 @@ assistant.")
|
|||
(define-public coq-mathcomp
|
||||
(package
|
||||
(name "coq-mathcomp")
|
||||
(version "1.13.0")
|
||||
(version "1.14.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -343,7 +343,7 @@ assistant.")
|
|||
(commit (string-append "mathcomp-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0aj8hsdzzds5w0p1858s2b6k9zssjcxa6kgpi0q1nvaml4zfpkcc"))))
|
||||
(base32 "1rqg47dg84wr6d9v2pzna54dm62awcm8xdwx4dqwdwhf58fjxa9i"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list ocaml which coq))
|
||||
|
@ -420,7 +420,7 @@ theorems between the two libraries.")
|
|||
(define-public coq-bignums
|
||||
(package
|
||||
(name "coq-bignums")
|
||||
(version "8.14.0")
|
||||
(version "8.15.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -429,7 +429,7 @@ theorems between the two libraries.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06"))))
|
||||
"093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list ocaml coq))
|
||||
|
@ -452,7 +452,7 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
|
|||
(define-public coq-interval
|
||||
(package
|
||||
(name "coq-interval")
|
||||
(version "4.3.1")
|
||||
(version "4.4.0")
|
||||
(source
|
||||
(origin
|
||||
(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))
|
||||
(sha256
|
||||
(base32
|
||||
"0sr9psildc0sda07r2r47rfgyry49yklk38bg04yyvry5j5pryb6"))))
|
||||
"1rlcbv1nqm7zv60n63lca6nnxcq3c18akgzl72s1n3h89gvhs87z"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list autoconf automake ocaml which coq))
|
||||
|
@ -546,11 +546,11 @@ uses Ltac to synthesize the substitution operation.")
|
|||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(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))
|
||||
(sha256
|
||||
(base32
|
||||
"19bj9nncd1r9g4273h5qx35gs3i4bw5z9bhjni24b413hyj55hkv"))))
|
||||
"1vfcfpsp9zyj0sw0cwibk76nj6n0r6gwh8m1aa3lbvc0b1kbm32k"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
(list ocaml coq camlp5))
|
||||
|
@ -625,7 +625,7 @@ also provided in Coq, without associated proofs.")
|
|||
(define-public coq-stdpp
|
||||
(package
|
||||
(name "coq-stdpp")
|
||||
(version "1.6.0")
|
||||
(version "1.7.0")
|
||||
(synopsis "Alternative Coq standard library std++")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
|
@ -635,7 +635,7 @@ also provided in Coq, without associated proofs.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1l1w6srzydjg0h3f4krrfgvz455h56shyy2lbcnwdbzjkahibl7v"))))
|
||||
"0447wbzm23f9rl8byqf6vglasfn6c1wy6cxrrwagqjwsh3i5lx8y"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
(list coq))
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||
;;; 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 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
|
||||
;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
|
||||
|
@ -11,10 +11,10 @@
|
|||
;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
||||
;;; 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 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 Milkey Mouse <milkeymouse@meme.institute>
|
||||
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
|
||||
|
@ -25,6 +25,10 @@
|
|||
;;; Copyright © 2021 jgart <jgart@dismail.de>
|
||||
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -48,7 +52,9 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system copy)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix gexp)
|
||||
|
@ -73,13 +79,15 @@
|
|||
#:use-module (gnu packages onc-rpc)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-check)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages pretty-print)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml))
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define-public argagg
|
||||
(let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748") (revision "0"))
|
||||
|
@ -168,6 +176,10 @@ development effort.")
|
|||
(sha256
|
||||
(base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(list "-DRANGES_NATIVE=OFF")))
|
||||
(native-inputs
|
||||
(list doxygen gcc-9 perl))
|
||||
(inputs
|
||||
|
@ -219,6 +231,53 @@ use by the C++ Core Guidelines maintained by the Standard C++ Foundation.")
|
|||
(home-page "https://github.com/microsoft/GSL/")
|
||||
(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
|
||||
(package
|
||||
(name "libzen")
|
||||
|
@ -347,7 +406,7 @@ combination of these streams.")
|
|||
(define-public xsimd
|
||||
(package
|
||||
(name "xsimd")
|
||||
(version "7.5.0")
|
||||
(version "8.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -355,7 +414,7 @@ combination of these streams.")
|
|||
(url "https://github.com/QuantStack/xsimd")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "0c9pq5vz43j99z83w3b9qylfi66mn749k1afpv5cwfxggbxvy63f"))
|
||||
(base32 "0fph1gzrj13knfkl3fvg098ccvqkbzs0jb8n323m7pnxajpzhzij"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
|
@ -452,51 +511,48 @@ functions, class methods, and stl containers.
|
|||
(license license:bsd-3)))
|
||||
|
||||
(define-public fifo-map
|
||||
(let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9")
|
||||
(revision "0")
|
||||
(version (git-version "1.1.1" revision commit)))
|
||||
(package
|
||||
(name "fifo-map")
|
||||
(version version)
|
||||
(home-page "https://github.com/nlohmann/fifo_map")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196"))
|
||||
(patches (search-patches "fifo-map-remove-catch.hpp.patch"
|
||||
"fifo-map-fix-flags-for-gcc.patch"))
|
||||
(file-name (git-file-name name version))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(delete-file-recursively "./test/thirdparty"))))
|
||||
(native-inputs
|
||||
(list catch-framework2-1))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "./unit")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(inc (string-append out "/include/fifo_map")))
|
||||
(with-directory-excursion "../source"
|
||||
(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
|
||||
(package
|
||||
(name "fifo-map")
|
||||
(version "1.0.0")
|
||||
(home-page "https://github.com/nlohmann/fifo_map")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0y59fk6ycrgjln9liwcja3l5j1vxpa5i671bynpbsjlyq5f2560q"))
|
||||
(patches (search-patches "fifo-map-remove-catch.hpp.patch"
|
||||
"fifo-map-fix-flags-for-gcc.patch"))
|
||||
(file-name (git-file-name name version))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(delete-file-recursively "./test/thirdparty"))))
|
||||
(inputs
|
||||
(list catch-framework2-1))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? #:allow-other-keys)
|
||||
(when tests? (invoke "./unit"))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(inc (string-append out "/include/fifo_map")))
|
||||
(with-directory-excursion "../source"
|
||||
(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
|
||||
as ordering relation.")
|
||||
(license license:expat))))
|
||||
(license license:expat)))
|
||||
|
||||
(define-public json-modern-cxx
|
||||
(package
|
||||
(name "json-modern-cxx")
|
||||
(version "3.9.1")
|
||||
(version "3.10.5")
|
||||
(home-page "https://github.com/nlohmann/json")
|
||||
(source
|
||||
(origin
|
||||
|
@ -504,7 +560,7 @@ as ordering relation.")
|
|||
(uri (git-reference (url home-page)
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "0ar4mzp53lskxw3vdzw07f47njcshl3lwid9jfq6l7yx6ds2nyjc"))
|
||||
(base32 "1f9mi45ilwjc2w92grjc53sw038840bjpn8yjf6wc6bxs2nijfqd"))
|
||||
(file-name (git-file-name name version))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
|
@ -513,7 +569,7 @@ as ordering relation.")
|
|||
;; is a wrapper library added by this package.
|
||||
(install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp")
|
||||
(for-each delete-file-recursively
|
||||
'("./third_party" "./test/thirdparty" "./benchmarks/thirdparty"))
|
||||
'("./third_party" "./test/thirdparty"))
|
||||
(install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest")
|
||||
|
||||
;; Adjust for the unbundled fifo_map and doctest.
|
||||
|
@ -525,43 +581,39 @@ as ordering relation.")
|
|||
(substitute* files
|
||||
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
|
||||
(string-append
|
||||
"#include <fifo_map/" fifo-map-hpp ">")))))
|
||||
#t))))
|
||||
"#include <fifo_map/" fifo-map-hpp ">")))))))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(list "-DJSON_MultipleHeaders=ON" ; For json_fwd.hpp.
|
||||
(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
|
||||
;; XXX: When tests are enabled, the install phase will cause
|
||||
;; a needless rebuild without the given configure flags,
|
||||
;; 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)
|
||||
(replace 'check
|
||||
(lambda* (#:key tests? parallel-tests? #:allow-other-keys)
|
||||
(if tests?
|
||||
;; Some tests need git and a full checkout, skip those.
|
||||
(invoke "ctest" "-LE" "git_required")
|
||||
(format #t "test suite not run~%"))
|
||||
#t)))))
|
||||
(invoke "ctest" "-LE" "git_required"
|
||||
"-j" (if parallel-tests?
|
||||
(number->string (parallel-job-count))
|
||||
"1"))
|
||||
(format #t "test suite not run~%")))))))
|
||||
(native-inputs
|
||||
`(("amalgamate" ,amalgamate)
|
||||
("doctest" ,doctest)
|
||||
("json_test_data"
|
||||
,(let ((version "3.0.0"))
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nlohmann/json_test_data")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "json_test_data" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv")))))))
|
||||
(list amalgamate
|
||||
(let ((version "3.0.0"))
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nlohmann/json_test_data")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "json_test_data" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))))
|
||||
(inputs
|
||||
(list fifo-map))
|
||||
(list doctest fifo-map))
|
||||
(synopsis "JSON parser and printer library for C++")
|
||||
(description "JSON for Modern C++ is a C++ JSON library that provides
|
||||
intuitive syntax and trivial integration.")
|
||||
|
@ -570,7 +622,7 @@ intuitive syntax and trivial integration.")
|
|||
(define-public xtl
|
||||
(package
|
||||
(name "xtl")
|
||||
(version "0.6.23")
|
||||
(version "0.7.4")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
|
@ -579,20 +631,19 @@ intuitive syntax and trivial integration.")
|
|||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"1kd9zl4h6nrsg29hq13vwp4zhfj8sa90vj40726lpw6vxz48k4di"))
|
||||
"134pgvmf9cx5dxs0m0m3qhp3m3r1gl86ic3xax21zc4sdj8sdq46"))
|
||||
(file-name (git-file-name name version))))
|
||||
(native-inputs
|
||||
(list googletest json-modern-cxx))
|
||||
(list doctest googletest json-modern-cxx))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'(#:configure-flags
|
||||
'("-DBUILD_TESTS=ON")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* _
|
||||
(with-directory-excursion "test"
|
||||
(invoke "./test_xtl")
|
||||
#t))))))
|
||||
(invoke "./test_xtl")))))))
|
||||
(home-page "https://github.com/QuantStack/xtl")
|
||||
(build-system cmake-build-system)
|
||||
(synopsis "C++ template library providing some basic tools")
|
||||
|
@ -771,7 +822,7 @@ library.")
|
|||
(define-public cpplint
|
||||
(package
|
||||
(name "cpplint")
|
||||
(version "1.4.5")
|
||||
(version "1.5.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -781,19 +832,49 @@ library.")
|
|||
(url "https://github.com/cpplint/cpplint")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32 "1yzcxqx0186sh80p0ydl9z0ld51fn2cdpz9hmhrp15j53g9ira7c"))
|
||||
(base32 "13l86aq0h1jga949k79k9x3hw2xqchjc162sclg2f99vz98zcz15"))
|
||||
(file-name (git-file-name name version))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'use-later-pytest
|
||||
(lambda _
|
||||
(substitute* "test-requirements"
|
||||
(("pytest.*") "pytest\n"))
|
||||
#t)))))
|
||||
(list #:modules `((srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
,@%python-build-system-modules)
|
||||
#:phases
|
||||
#~(modify-phases (@ (guix build python-build-system) %standard-phases)
|
||||
(add-before 'wrap 'reduce-GUIX_PYTHONPATH
|
||||
(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)
|
||||
(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")
|
||||
(synopsis "Static code checker for C++")
|
||||
(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
|
||||
(package
|
||||
(name "pegtl")
|
||||
(version "2.8.3")
|
||||
(version "3.2.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -971,7 +1052,7 @@ Google's C++ code base.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"17crgjfdx55imi2dqnz6xpvsxq07390yfgkz5nd2g77ydkvq9db3"))))
|
||||
"1viwrlsw5nwvbv8d88mf5r77syapgxx3xm1kv5kmn6drw8jgsmzf"))))
|
||||
(build-system cmake-build-system)
|
||||
(home-page "https://github.com/taocpp/PEGTL")
|
||||
(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"))
|
||||
(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
|
||||
(let* ((commit "b6d311d76b504bf8ace5134d3fca0e672c36c9c3")
|
||||
(revision "1"))
|
||||
|
@ -1162,6 +1276,44 @@ provides a number of utilities to make coding with expected cleaner.")
|
|||
(home-page "https://tl.tartanllama.xyz/")
|
||||
(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
|
||||
(package
|
||||
(name "magic-enum")
|
||||
|
@ -1592,3 +1744,123 @@ microparallel algorithms to implement a strict JSON parser with UTF-8
|
|||
validation.")
|
||||
(home-page "https://github.com/simdjson/simdjson")
|
||||
(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
Reference in a new issue