Commit Graph

3378 Commits

Author SHA1 Message Date
Jonathan Scoresby 8882ec71dd
build-system: Add vim-build-system.
* guix/build-system/vim.scm,
* guix/build/vim-build-system.scm: New modules.
* Makefile.am (MODULES): Register new files.
* doc/guix.texi: Document it.

Co-authored-by: Efraim Flashner <efraim@flashner.co.il>
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-11-08 12:03:05 +02:00
Maxim Cournoyer 19fe24c5b9
doc: Document extra Emacs-Debbugs configurations.
* doc/contributing.texi (Viewing Bugs within Emacs): Document
debbugs-gnu-default-packages, debbugs-gnu-default-severities.
(Debbugs User Interfaces): Likewise, and mention debbugs-gnu-guix-search.

Suggested-by: Michael Albinus <michael.albinus@gmx.de>
Change-Id: I8e9026bc394b0cf674c8498ca713c332e48c2700
2023-11-07 12:33:27 -05:00
Maxim Cournoyer 7d3f2b99ff
doc: Expound on the build-side versus host-side modules topic.
Discussed in <https://issues.guix.gnu.org/65924#98-lineno27>.

* doc/contributing.texi (Modules): Add new context indices, and provide a
real-life counter-example, and its ramifications.

Reported-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I06975fb24f0d67c833884313a727dc550f61d8a0
2023-11-07 12:33:26 -05:00
Maxim Cournoyer a4db19d8e0
git-download: Add support for Git Large File Storage (LFS).
* guix/build/git.scm (git-fetch) [lfs?]: New argument, doc and setup code.
(git-fetch-with-fallback) [lfs?]: New argument.  Pass it to git-fetch.
* guix/git-download.scm (git-lfs-package): New procedure.
(git-fetch/in-band*): New procedure, made of the logic of git-fetch/in-band,
with new git-lfs specifics, with the following changes:
New #:git-lfs argument.
<inputs>: Remove labels.  Conditionally add git-lfs.
<build>: Read "git lfs?" environment
variable and pass its value to the #:lfs? argument of git-fetch-with-fallback.
Use INPUTS directly; update comment.
<gexp->derivation>: Add "git lfs?" to #:env-vars.
(git-fetch/in-band): Express in terms of git-fetch/in-band*.
(git-fetch/lfs): New procedure.
* doc/guix.texi (origin Reference): Document it.

Change-Id: I5b233b8642a7bdb8737b9d9b740e7254a89ccb25
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-11-07 12:33:26 -05:00
Maxim Cournoyer 889a6204f8
doc: Add some guidelines for reviewing.
* doc/contributing.texi (Contributing) [Reviewing the Work of Others]: New
section.
(Debbugs Usertags): Expound with Emacs Debbugs information and document the
'reviewed-looks-good' usertag.
* etc/git/gitconfig [b4]: New section.

Change-Id: I56630b15ec4fbc5c67e5420dbf2838556a005d6b
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2023-11-07 12:33:25 -05:00
Ricardo Wurmus fb46c1ceda
doc: Update URL of Mumi git repository.
* doc/contributing.texi (Debbugs User Interfaces): Use new repository URL.

Change-Id: Ieccf34be8a103740607d8c115120902dc687d4e7
2023-11-07 12:02:19 +01:00
Ludovic Courtès 08d94fe20e
home: services: Add 'x11-display' service.
* gnu/home/services/desktop.scm (x11-shepherd-service): New procedure.
(home-x11-service-type): New variable.
(redshift-shepherd-service): Add 'requirement' field.
(home-redshift-service-type): Extend 'home-x11-service-type'.
* doc/guix.texi (Desktop Home Services): Document it.

Change-Id: Ibd46d71cbb80fcdff8dbf3e8dbcfc3b24163bdb6
2023-11-05 23:23:23 +01:00
Jaeme Sifat 0826cc8a07
doc: contributing: Replace reference to dunst.scm.
The contributing documentation makes a reference to dunst.scm as an example of
the build process failing after an update. This patch replaces that reference
with a much more permanent linux.scm.

* doc/contributing.texi: Replace reference to dunst.scm.

Change-Id: I89a4157eb253e25979bc35d6d3b12201a0d19951
Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-11-05 17:57:57 +00:00
Julien Lepiller c95104c2e9
doc: contributiong: Fix ref usage.
Previous usage renders as "see See Teams".

* doc/contributing.texi: Fix ref usage.

