* doc/guix.texi (Binary Installation): Mention the requirement to use a
Hurd or Linux kernel for the binary installation.
Suggested-by: Matt <matt@excalamus.com>
Change-Id: Ibc0552f59be4fdaaf8d44a5222e6feb925d3f06f
* doc/contributing.texi (Commit Access): Mention that blocking comes with
extra responsibilities.
Reviewed-by: Simon Tournier <zimon.toutoune@gmail.com>
Signed-off-by: Simon Tournier <zimon.toutoune@gmail.com>
* gnu/services/shepherd.scm (<shepherd-service>): Add respawn-limit and
respawn-delay.
(shepherd-service-file): Emit the two values into the shepherd service
constructor form.
Change-Id: I54408e8fb4bcc0956d9610771bf5c566fdc2914c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Using defvar for service types causes them to be part of the index, which is
useful for discoverability.
* doc/guix.texi (Telephony Services) <mumble-server-service-type>: Define with
defvar.
Change-Id: I01bed0c86ff12425a81294cb12f1b2a8bd14cd6f
Using defvar for service types causes them to be part of the index, which is
useful for discoverability.
* doc/guix.texi (Telephony Services) <jami-service-type>: Define with
defvar.
Change-Id: I7cbb3b7c84c34a91db689b8698a19ed49ef607b4
Using defvar for service types causes them to be part of the index, which is
useful for discoverability.
* doc/guix.texi (Database Services) <postgresql-service-type>: Define with
defvar.
Change-Id: If1c920ad275a9386ec7bb9e48e9a132df98dee97
* guix/scripts/download.scm (git-download-to-store*): Add new variable.
(copy-recursively-without-dot-git): New variable.
(git-download-to-file): Add new variable.
(show-help): Add 'git', 'commit', 'branch' and 'recursive'options
help message.
(%default-options): Add default value for 'git-reference' and
'recursive' options.
(%options): Add 'git', 'commit', 'branch' and 'recursive' command
line options.
(guix-download) [hash]: Compute hash with 'file-hash*' instead of
'port-hash' from (gcrypt hash) module. This allows us to compute
hashes for directories.
* doc/guix.texi (Invoking guix-download): Add @item entries for
`git', `commit', `branch' and `recursive' options. Add a paragraph in
the introduction.
* tests/guix-download.sh: New tests. Move variables and trap definition
to the top of the file.
Change-Id: Ic2c428dca4cfcb0d4714ed361a4c46609339140a
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Currently connman has no main.conf as specified in 'man 5 connman.conf' which
would allow setting NetworkInterfaceBalcklist and other useful options.
This patch adds connman-general-configuration, serializes it and
passes to connmad with --config= flag.
All configuration fields are 'maybe-*' deliberately, to not disturb current
users and not require supporting configuration changes for connmand.
* gnu/services/networking.scm (<connman-general-configuration>): New
configuration record to represent main.conf for connmand.
(<connman-configuration>)[general-configuration]: New field.
(connman-shepherd-service): Honor it.
*doc/guix.texi (Networking Services): Add generated configuration.
Change-Id: I5d78f49e8b2d5e0b3cbd7b8b604e8a254b6397e8
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Recommended by Christian Miller.
* doc/guix.texi (Packages with Multiple Outputs): Replace 'a packages'
with 'a package'.
(Invoking guix time-machine): Don't assume knowledge and give an
explicit link to Back to the Future.
(Invoking guix pack): Remove doubled word.
(Build Systems): Same.
(Debugging Build Failures): 'inspect' is not a command to be run.
(Invoking guix import): Remove doubled word.
(Invoking guix size): Remove stray word.
(Invoking guix processes): Replace 'guix environment' with 'guix shell'.
(Base Services): Add missing word.
(Networking Setup): Adjust a/an usage.
(Networking Services): Remove stray symbol. Add space between two
words.
(Desktop Services): Remove stray symbol from example.
(Database Services): Document default postgresql version.
(Web Services): Adjust indentation.
(Audio Services): Add missing newline.
(Miscellaneous Services): Switch 'get' to 'gets'.
(Bootloader Configuration): Remove stray symbol.
(Secure Shell): Remove marks around accepted values.
(Installing Debugging Files): Replace 'is' with 'it'.
(Full-Source Bootstrap): Remove doubled word.
(Preparing to Use the Bootstrap Binaries): Same.
Change-Id: Ifbf2677dff7642c6531384145363d7611286e48b
In order to be able to provide decryption keys for the LUKS device, they need
to be available in the initial ram disk. However they cannot be stored inside
the usual initrd, since it is stored in the store and being a
world-readable (as files in the store are) is not a desired property for a
initrd containing decryption keys. This commit adds an option to load
additional initrd during the boot, one that is not stored inside the store and
therefore can contain secrets.
Since only grub supports encrypted /boot, only grub is modified to use the
extra-initrd. There is no use case for the other bootloaders.
* doc/guix.texi (Bootloader Configuration): Describe the new extra-initrd
field.
* gnu/bootloader.scm (<bootloader-configuration>): Add extra-initrd field.
* gnu/bootloader/grub.scm (make-grub-configuration): Use the extra-initrd
field.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: I995989bb623bb594ccdafbf4a1a6de941bd4189f
Requiring the user to input their password in order to unlock a device is not
always reasonable, so having an option to unlock the device using a key file
is a nice quality of life change.
* gnu/system/mapped-devices.scm (open-luks-device): Add #:key-file argument.
(luks-device-mapping-with-options): New procedure.
* doc/guix.texi (Mapped Devices): Describe the new procedure.
Change-Id: I1de4e045f8c2c11f9a94f1656e839c785b0c11c4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* doc/guix.texi (Invoking guix import): Mention '--allow-yanked'.
* guix/import/crate.scm (make-crate-sexp): Add yanked? argument. For
yanked packages, use the full version suffixed by "-yanked" for
generated variable names and add a comment and package property.
(crate->guix-package): Add allow-yanked? argument and if it is set to #t,
allow importing yanked crates if no other version matching the
requirements exists.
[find-package-version]: Packages previously marked as yanked are only
included if allow-yanked? is #t and then take the lowest priority.
[find-crate-version]: If allow-yanked? is #t, also consider yanked
versions with the lowest priority.
[dependency-name+version]: Rename to ...
[dependency-name+version+yanked] ...this. Honor allow-yanked? and choose
between an existing package and an upstream package. Exit with an error
message if no version fulfilling the requirement is found.
[version*]: Exit with an error message if the crate version is not found.
(cargo-recursive-import): Add allow-yanked? argument.
* guix/read-print.scm: Export <comment>.
* guix/scripts/import/crate.scm: Add "--allow-yanked".
* tests/crate.scm: Add test 'crate-recursive-import-only-yanked-available'.
[sort-map-dependencies]: Adjust accordingly.
[remove-yanked-info]: New variable.
Adjust test 'crate-recursive-import-honors-existing-packages'.
(test-bar-dependencies): Add yanked dev-dependencies.
(test-leaf-bob-crate): Add yanked versions.
(rust-leaf-bob-3.0.2-yanked): New variable.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I175d89b39774e6b57dcd1f05bf68718d23866bb7
If --recursive-dev-dependencies is specified, development dependencies
are also included for all recursively imported packages.
* doc/guix.texi (Invoking guix import): Mention --recursive-dev-dependencies.
* guix/import/crate.scm (crate-recursive-import): Add
recursive-dev-dependencies? argument.
* guix/scripts/import/crate.scm (show-help, guix-import-crate): Add
"--recursive-dev-dependencies".
* tests/crate.scm: Test both #f and #t for #:recursive-dev-dependencies?
in the 'cargo-recursive-import' test.
(test-root-dependencies): Add intermediate-c as dev-dependency.
(test-intermediate-c-crate, test-intermediate-c-dependencies): New
variables.
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: Iae89794681155d77f128733120e60f03bc297717
Having a timeout seems generally preferable as it makes sure build slots
are not kept busy for no good reason (few package builds, if any, are
expected to exceed these values).
* nix/libstore/globals.cc (Settings::Settings): Change ‘maxSilentTime’
and ‘buildTimeout’.
* gnu/services/base.scm (<guix-configuration>)[max-silent-time]
[timeout]: Change default values.
* doc/guix.texi (Invoking guix-daemon, Base Services): Adjust
accordingly.
Change-Id: I25c50893f3f7fcca451b8f093d9d4d1a15fa58d8
'M-x debbugs-gnu' does not prompt for which bugs to show.
'C-u M-x debbugs-gnu' would.
Follow-up to 19fe24c5b9.
* doc/contributing.texi (Viewing Bugs within Emacs): Make comment
more accurate.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* doc/guix.texi (Virtualization Services): Document the necessity of being
part of the "libvirt" group and augment example. Remove extraneous
"(unix-sock-group "libvirt")" from example, as this is now the default value.
Update default documented value from "root" to "libvirt".
Fixes: https://issues.guix.gnu.org/34611
Reported-by: Brett Gilio <brettg@posteo.net>
Change-Id: I5fe17706f69db55fbd661e0a43115c56d0ffd9a9
This adds a set of home Shepherd services which will start the required
services for a functional PipeWire setup.
* gnu/home/services/sound.scm (home-pipewire-shepherd-service,
home-wireplumber-shepherd-service, home-pipewire-shepherd-services,
home-pipewire-asoundrc, home-pipewire-xdg-configuration,
home-pipewire-pulseaudio-shepherd-service): New procedures.
(home-pipewire-service-type): New service type.
(home-pipewire-configuration): New struct.
(home-pipewire-disable-pulseaudio-auto-start): New variable.
* doc/guix.texi (Sound Home Services): Document it.
Change-Id: I99e0ae860de91d459c3c554ec5503bf35f785a2a
Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
This has been effectively replaced by the bffe.
* gnu/services/guix.scm (<guix-data-service-configuration>): Remove record
type.
(guix-build-coordinator-queue-builds-shepherd-services,
guix-build-coordinator-queue-builds-activation,
guix-build-coordinator-queue-builds-account): Remove procedures
(guix-build-coordinator-queue-builds-service-type): Remove service type.
Change-Id: I2a233fb10b12cc9bfddebaa35928b25c243f82a2
* gnu/services/base.scm (guix-machines-files-installation): Handle
machines being a mixed list of build-machines and lists of
build-machines.
* doc/guix.texi (Base Services): Document it.
Change-Id: Ie404562ca0b564413233c3a624046da831893dc3
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
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>
The udev-configuration record now has a hardware field.
The contents of the /etc/udev directory now includes hwdb.bin, which is
computed when the system is instanciated (prior to system activation). The
hardware description files used to generate hwdb.bin are not installed in
/etc, because they are not required at run-time.
The documentation has been reworked so as to explain why creating udev rules
or hardware needs helper functions for configuration or extension.
* gnu/services/base.scm (udev-hardware): New function.
(file->udev-hardware): New function.
(udev-hardware-service): New function.
(udev-etc): Add hwdb.d and hwdb.bin.
(module): Export udev-hardware, file->udev-hardware, and udev-hardware-service.
(<udev-configuration>): Add the native-udev field.
(udev-service-type) [extend]: Populate the hardware field.
* doc/guix.texi (Base Services)[udev-service-type]: Explain configuration and
extension values.
* doc/guix.texi (Base Services)[udev-hardware]: Document it.
[udev-hardware-service]: Same.
* doc/guix.texi (Base Services)[udev-configuration]: Document the native-udev
field.
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>
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>
* 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>
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>
The goal is to make it easier to diagnose substitute
misconfiguration (where we’re passing a substitute URL whose
corresponding key is not authorized).
Suggested by Emmanuel Agullo.
* guix/scripts/weather.scm (check-narinfo-authorization): New procedure.
(report-server-coverage): Use it.
* doc/guix.texi (Invoking guix weather): Document it.
(Getting Substitutes from Other Servers): Add “Troubleshooting” frame.
Change-Id: I0a049c39eefb10d6a06634c8b16aa86902769791
On foreign distros, not using pre-inst-env when using git-send-email results
in a backtrace ending with: no code for module (guix ui)
This can be confusing as users did not have to use pre-inst-env to use
git-send-email before.
* doc/contributing.texi (Sending a Patch Series): add a note to suggest using
pre-inst-env when calling git-send-email on foreign distros.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* doc/guix.texi (Networking Services): Update the sample yggdrasil-private.conf.
Remove obsolete options that may contain a file whose path is specified in the
config-file field of yggdrasil-configuration.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
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.
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.
* 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.
* 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>
* 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.
* 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
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.
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>
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>
Geiser now has support locating the project root and adding it to the load
path without external help; leverage it.
* .dir-locals.el [nil]: Remove obsolete Geiser configuration. Set the
geiser-repl-per-project-p variable to t.
* doc/contributing.texi (The Perfect Setup): No longer mention explicitly
setting the geiser-guile-load-path; instead mention the effect of the
.dir-locals.el file.
Reported-by: Wolf <wolf@wolfsden.cz>