Archived
1
0
Fork 0

Merge branch 'staging' into core-updates.

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

View file

@ -52,6 +52,7 @@
(eval . (put 'test-equal 'scheme-indent-function 1))
(eval . (put 'test-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 ?~ "'"))

View file

@ -1,78 +1,103 @@
Important: to avoid polarizing/hurtful discussions in our public spaces, any
matter pertaining to our use of this Code of Conduct should be brought
privately to the Guix maintainers at guix-maintainers@gnu.org. Failure to do
so will be considered as a violation of this Code of Conduct.
Contributor Covenant Code of Conduct
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 projects 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
Mozillas code of conduct enforcement ladder.
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

View file

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
# 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.

View file

@ -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)

View file

@ -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

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -23,7 +23,7 @@
# If adding a language, update the following variables, and info_TEXINFOS.
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 = \

View file

@ -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

View file

@ -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

View file

@ -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))))

View file

@ -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))

View file

@ -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

View file

@ -3,6 +3,7 @@
;;; Copyright © 2016, 2017, 20192021 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))

View file

@ -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)

View file

@ -0,0 +1,174 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu home services desktop)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
#:use-module (gnu services configuration)
#:autoload (gnu packages xdisorg) (redshift)
#:use-module (guix records)
#:use-module (guix gexp)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
#:export (home-redshift-configuration
home-redshift-configuration?
home-redshift-service-type))
;;;
;;; Redshift.
;;;
(define (serialize-integer field value)
(string-append (match field
('daytime-temperature "temp-day")
('nighttime-temperature "temp-night")
('daytime-brightness "brightness-day")
('nighttime-brightness "brightness-night")
('latitude "lat")
('longitude "lon")
(_ (symbol->string field)))
"=" (number->string value) "\n"))
(define (serialize-symbol field value)
(string-append (symbol->string field)
"=" (symbol->string value) "\n"))
(define (serialize-string field value)
(string-append (symbol->string field)
"=" value "\n"))
(define serialize-inexact-number serialize-integer)
(define (inexact-number? n)
(and (number? n) (inexact? n)))
(define-maybe inexact-number)
(define-maybe string)
(define (serialize-raw-configuration-string field value)
value)
(define raw-configuration-string? string?)
(define-configuration home-redshift-configuration
(redshift
(file-like redshift)
"Redshift package to use.")
(location-provider
(symbol 'geoclue2)
"Geolocation provider---@code{'manual} or @code{'geoclue2}.
In the former case, you must also specify the @code{latitude} and
@code{longitude} fields so Redshift can determine daytime at your place. In
the latter case, the Geoclue system service must be running; it will be
queried for location information.")
(adjustment-method
(symbol 'randr)
"Color adjustment method.")
;; Default values from redshift(1).
(daytime-temperature
(integer 6500)
"Daytime color temperature (kelvins).")
(nighttime-temperature
(integer 4500)
"Nighttime color temperature (kelvins).")
(daytime-brightness
(maybe-inexact-number 'disabled)
"Daytime screen brightness, between 0.1 and 1.0.")
(nighttime-brightness
(maybe-inexact-number 'disabled)
"Nighttime screen brightness, between 0.1 and 1.0.")
(latitude
(maybe-inexact-number 'disabled)
"Latitude, when @code{location-provider} is @code{'manual}.")
(longitude
(maybe-inexact-number 'disabled)
"Longitude, when @code{location-provider} is @code{'manual}.")
(dawn-time
(maybe-string 'disabled)
"Custom time for the transition from night to day in the
morning---@code{\"HH:MM\"} format. When specified, solar elevation is not
used to determine the daytime/nighttime period.")
(dusk-time
(maybe-string 'disabled)
"Likewise, custom time for the transition from day to night in the
evening.")
(extra-content
(raw-configuration-string "")
"Extra content appended as-is to the Redshift configuration file. Run
@command{man redshift} for more information about the configuration file
format."))
(define (serialize-redshift-configuration config)
(define location-fields
'(latitude longitude))
(define (location-field? field)
(memq (configuration-field-name field) location-fields))
(define (secondary-field? field)
(or (location-field? field)
(memq (configuration-field-name field)
'(redshift extra-content))))
#~(string-append
"[redshift]\n"
#$(serialize-configuration config
(remove secondary-field?
home-redshift-configuration-fields))
#$(home-redshift-configuration-extra-content config)
"\n[manual]\n"
#$(serialize-configuration config
(filter location-field?
home-redshift-configuration-fields))))
(define (redshift-shepherd-service config)
(define config-file
(computed-file "redshift.conf"
#~(call-with-output-file #$output
(lambda (port)
(display #$(serialize-redshift-configuration config)
port)))))
(list (shepherd-service
(documentation "Redshift program.")
(provision '(redshift))
;; FIXME: This fails to start if Home is first activated from a
;; non-X11 session.
(start #~(make-forkexec-constructor
(list #$(file-append redshift "/bin/redshift")
"-c" #$config-file)))
(stop #~(make-kill-destructor)))))
(define home-redshift-service-type
(service-type
(name 'home-redshift)
(extensions (list (service-extension home-shepherd-service-type
redshift-shepherd-service)))
(default-value (home-redshift-configuration))
(description
"Run Redshift, a program that adjusts the color temperature of display
according to time of day.")))

View file

@ -34,7 +34,7 @@
;;; Code:
(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

View file

@ -171,56 +171,27 @@ Used for executing user's commands at the exit of login shell. It
won't be read in some cases (if the shell terminates by exec'ing
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)

View file

@ -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>

View file

@ -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)))

View file

@ -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))

View file

@ -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"

View file

@ -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
View file

@ -0,0 +1,118 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu installer dump)
#:use-module (gnu installer utils)
#:use-module (guix build utils)
#:use-module (srfi srfi-11)
#:use-module (ice-9 iconv)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 textual-ports)
#:use-module (web client)
#:use-module (web http)
#:use-module (web response)
#:use-module (webutils multipart)
#:export (prepare-dump
make-dump
send-dump-report))
;; The installer crash dump type.
(define %dump-type "installer-dump")
(define (result->list result)
"Return the alist for the given RESULT."
(hash-map->list (lambda (k v)
(cons k v))
result))
(define* (prepare-dump key args #:key result)
"Create a crash dump directory. KEY and ARGS represent the thrown error.
RESULT is the installer result hash table. Returns the created directory path."
(define now (localtime (current-time)))
(define dump-dir
(format #f "/tmp/dump.~a"
(strftime "%F.%H.%M.%S" now)))
(mkdir-p dump-dir)
(with-directory-excursion dump-dir
;; backtrace
(call-with-output-file "installer-backtrace"
(lambda (port)
(display-backtrace (make-stack #t) port)
(print-exception port
(stack-ref (make-stack #t) 1)
key args)))
;; installer result
(call-with-output-file "installer-result"
(lambda (port)
(write (result->list result) port)))
;; syslog
(copy-file "/var/log/messages" "syslog")
;; dmesg
(let ((pipe (open-pipe* OPEN_READ "dmesg")))
(call-with-output-file "dmesg"
(lambda (port)
(dump-port pipe port)
(close-pipe pipe)))))
dump-dir)
(define* (make-dump dump-dir file-choices)
"Create a crash dump archive from DUMP-DIR containing FILE-CHOICES.
Returns the archive path."
(define output (string-append (basename dump-dir) ".tar.gz"))
(with-directory-excursion (dirname dump-dir)
(apply system* "tar" "-zcf" output
(map (lambda (f)
(string-append (basename dump-dir) "/" f))
file-choices)))
(canonicalize-path (string-append (dirname dump-dir) "/" output)))
(define* (send-dump-report dump
#:key
(url "https://dump.guix.gnu.org"))
"Turn the DUMP archive into a multipart body and send it to the Guix crash
dump server at URL."
(define (match-boundary kont)
(match-lambda
(('boundary . (? string? b))
(kont b))
(x #f)))
(define (response->string response)
(bytevector->string
(read-response-body response)
"UTF-8"))
(let-values (((body boundary)
(call-with-input-file dump
(lambda (port)
(format-multipart-body
`((,%dump-type . ,port)))))))
(false-if-exception
(response->string
(http-post
(string-append url "/upload")
#:keep-alive? #t
#:streaming? #t
#:headers `((content-type
. (multipart/form-data
(boundary . ,boundary))))
#:body body)))))

View file

@ -85,8 +85,9 @@ USERS."
(uid (if root? 0 #f))
(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.

View file

@ -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)))

View file

@ -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))))

View file

@ -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))

View file

@ -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."

View file

@ -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)))

View file

@ -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

View file

@ -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)))))

View file

@ -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))

View file

@ -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)))

View file

@ -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

View file

@ -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 '())))

View file

@ -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))

View file

@ -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

View file

@ -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)))

View file

@ -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))

View file

@ -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."

View file

@ -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?

View file

@ -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))))))

View file

@ -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 \

View file

@ -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.
;;;

View file

@ -422,7 +422,8 @@ of MACHINE's system profile, ordered from most recent to oldest."
(let* ((params (call-with-input-string serialized-params
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))))

View file

@ -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

View file

@ -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))

View file

@ -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 © 20162022 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 © 20172021 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

View file

@ -1,11 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 20182021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
;;; Copyright © 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

View file

@ -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")

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -6045,6 +6045,8 @@ CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_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
#

View file

@ -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
#

View file

@ -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
#

View file

@ -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
#

View file

@ -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 © 20172021 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
View file

@ -0,0 +1,68 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages barrier)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages avahi)
#:use-module (gnu packages check)
#:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages tls)
#:use-module (gnu packages xorg))
(define-public barrier
(package
(name "barrier")
(version "2.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/debauchee/barrier")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "10xk9szxxnqgfym53mcd9hqj1cw2ipncmiixw3i3ajlj1vn88qh1"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
(list "-DBARRIER_USE_EXTERNAL_GTEST=ON")
#:tests? #f)) ;tests require a running x server
(native-inputs
(list googletest pkg-config))
(inputs
(list avahi curl gulrak-filesystem libx11 libxtst openssl qtbase-5))
(synopsis "Keyboard Video Mouse switch software")
(description "@code{Barrier} is software that mimics the functionality of
a KVM switch, which historically would allow you to use a single keyboard and
mouse to control multiple computers by physically turning a dial on the box to
switch the machine you're controlling at any given moment. Barrier does this
in software, allowing you to tell it which machine to control by moving your
mouse to the edge of the screen, or by using a keypress to switch focus to a
different system.")
(home-page "https://github.com/debauchee/barrier")
(license license:gpl2)))

View file

@ -13,7 +13,7 @@
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 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

View file

@ -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+)))

View file

@ -737,6 +737,44 @@ as provided by UCSC (hg38, Dec. 2013) and stored in Biostrings objects.")
"This package exposes an annotation database generated from Ensembl.")
(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")

View file

@ -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")

View file

@ -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

View file

@ -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")

View file

@ -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

View file

@ -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))))

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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))))

View file

@ -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")

View file

@ -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

View file

@ -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

View file

@ -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))

View file

@ -3,7 +3,7 @@
;;; Copyright © 20182021 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