Commit graph

2838 commits

Author SHA1 Message Date
Jelle Licht a1846e9b91
doc: Fix typo.
* doc/guix.texi (Essential Home Services): Fix typo.
2022-01-07 23:07:56 +01:00
Tobias Geerinckx-Rice 2dfbd03a60
doc: Use a better setuid example.
nmtui does not benefit from being setuid.  Oops.

* doc/guix.texi (Setuid Programs): Replace network-manager's /bin/nmtui
with nfs-utils' /sbin/mount.nfs.  Change a @code{} to a @command{}.
2022-01-07 21:45:38 +01:00
Tobias Geerinckx-Rice 0701efb351
doc: Fix typo.
* doc/guix.texi (Build Utilities): Fix typo.

Reported by Mortimer Cladwell <mbcladwell@gmail.com>
2022-01-06 15:17:47 +01:00
Leo Famulari 6a7945971d
doc: Try to clarify the setuid programs examples.
Based on user feedback, the shadow / passwd example was too obscure for those
who aren't familiar with the shadow collection of tools. And it was also
considered confusing for the two examples to use different packages.

* doc/guix.texi (Setuid Programs): Use 'nmtui' in the examples.
2022-01-03 20:20:00 -05:00
Ludovic Courtès 62ab885daa
doc: Avoid (getenv "HOME") in 'machines.scm' example.
Fixes <https://issues.guix.gnu.org/52517>.
Reported by zimoun <zimon.toutoune@gmail.com>.

* doc/guix.texi (Daemon Offload Setup): Avoid misleading (getenv
"HOME") in example.
2022-01-03 19:32:08 +01:00
Ludovic Courtès 4362125033
doc: Document clauses of 'modify-inputs'.
Suggested by Alexander Asteroth <alexander.asteroth@h-brs.de>.

* doc/guix.texi (Defining Package Variants): Document all the supported
clauses of 'modify-inputs'.
2022-01-03 19:32:08 +01:00
Christopher Baines dfc5d5247f
services: guix-build-coordinator: Fix variable name in agent config.
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): Fix
variable name.
* doc/guix.texi (Guix Services): Update accordingly.
2022-01-02 17:47:36 +00:00
Christopher Baines 1dca8a19ef
gnu: Add guix-build-coordinator/agent-only.
This avoids issues where the coordinator component dependencies (like sqitch
and guile-fibers) make it harder to use the agent.

* gnu/packages/package-management.scm (guix-build-coordinator/agent-only): New
variable.
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): Use
the guix-build-coordinator/agent-only package by default.
* doc/guix.texi (Guix Services): Update accordingly.
2022-01-02 17:00:09 +00:00
Ludovic Courtès d090e9c37d
transformations: Add '--tune'.
* guix/transformations.scm (tuning-compiler)
(tuned-package, tunable-package?, package-tuning)
(transform-package-tuning)
(build-system-with-tuning-compiler): New procedures.
(%transformations): Add 'tune'.
(%transformation-options): Add "--tune".
* tests/transformations.scm ("options->transformation, tune")
("options->transformations, tune, wrong micro-architecture"): New
tests.
* doc/guix.texi (Package Transformation Options): Document '--tune'.
2022-01-01 15:23:24 +01:00
Ludovic Courtès 671e6a8180
system: Allow 'chfn' to change the user's full name.
Fixes <https://issues.guix.gnu.org/52539>.
Reported by Jacob First <jacob.first@member.fsf.org>.

* gnu/build/accounts.scm (allocate-passwd): Add comment as to why
'real-name' is taken from PREVIOUS.  Add (not system?) to the
condition.
* gnu/system.scm (operating-system-etc-service) <login.defs>: Add
"CHFN_RESTRICT".
* gnu/system.scm (%setuid-programs): Add "chfn".
* gnu/system/pam.scm (base-pam-services): Add "chfn".
* doc/guix.texi (User Accounts): Document it.
2022-01-01 15:10:12 +01:00
Leo Famulari c7d74a9bcc
doc: cookbook: Update custom kernel guide.
* doc/guix-cookbook.texi (Customizing the Kernel): Adjust to new interface.
2021-12-30 15:58:24 -05:00
Leo Famulari 28b477cb2e
doc: Give a complete example of adding setuid programs.
* doc/guix.texi (Setuid Programs): Give a complete example of how to use
SETUID-PROGRAM.
2021-12-26 22:23:48 -05:00
Mathieu Othacehe 3ed8ddd606
scripts: system: Deprecate the docker-image command.
* guix/scripts/system.scm (system-derivation-for-action): Use the image API to
generate the docker images and deprecate the docker-image command.
(process-action): Ditto.
* doc/guix.texi (Invoking guix system): Adapt it.
2021-12-23 10:54:00 +01:00
Mathieu Othacehe 05a9d1f378
Remove VM generation dead-code.
This code duplicates the (gnu system image) and (gnu build image) code. Using
VM for image generation is not needed, not portable and really slow. Remove
all the VM image generation code to make sure that only the image API is used.

* gnu/build/vm.scm: Remove it. Move the qemu-command procedure to ...
* gnu/build/marionette.scm: ... here.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adapt it.
* tests/modules.scm: Ditto.
* gnu/tests/install.scm: Ditto.
* gnu/system/vm.scm: Adapt it and remove expression->derivation-in-linux-vm,
qemu-img, system-qemu-image/shared-store and system-docker-image procedures.
* doc/guix.texi (G-Expressions): Adapt it.
2021-12-23 10:54:00 +01:00
Xinglu Chen 86434dfbc9
doc: Document (gnu services configuration).
* guix.texi (Complex Configurations): New node.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-22 23:23:17 +01:00
Nathan Dehnel 6fb5459e8b
services: wireguard: Add DNS config field.
* gnu/services/vpn.scm (wireguard-configuration)[dns]: New field.
(wireguard-configuration-file): Honor it.
* doc/guix.texi: Document it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-12-22 09:07:39 +01:00
Ludovic Courtès c9d92409d4
services: rsync: Allow configuring several rsync "modules".
Until now the rsync service would export a single module, named
"files".  This allows users to specify as many modules as they want, in
line with rsyncd.conf(5).

