Commit graph

2629 commits

Author SHA1 Message Date
Ludovic Courtès
28ade1bab2
transformations: '--with-source' now operates in depth.
The '--with-source' option is the first one that was implemented, and
it's the only one that would operate only on leaf packages rather than
traversing the dependency graph.  This change makes it consistent with
the rest of the transformation options.

* guix/transformations.scm (evaluate-source-replacement-specs): New
procedure.
(transform-package-source): Rewrite using it.
* tests/transformations.scm ("options->transformation, with-source, no
matches"): Rewrite since we no longer get a warning.
("options->transformation, with-source, in depth"): New test.
* doc/guix.texi (Package Transformation Options): Adjust examples.
2022-09-29 22:59:49 +02:00
Ludovic Courtès
f63adbf6f9
doc: Tweak wsdd wording.
* doc/guix.texi (Samba Services)[Web Service Discovery Daemon]: Tweak
wording.
2022-09-28 22:58:10 +02:00
Ludovic Courtès
67cf25e6cd
doc: Fix syntax for 'wsdd-configuration'.
* doc/guix.texi (Samba Services): Fix syntax of 'wsdd-configuration'
data type definition.
2022-09-28 22:53:35 +02:00
Maxim Cournoyer
b43ed95028
doc: Mention where one can learn more about the samba config file syntax.
* doc/guix.texi (Samba Services): Refer users to "man smb.conf" to learn more
about the Samba config file format.
2022-09-28 09:57:31 -04:00
Maxim Cournoyer
f2d071c832
doc: Add a simple Samba share example.
* doc/guix.texi (Samba Services): Add a configuration example.
2022-09-28 09:57:31 -04:00
Maxim Cournoyer
13ed651870
doc: Clarify Samba Services configuration.
* doc/guix.texi (Samba Services): Explicit the fact that no daemons are
automatically run.  Remove the word "Manually", that suggested otherwise.
2022-09-28 09:57:30 -04:00
Mathieu Othacehe
e842aeb8c1
doc: Turn example to lisp.
* doc/guix.texi (System Images): Turn example snippets to lisp snippets.
2022-09-25 11:38:11 +02:00
Mathieu Othacehe
506e0aa438
doc: Remove an extra dot.
* doc/guix.texi (System Images): Remove it.
2022-09-25 11:35:09 +02:00
Alex Griffin
c8112f3bd9
system: images: Add wsl2 module.
* gnu/system/images/wsl2.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi ("System Images"): Document it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-24 14:49:09 +02:00
Alex Griffin
8757c3f293
system: image: Add tarball support.
* gnu/image.scm (<image>)[fields]: Add tarball to the supported formats.
* gnu/system/image.scm (tarball-image, tarball-image-type): New variables.
(system-tarball-image): New procedure.
(image->root-file-system): Add tarball image support.
(system-image): Ditto.
* doc/guix.texi ("System Images"): Document it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-09-24 14:49:09 +02:00
Mathieu Othacehe
a13f5ead02
doc: Add a "System Images" chapter.
* doc/guix.texi ("System Images"): New chapter.
2022-09-24 14:49:09 +02:00
Mathieu Othacehe
61bf25bb4e
doc: Add a "Platforms" chapter.
* doc/guix.texi ("Platforms"): New chapter.
("Porting"): Link it.
2022-09-24 14:49:08 +02:00
Simon Streit
e1ce100915
services: Add wsdd service.
* doc/guix.texi: Add documentation for wsdd service.
* gnu/services/samba.scm (<wsdd-configuration>): New record.
(wsdd-service-type): New variable.
(wsdd-shepherd-services): New procedure.
* gnu/tests/samba.scm (%wsdd-os): Add variable.
(run-wsdd-test): New procedure.
(%test-wsdd): New variable.

Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2022-09-24 09:41:24 +02:00
Simon Streit
d68721c55a
services: Add samba service.
* gnu/services/samba.scm: New file.
* gnu/tests/samba.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add them.
* po/guix/POTFILES.in Add 'gnu/services/samba.scm'.
* doc/guix.texi: Document it.

Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
2022-09-24 09:38:57 +02:00
Taiju HIGASHI
5d22261db3
import: gem: Support importing a specific version of a gem.
* guix/import/gem.scm: (rubygems-fetch, gem->guix-package)
(gem-recursive-import): Fix to fetch the specified version of the gem.
* guix/scripts/import/gem.scm (show-help): Update the help message.
(guix-import-gem): Modify so the version number to be passed to subsequent
procedures.
* tests/gem.scm: Add tests.
* doc/guix.texi (Invoking guix import): Document.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-09-17 19:09:27 +02:00
muradm
29d52a56f2
gnu: fail2ban-service-type: Improve extra-content fields.
* gnu/services/security.scm
(fail2ban-jail-configuration)[extra-content]: Change to text-config.
(fail2ban-configuration)[extra-content]: Change to text-config.
* gnu/doc/guix.texi: Update type of extra-content fields.

Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-09-14 11:29:11 -04:00
tiantian
52d780ea2b
gnu: bootloader: Extend `<menu-entry>' for chain-loader.
* gnu/bootloader.scm (<menu-entry>)[chain-loader]: New field.
(menu-entry->sexp, sexp->menu-entry): Support chain-loader.
* doc/guix.texi (Bootloader Configuration): Document it.

Co-Authored-By: Julien Lepiller <julien@lepiller.eu>
Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2022-09-08 22:29:57 +02:00
Ricardo Wurmus
d18bddf5d7
doc: Fix typo.
* doc/guix.texi (Miscellaneous Services): Fix typo.
2022-09-07 20:08:23 +02:00
Ludovic Courtès
8c5065c6d1
services: nginx: Add 'shepherd-requirement' configuration field.
* gnu/services/web.scm (<nginx-configuration>)[shepherd-requirement]:
New field.
(nginx-shepherd-service): Honor it.
* doc/guix.texi (Web Services): Document it.
2022-09-06 16:58:12 +02:00
Andrew Tropin
a278f632de
doc: Add more info about commits signature local verification.
* doc/contributing.texi (Commit Access): Add more info about commits signature
local verification.
2022-09-05 14:55:49 +03:00
Ludovic Courtès
eedf71f948
services: upower: Default to a percentage-based policy.
This is the documented default of UPower 0.99.15 (the actual default
appears to be #f though).

* gnu/services/desktop.scm (<upower-configuration>)
[use-percentage-for-policy?]: Default to #t.
* doc/guix.texi (Desktop Services): Adjust accordingly.  Explain the
tradeoff.
2022-09-04 23:10:10 +02:00
Ludovic Courtès
4765242540
services: upower: Update default percentage values.
These values are those used by default by UPower 0.99.15.

* gnu/services/desktop.scm (<upower-configuration>)[percentage-low]
[percentage-critical]: Increase.
* doc/guix.texi (Desktop Services): Update accordingly.
2022-09-04 23:10:09 +02:00
Ludovic Courtès
5c444a0208
doc: Link to the "Scheme Crash Course".
* doc/guix.texi (Defining Packages): Add @quotation block linking to "A
Scheme Crash Course".
2022-09-02 18:16:51 +02:00
Ludovic Courtès
98a8b48a69
doc: Suggest more RAM for "Running Guix in a VM".
Fixes <https://issues.guix.gnu.org/57474>.
Reported by Michael F. Lamb <mike@orbital.rodeo>.

Running 'guix pull' to target current revisions would lead to memory
exhaustion.  Bumping the memory size works around that.

* doc/guix.texi (Running Guix in a VM): Change "-m 1024" to "-m 2048".
2022-09-01 18:31:26 +02:00
muradm
fa2d651475
gnu: fail2ban-service-type: Fix documentation typos.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-09-01 08:58:16 -04:00
Thiago Jung Bauermann
65ce5fe2fb
guix system: Use standard cross and native build options.
This change prevents guix system from erroring out with an ugly backtrace
when it's passed an invalid value to the “--system” or “--target”
option. It also adds the “--list-systems” and “--list-targets” options.

The manual section about guix system doesn't mention the “--target” option,
so add it there.

* guix/scripts/system (show-help): Call show-cross-build-options-help and
show-native-build-options-help.
(%options): Remove own implementation of “system” and “target” options and
use the ones in %standard-cross-build-options and
%standard-native-build-options.
* doc/guix.texi (Invoking guix system): Document “--target” option.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-08-30 08:55:16 +02:00
Reza Alizadeh Majd
f126f23b13
bootloader: Add device-tree-support? option.
In some specific cases where the device tree file is already loaded in RAM, it
can be preferable that the bootloader does not try to use a device tree from
the Linux kernel tree.

* gnu/bootloader.scm (<bootloader-configuration>)[device-tree-support?]: New field.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Add FDTDIR line
based on <device-tree-support?> field of <bootloader-configuration>.
* doc/guix.texi (Bootloader Configuration)[device-tree-support?]: Add
documentation for the new field.
2022-08-30 08:50:44 +02:00
Maxim Cournoyer
0ea62e84a7
services: Add lightdm-service-type.
* gnu/services/lightdm.scm: New service.
* tests/services/lightdm.scm: Test it.
* doc/guix.texi (X Window): Document it.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register it.

Co-authored-by: L p R n d n <guix@lprndn.info>
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
2022-08-28 22:28:47 -04:00
muradm
3c2d2b4538
gnu: security: Add fail2ban-service-type.
* gnu/services/security.scm: New module.
* gnu/tests/security.scm: New module.
* gnu/local.mk: Add new security module and tests.
* doc/guix.text: Add fail2ban-service-type documentation.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2022-08-28 21:46:30 -04:00
muradm
cac3914dfc
gnu: greetd-service-type: Add supplementary groups to greeter.
* gnu/services/base.scm (<greetd-configuration>)
[greeter-supplementary-groups]: New field.
(%greetd-accounts): Rename to...
(greetd-accounts): ... this.  Convert to a function that takes a config
argument.  Use greeter-supplementary-groups.
(greetd-service-type): Adjust accordingly.
* gnu/tests/desktop.scm (%minimal-services): Add test for
greeter-supplementary-groups.
* doc/guix.texi ("Base Services")[greetd-service-type]: Document
greeter-supplementary-groups.
2022-08-26 18:50:33 +02:00
muradm
d1815a68ea
gnu: seatd-service-type: Use seat group.
* gnu/services/desktop.scm (seatd-group-sanitizer): New variable.
(<seatd-configuration>)[user]: Removed field.
[group]: Changed to "seat".  Sanitize via seatd-group-sanitizer.
(seatd-accounts): New variable.
(seatd-environment): Adjust to <seatd-configuration> ABI.
(seatd-service-type)[extensions]: Add account-service-type with seatd-accounts.
* gnu/tests/desktop.scm (run-minimal-desktop-test): Check for correct
ownership of $SEATD_SOCK.
* doc/guix.texi ("Desktop Services")[seatd-service-type]: Mention that users
may need to become members of the "seat" group.
Update default value for group field.
Add explanation on seatd.sock file.
Remove dropped user field.
2022-08-26 18:48:37 +02:00
Maxim Cournoyer
98457ba47b
doc: Replace remaining 'unset mentions with %unset-value.
* doc/guix.texi (Networking Services): Replace 'unset with %unset-value.
(Power Management Services): Likewise.
(Complex Configurations): Likewise.
2022-08-25 00:10:57 -04:00
Maxim Cournoyer
1c803e63f9
services: configuration: Add a 'maybe-value-set?' procedure.
* gnu/services/configuration.scm (maybe-value-set?): New procedure.
* doc/guix.texi (Complex Configurations): Document it.  Remove comment showing
usage of 'maybe-string' with a default value, which doesn't make sense.

Co-authored-by: Attila Lendvai <attila@lendvai.name>
2022-08-24 22:34:45 -04:00
Julien Lepiller
92b25a09c4
doc: Fix typos.
* doc/guix.texi: Fix various typos found by translators.
2022-08-20 13:16:28 +02:00
Andrew Tropin
b379b4f4a2
doc: Add files, xdg-configuration and symlink-manager home services.
* doc/guix.texi (Essential Home Services): Add files, xdg-configuration-files
and symlink-manager home services.
2022-08-19 18:55:43 +03:00
Tobias Geerinckx-Rice
6c2e14a43a
doc: Note the pitfalls of man 8 mount.
* doc/guix.texi (File Systems): Warn against flags presented as options.
2022-08-14 02:00:00 +02:00
Tobias Geerinckx-Rice
6983ded42b
doc: Remove extraneous ‘Note…’.
* doc/guix.texi (File Systems): Remove a ‘Note that’ & begin a new
paragraph.
2022-08-14 02:00:00 +02:00
Maxim Cournoyer
59ee837d8b
services: elogind: Fix default behavior for lid close.
Fixes <https://issues.guix.gnu.org/57052>, which was a behavior change
introduced inadvertently in 4c698cd512.

* gnu/services/desktop.scm (<elogind-configuration>)
[handle-lid-switch-external-power]: Default to *unspecified*, which serializes
to nothing.  This matches upstream behavior, meaning that even when plugged to
a power cord, a laptop will suspend when the lid is closed.
* doc/guix.texi (Desktop Services): Update doc.

Reported-by: Cairn <cairn@pm.me>
2022-08-10 00:33:30 -04:00
Oleg Pykhalov
4b49487838
gnu: system: file-systems: Add shared flag.
* gnu/build/file-systems.scm (mount-flags->bit-mask, mount-file-system):
Handle shared flag.
* gnu/system/file-systems.scm (invalid-file-system-flags): Add shared to known
flags.
* guix/build/syscalls.scm (MS_SHARED): New variable.
* doc/guix.texi (File Systems): Document shared flag.
2022-08-10 07:12:25 +03:00
Maxim Cournoyer
4b780d002d
doc: Fix name of gdm-configuration x-session field.
* doc/guix.texi (X Window): Correctly refer to 'x-session', not 'xsession', as
the name of the field.
2022-08-09 17:08:26 -04:00
Ricardo Wurmus
26af06b66b
linux-container: container-script: Parse command line options.
* gnu/system/linux-container.scm (container-script): Accept command line
options to bind mount host directories into the container.
* doc/guix.texi (Invoking guix system): Document options.
2022-08-09 20:32:13 +02:00
Ludovic Courtès
cf60a0a906
build-system/channel: Accept a channel or instance as the source.
* guix/build-system/channel.scm (latest-channel-instances*): New
variable.
(build-channels): New procedure, with code formerly in
'channel-build-system', augmented with clauses for when SOURCE is a
channel instance or a channel.
* doc/guix.texi (Build Systems): Adjust accordingly.
2022-08-09 15:16:06 +02:00
Ludovic Courtès
5bce4c8242
build-system: Add 'channel-build-system'.
* gnu/ci.scm (channel-build-system, channel-source->package): Remove.
* gnu/packages/package-management.scm (channel-source->package): New
procedure, moved from (gnu ci).
* guix/build-system/channel.scm: New file, with code moved from (gnu ci).
* doc/guix.texi (Build Systems): Document it.
2022-08-09 15:16:06 +02:00
Ludovic Courtès
a15542d26d
style: Add '--whole-file' option.
* guix/scripts/style.scm (format-whole-file): New procedure.
(%options, show-help): Add '--whole-file'.
(guix-style): Honor it.
* tests/guix-style.sh: New file.
* Makefile.am (SH_TESTS): Add it.
* doc/guix.texi (Invoking guix style): Document it.
2022-08-08 11:53:33 +02:00
Ludovic Courtès
ad8beb6325
lint: Add '-e'.
* guix/scripts/lint.scm (show-help, %options): Add '-e'.
(guix-lint): Call 'specification->package' while traversing OPTS.  Add
case for 'expression pair.  Adjust 'for-each' loop to expect packages.
* doc/guix.texi (Invoking guix lint): Document it.
2022-08-08 11:22:31 +02:00
Ludovic Courtès
6e5a1e2a62
doc: Add reference to "Writing Manifests".
* doc/guix.texi (Defining Package Variants): Rewrite to "Writing
Manifests" rather than the 'profile-manifest' anchor.
2022-08-06 23:14:41 +02:00
Tobias Geerinckx-Rice
79fbe4f524
doc: Fix typo.
* doc/guix.texi (X Window): Fix ‘string-apppend’ typo.
2022-07-31 02:00:12 +02:00
Maxim Cournoyer
a2b89a3319
services: configuration: Step back from *unspecified*.
Fixes <https://issues.guix.gnu.org/56799>.

This partially reverts 8cb1a49a39.

Rationale: *unspecified* cannot be serialized thus used as a G-Expression
input, which is problematic/inconvenient when using deeply nested records.  As
an example, jami-service-type was broken when using partially defined
<jami-account> records.

* gnu/services/configuration.scm (define-maybe-helper): Check against the
'unset symbol.
(normalize-field-type+def): Adjust value to 'unset.
(define-configuration-helper): Use 'unset as the default value thunk.
* gnu/services/file-sharing.scm (serialize-maybe-string): Check against the
'unset symbol.
(serialize-maybe-file-object): Likewise.
* gnu/services/messaging.scm (define-all-configurations): Use 'unset as
value.
(raw-content?): Check against 'unset symbol.
(prosody-configuration)[http-max-content-size]: Default to 'unset.
[http-external-url]: Likewise.
[mod-muc]: Likewise.
[raw-content]: Likewise.
* gnu/services/networking.scm (opendht-configuration): Adjust documentation.
* gnu/services/telephony.scm (jami-shepherd-services): Replace *undefined*
with the 'unset symbol.
* tests/services/configuration.scm ("maybe type, no default"): Check against
the 'unset symbol.
* doc/guix.texi: Regenerate the opendht-configuration,
openvpn-client-configuration and openvpn-server-configuration documentation.
2022-08-01 12:49:35 -04:00
Maya
dd3cf14402
services: opensmtpd: Make commands setgid to "smtpq" by default.
This is a patch that fixes "<executable name>: this program must be setgid smtpq".

* gnu/services/mail.scm (<opensmtpd-configuration>)[setgid-commands?]: New field.
(opensmtpd-set-gids): New procedure.
(opensmtpd-service-type)[extensions]: Add SETUID-PROGRAM-SERVICE-TYPE extension.
* doc/guix.texi (Mail Services): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-08-01 14:08:08 +02:00
Ludovic Courtès
7d0ebc467f
services: rottlog: More convenient default options for <log-rotation>.
* gnu/services/admin.scm (%default-log-rotation-options): New variable.
(%default-rotations): Use it.
* gnu/services/cuirass.scm (cuirass-log-rotations): Likewise.
* doc/guix.texi (Log Rotation): Adjust accordingly.
2022-08-01 00:02:04 +02:00