Change-Id: I97a91697ecb87d07cc3c962a79d87dd290a70a7c
2023-11-01 17:20:17 +01:00
Florian Pelz 2844f24e89
doc: cookbook: Fix a broken cross-reference.
* doc/guix-cookbook.texi (Building with Guix): Adjust xref target.

Change-Id: I87d6dc2648ff8898e3dd3b5ffca748193f14751e
2023-10-25 17:01:43 +02:00
Ludovic Courtès 216f8ffff4
doc: cookbook: Add cross references to the manual regarding manifests.
* doc/guix-cookbook.texi (The benefits of manifests)
(Reproducible profiles): Add cross-references.
2023-10-24 18:06:21 +02:00
Ludovic Courtès 37b0ddbcb7
doc: cookbook: Suggest ‘guix shell’ as an alternative to multiple profiles.
Multiple profiles are relatively hard to set up and maintain, especially
for newcomers.  Thus, suggest ‘guix shell’ as an alternative.

* doc/guix-cookbook.texi (Guix Profiles in Practice): Add note
linking to ‘guix shell’.
(The benefits of manifests): Remove outdated info about ‘guix
environment’ and profiles that may be GC’d.  Update.
2023-10-24 18:06:21 +02:00
Ludovic Courtès 569c085927
doc: Mention Guix Home in “Getting Started”.
* doc/guix.texi (Getting Started): Mention Guix Home.
(Home Configuration): Remove “still under development” note.
2023-10-24 18:06:20 +02:00
Ludovic Courtès 978b9619a8
doc: Move “System Troubleshooting Tips” below.
So far this section would appear before “Getting Started”.  This moves
it right after “System Configuration”.

* doc/guix.texi (System Troubleshooting Tips): Move after “System
Configuration”.
2023-10-24 18:06:20 +02:00
Maxim Cournoyer cbd20d6274
doc: Document Cuirass build notifications.
* doc/contributing.texi (Tracking Bugs and Changes)
<Cuirass Build Notifications>: New subsection.

Change-Id: Icead24ec18cd4511ee6217aae3c1d11ec552a9c7
Reviewed-by: Mathieu Othacehe <othacehe@gnu.org>
2023-10-23 11:42:19 -04:00
Maxim Cournoyer 8005e09b26
build: Add a commit-msg hook that embeds Change-Id in commit messages.
Partially implements <https://issues.guix.gnu.org/66027>.

This will make it possible to track a merged commit back to its original
posting on the mailing list, and open the door to new opportunities such as
closing fully merged series automatically.

* Makefile.am (COMMIT_MSG_MAGIC): New variable.
(.git/hooks/commit-msg): New target.
* etc/git/commit-msg: New file.
* doc/contributing.texi (Configuring Git): Document Change-Id.

Series-changes: 3
 - Clarify documentation text, as suggested by Simon
Change-Id: Ia92fa958eae600fdd4e180bad494c85db8bb4dd6
Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-10-22 16:09:04 -04:00
Ekaitz Zarraga e011961f99
build-system: Add zig-build-system.
* guix/build-system/zig.scm: New file.
* guix/build/zig-build-system.scm: New file.
* Makefile.am: Add them.
* doc/guix.texi: Document it.
* etc/snippets/yas/scheme-mode/guix-package (build-system): Add
  zig-build-system.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-21 00:27:25 +02:00
Christina O'Donnell 8d6b3dd0b8
doc: Expand origin-Reference section
* doc/guix.texi (origin Reference): Add references for hg-reference,
svn-reference, bzr-fetch, and bzr-reference.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-18 23:11:32 +02:00
Gabriel Wicki e80022ff3a
doc: Clarify partition LBA compatibility.
* doc/guix.texi (partition Reference): Clarify LBA compatibility.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-10-17 15:11:12 +02:00
Bruno Victal fec8e51380
doc: Use herd for cerbot deploy hook example.
* doc/guix.texi (Certificate Services): Replace PID file based example with
one using (gnu services herd). Rename %nginx-deploy-hook to
%certbot-deploy-hook.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-14 22:41:44 +02:00
Sören Tempel 373ec2cf8c
pack: Allow setting a custom image tag for Docker images
Previously, the image repository name was automatically computed from
the packages in the manifest without allowing the user to set a custom
one. As such, changing the packages in the manifest would result in a
new image name. Thereby requiring updating documentation et cetera when
using `docker load` directory on the resulting image.