* gnu/services/rsync.scm (warn-share-field-deprecation): New procedure.
(<rsync-configuration>)[modules]: New field.
[share-path, share-comment, read-only?, timeout]: Mark as deprecated.
(<rsync-module>): New record type.
(%default-modules): New variable.
(rsync-configuration-modules): New procedure.
(rsync-activation): Create the directory of each module.
(rsync-config-file): Generate configuration for each module.
(rsync-service-type)[description]: New field.
* doc/guix.texi (Networking Services): Adjust documentation.  Augment
example.
2021-12-21 15:47:03 +01:00
Ludovic Courtès 2c469f04a3
doc: Remove extra closing paren.
* doc/contributing.texi (Emacs Packages): Remove extra paren in example.
2021-12-20 16:23:28 +01:00
Olivier Dion b88bfa14f1
doc: Fix wrong home-shepherd-configuration data type.
* doc/guix.texi (Managing User's Daemons): Rename shepherd-configuration for
home-shepherd-configuration.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-20 16:21:41 +01:00
Ludovic Courtès e60f803b90
doc: cookbook: Simplify inputs in examples.
* doc/guix-cookbook.texi (Recursive importers, Inheritance): Use
the simplified input style.
2021-12-20 16:21:40 +01:00
Ludovic Courtès 4204156eb4
doc: Format 'guix hash -S' values as a table.
* doc/guix.texi (Invoking guix hash): Format serializer types as a
table.
2021-12-17 17:30:28 +01:00
zimoun 28ffdc5cc8
guix hash: Add git serializer.
* guix/scripts/hash.scm (git-hash): New procedure.
(%options): Use it.
* tests/guix-hash.sh: Test it.
* doc/guix.texi: Update.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17 17:29:34 +01:00
zimoun 05c962594c
guix hash: Add 'serializer' option.
* guix/scripts/hash.scm (%options): Deprecate 'recursive', add 'serializer'.
(%default-options): Add 'serializer'.
(nar-hash): New procedure.
(default-hash): New procedure.
(guix-hash)[file-hash]: Use them.
(show-help): Adjust.
* tests/guix-hash.scm: Adjust.
* doc/guix.texi: Update.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17 17:29:34 +01:00
zimoun 6e08f07f20
guix hash: Support several files.
* guix/scripts/hash.scm (guix-hash): Allow several files.
[file-hash]: Catch system-error.
[formatted-hash]: New procedure.
* tests/guix-hash.sh: Add test.
* doc/guix.texi (Invoking guix hash): Mention "one or more files".

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-12-17 17:29:34 +01:00
Ludovic Courtès 3bfdf1c382
doc: Do not explain quote/quasiquote in the context of inputs.
* doc/guix.texi (Defining Packages): Move reference to
quote/quasiquote from 'inputs' to 'arguments'.
2021-12-15 00:41:08 +01:00
Ludovic Courtès d68cc7fe96
doc: Use @lisp for 'static-networking-service-type' example.
* doc/guix.texi (Networking Setup): Use @lisp for
'static-networking-service-type' example.
2021-12-15 00:41:08 +01:00
Efraim Flashner 861ee6d908
doc: Mention powerpc-linux support.
This was missing with the addition of powerpc-linux support in commit
cbdb7d4fea.

* doc/guix.texi (GNU Distribution): Add powerpc-linux.
2021-12-14 18:33:51 +02:00
Efraim Flashner 3544b2e74a
doc: Mark mips64el-linux as unsupported.
* doc/guix.texi (GNU Distribution): Change mips64el-linux from
deprecated to unsupported.
2021-12-14 18:33:51 +02:00
Ludovic Courtès 1052ae5f03
Merge branch 'master' into core-updates-frozen 2021-12-13 11:49:15 +01:00
Ludovic Courtès 788f56b4dc
doc: Add missing closing paren.
* doc/guix.texi (Desktop Services): Add missing closing paren in example.
2021-12-13 11:31:53 +01:00
Ludovic Courtès c946e1464d
doc: Handle '&nbsp' when syntax-highlighting HTML.
* doc/build.scm (syntax-highlighted-html)[build](entity->string): Handle "&nbsp".
2021-12-13 11:31:53 +01:00
Ludovic Courtès 5967aee398
services: Define '%loopback-static-networking'.
* gnu/services/base.scm (%loopback-static-networking): New variable.
(%base-services): Use it.
* gnu/system/hurd.scm (%base-services/hurd): Use it.
* gnu/system/install.scm (%installation-services): Use it.
* doc/guix.texi (Networking Setup): Document it.
2021-12-12 23:20:50 +01:00
Ludovic Courtès 1644f4f1f8
services: Define '%qemu-static-networking'.
* gnu/services/base.scm (%qemu-static-networking): New variable.
* gnu/system/hurd.scm (%base-services/hurd): Use it.
* doc/guix.texi (Networking Setup): Document it.
2021-12-12 23:20:49 +01:00
Ludovic Courtès 223f1b1eb3
services: static-networking: Change interface to mimic netlink.
* gnu/services/base.scm (<static-networking>)[interface, ip, netmask]
[gateway]: Remove.
[addresses, links, routes]: New fields.
[requirement]: Default to '(udev).
(<network-address>, <network-link>, <network-route>): New record types.
(ensure-no-separate-netmask, %ensure-no-separate-netmask): Remove.
(ipv6-address?, cidr->netmask, ip+netmask->cidr)
(network-set-up/hurd, network-tear-down/hurd)
(network-set-up/linux, network-tear-down/linux)
(static-networking->hurd-pfinet-options): New procedures.
(static-networking-shepherd-service): New procedure.
(static-networking-shepherd-services): Rewrite in terms of the above.
(static-networking-service): Deprecate.  Adjust to new
'static-networking' API.
(%base-services): Likewise.
* gnu/system/install.scm (%installation-services): Likewise.
* gnu/system/hurd.scm (%base-services/hurd): Likewise, and separate
'loopback' from 'networking'.
* gnu/build/hurd-boot.scm (set-hurd-device-translators): Remove
"servers/socket/2".
* gnu/tests/networking.scm (run-openvswitch-test)["networking has
started on ovs0"]: Check for 'networking instead of 'networking-ovs0,
which is no longer provided.
* doc/guix.texi (Networking Setup): Document the new interface.  Remove
documentation of 'static-networking-service'.
(Virtualization Services): Change Ganeti example to use the new
interface.
2021-12-12 23:20:49 +01:00
Ludovic Courtès a4d33fef31
doc: Add new "Networking Setup" node for the main setup options.
This should make it easier to find how to get started setting up
networking.

* doc/guix.texi (Networking Setup): New section.
(Networking Services): Remove 'static-networking-service',
'dhcp-client-service-type', 'network-manager-service-type',
'connman-service-type', 'wicd-service', 'modem-manager-service-type',
'usb-modeswitch-service-type', and 'wpa-supplicant-service-type'.
2021-12-12 23:20:49 +01:00
Ricardo Wurmus 9bc0f45df5
Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-12-05 19:17:41 +01:00
Attila Lendvai b42bfbdfe5
guix system vm: Add --no-graphic CLI argument.
It configures QEMU to use the tty it was started in for IO (as opposed to
opening a separate graphical window).  This enables copy-pasting and
scrollback.  Exit QEMU with C-a x.

* gnu/system/vm.scm (system-qemu-image/shared-store-script): Also add the
'-nographic' QEMU argument when called with #:graphic? #false.
* guix/scripts/system.scm (system-derivation-for-action): Propagate
the #:graphic? keyword arg.
(perform-action): Add and propagate the #:graphic? keyword arg.
(show-help): Add --no-graphic CLI arg.
(%options): Process the new --no-graphic CLI arg.
(process-action): Feed in the CLI arg through the #:graphic? keyword arg.
* doc/guix.texi (Invoking guix system): Add example to combine guix system and
invoking the vm start script into one command.  Split the description of the
various options into separate paragraphs.  Add a paragraph to describe
--no-graphic.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-12-03 14:18:32 +01:00
Leo Famulari f697fc267c
doc: Give more details about generating patches with base commit information.
* doc/contributing.texi (Submitting Patches): Talk more about '--base'.
2021-12-02 14:31:13 -05:00
Josselin Poiret 4c5f970e8a
doc: Document LUKS2 GRUB support and shortcomings
* doc/guix.texi (Keyboard Layout, Networking, and Partitioning)[Disk
Partitioning]: Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-01 17:51:37 +01:00
Christopher Baines daa6c67fb4
gnu: guix-build-coordinator: Update to 0-40.226ec0f.
* gnu/packages/package-management.scm (guix-build-coordinator): Update to
0-40.226ec0f.
* doc/guix.texi (Guix Build Coordinator): Remove note about the service being
considered experimental, it's been stable for a while now.
2021-11-29 21:01:26 +00:00
Ludovic Courtès 61ad9bc2ad
services: Document the 'delete' clause of 'modify-services'.
* doc/guix.texi (Service Reference): Mention the 'delete' clause of
'modify-services'.
* gnu/services.scm (modify-services): Likewise in docstring.
2021-11-27 23:06:17 +01:00
Ludovic Courtès 19dc16ce4b
style: Add '--dry-run'.
* guix/scripts/style.scm (edit-expression/dry-run): New procedure.
(simplify-package-inputs): Add #:edit-expression parameter.
(%options, show-help): Add '--dry-run'.
(guix-style): Honor '--dry-run'.
2021-11-23 16:55:42 +01:00
Ludovic Courtès b15e543d30
Merge branch 'master' into core-updates-frozen 2021-11-23 11:29:38 +01:00
Josselin Poiret 9685c0637d
doc: Add new Swap Space section.
* doc/guix.texi (operating-system Reference): Update swap-devices.
* doc/guix.texi (Swap Space): Add it.
* gnu/system/examples/desktop.tmpl: Add swap-devices example.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-23 10:24:28 +01:00
Rostislav Svoboda c984076a7d
doc: Fix the example of "Using virt-viewer with Spice".
* doc/guix.texi (Running Guix in a Virtual Machine): add missing line
continuation char '\'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-23 10:24:27 +01:00
Ludovic Courtès 3a317f7476
Merge branch 'master' into core-updates-frozen 2021-11-17 23:43:14 +01:00
Rostislav Svoboda fa67d6eef6
doc: Improve wording for param spec of ./configure.
* doc/contributing.texi (Running Guix Before It Is Installed): Writing "Do
<this>. But it won't work unless ..." is a bad practice.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-17 23:05:58 +01:00
Xinglu Chen f5fc395ab4
scripts: home: Make ‘guix home import’ write home-configuration.scm.
* guix/scripts/home.scm (process-command): Populate ‘home-configuration.scm’
  in the destination directory instead of printing to stdout.
* doc/guix.texi (Declaring the Home Environment): Adjust accordingly.
(Invoking guix home): Likewise.

Suggested-by: Ludovic Courtès <ludo@gnu.org>
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-11-17 23:05:58 +01:00
Alexey Abramov 4ace645506
services: docker: Add 'environment-variables' configuration field.
* gnu/services/docker.scm (docker-configuration):  Add the field
(docker-shepherd-service): Pass the list of defined variables to
make-forkexec-constructor.
* doc/guix.texi (Miscellaneous Services): Update doc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-17 23:05:56 +01:00
Ricardo Wurmus 3b1a12c5bf
import: Replace texlive importer.
* guix/import/texlive.scm (fetch-sxml, sxml->package): Remove procedures.
(tlpdb-file, tlpdb, files->directories, tlpdb->package): New procedures.
(string->license): Add case for lpplgpl license combination.
(guix-name): Remove COMPONENT argument.
(texlive->guix-package): Use new procedures.
(texlive-recursive-import): New procedure.
* guix/scripts/import/texlive.scm (show-help, %options): Remove --archive
option.
(guix-import-texlive): Adjust call of texlive->guix-package.
* doc/guix.texi (Invoking guix import): Update documentation.
2021-11-17 11:00:01 +00:00
Tobias Geerinckx-Rice 122396075f
services: cups: Update default timeouts.
Upstream raised these back in 2019 with CUPS 2.3.0.

* gnu/services/cups.scm (<cups-configuration>): Raise default
‘multiple-operation-timeout’ and ‘timeout’ from 300 to 900 seconds.
* doc/guix.texi (Printing Services): Adjust accordingly.
2021-11-16 01:15:04 +01:00
Tobias Geerinckx-Rice 58649b8747
doc: Remove obsolete example module import.
This follows up on commit a247f5c753.

* doc/guix.texi (X Window): Remove unused (srfi srfi-1) from
the modify-services example.
2021-11-16 01:15:04 +01:00
Ludovic Courtès 21332f3b8c
gnu: hpcguix-web: Update to 0.2.0.
* gnu/packages/web.scm (hpcguix-web): Update to 0.2.0.
[arguments]: In 'wrap-program' phase, add guile-zlib to DEPS.
[native-inputs]: Add GUILE.
[inputs]: Add GUILE-ZLIB, GUILE-COMMONMARK, and GUILE-JSON.
[propagated-inputs]: Remove.  These were pointless.
* gnu/services/web.scm (<hpcguix-web-configuration>)[address, port]: New
fields.
* doc/guix.texi (Web Services): Document them.
* gnu/tests/web.scm (%hpcguix-web-os): Add 'address'.
2021-11-15 17:55:50 +01:00
Andrew Tropin a8b5b40f62
doc: Add a note about elogind and XDG_RUNTIME_DIR for Guix Home.
* doc/guix.texi (Declaring the Home Environment): Add a note about elogind and
XDG_RUNTIME_DIR.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-11-14 23:18:08 +01:00
Julien Lepiller e95acc0919
doc: Add example to dist target.
* doc/local.mk (OS_CONFIG_EXAMPLES_TEXI): Add he-config-bare-bones.scm.
2021-11-14 20:35:04 +01:00
Florian Pelz f2d345a7b6
doc: Fix guix shell -C example.
The meaning changed by accident when guix environment was replaced
by guix shell in 80edb7df65.

* doc/guix.texi (Debugging Build Failures): Add missing -D option.
2021-11-14 20:08:34 +01:00
Timotej Lazar f634a0baab
services: Add qemu-guest-agent service.
* gnu/services/virtualization.scm (<qemu-guest-agent-configuration>): New
record.
(qemu-guest-agent-shepherd-service): New procedure.
(qemu-guest-agent-service-type): New variable.
* doc/guix.texi (Virtualization Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-12 23:41:44 +01:00
Maxim Cournoyer dfcc96d8f4
build: meson: Replace the 'test-target' argument by 'test-options'.
This change is motivated by the need to disable the default 30 seconds timeout
that Meson uses (see: https://gitlab.gnome.org/GNOME/glib/-/issues/2522), and
also by desire to specify extra options to run the check phase without having
to override it.

* guix/build-system/meson.scm (meson-build) <test-target>: Replace argument
with...
<test-options>: ... this one.
* guix/build/meson-build-system.scm (check): Invoke 'meson test' instead of
'ninja test-target', as the former is configurable via options.
* doc/guix.texi (Build Systems) <meson-build-system>: Update doc.
2021-11-11 12:18:32 -05:00
Ludovic Courtès 450e1dd52e
import: cran: Allow imports of a specific version.
* guix/import/cran.scm (download): Handle the case where URL is a list.
(fetch-description-from-tarball): New procedure.
(fetch-description): Add #:version parameter.  Honor it when REPOSITORY
is 'cran.  Use 'fetch-description-from-tarball' when REPOSITORY is
'bioconductor.
(description->package): SOURCE-URL may now be a list.
(cran->guix-package): Pass VERSION to 'fetch-description'.
(cran-recursive-import): Add #:version parameter.
* guix/scripts/import/cran.scm (guix-import-cran): Expect a spec rather
than a mere package name.
* doc/guix.texi (Invoking guix import): Document it.
2021-11-11 00:14:30 +01:00
Ludovic Courtès b20cd80ff1
import: pypi: Allow imports of a specific version.
* guix/import/pypi.scm (latest-version): New procedure.
(latest-source-release): Rename to...
(source-release): ... this.  Add 'version' parameter.
(latest-wheel-release): Rename to...
(wheel-release): ... this.  Add 'version' parameter.
(pypi->guix-package): Honor 'version' parameter.
(pypi-recursive-import): Add 'version' parameter and honor it.
* guix/scripts/import/pypi.scm (guix-import-pypi): Expect a spec.  Pass
it to 'package-name->name+version'.  Pass the 'version' parameter.
* tests/pypi.scm ("pypi->guix-package, no wheel"): Exercise
the #:version parameter.
* doc/guix.texi (Invoking guix import): Document it.
2021-11-11 00:14:30 +01:00
Nicolas Goaziou e5667edf50
doc: Fix typo.
* doc/guix.texi (Invoking guix shell): Fix a typo.
2021-11-09 13:13:15 +01:00
Efraim Flashner 1c94392a13
Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-11-08 09:06:14 +02:00
Xinglu Chen b999c80c2e
import: egg: Allow imports of a specific version.
* guix/import/egg.scm (eggs-repository): Change URL.
(egg-metadata): Accept optional #:version keyword argument.
(egg->guix-package): Accept ‘version’ argument.
(egg-recursive-import): Add ‘version’ argument and honor it.
* guix/scripts/import/egg.scm (guix-import-egg): Parse a specification instead
of just a package name.
* doc/guix.texi (Invoking guix import): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-07 23:10:41 +01:00
Xinglu Chen 2f665d4309
doc: Improve documentation of the Bash home service
* doc/guix.texi (Shells Home Services): Document ‘home-bash-extension’
  configuration record.
* gnu/home/services/shells.scm (generate-home-bash-documentation): Extract
  docstrings from ‘home-bash-extension’.
  (home-bash-configuration): Expound on docstrings.
  (home-bash-extension): Likewise.

Fixes: <https://issues.guix.gnu.org/50991>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-07 23:10:41 +01:00
Xinglu Chen 4b96998292
home: services: bash: Add ‘aliases’ field.
* doc/guix.texi (Shells Home Services): Document it.
* gnu/home/services/shells.scm (bash-serialize-aliases): New procedure.
(home-bash-configuration, home-bash-extension): Add ‘aliases’ field.
(home-bash-extensions): Adjust accordingly.
* guix/scripts/home/import.scm (generate-bash-configuration+modules): Populate
the ‘alias’ field.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-11-07 23:10:41 +01:00
Ludovic Courtès 3c1158ac4e
profiles: Build the man database only if 'man-db' is in the profile.
This allows us to skip the expensive man-db profile hook in most cases.

Suggested by Liliana Marie Prikler <liliana.prikler@gmail.com>.

* guix/profiles.scm (manual-database/optional): New procedure.
(%default-profile-hooks): Use it instead of 'manual-database'.
* doc/guix.texi (Documentation): Add footnote about 'man -k' database
creation.
2021-11-06 23:01:21 +01:00
Julien Lepiller 85430a9ea6
nls: Update translations.
* po/doc/guix-cookbook.es.po: New file.
* po/doc/local.mk: Add 'es' cookbook.
* doc/local.mk: Add 'es' cookbook.
2021-11-06 14:06:36 +01:00
Efraim Flashner bc5155b952
Merge remote-tracking branch 'origin/master' into core-updates-frozen 2021-10-31 14:49:47 +02:00
Ludovic Courtès c4ac8cf4f6
doc: Mention 'guix home reconfigure' upfront.
* doc/guix.texi (Declaring the Home Environment): Mention 'guix home
reconfigure'.
2021-10-31 00:51:07 +02:00
Ludovic Courtès 971a69d8e3
doc: Avoid misuse of @ref.
* doc/guix.texi (Declaring the Home Environment): Avoid @ref in the
middle of a sentence.
2021-10-31 00:51:06 +02:00
Ludovic Courtès 7711a6c3f4
doc: Mention "guix home import" upfront.
* doc/guix.texi (Declaring the Home Environment): Mention "guix home
import".
2021-10-31 00:51:06 +02:00
Xinglu Chen 87c04b0e17
doc: Document the ‘guix home import’ subcommand.
* doc/guix.texi (Invoking guix home): Document ‘guix home import’.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-31 00:51:05 +02:00
Ludovic Courtès 45b251fd04
doc: Allow offloading of the expensive derivations.
* doc/build.scm (translated-texi-manuals)
(html-manual, pdf-manual): Pass #:local-build? #f.
2021-10-28 21:30:27 +02:00
Ludovic Courtès 9e46942c1c
environment: Add '--check'.
* guix/scripts/environment.scm (show-environment-options-help)
(%options): Add '--check'.
* guix/scripts/environment.scm (child-shell-environment)
(validate-child-shell-environment): New procedures.
(guix-environment*): Call 'validate-child-shell-environment' when
'check?' key is in OPTS.
* doc/guix.texi (Invoking guix shell): Shorten footnote about Bash
startup files.  Document '--check' and mention startup files.
(Invoking guix environment): Document '--check'.
2021-10-26 12:46:27 +02:00
Ludovic Courtès 9730692d9f
shell: Maintain a profile cache.
shell: Maintain a profile cache.

With this change, running "guix shell" (no arguments) is equivalent to:

  guix environment -r ~/.cache/guix/profiles/some-root -l guix.scm

This is the cache miss.  On cache hit, it's equivalent to:

  guix environment -p ~/.cache/guix/profiles/some-root

... which can run in 0.1s.

* guix/scripts/shell.scm (options-with-caching): New procedure.
(parse-args): Use it.
(%profile-cache-directory): New variable.
(profile-cache-key, profile-cached-gc-root): New procedures.
(show-help, %options): Add '--rebuild-cache'.
(guix-shell)[cache-entries, entry-expiration]: New procedures.
Add call to 'maybe-remove-expired-cache-entries'.
* doc/guix.texi (Invoking guix shell): Document '--rebuild-cache'.
2021-10-25 19:02:33 +02:00
Ludovic Courtès 746584e0ca
shell: By default load the local 'manifest.scm' or 'guix.scm' file.
* guix/scripts/shell.scm (parse-args): Add call to 'auto-detect-manifest'.
(authorized-directory-file, authorized-shell-directory?)
(find-file-in-parent-directories, auto-detect-manifest): New procedures.
* tests/guix-shell.sh: Add test.
* doc/guix.texi (Invoking guix shell): Document it.
2021-10-25 19:02:23 +02:00
Ludovic Courtès 80edb7df65
Add 'guix shell'.
* guix/scripts/shell.scm, tests/guix-shell.sh: New files.
* Makefile.am (MODULES): Add 'shell.scm'.
(SH_TESTS): Add 'tests/guix-shell.sh'.
* guix/scripts/environment.scm (show-environment-options-help): New
procedure.
(show-help): Use it.
(guix-environment*): New procedure.
(guix-environment): Use it.
* po/guix/POTFILES.in: Add it.
* doc/guix.texi (Features): Refer to "guix shell"
(Invoking guix package): Likewise.
(Development): Likewise.
(Invoking guix shell): New node.
(Invoking guix environment): Add deprecation warning.
(Debugging Build Failures): Use 'guix shell' in examples.
(Invoking guix container): Refer to 'guix shell'.
(Invoking guix processes, Virtualization Services): Adjust examples to
use 'guix shell'.
* doc/contributing.texi (Building from Git): Refer to 'guix shell'.
* etc/completion/bash/guix: Handle "shell".
2021-10-25 18:58:18 +02:00
Ludovic Courtès 23f99f1a29
profiles: Add 'package->development-manifest'.
* guix/profiles.scm (package->development-manifest): New procedure.
* guix/scripts/environment.scm (input->manifest-entry)
(package-environment-inputs): Remove.
* guix/scripts/environment.scm (options/resolve-packages): Use
'package->development-manifest' instead of 'package-environment-inputs'.
* tests/profiles.scm ("package->development-manifest"): New test.
2021-10-25 15:29:42 +02:00
Ludovic Courtès fb368f4e76
packages: Add 'package-development-inputs'.
* guix/packages.scm (package-development-inputs): New procedure.
* guix/scripts/environment.scm (package-environment-inputs): Use it.
* tests/packages.scm ("package-development-inputs")
("package-development-inputs, cross-compilation"): New tests.
* doc/guix.texi (package Reference): Document it.
2021-10-25 15:29:39 +02:00
Jacob Adams 1ea032fb5f
services: rsync: support binding rsync to a specific IP address
* gnu/services/rsync.scm (<rsync-configuration>)[address]: New field.
(rsync-config-file): Honor it.
* doc/guix.texi (Networking Services): Document new address rsync
configuration option.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-25 14:32:59 +02:00
Ludovic Courtès 2dffe4767c
gnu: Use 'search-input-file' some more.
This patch replaces occurrences of:

  (string-append (assoc-ref %build-inputs "…") "/…")

by:

  (search-input-file %build-inputs "/…")

* doc/guix.texi (Miscellaneous Services): Use 'search-input-file' in R
Shiny example.
* gnu/packages/admin.scm (screenfetch): Use 'search-input-file'.
(ufetch): Likewise.
(hosts): Likewise.
* gnu/packages/backup.scm (dirvish): Likewise.
* gnu/packages/code.scm (colormake): Likewise.
* gnu/packages/compression.scm (makeself-safeextract): Likewise.
* gnu/packages/debug.scm (scanmem): Likewise.
* gnu/packages/education.scm (snap): Likewise.
(omnitux): Likewise.
* gnu/packages/emacs-xyz.scm (epipe): Likewise.
* gnu/packages/games.scm (openttd-opensfx): Likewise.
(openttd-openmsx): Likewise.
(openrct2-title-sequences):  Likewise.
(openrct2-objects):  Likewise.
(mrrescue):  Likewise.
(0ad-data):  Likewise.
(xonotic-data):  Likewise.
(drascula):  Likewise.
(make-lure-package):  Likewise.
(make-queen-package):  Likewise.
(sky):  Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/gnuzilla.scm (icedove): Likewise.
* gnu/packages/guile-xyz.scm (guile-shapefile): Likewise.
* gnu/packages/hurd.scm (netdde): Likewise.
* gnu/packages/javascript.scm (js-context-menu): Likewise.
(js-commander): Likewise.
(js-xmldom-sre): Likewise.
* gnu/packages/kde-frameworks.scm (krunner): Likewise.
* gnu/packages/kodi.scm (kodi-cli): Likewise.
* gnu/packages/libreoffice.scm (hunspell-dict-pl): Likewise.
* gnu/packages/linux.scm (e2fsck/static): Likewise.
* gnu/packages/markup.scm (markdown): Likewise.
* gnu/packages/maths.scm (hdf-java): Likewise.
* gnu/packages/multiprecision.scm (libtomcrypt): Likewise.
* gnu/packages/networking.scm (batctl): Likewise.
* gnu/packages/python-xyz.scm (python-pymediainfo): Likewise.
* gnu/packages/shells.scm (fish-foreign-env): Likewise.
* gnu/packages/tex.scm (texlive-fonts-iwona): Likewise.
* gnu/packages/upnp.scm (miniupnpc): Likewise.
* gnu/packages/version-control.scm (git-annex-remote-rclone): Likewise.
* gnu/packages/virtualization.scm (qemu): Likewise.
* gnu/packages/web.scm (icedtea-web): Likewise.
* gnu/packages/wm.scm (stumpish): Likewise.
2021-10-23 23:05:21 +02:00
Julien Lepiller c5881ff1f3
doc: Set LC_ALL when translating xref commands.
* doc/local.mk (xref_command): Set LC_ALL.
2021-10-22 02:32:06 +02:00
Tobias Geerinckx-Rice 96c747cb29
doc: Fix typo.
* doc/guix.texi (Invoking guix system, Invoking guix home):
Fix ‘are […] two month old’ typo.
2021-10-20 00:39:16 +02:00
Mathieu Othacehe e486b2b674
Merge remote-tracking branch 'signed/master' into core-updates 2021-10-18 14:37:26 +00:00
Julien Lepiller 0623138ffa
maint: Factorize po xref translation.
This ensures we use the same method in "make" as in "guix/self.scm".

* Makefile.am: Build guix/build/po.scm.
* build-aux/convert-xref.scm: New file.
* doc/local.mk (xref_command): Use it.
* guix/self.scm (translate-cross-references): Move it...
* guix/build/po.scm: Parse comments and flags separately to find fuzzy
flags.
(translate-cross-references): ...here.
(parse-tree->assoc): Ignore fuzzy entries.
2021-10-17 18:26:44 +02:00
Oleg Pykhalov ff20d3928d
home: services: shells: Fix documentation about file-like objects.
* gnu/home/services/shells.scm:
(home-shell-profile-configuration, home-shell-profile-service-type,
home-zsh-configuration, home-zsh-extension, home-bash-configuration,
home-bash-extension, home-fish-configuration, home-fish-extension):
Replace 'strings or gexps' with 'file-like objects' in the documentation.
* doc/guix.texi (Shells Home Services): Same.
2021-10-16 16:48:44 +03:00
Marius Bakke 5fafb6e792
doc: Fix typo.
* doc/contributing.texi (Configuring Git): s/respository/repository/
2021-10-14 00:24:34 +02:00
Mathieu Othacehe a1eca979fb
Merge remote-tracking branch 'origin/master' into core-updates-frozen. 2021-10-12 17:46:23 +00:00
Marius Bakke dc88999648
doc: Fix typo.
* doc/guix.texi (Virtualization Services): Adjust Ganeti service name.
2021-10-11 18:59:44 +02:00
Oleg Pykhalov 00a132222f
doc: guix: Fix typo.
Reported by Maxime Devos <maximedevos@telenet.be>.

* doc/guix.texi (Invoking guix home): Fix typo.
2021-10-11 14:59:08 +03:00
Oleg Pykhalov 0e8d2df0f1
Move (gnu home-services) to (gnu home services).
* gnu/home-services.scm (%guix-home-root-directory): Replace
gnu/home-services.scm with "gnu/home/services.scm".
Rename to gnu/home/services.scm.
* gnu/local.mk
(GNU_SYSTEM_MODULES): Rename gnu/home-services.scm to gnu/home/services.scm.
* doc/he-config-bare-bones.scm:
Replace (gnu home-services) with (gnu home services).
* gnu/home.scm: Same.
* gnu/home/services/fontutils.scm: Same.
* gnu/home/services/mcron.scm: Same.
* gnu/home/services/shells.scm: Same.
* gnu/home/services/shepherd.scm: Same.
* gnu/home/services/symlink-manager.scm: Same.
* gnu/home/services/xdg.scm: Same.
* guix/scripts/home.scm: Same.
* guix/self.scm: Same.
2021-10-09 19:24:18 +03:00
Oleg Pykhalov 2600002b9a
doc: guix: Fix home services locations.
This commit follows ba8ddb3480.

* doc/guix.texi (Invoking guix home): Fix home services locations.
2021-10-09 19:24:18 +03:00
Oleg Pykhalov ba8ddb3480
gnu: Move (gnu home-services) to (gnu home services).
* gnu/home-services/configuration.scm: Move the content ...
* gnu/home/services/configuration.scm: ... here.
* doc/guix.texi:
Replace (gnu home-services mcron) with (gnu home services mcron).
Replace (gnu home-services) with (gnu home services).
* gnu/home.scm:
Replace (gnu home-services fontutils) with (gnu services fontutils).
Replace (gnu home-services shells) with (gnu home services shells).
Replace (gnu home-services symlink-manager) with
(gnu home services symlink-manager).
Replace (gnu home-services xdg) with (gnu home services xdg).
* gnu/home-services/fontutils.scm: Rename to gnu/services/fontutils.scm.
* gnu/home-services/mcron.scm: Move to gnu/home/services/mcron.scm.
Replace (gnu home-services shepherd) with (gnu home services shepherd).
* gnu/home-services.scm (%service-type-path):
Search home services in "gnu/services".
* gnu/home-services/shells.scm: Replace (gnu home-services configuration) with
(gnu home services configuration).
Rename to gnu/home/services/shells.scm.
Replace (gnu home-services utils) with (gnu home services utils).
* gnu/home-services/shepherd.scm: Move to gnu/home/services/shepherd.scm.
* gnu/home-services/symlink-manager.scm:
Rename to gnu/home/services/symlink-manager.scm.
* gnu/home-services/utils.scm: Rename to gnu/home/services/utils.scm.
* gnu/home-services/xdg.scm: Rename to gnu/home/services/xdg.scm.
* guix/scripts/home/import.scm:
Replace (gnu home-services bash) with (gnu home services bash).
* gnu/home-services.scm: Update documentation string.
* doc/he-config-bare-bones.scm:
Apply new (gnu home-services ...) modules location.
* gnu/local.mk (GNU_SYSTEM_MODULES): Same.
2021-10-08 15:36:18 +03:00
Sarah Morgensen e0e65ed69d
doc: cookbook: Mention translations of the cookbook.
* doc/guix-cookbook.texi (Top): Add note about l10n.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-04 16:36:58 +02:00
Sarah Morgensen 1267c2e9ef
doc: Update htmlxref.cnf.
Update and fix broken references to cuirass, git, and guix-cookbook.

* doc/htmlxref.cnf: Update from Texinfo.  Factorize Guix manuals.
(cuirass, git, guix-cookbook, guix-cookbook.de, guix-cookbook.fr): New
entries.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-04 16:36:58 +02:00
Sarah Morgensen 9fc8ae4171
maint: Improve default diff hunk header detection.
Tell git where to look for diff hunk headers: top-level definitions for
Scheme files, and (sub)section headers for texi files.

* .gitattributes, etc/git/gitconfig: New files.
* doc/contributing.texi ("Submitting Patches"): Add subsection
"Configuring Git".  Document etc/git/gitconfig.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-04 16:36:58 +02:00
Maxime Devos 5fec14807f
doc: Fix 'setuid-program' example.
The '#$' doesn't belong there, and will cause ‘unbound variable’ errors.

Reported-By: ss2 (on IRC)

* doc/guix.texi (Setuid Programs): Remove #$ from example.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-10-04 13:31:38 +02:00
Tobias Geerinckx-Rice 8b5b7478ab
services: knot: Remove obsolete DISABLE-ANY? zone option.
It is now silently ignored by knotd.

* gnu/services/dns.scm (<knot-zone-configuration>):
Remove DISABLE-ANY? field.  Adjust all previous users.
* doc/guix.texi (DNS Services): Undocument it.
2021-10-04 13:31:34 +02:00
Pierre Langlois 20bc9ecc20
scripts: home: Wire and document --expression flag.
* guix/scripts/home.scm (show-help): Add --expression option.
(%options): Likewise.
* doc/guix.texi (Invoking guix home): Document it.
2021-10-02 21:21:19 +01:00
Josselin Poiret db4681a4c1
services: gdm: Add Wayland support.
* gnu/packages/patches/gdm-wayland-session-wrapper-from-env.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gnome.scm (gdm): Use it.
* gnu/services/xorg.scm (<gdm-configuration>)[wayland-session]: New field.
(gdm-wayland-session-wrapper): New procedure.
(gdm-configuration-file): Point to this new procedure.
* doc/guix.texi (X Window): Update it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 17:24:00 +00:00
Josselin Poiret 5c3f0c3e03
gnu: Add Wayland support for GDM.
Add the optional flag `wayland?` in `gdm-configuration` to launch GDM with
Wayland, enabling the use of Wayland sessions with GDM.

* gnu/packages/patches/gdm-remove-hardcoded-xwayland-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/gnome.scm (gdm): Use it.
* gnu/services/xorg.scm (<gdm-configuration>)[wayland?]: New field.
(gdm-configuration): Honor it.
(gdm-shepherd-service): Add the XCURSOR_PATH environment variable.
* doc/guix.texi (X Window): Document it

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-10-02 17:17:44 +00:00
Jacob Adams edcc9ebc03
doc: Document Wireguard port configuration option.
* doc/gnu.texi (VPN Services): Document wireguard port configuration option.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-09-29 13:16:59 +00:00
Tobias Geerinckx-Rice b0c03aa4d8
doc: Fix typos.
* doc/guix.texi (Invoking guix import): Fix ‘accross’ typo.
(Version Control Services): Fix ‘infomation’ typo.
2021-09-28 22:00:47 +02:00
Mathieu Othacehe 81a34a90d7
doc: Update postgresql defaut socket directory.
This is a follow-up of: 502925655d.

* doc/guix.texi (Database Services): Update the PostgreSQL default socket
directory value.
2021-09-27 20:28:21 +00:00
Oleg Pykhalov 6ae4644984
Merge branch 'wip-guix-home' 2021-09-27 17:27:12 +03:00
Andrew Tropin 3c604968a1
doc: Add a note about Guix Home status.
* doc/guix.texi: Add a note about Guix Home status.

Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2021-09-27 17:06:55 +03:00
Liliana Marie Prikler 719bbcc15e
Update copyright assignments for Liliana Marie Prikler.
* doc/guix.texi: Update copyright name for Liliana Marie Prikler.
* gnu/packages/build-tools.scm: Update copyright name and email for Liliana
Marie Prikler.
* gnu/packages/convmv.scm: Likewise.
* gnu/packages/emacs-xyz.scm: Likewise.
* gnu/packages/emacs.scm: Likewise.
* gnu/packages/esolangs.scm: Likewise.
* gnu/packages/game-development.scm: Likewise.
* gnu/packages/games.scm: Likewise.
* gnu/packages/gnome-xyz.scm: Likewise.
* gnu/packages/gnome.scm: Likewise.
* gnu/packages/gstreamer.scm: Likewise.
* gnu/packages/guile-xyz.scm: Likewise.
* gnu/packages/minetest.scm: Likewise.
* gnu/packages/music.scm: Likewise.
* gnu/packages/patches/minetest-add-MINETEST_MOD_PATH.patch: Likewise.
* gnu/packages/patches/ppsspp-disable-upgrade-and-gold.patch: Likewise.
* gnu/packages/patches/webkitgtk-bind-all-fonts.patch: Likewise.
* gnu/packages/python-xyz.scm: Likewise.
* gnu/packages/unicode.scm: Likewise.
* gnu/packages/xorg.scm: Likewise.
* gnu/services/sound.scm: Likewise.
* guix/build-system/renpy.scm: Likewise.
* guix/build/emacs-utils.scm: Likewise.
* guix/build/renpy-build-system.scm: Likewise.
2021-09-25 09:34:36 +02:00
Tobias Geerinckx-Rice 34c105f929
file-systems: Add support for XFS.
* gnu/build/file-systems.scm (%xfs-endianness): New syntax.
(xfs-superblock?, read-xfs-superblock, xfs-superblock-uuid)
(xfs-superblock-volume-name, check-xfs-file-system): New procedures.
(%partition-label-readers, %partition-uuid-readers, check-file-system):
Register them.
* doc/guix.texi (Keyboard Layout and Networking and Partitioning):
Note XFS support.
2021-09-23 18:17:17 +02:00
Tobias Geerinckx-Rice a75a3d7132
linux-boot: Honour fsck.mode & fsck.repair.
* gnu/build/linux-boot.scm (boot-system): Honour ‘fsck.mode=’ and
‘fsck.repair=’ kernel command line options.
* doc/guix.texi (Initial RAM Disk): Document both.
2021-09-23 18:17:16 +02:00
Tobias Geerinckx-Rice 602994847b
file-systems: Support forced checks & repairs.
* gnu/build/file-systems.scm (check-ext2-file-system)
(check-bcachefs-file-system, check-btrfs-file-system)
(check-fat-file-system, check-jfs-file-system, check-f2fs-file-system)
(check-ntfs-file-system, check-file-system): Take and honour new FORCE?
and REPAIR arguments.  Update the docstring.  Adjust all callers.
* gnu/system/file-systems.scm <file-system>: Add new SKIP-CHECK-IF-CLEAN?
and REPAIR fields.
(file-system->spec, spec->file-system): Adjust accordingly.
* gnu/build/linux-boot.scm (mount-root-file-system): Take new
SKIP-CHECK-IF-CLEAN? and REPAIR keyword arguments.  Thread them through
to CHECK-FILE-SYSTEM.
* doc/guix.texi (File Systems): Document both new <file-system> options.
2021-09-23 18:17:15 +02:00
zimoun d18b787d8a
doc: Add item to "Submitting Patches" section.
* doc/contributing.texi (Submitting Patches): Add item about 'git-format-patch
--base'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-22 16:14:39 +02:00
Ludovic Courtès 5b32ad4f6f
graph: Add '--max-depth'.
* guix/graph.scm (export-graph): Add #:max-depth and honor it, adding
'depths' argument to 'loop'.
* guix/scripts/graph.scm (%options, show-help): Add '--max-depth'.
(%default-options): Add 'max-depth'.
(guix-graph): Pass #:max-depth to 'export-graph'.
* tests/graph.scm ("package DAG, limited depth"): New test.
* doc/guix.texi (Invoking guix graph): Document it.
2021-09-21 15:15:52 +02:00
Thiago Jung Bauermann 5c4fd77097
etc: Add systemd files for running ‘guix gc’ periodically
* etc/guix-gc.service.in: New file.
* etc/guix-gc.timer: Likewise.
* .gitignore: Ignore generated ‘guix-gc.service’.
* nix/local.mk (nodist_systemdservice_DATA): Add ‘guix-gc.service’ and
‘guix-gc.timer’.
(EXTRA_DIST): Add ‘guix-gc.service.in’ and ‘guix-gc.timer’.
* doc/guix.texi (Binary Installation): Mention the new systemd files.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-09-20 14:18:21 +00:00
Xinglu Chen 59ee10754e
import: Add 'generic-git' updater.
* guix/git.scm (ls-remote-refs): New procedure.
* tests/git.scm ("remote-refs" "remote-refs: only tags"): New tests.
* guix/import/git.scm: New file.
* doc/guix.texi (Invoking guix refresh): Document it.
* tests/import-git.scm: New test file.
* Makefile.am (MODULES, SCM_TESTS): Register the new files.

Co-authored-by: Sarah Morgensen <iskarian@mgsn.dev>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-18 19:37:45 +02:00
Marius Bakke 5c3cb22c9b
Merge branch 'master' into core-updates-frozen
Conflicts:
	gnu/packages/bioinformatics.scm
	gnu/packages/chez.scm
	gnu/packages/docbook.scm
	gnu/packages/ebook.scm
	gnu/packages/gnome.scm
	gnu/packages/linux.scm
	gnu/packages/networking.scm
	gnu/packages/python-web.scm
	gnu/packages/python-xyz.scm
	gnu/packages/tex.scm
	gnu/packages/version-control.scm
	gnu/packages/xml.scm
	guix/build-system/dune.scm
	guix/build-system/go.scm
	guix/build-system/linux-module.scm
	guix/packages.scm
2021-09-17 01:25:52 +02:00
Andrew Tropin bac597cc96
home-services: Add Mcron.
* gnu/home-services/mcron.scm: New file.
* gnu/local.mk: Add this.
* doc/guix.texi: Add documentation about Mcron Home Service.

Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2021-09-13 22:41:25 +03:00
Efraim Flashner de4f5df95d
build/go: Support cross compiling.
* guix/build-system/go.scm (go-target): New procedure.
(go-build): Add goarch, goos keywords. Adjust bag depending if doing a
native or cross compile.
(go-cross-build): New procedure.
* guix/build/go-build-system.scm (setup-go-environment): Accept goarch,
goos keywords. Set go environment variables based on target architecture.
* doc/guix.texi (Build Systems): Mention new go-build-system keywords.
2021-09-13 15:33:30 +03:00
Andrew Tropin 6b5ff71b99
home-services: Add Shepherd.
* gnu/home-services/shepherd.scm: New file.
* gnu/local.mk: Add this.
* doc/guix.texi: Add documentation about Shepherd Home Service.

Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2021-09-09 20:28:03 +03:00
Andrew Tropin aaffa43c17
doc: Add Guix Home documentation.
* doc/guix.texi: Add Guix Home documentation.
* doc/he-config-bare-bones.scm: New file.

Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2021-09-09 20:26:51 +03:00
Grant Shangreaux de15397006
doc: add clarifications to Linode cookbook recipe
* doc/guix-cookbook.texi: clarify Linode recipe

Reword paragraph about adding the Guix device disk to Debian config.
Improve example commands for sftp-ing files to the server.
Minor wording fixes

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-08 22:36:53 +02:00
Marius Bakke 16ef7b4938
transformations: Git tags and 'git describe' style IDs are used as version.
* guix/transformations.scm (commit->version-string): New procedure.  Use git
tags and 'git describe' style identifiers directly.
(transform-package-source-commit): Adjust accordingly.
* tests/transformations.scm
("options->transformation, with-commit, version transformation"): New test.
* doc/guix.texi (Package Transformation Options): Mention the 'git describe'
style.
2021-09-08 18:03:50 +02:00
Marius Bakke 1dc3825e99
git: 'resolve-reference' handles 'git describe'-style commit IDs.
* guix/git.scm (resolve-reference): Rewrite tag-or-commit case to recognize
'git describe' style identifiers and resolve them as commits.
* doc/guix.texi (origin Reference): Mention it.
2021-09-08 18:03:50 +02:00
pukkamustard f8f94cc544
guix: dune-build-system: Put dune into a reproducible release mode.
* guix/build/dune-build-system.scm (build,check): Replace the profile parameter
with the appropriate release flags.
* guix/build-system/dune.scm: Remove the profile parameter.
* doc/guix.texi: Remove paragraph on profile parameter.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-09-08 13:39:27 +02:00
Xinglu Chen af4fa7c00c
import: elpa: Support NonGNU ELPA.
* guix/import/elpa.scm (elpa-url): Add NonGNU ELPA URL.
* doc/guix.texi (Invoking guix import): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-07 15:59:34 +02:00
Ludovic Courtès d9dfbf886d
Merge branch 'master' into core-updates-frozen 2021-09-07 14:19:08 +02:00
Julien Lepiller c60daa8e9d
gnu: version-control: Add gitile service.
* gnu/services/version-control.scm (gitile-service-type): New variable.
* doc/guix.texi (Version Control Services): Document it.
* gnu/tests/version-control.scm (%test-gitile): New variable.
2021-09-02 22:56:55 +02:00
Julien Lepiller cc16103861
gnu: gitolite: Add unsafe-pattern configuration option.
* gnu/services/version-control.scm (gitolite-rc-file): Add
unsafe-pattern field.
(gitolite-rc-file-compiler): Write it.
* doc/guix.texi (Version Control Services): Document it.
2021-09-02 22:56:44 +02:00
Maxime Devos cefaa0e607
doc: Correct name of Minetest importer.
* doc/guix.texi (Invoking guix import): Let the item name be
  'minetest' instead of 'contentdb'.

Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-08-31 23:25:12 +02:00
Marius Bakke c4133c43c7
Merge branch 'master' into core-updates-frozen
Conflicts:
	gnu/packages/algebra.scm
	gnu/packages/games.scm
	gnu/packages/golang.scm
	gnu/packages/kerberos.scm
	gnu/packages/mail.scm
	gnu/packages/python.scm
	gnu/packages/ruby.scm
	gnu/packages/scheme.scm
	gnu/packages/tex.scm
	gnu/packages/tls.scm
	gnu/packages/version-control.scm
2021-08-12 00:30:27 +02:00
Marius Bakke b029be2ee0
Merge branch 'master' into core-updates-frozen
Conflicts:
	gnu/packages/bioinformatics.scm
	gnu/packages/cmake.scm
	gnu/packages/curl.scm
	gnu/packages/emacs-xyz.scm
	gnu/packages/gpodder.scm
	gnu/packages/music.scm
	gnu/packages/patches/glibc-bootstrap-system.patch
	gnu/packages/python-xyz.scm
	gnu/packages/shells.scm
	gnu/packages/statistics.scm
2021-07-29 22:34:57 +02:00
Brice Waegeneire a85ec0bf69
services: Migrate to <setuid-program>.
* gnu/services/dbus.scm (dbus-setuid-programs, polkit-setuid-programs):
  Return setuid-programs.
* gnu/services/desktop.scm (enlightenment-setuid-programs): Return
 setuid-programs.
 (%desktop-services)[mount-setuid-helpers]: Use setuid-programs.
* gnu/services/docker.scm (singularity-setuid-programs): Return
 setuid-programs.
* gnu/services/xorg.scm(screen-locker-setuid-programs): Return
 setuid-programs.
* gnu/system.scm (%setuid-programs): Return setuid-programs.
* doc/guix.texi (Setuid Programs, operating-system Reference): Replace
  'list of G-expressions' with 'list of <setuid-program>'.
2021-07-29 11:32:48 -04:00
Chris Lemmer-Webber a7ac19851b
services: setuid: More configurable setuid support.
New record <setuid-program> with fields for setting the specific user
and group, as well as specifically selecting the setuid and setgid bits,
for a program within the setuid-program-service.

* gnu/services.scm (setuid-program-file-like-deprecated): New function.
  (setuid-program-service-type): Make use of
  setuid-program->activation-gexp.  Adjust the extend property to handle
  <setuid-program>.
* gnu/build/activation.scm (activate-setuid-programs): Update to expect a
  <setuid-record> list for each program entry.
* gnu/system.scm: (operating-system-setuid-programs): Renamed to
  %operating-system-setuid-programs and replace it with new procedure.
  (operating-system-default-essential-services,
  hurd-default-essential-services): Replace
  operating-system-setuid-programs with
  %operating-system-setuid-programs.
* gnu/system/setuid.scm: New file.
* doc/guix.texi (Setuid Programs): Document <setuid-program>.

Co-authored-by: Brice Waegeneire <brice@waegenei.re>
2021-07-29 11:32:08 -04:00
Maxim Cournoyer da4e409483
Migrate to the new 'targets' field of bootloader-configuration.
The old 'target' field is deprecated; adjust the sources to use the new
'targets' one instead.

* doc/guix-cookbook.texi<target>: Replace by 'targets'.
* gnu/bootloader/grub.scm: Likewise.
* gnu/installer/parted.scm: Likewise.
* gnu/machine/digital-ocean.scm: Likewise.
* gnu/system/examples/asus-c201.tmpl: Likewise
* gnu/system/examples/bare-bones.tmpl: Likewise
* gnu/system/examples/bare-hurd.tmpl: Likewise
* gnu/system/examples/beaglebone-black.tmpl: Likewise
* gnu/system/examples/desktop.tmpl: Likewise
* gnu/system/examples/docker-image.tmpl: Likewise
* gnu/system/examples/lightweight-desktop.tmpl: Likewise
* gnu/system/examples/vm-image.tmpl: Likewise
* gnu/system/examples/yggdrasil.tmpl: Likewise
* gnu/system/hurd.scm: Likewise
* gnu/system/images/hurd.scm: Likewise
* gnu/system/images/novena.scm: Likewise
* gnu/system/images/pine64.scm: Likewise
* gnu/system/images/pinebook-pro.scm: Likewise
* gnu/system/images/rock64.scm: Likewise
* gnu/system/install.scm: Likewise
* gnu/system/vm.scm: Likewise
* gnu/tests.scm: Likewise
* gnu/tests/ganeti.scm: Likewise
* gnu/tests/install.scm: Likewise
* gnu/tests/nfs.scm: Likewise
* gnu/tests/telephony.scm: Likewise
* tests/boot-parameters.scm: Likewise
* tests/system.scm: Likewise
2021-08-29 01:05:26 -04:00
Maxim Cournoyer 2ca982ff41
gnu: bootloader: Support multiple targets.
Fixes <https://issues.guix.gnu.org/40997>.

* gnu/bootloader.scm (<bootloader-configuration>): New 'targets' field.
(%bootloader-configuration-target): New procedure.
(bootloader-configuration-target): Add deprecation warning.
(bootloader-configuration-targets): New procedure.
* guix/scripts/system.scm (install): Access targets via
bootloader-configuration-targets.
(perform-action)[bootloader-target]: Remove unused argument and update doc.
Access targets via bootloader-configuration-targets and fix indentation.
(process-action): Access targets via bootloader-configuration-targets.
Do not provide the unused BOOTLOADER-TARGET argument when applying
`perform-action'.
* guix/scripts/system/reconfigure.scm (install-bootloader-program): Rename
DEVICE argument to DEVICES.  Adjust doc and comment.  Apply `installer' and
`disk-installer' for every DEVICES.
(install-bootloader): Access targets via bootloader-configuration-targets and
rename variable from DEVICE to DEVICES.
* gnu/tests/install.scm: Adjust accordingly.
* tests/guix-system.sh: Likewise.
* gnu/tests/reconfigure.scm (run-install-bootloader-test): Adjust the DEVICES
argument so that it is a list.
* doc/guix.texi: Update doc.
2021-08-29 01:05:26 -04:00
Sergei Trofimovich 79c07db3d5
doc: Work around po4a doc generation hangup.
Multiple people are affected by 'guix pull' hangup.
The reproducer is:

    $ po4a-translate -d -M UTF-8 -L UTF-8 -k 0 -f texinfo \
      -m "doc/guix.texi" -p "po/doc/guix-manual.de.po" -l "doc/guix.de.texi.tmp"

The regression is bisected down to commit fc29c80b9
("guix: opam: More flexibility in the importer").

The workaround is to avoid multiline @code{...} directive.

* doc/guix.texi: Avoid multiline @code{...} directive.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-08-21 14:00:01 +02:00
Alice BRENON fc29c80b96
guix: opam: More flexibility in the importer.
* guix/scripts/import/opam.scm: Pass all instances of --repo as a list
  to the importer.
* guix/import/opam.scm (opam-fetch): Stop expecting "expanded"
  repositories and call get-opam-repository instead to keep values
  "symbolic" as long as possible and factorize.
  (get-opam-repository): Use the same repository source as CLI opam does
  (i.e. HTTP-served index.tar.gz instead of git repositories).
  (find-latest-version): Be more flexible on the repositories structure
  instead of expecting packages/PACKAGE-NAME/PACKAGE-NAME.VERSION/.
* tests/opam.scm: Update the call to opam->guix-package since repo is
  now expected to be a list and remove the mocked get-opam-repository
  deprecated by the support for local folders by the actual
  implementation.
* doc/guix.texi: Document the new semantics and valid arguments for the
  --repo option.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-08-21 00:05:21 +02:00
pukkamustard 33a1ec29fa
guix: dune-build-system: Add a profile parameter.
* guix/build-system/dune.scm: Add a profile parameter.
* guix/build/dune-build-system.scm (build): Use it.
* doc/guix.texi: Document it.
* gnu/packages/ocaml.scm: Remove profile being set from build flags.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2021-08-20 23:51:11 +02:00
Maxime Devos 467e874a86
guix: Add ContentDB importer.
* guix/import/contentdb.scm: New file.
* guix/scripts/import/contentdb.scm: New file.
* tests/contentdb.scm: New file.
* Makefile.am (MODULES, SCM_TESTS): Register them.
* po/guix/POTFILES.in: Likewise.
* doc/guix.texi (Invoking guix import): Document it.

Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-08-20 12:41:54 +02:00
Maxime Devos 3df485152c
build-system: Add 'minetest-mod-build-system'.
* guix/build-system/minetest.scm: New module.
* guix/build/minetest-build-system.scm: Likewise.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Document 'minetest-mod-build-system'.

Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at>
2021-08-20 12:41:54 +02:00
Oleg Pykhalov b948ab8b56
services: slim: Add pam-gnupg support.
* gnu/system/pam.scm (unix-pam-service): Add account and session PAM entries
for pam-gnupg.  Don't pass "#f" to "allow-root?" argument, because "lambda*"
already does this by default.
* doc/guix.texi (X Window): Document this.
* gnu/services/xorg.scm (<slim-configuration>)[gnupg?]: New record field.
(slim-pam-service): Pass "#:gnupg?" argument to "unix-pam-service".
2021-08-17 01:10:25 +03:00
Christopher Lemmer Webber 9455143907
Update copyright/name notices for Christine Lemmer-Webber.
* doc/guix-cookbook.texi: Update copyright/name for Christine Lemmer-Webber.
* gnu/build/image.scm: Likewise.
* gnu/build/vm.scm: Likewise.
* gnu/packages/admin.scm: Likewise.
* gnu/packages/assembly.scm: Likewise.
* gnu/packages/audio.scm: Likewise.
* gnu/packages/backup.scm: Likewise.
* gnu/packages/check.scm: Likewise.
* gnu/packages/databases.scm: Likewise.
* gnu/packages/emacs-xyz.scm: Likewise.
* gnu/packages/finance.scm: Likewise.
* gnu/packages/gnupg.scm: Likewise.
* gnu/packages/guile-xyz.scm: Likewise.
* gnu/packages/guile.scm: Likewise.
* gnu/packages/haskell-xyz.scm: Likewise.
* gnu/packages/linux.scm: Likewise.
* gnu/packages/mail.scm: Likewise.
* gnu/packages/password-utils.scm: Likewise.
* gnu/packages/perl.scm: Likewise.
* gnu/packages/python-web.scm: Likewise.
* gnu/packages/python-xyz.scm: Likewise.
* gnu/packages/python.scm: Likewise.
* gnu/packages/sphinx.scm: Likewise.
* gnu/packages/ssh.scm: Likewise.
* gnu/packages/xdisorg.scm: Likewise.
* gnu/services/networking.scm: Likewise.
* gnu/system/vm.scm: Likewise.
2021-08-15 14:15:37 -04:00
Ricardo Wurmus a0fd46304e
doc: Fix typo.
* doc/guix-cookbook.texi (GUIX_PACKAGE_PATH): Fix typo in file name.

Reported-by: breathein on IRC.
2021-08-15 11:36:38 +02:00
Mathieu Othacehe cfd2442488
services: cuirass: Reverse the no-publish logic.
This is a follow-up of d128c6fd33.

* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>)
[no-publish?]: Rename it to ...
[publish?]: ... this new field.
(cuirass-shepherd-service): Adapt it.
* doc/guix.texi (Cuirass remote building): Document it.
2021-08-13 13:46:21 +02:00
Mathieu Othacehe 23b5b168ae
services: cuirass: Add a substitute-urls argument.
* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>): Add a
substitute-urls field.
(cuirass-remote-worker-shepherd-service): Honor it.
* doc/guix.texi (Cuirass remote building): Document it.
2021-08-12 14:31:54 +02:00
Mathieu Othacehe d128c6fd33
services: cuirass: Add a no-publish argument.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>): Add a
no-publish? field.
(cuirass-shepherd-service): Honor it.
* doc/guix.texi (Cuirass remote building): Document it.
2021-08-12 12:59:55 +02:00
Maxim Cournoyer 392c7175ae
doc: Add a tip to better name mcron jobs.
* doc/guix.texi (Scheduled Job Execution): Specify the 'displayable' argument
for the 'updatedb-job' example.  Add a tip to better name jobs, referring to
the modified example.
2021-08-08 01:28:57 -04:00
Julien Lepiller 6c10c96fed
nls: Update translations.
* po/doc/guix-cookbook.ru.po: New file.
* po/doc/guix-cookbook.sk.po: New file.
* po/*/*.po: Update translations.
* doc/local.mk (COOKBOOK_LANGUAGES): Add ru and sk.
(info_TEXINFOS): Add Russian and Slovak cookbooks.
* po/doc/local.mk (DOC_COOKBOOK_PO_FILES): Add Russian and Slovak po
files.
2021-08-04 14:49:53 +02:00
Maxim Cournoyer e1ddcf75bf
doc: Fix typo.
* doc/guix.texi (Telephony Services): Remove the extraneous 'jami' argument
when invoking 'list-actions'.
2021-08-03 11:26:59 -04:00
Maxim Cournoyer 10f554700c
Reinstate "services: Add a service for Jami."
This reverts commit 4673f81793, which reverted
commit 69dcc24c9f with the fix detailed below.

Thanks to Christopher Baines for reporting the failure and proposing a fix.

* guix/self.scm (compiled-guix) [*system-test-modules*]: Add the test data
files via the 'extra-files' argument.
* gnu/local.mk (dist_patch_DATA): Move the tests/data/jami-dummy-account.dat
file to...
* gnu/local.mk (MODULES_NOT_COMPILED): ... here.
2021-08-02 17:23:30 -04:00
Maxim Cournoyer 4673f81793
Revert "services: Add a service for Jami."
This reverts commit 69dcc24c9f.  It broke 'guix
pull'.
2021-08-02 15:48:59 -04:00