* gnu/services/containers.scm: New file;
(rootless-podman-configuration): new variable;
(rootless-podman-service-subids): new variable;
(rootless-podman-service-accounts): new variable;
(rootless-podman-service-profile): new variable;
(rootless-podman-shepherd-services): new variable;
(rootless-podman-service-etc): new variable;
(rootless-podman-service-type): new variable.
* gnu/local.mk: Test it.
* gnu/local.mk: Add them.
* doc/guix.texi (Miscellaneous Services): Document it.
Change-Id: I041496474c1027da353bd6852f2554a065914d7a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit adds a Guix System service to handle allocation of subuid
and subgid requests. Users that don't care can just add themselves as a
subid-range and don't need to specify anything but their user name.
Users that care about specific ranges, such as possibly LXD, can specify
a start and a count.
* doc/guix.texi (Miscellaneous Services): Document it.
* gnu/build/activation.scm (activate-subuids+subgids): New variable.
* gnu/local.mk: Add gnu/tests/shadow.scm.
* gnu/system/accounts.scm (sexp->subid-range): New variable.
* gnu/system/shadow.scm (%root-subid): New variable;
(subids-configuration): new record;
(subid-range->gexp): new variable;
(assert-valid-subids): new variable;
(delete-duplicate-ranges): new variable;
(subids-activation): new variable;
(subids-extension): new record;
(append-subid-ranges): new variable;
(subids-extension-merge): new variable;
(subids-service-type): new variable.
* gnu/tests/shadow.scm (subids): New system test.
Change-Id: I3755e1c75771220c74fe8ae5de1a7d90f2376635
Signed-off-by: Giacomo Leidi <goodoldpaul@autistici.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* doc/guix.texi Add note on nsncd in Name Service Switch section.
Change-Id: Ib804ab2e7d83d13f8f81d875f957eae2304eb232
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
The database contains some tables that are effectively used for configuration.
This commit starts to expose these to the guix service, enabling the
configuration to be handled by the service.
* gnu/services/guix.scm (<guix-data-service-configuration>): Add
git-repositories and build-servers.
(guix-data-service-configuration-git-repositories,
guix-data-service-configuration-build-servers): New procedures.
(guix-data-service-shepherd-services): Add new shepherd service to setup the
database.
Change-Id: I519efd9157b60f18c7e80e3bdc92c0e3c5729334
For auto-login on systems with elogind, dbus-system needs to be started. This
commit adds ability to express that ordering.
* gnu/services/base.scm (<mingetty-configuration>): Add shepherd-requirement
field.
(mingetty-shepherd-service): Use it.
* doc/guix.texi (Base Services)<mingetty-configuration>: Document it.
Change-Id: Iedbdc4375180740379d561aa193d7c63350d2e7b
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Not all aspects of mingetty were configurable, so this commit adds the
additional configuration fields to support that.
* gnu/services/base.scm (<mingetty-configuration>): Add delay, print-issue,
print-hostname, nice, working-directory, root-directory fields.
(mingetty-shepherd-service): Use the new fields.
(define-module)<#:export>: Export the new accessors.
* doc/guix.texi (Base Services)<mingetty-configuration>: Document the
additional field.
Change-Id: I4557a82498805ade0b341feda9d33eccc305690f
* doc/guix.texi (Build Systems): Add documentation for
changed #:configure-flags and new #:backend-path.
Change-Id: Ic8be598ea52ae04230b1e61c329ee55ccbb5dd63
This ensures the unattended upgrade job successfully reboots regardless of the
value for services-to-restart. Previously the mcron service may be restarted
which would halt script execution before the system rebooted.
* gnu/services/admin.scm (unattended-upgrade-mcron-jobs): Do not restart
services when reboot? is #t.
* doc/guix.texi (Unattended Upgrades): Document it.
Change-Id: I8e486a764ec1dc5c3090130cc447a0cc3f5a2e00
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
In order to support more flexibility in Wireguard configuration, ungexp the
configuration fields directly instead of ungexp-splicing a sexp
calculator. This allows for the fields to take arbitrary gexps instead of only
strings which is particularly helpful for the Pre/Post Up/Down commands.
* gnu/services/vpn.scm (wireguard-configuration-file): Ungexp configuration
lists instead of ungexp-splicing the code surrounding them.
* doc/guix.texi (VPN Services)[wireguard]: Document it.
Change-Id: If074cbb78473b6fd34e0e4e990d2ed268001d6c7
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
The syntax from using the private-key field is more convenient than writing a
custom PreUp command (more formatting and preshared keys). Instead of trying
to guess if private-key is/is not a file path, add an option to disable
bootstrapping while still using private-key.
* gnu/services/vpn.scm (<wireguard-configuration>): Add
bootstrap-private-key?.
(wireguard-activation): Check bootstrap-private-key? before bootstrapping.
* doc/guix.texi (VPN Services)[wireguard]: Document it.
Change-Id: I6ba71ad58b26743057a221a54a246369022f83a5
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Users who retrieve the private-key via a PreUp field need to be able to
disable the default retrieval mechanism.
* gnu/services/vpn.scm (<wireguard-configuration>)[private-key]: Change
comment.
(wireguard-configuration-file): Conditionally serialize private-key.
* gnu/services/vpn.scm (wireguard-activation): Do not create private-key if
the field is #f.
* doc/guix.texi (VPN Services)[wireguard-configuration]: Document it.
Change-Id: Iac419809ae94eb76e97ff1f1749e2f4b3e65bb04
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* doc/contributing.texi(Sending a Patch Series): Add a note about
`git format-patch` revision format and link to git documentation.
Change-Id: Ie08f85dc19e3804165fb184664b74e85a804d7c4
Commit eee95b5a87 changed package
rewriting to ignore hidden packages. This patch permits the previous use
by adding an option to rewrite hidden packages.
* guix/packages.scm (package-input-rewriting/spec)[rewrite]: When P is
hidden, return it as-is unless #:replace-hidden? has been enabled.
* tests/packages.scm ("package-input-rewriting/spec, replace hidden
package"): New test.
* doc/guix.texi (Defining Package Variants): Update.
Change-Id: I0a7988cac70e0c6b88b0fe6e27c1036fa723e030
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Use the "Call for contribution to the Guix infrastructure" by Ludovic
Courtès to create a section in the documentation that describes how to
contribute to the infrastructure.
https://lists.gnu.org/archive/html/guix-devel/2024-05/msg00183.html
* doc/contributing.texi (Contributing to Guix's infrastructure): New
section.
Change-Id: I3f3a99ad884110cc8323789e8c14bec1f7327e97
This paragraph is present in the ‘guix environment’ docs. I presume
it clarifies ‘guix shell’ for newcomers as well.
* doc/guix.texi (Invoking guix shell): Take over an introductory
paragraph from ‘guix environment’ and use it for ‘guix shell’.
Change-Id: I06280516ad3436260114b074c5f325e6984e9c76
* gnu/services/databases.scm (postgresql-configuration)[postgresql]:
Unset default.
(postgresql-service-type): Remove default-value.
(postgresql-service): Revert default to postgresql-10 (rationale: We
can remove this service at the same time than postgresql-10, in
something like 6 months to a year).
* doc/guix.texi: Remove postgresql default reference in documentation.
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
The `select?' keyword is part of the description instead of immediately
following `keep-permissions?' in the arguments list for `copy-recursively'.
This adds a missing '@' to fix that.
* doc/guix.texi (Build Utilities): Fix `copy-recursively' arguments.
Change-Id: If6802490a6afebc884b039d84f1fe4f9202a1151
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
By allowing the use of test flags, we can more precisely skip failing tests
(for go version >=1.20), disable the vetting stage or select a subset of tests
(e.g. if an upstream flag is provided to skip tests which require a network
connection). At the moment, the only way around these test failures is to
remove the test file completely or patch the code ourselves.
* guix/build-system/go.scm (go-build): Add test-flags variable.
(go-cross-build): Add test-flags variable.
* guix/build/go-build-system.scm (check): Pass the additional test flags to the invoke call.
* doc/guix.texi (go-build-system): Document <#:test-flags> parameter.
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Change-Id: I4015870fbbc15503cb405fe9ef6032953a5ff17f
Prior to this commit, the terms localstatedir and sysconfdir were used without
being defined earlier in this section. This commit clarifies that they are
configure flags.
* doc/contributing.texi (Building from Git): Explicitly mention
--localstatedir and --sysconfdir configure flags.
Change-Id: I3e6edbbc1f2a342196e732e14257dbdf9a3f4303
Suggested by Simon Tournier <zimon.toutoune@gmail.com>.
* doc/contributing.texi (Teams): Move from subsection of “Submitting
Patches” to section of “Contributing”.
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: Id21be29380fc981e74a5025b1467eebde8566726
Suggested by Simon Tournier <zimon.toutoune@gmail.com>.
* doc/contributing.texi (Making Decisions): New section, with paragraphs
moved from…
(Commit Access): … here. Cross-reference it.
(Teams): Likewise.
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: Ib276242e0ec7598a1b60dacdde8647bd3d3b85d3
* doc/contributing.texi (Source Tree Structure, Submitting Patches,
Translating Guix): Write @command instead of @code when invoking guix.
(Submitting Patches): Write @code instead of @command for a field name.
* doc/guix-cookbook.texi (A ``Hello World'' package): Use @xref at the
beginning of a sentence.
(Auto-Login to a Specific TTY): Remove a space before @pxref.
(Basic setup with manifests): Write @ref instead of (@pxref) after ``see''.
Change-Id: I1ced2ebc4062b3a80878a7e0eea8f7a3d4baf7da
Versions 10 and 11 are unsupported according to
https://www.postgresql.org/support/versioning/
postgresql-10 also has a CVE.
* doc/guix.texi: Change default value of postgresql-service-type's
postgresql field.
* gnu/packages/databases.scm (postresql-10, postgresql-11): Use
define-deprecated/public to warn users.
* gnu/services/databases.scm (postgresql-configuration): Change the
default value of postgresql-configuration-postgresql.
* gnu/tests/guix.scm (%guix-data-service-os): Change the default value
of postgresql.
Signed-off-by: Andreas Enge <andreas@enge.fr>
Change-Id: Ie8744c8e1f246e9b45ff5e29d4e98214de3ca66a
* doc/guix.texi (Miscellaneous Services)[DLNA/UPnP Services]: Use string value
"60" instead of numeric value 60 in extra-config.
Change-Id: Iea05409bb2f36fc4d0caafa375f0307bfae64a08