Inspired by `docker build -t`, this commit adds a new Docker-specific
option to `guix pack` which allows setting a custom repository name for
the resulting image. If this option is not specified, pack falls back
to computing the name from the manifest. Therefore, this change is
entirely backwards compatible.

* guix/scripts/pack.scm (guix-pack): Add --image-tag option.
(%docker-format-options): New constant.
(show-docker-format-options): New procedure.
(show-docker-format-options/detailed): New procedure.
(docker-image): Allow setting a custom
repository name for the created docker image via extra-options.
* doc/guix.texi (Invoking guix pack)[docker]: Document --image-tag option.

Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-10-14 15:31:30 +02:00
Efraim Flashner 4ec6fd7817
doc: Document specification->package+output.
Reported by nutcase on IRC.

* doc/guix.texi (Using the Configuration System): Add a section about
using specification->package+output.
2023-10-13 11:48:43 +03:00
Ludovic Courtès 5a3fb30653
services: cuirass: Add ‘log-expiry’ option for ‘remote-server’.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>)[log-expiry]:
New field.
(cuirass-shepherd-service): Honor it.
* doc/guix.texi (Continuous Integration): Document it.
2023-10-12 22:14:34 +02:00
Ludovic Courtès 6a82ff6329
doc: Fix typo.
* doc/guix.texi (Derivations): Fix typo.
2023-10-12 18:53:06 +02:00
Ludovic Courtès 75d322f76f
doc: cookbook: Add “Software Development” chapter.
* doc/guix-cookbook.texi (Software Development): New chapter.
2023-10-11 23:16:20 +02:00
Alexey Abramov 670d985cab
services: static-networking: Add support for bonding.
* gnu/services/base.scm (<network-link>): Add mac-address field. Set
type field to #f by default, so it won't be mandatory. network-link
without a type will be used for existing interfaces.
(assert-network-link-mac-address, mac-address?): Add sanitizer. Allow
valid mac-address or #f.
(assert-network-link-type): Add sanitizer. Allow symbol or #f.
* gnu/services/base.scm (network-set-up/linux,
network-tear-down/linux): Adapt to new structure.
* doc/guix.texi (Networking Setup): Document it.
* gnu/tests/networking.scm (run-static-networking-advanced-test): New
variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-11 18:51:07 +02:00
Ludovic Courtès 96b40c3eba
doc: Fix typo.
* doc/guix.texi (GNU Privacy Guard): Fix typo.
2023-10-08 23:43:49 +02:00
Bruno Victal 00a28bc435
services: configuration: Add some commonly used predicates.
* gnu/services/configuration.scm (list-of-packages?, list-of-symbols?): New
predicate.
* gnu/services/audio.scm (list-of-symbol?): Remove.
* gnu/services/telephony.scm (string-list?): Remove.
(serialize-string-list): Rename to …
(serialize-list-of-strings): … this.
(account-fingerprint-list?, jami-account-list?): Use list-of.
* doc/guix.texi: Update it.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-07 12:41:06 -04:00
Bruno Victal 3872ecf274
doc: Rewrite define-configuration.
Rewrite this section to make it easier to document later syntactical
changes.

* doc/guix.texi (Complex Configurations): Rewrite define-configuration
documentation. Fix simple serializer example.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-07 12:41:05 -04:00
Nikolaos Chatzikonstantinou 3d4d7fec05
doc: Fix channel name typo.
When the manual has "variant-personal-packages", it actually refers to the
channel "variant-packages", as it is named so elsewhere.

To correct this, I ran the command

    grep -r -l variant-personal-packages | xargs \
    sed -i 's/variang-personal-packages/variant-packages/g'

* doc/guix.texi (Specifying Additional Channels): Fix channel name typo.
* po/doc/guix-manual.de.po: Fix channel name typo.
* po/doc/guix-manual.es.po: Fix channel name typo.
* po/doc/guix-manual.fr.po: Fix channel name typo.
* po/doc/guix-manual.pt_BR.po: Fix channel name typo.
* po/doc/guix-manual.ru.po: Fix channel name typo.
* po/doc/guix-manual.zh_CN.po: Fix channel name typo.

Signed-off-by: Nikolaos Chatzikonstantinou <nchatz314@gmail.com>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-05 23:14:54 +02:00
Ludovic Courtès 7b710836a1
doc: Suggest keeping record type descriptors private.
* doc/contributing.texi (Data Types and Pattern Matching): Add paragraph
about keeping RTDs private.

