Add a mechanism to only require mounting a subset of file-system entries
during early Shepherd initialization. Any file-system with additional Shepherd
service requirements (e.g. networking) is not required to provision
'file-systems.
* gnu/services/base.scm (file-system-shepherd-service): Splice
file-system-requirements into the Shepherd service requirement list.
(file-system-shepherd-services): Provision 'file-system only when file system
services without additional Shepherd requirements are started.
* gnu/system/file-systems.scm (file-system): Add shepherd-requirements field
to the file-system record. This field is used for adding additional Shepherd
requirements to a file-system Shepherd service.
* doc/guix.texi: Add documentation for file-system shepherd-requirements.
Change-Id: If0392db03d48e8820aa53df1df482c12ec72e1a5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* configure.ac (Documentation translation): Remove the po4a-translate command.
This command has been replaced by the po4a command and are not used from
anywhere.
* doc/local.mk ($(srcdir)/%D%/guix.%.texi, $(srcdir)/%D%/guix-cookbook.%.texi)
($(srcdir)/%D%/contributing.%.texi): Use the po4a command instead of the
po4a-translate for the translation generation. This eliminates the warning of
po4a-translate; "po4a-translate is deprecated. The unified po4a(1) program is
more convenient and less error prone."
(PO4A_PARAMS): Remove the Texinfo format option. This option is specified in
the configuration file (po/doc/po4a.cfg).
(dummy_pot): Add a variable for the temporary POT file location.
Change-Id: I542b934c3c03b8701e9f86823191224f8b0ccf81
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
When replacing `guix environment' with `guix shell',
I forgot to add a `--development' argument.
Follow-up to 9c3a8a380b.
* doc/guix-cookbook.texi (Environment management)
[Guix environment via direnv]: Fix example.
Change-Id: I0a0df33b3b547bfc3ada10c4648e593be6608070
This reverts commit dbeef44f3c.
Despite the more semantically correct data type, it doesn't follow the style
of the most services and also breaks user-facing API.
Change-Id: Ib4ef4e9cd2f53ac853a5b7c7c90e57c35c99a5ea
When the user does not use any desktop environment, the typical sequence is to
log in and then type `startx' into the tty to get a window manager running.
Most distributions do provide a startx by default, but Guix has only an
xorg-start-command that is not suitable for this.
This commit adds a second procedure, xorg-start-command-xinit, that correctly
picks a virtual terminal to use, sets up XAUTHORITY and starts xinit with the
correct arguments. That should make running Guix without a desktop
environment more approachable.
* gnu/services/xorg.scm (xorg-start-command-xinit): New public procedure.
* doc/guix.texi (X Window): Document it.
Change-Id: I17cb16093d16a5c6550b1766754700d4fe014ae9
Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
This is to allow version-specific options to the list of defaults.
* gnu/packages/linux.scm (%default-extra-linux-options): Transform to...
(default-extra-linux-options): ... this procedure, which accepts a 'version'
argument.
(make-linux-libre, linux-libre-arm-generic, linux-libre-arm-generic-5.10)
(linux-libre-arm-generic-5.4, linux-libre-arm64-generic)
(linux-libre-arm64-generic-5.10, linux-libre-arm64-generic-5.4)
(linux-libre-riscv64-generic, linux-libre-mips64el-fuloong2e)
(linux-libre-with-bpf): Adjust accordingly.
* doc/guix-cookbook.texi (Customizing the Kernel): Adjust accordingly.
Change-Id: Ifd3be8b7ed8699bada224a938dbc84205366ff3d
'(map specification->package+output specs)' doesn't work due to
'specification->package+output' will return multiple values.
* doc/guix.texi (Using the Configuration System): Replace
'specification->package+output' with 'specifications->packages'.
Change-Id: I443771327a2ef5ae5e7dddd9785f1eef4200e898
The Guix standard configuration uses a localstatedir of /var and a sysconfdir
of /etc. To ease things for everyone, make the default values match that
standard expected configuration. See
<https://lists.gnu.org/archive/html/guix-devel/2024-05/msg00003.html> for a
related discussion.
* configure.ac: Default $prefix to '' unless already set.
* doc/contributing.texi (Building from Git): Streamline doc.
* doc/guix-cookbook.texi (Guix environment via direnv): Likewise.
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I23cd12b58a842d246fbc9fdc740311c573eb0212
The previous recommendation, running ‘make authenticate’, was insecure
because it led users to run code from the very repository they want to
authenticate:
https://lists.gnu.org/archive/html/guix-devel/2024-04/msg00252.html
* Makefile.am (commit_v1_0_0, channel_intro_commit)
(channel_intro_signer, GUIX_GIT_KEYRING, authenticate): Remove.
* Makefile.am (.git/hooks/%): New target, generalization of previous
‘.git/hooks/pre-push’ target.
(nodist_noinst_DATA): Add ‘.git/hooks/post-merge’.
* doc/contributing.texi (Building from Git): Suggest ‘guix git
authenticate’ instead of ‘make authenticate’.
* etc/git/post-merge: New file.
* etc/git/pre-push: Run ‘guix git authenticate’ instead of ‘make
authenticate’.
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Reported-by: Skyler Ferris <skyvine@protonmail.com>
Change-Id: Ia415aa8375013d0dd095e891116f6ce841d93efd
* doc/guix.texi (G-Expressions): Document the use of assume-valid-file-name with
local-file.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I132f78e198cbf3ba2e5a677d671563d753de534c
This commit allows for loading an OCI image tarball before running an
OCI backed Shepherd service. It does so by adding a one shot Shepherd
service to the dependencies of the OCI backed service that at boot runs
docker load on the tarball.
* gnu/services/docker.scm (oci-image): New record;
(lower-oci-image): new variable, lower it;
(string-or-oci-image?): sanitize it;
(oci-container-configuration)[image]: allow also for oci-image records;
(oci-container-shepherd-service): use it;
(%oci-image-loader): new variable.
Change-Id: Ie504f479ea0d47f74b0ec5df9085673ffd3f639d
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu/services/docker.scm (exports): Add missing procedures;
(oci-container-service-type)[description]: Docker and OCI images should
mean the same thing;
(oci-container-configuration): clarify field types;
[extra-arguments]: new field;
(oci-sanitize-extra-arguments): sanitize it;
(oci-container-shepherd-service): use it.
* doc/guix.texi: Document it.
Change-Id: I64e9d82c8ae538d59d1c482f23070a880156ddf7
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Require that you create a "Request to merge" issue when you create a branch,
rather than when you wish to merge it. This should help avoid this step being
missed.
Also, add information on how to manage these branches:
1. Suggest creating the branch from patches, rather than having a stateful
branch, since this should help to reduce complexity and avoid merges.
2. Require that branches don't have unnecessary changes, since this increases
the risks of conflicts with other branches.
3. Suggest that the branch not be stateful, and it's just a combination of
patches.
4. Suggest avoiding merges since these create a more complicated Git history.
5. Suggest that the branch be up to date before merging, as this helps avoid
the combination of master plus the branch differing significantly from the
branch alone.
6. Document how to manage branches without commit access.
Finally, require that the branch be deleted once they're merged. This
prepares for the branch being created again.
* doc/contributing.texi (Managing Patches and Branches): Make changes to the
handling of branches.
Change-Id: Ib9419c6df94f485475bd6f147e82ea254e76cec2
Fixes <https://issues.guix.gnu.org/63680>.
Thanks to Nigko Yerden for telling me ExecStart lines can be multi-line
<https://lists.gnu.org/archive/html/bug-guix/2024-05/msg00153.html>.
* doc/guix-cookbook.texi (System Configuration)
[Customizing the Kernel]: Split lines.
[Customizing a Window Manager]<StumpWM>: Likewise.
[Setting up a bind mount]: Move comments.
[Getting substitutes from Tor]: Split line with backslash.
[Music Server with Bluetooth Audio]: Likewise.
(Advanced package management)[Guix Profiles in Practice]
<Basic setup with manifests>: Likewise.
<Reproducible profiles>: Likewise.
(Environment management)[Guix environment via direnv]: Likewise.
(Installing Guix on a Cluster)[Setting Up a Head Node]:
On Info and PDF, split ExecStart= command with backslash.
Change-Id: I31ef5b0417b319c3f6946d65f83edafb86c8f36b
* gnu/services/pm.scm
(power-profiles-configuration): New configuration.
(power-profiles-daemon-shepherd-service): New procedure.
(power-profiles-daemon-activation): New variable.
(power-profiles-daemon-service-type): New procedure.
* doc/guix.texi (Power Management Services): Document it.
Change-Id: Ib035d993ed82eec2a43f3ba2b4c92f77e08a0fd7
Signed-off-by: Christopher Baines <mail@cbaines.net>
The field is called changeset, not revision. And the string does not have to
be a number.
* doc/guix.texi (origin Reference): Fix documentation for hg-reference.
Change-Id: Ic622dfc7b44caf42d070cdab8e42808dd96e6d63
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
For some reason, they were missing from the documentation. This commit adds
them including an example of usage.
* doc/guix.texi (origin Reference): Add cvs-fetch and cvs-reference.
Change-Id: I6622a9f70e6d71ed31fbb3d2689df4a6946f8868
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
nixos.wiki was created by a community member a long time ago. It turned out to
be very useful to the community, it became an official service last month
hosted on the NixOS.org domain name. To ease the long term maintainance among
other things.
See more details at https://github.com/NixOS/foundation/issues/113
* doc/guix.texi (Nix service): Change nixos.wiki to wiki.nixos.org.
Change-Id: Ia95074fbfad494e8ceb5c2cdb3faab23f3604882
Signed-off-by: Christopher Baines <mail@cbaines.net>
As of Cuirass commit 9a1452ee021c9f773424961cfeef47ca0b7c5c5a, this option
seems to be unused and kept for back compatibility there.
* gnu/services/cuirass.scm (<cuirass-configuration>): Remove use-substitutes?
field.
(cuirass-shepherd-service): Remove the option.
* doc/guix.texi (Continuous Integration): Remove option documentation.
Change-Id: I933550ce76eecdf918b07891aa8212fd30a7c87e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Currently, "extra-options" is passed to both "cuirass register" and "cuirass
web" processes. This makes it impractical since the extra parameters have to
be intended for and supported by both processes.
* gnu/services/cuirass.scm (<cuirass-configuration>): Add a web-extra-options
field.
(cuirass-shepherd-service): Replace extra-options with web-extra-options for
cuirass web.
* doc/guix.texi (Continuous Integration): Document the changes.
Change-Id: Iba79c559ea8267aaf8f25248f3d18ed7b352cb60
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix/scripts/git/authenticate.scm (install-hooks): New procedure.
(guix-git-authenticate): Use it.
* doc/guix.texi (Invoking guix git authenticate): Document it.
Change-Id: I4464a33193186e85b476a12740e54412bd58429c
* guix/scripts/git/authenticate.scm (%default-options): Remove
‘keyring-reference’.
(config-value, configured-introduction, configured-keyring-reference)
(configured?, record-configuration, current-branch): New procedures.
(guix-git-authenticate)[missing-arguments]: New procedure.
Use ‘configured-introduction’ when zero arguments are given.
Use ‘configured-keyring-reference’ when ‘-k’ is not passed. Add call to
‘record-configuration’.
* doc/guix.texi (Invoking guix git authenticate): Document it.
Change-Id: I66e111a83f50407b52da71662629947f83a78bbc
* doc/contributing.texi (Requirements): Explain the purpose of
this section. Refer regular contributors to Building from Git.
Change-Id: I731af4ac8e78b053b96a3b683528964223ab740b
* doc/guix.texi (Using the Configuration System): Fix mention of 'nss-certs'
after the package has been added to '%default-packages' (see
'65e8472a4b6fc6f66871ba0dad518b7d4c63595e').
* doc/guix.texi (Web Services): Fix mention of 'nss-certs' after the package has
been added to '%default-packages' (see
'65e8472a4b6fc6f66871ba0dad518b7d4c63595e').
Change-Id: Iecdecb8deb440cdea224f3e9e7ce54e89dd575a2
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
* doc/guix.texi (Setting Up the Daemon): Use @xref to start sentence.
(Build Systems): Capitalize "python" and start parenthesized reference with
@pxref.
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
Change-Id: I3504d8668d137029f5f76f025108b7023d9b4182
Using `build-aux/mdate-from-git.scm' makes this no longer necessary.
This reverts commit e73ea7bd64f64709c71f89dfb111cf3e8ada3771.
Change-Id: I29d1e36b13d255e5a65b7348e7ae4f2b2c24a518
Using `build-aux/mdate-from-git.scm' makes this no longer necessary.
This reverts commit 0e4ead187d83a958ca0deb54857c04967e84d68b.
Change-Id: I9177828f90fa7f7e256bc72fdff35a2fab355780
* doc/guix.texi (Guix Home Service): Reword intro. Tweak example to be
closer to reality.
(Declaring the Home Environment): Link to ‘guix-home-service-type’.
(Invoking guix home): Likewise.
Change-Id: I0355a6da9b9a28818eb0738854381671a6a1f652
This patch adds a Guix Home service, which allows for configuring/deploying an
operating-system declaration with an associated home-environment.
* gnu/services/guix.scm: Add guix-home-service and guix-home-shepherd-service
* gnu/home/services/shepherd.scm: Don't attempt to launch user shepherd when
the system shepherd runs guix-home-<user>
* doc/guix.texi: Add documentation for guix-home-service
* gnu/tests/guix.scm: Add a test to verify guix-home-service-type is able to
activate a home environment
Change-Id: Ifbcc0878d934aa4abe34bb2123b5081fb432aa8e
Signed-off-by: Ludovic Courtès <ludo@gnu.org>