Suggested-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2023-10-05 23:14:54 +02:00
Mekeor Melire 5694352c05
doc: Update bug-reference configuration snippet.
* doc/contributing.texi (The Perfect Setup)
<Viewing Bugs within Emacs>: Make bug-reference-bug-regexp match
more URLs based on issues.guix.gnu.org.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Suggested-by: Simon Tournier <zimon.toutoune@gmail.com>
2023-10-05 13:11:46 -04:00
Ekaitz Zarraga 044a76c280
doc: contributing: Add alternative setups section.
Start with Guile Studio and Vim/NeoVim.

* doc/contributing.texi (Alternative Setups): Add section explaining
other setups that are similar to the one in The Perfect Setup.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2023-10-05 15:05:41 +03:00
Ludovic Courtès 953c65ffdd
services: hurd-vm: Implement zero-configuration offloading.
This allows for zero-configuration offloading to a childhurd.

* gnu/services/virtualization.scm (operating-system-with-offloading-account):
New procedure.
(<hurd-vm-configuration>)[offloading?]: New field.
(hurd-vm-disk-image): Define ‘transform’ and use it.
(hurd-vm-activation): Generate SSH key for user ‘offloading’ and add
authorize it via /etc/childhurd/etc/ssh/authorized_keys.d.
(hurd-vm-configuration-offloading-ssh-key)
(hurd-vm-guix-extension): New procedures.
(hurd-vm-service-type): Add GUIX-SERVICE-TYPE extension.
* gnu/tests/virtualization.scm (run-childhurd-test)[import-module?]: New
procedure.
[os]: Add (gnu build install) and its closure to #:import-modules.
[test]: Add “copy-on-write store” and “offloading” tests.
* doc/guix.texi (Virtualization Services): Document it.
2023-10-01 22:58:20 +02:00
Ludovic Courtès 990d20d4a8
doc: Give an example showing how to add an account in the childhurd.
* doc/guix.texi (Virtualization Services): Give an example showing how
to add an account.
2023-10-01 22:58:20 +02:00
Ludovic Courtès c3a19cc2ac
services: hurd-vm: Disable password-based authentication for root.
With offloading to a childhurd is enabled, allowing password-less root
login in the childhurd to anyone amounts to providing write access to
the host’s store to anyone.  Thus, disable password-based root logins in
the childhurd.

* gnu/services/virtualization.scm (%hurd-vm-operating-system): Change
‘permit-root-login’ to 'prohibit-password.
* gnu/tests/virtualization.scm (%childhurd-os): Provide a custom ‘os’
field for ‘hurd-vm-configuration’.
* doc/guix.texi (Virtualization Services): Remove mention of
password-less root login.
2023-10-01 22:58:20 +02:00
Ludovic Courtès bab6434f58
services: hurd-vm: ‘image’ field has to be an <image> record.
* gnu/services/virtualization.scm (<hurd-vm-configuration>)[image]:
Document as being an <image> record.
(hurd-vm-disk-image): Remove call to ‘system-image’.
(hurd-vm-shepherd-service): Add call to ‘system-image’.
* gnu/tests/virtualization.scm (hurd-vm-disk-image-raw): Remove call to
‘system-image’.
* doc/guix.texi (Virtualization Services): Adjust accordingly.
2023-10-01 22:58:19 +02:00
Ludovic Courtès aa40b085dc
services: guix: Support declarative offloading setup.
* gnu/services/base.scm (guix-machines-files-installation): New
procedure.
(<guix-configuration>)[build-machines]: New field.
(guix-activation): Call ‘ guix-machines-files-installation’.
(<guix-extension>)[build-machines]: New field.
(guix-extension-merge): Handle it.
(guix-service-type)[extend]: Likewise.
* doc/guix.texi (Daemon Offload Setup): Add note linking to
‘guix-configuration’.
(Base Services): Document ‘build-machines’ field of <guix-configuration>
and of <guix-extension>.
(Virtualization Services): Add ‘hurd-vm’ anchor.
2023-10-01 22:58:19 +02:00
Maxim Cournoyer 06dc36ffb7
doc: Update bug-reference configuration snippet.
* doc/contributing.texi (The Perfect Setup)
<Viewing Bugs within Emacs>: Properly quote Elisp functions.  Add 'require'
directives.  Set BUG-REFERENCE-URL-FORMAT so the configuration is
self-contained.

Suggested-by: Mekeor Melire <mekeor@posteo.de>
2023-09-26 14:06:04 -04:00
Ludovic Courtès f651a35969
build: Add dependency on Git.
* configure.ac: Check for ‘git’ and substitute ‘GIT’.
* guix/config.scm.in (%git): New variable.
* guix/self.scm (compiled-guix): Define ‘git’ and pass it to
‘make-config.scm’.
(make-config.scm): Add #:git; emit a ‘%git’ variable.
* doc/guix.texi (Requirements): Add it.
2023-09-26 17:36:58 +02:00
Maxim Cournoyer c428246bcd
doc: Add new 'Circular Module Dependencies' section.
* doc/contributing.texi (Circular Module Dependencies): New subsection.

Series-version: 2
Series-to: 65860@debbugs.gnu.org
Patch-cc: mhw@netris.org
Cover-letter:
Resolve a circular module dependencies in embedded modules
This series is the culmination of at least a day of effort tracking down the
source of a module dependency cycle (!).  The last commit adds some guidelines
in the hope to avoid a repeat (perhaps 'lint' could be taught to
automate these checks).
END
2023-09-25 10:33:04 -04:00
Liliana Marie Prikler cdbd81ce14
Merge branch 'master' into emacs-team 2023-09-22 23:54:34 +02:00
Efraim Flashner f4a0e472a9
doc: contributing: Clarify generating the pre-inst-env script.
Lack of clarity reported by lrustland on IRC.

* doc/contributing.texi (Running Guix Before It Is Installed): Refer to
the Building from Git section when giving instructions for generating
the pre-inst-env script.
2023-09-22 08:54:18 +03:00
Mathieu Othacehe e5ed1712da
image: Introduce the mbr-hybrid-raw image type.
Until 209204e23b and
d57cab7641, the default image type used by "guix
system image" was an MBR image with an ESP partition.

Having both an MBR image and an ESP partition is handy because the image will
boot on most x86 based systems using legacy BIOS and/or UEFI.

We now have a distinction between MBR images and EFI images. Introduce a new
MBR hybrid image type and default to it to restore the default behaviour.

This also fixes the images section of (gnu ci) that was trying to install a
BIOS bootloader on an EFI, GPT image and failing to do so.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-09-20 09:38:36 +02:00
Ludovic Courtès a839bb9777
doc: Fix typo.
* doc/guix.texi (Specifying Channel Authorizations): Remove extra
hyphen.
2023-09-18 23:14:00 +02:00
Janneke Nieuwenhuizen 7bf12820f6
maint: Support `guix shell' in Guix's git archive with manifest.scm.
* manifest.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
* doc/contributing.texi (Building from Git): Mention using it.
2023-09-18 22:12:39 +02:00
Maxim Cournoyer fc1b4756e3
.dir-locals.el: Update bug-reference configuration and document it.
(nil) <bug-reference-url-format>: Update URL.  Add comment.
* doc/contributing.texi (The Perfect Setup): New "Viewing bugs within Emacs"
subsection.

Co-authored-by: Brian Cully <bjc@spork.org>
2023-09-17 16:42:03 -04:00
Alexey Abramov 04f71edb73
services: dhcp-client-configuration: Allow provision override.
* gnu/services/networking.scm (<dhcp-client-configuration>)[shepherd-provision]:
New field.
(dhcp-client-shepherd-service): Honor it.
* doc/guix.texi (Networking Setup): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-09-17 15:31:03 +02:00
Liliana Marie Prikler 94ca5b4357
Merge branch 'master' into emacs-team 2023-09-09 12:22:14 +02:00
Maxim Cournoyer b02ad19305
gnu: emacs: Reload subdirs.el files in ‘guix-emacs-autoload-packages’.
This fixes a regression introduced with 79cfe30f3 ("build-system: emacs: Use
subdirectories again.") which caused the 'guix-emacs-autoload-packages' to no
longer be able to autoload all packages.

* gnu/packages/aux-files/emacs/guix-emacs.el
(guix-emacs-autoload-packages): Reload subdirs.el files unless NO-RELOAD is
provided.  Update docstring.
* doc/guix.texi (Application Setup): Document that
‘guix-emacs-autoload-packages’ can be invoked interactively to auto-reload
newly installed Emacs packages.
* gnu/packages/emacs.scm (emacs)[arguments]<#:phases>: Call
guix-emacs-autoload-packages with an argument in the site-start.el file.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-09-07 20:25:07 +02:00