* etc/gnu-store.mount.in: New file.
* nix/local.mk (nodist_systemdservice_DATA): Add it.
(etc/%.mount): New rule for it.
* etc/guix-install.sh (sys_enable_guix_daemon): Install it.
* doc/guix.texi (Binary Installation): Document it.
* .gitignore: Ignore changes to it.
* guix/gexp.scm (<system-binding>): New record type.
(let-system): New macro.
(system-binding-compiler): New procedure.
(default-expander): Add 'self-quoting?' case.
(self-quoting?): New procedure.
(lower-inputs): Add 'filterm'. Pass the result of
'mapm/accumulate-builds' through FILTERM.
(gexp->sexp)[self-quoting?]: Remove.
* tests/gexp.scm ("let-system", "let-system, target")
("let-system, ungexp-native, target")
("let-system, nested"): New tests.
* doc/guix.texi (G-Expressions): Document it.
* gnu/packages/aux-files/run-in-namespace.c (HAVE_EXEC_WITH_LOADER): New
macro.
(bind_mount): Rename to...
(mirror_directory): ... this. Add 'firmlink' argument and use it
instead of calling mkdir/open/close/mount directly.
(bind_mount, make_symlink): New functions.
(exec_in_user_namespace): Adjust accordingly.
(exec_with_loader) [HAVE_EXEC_WITH_LOADER]: New function.
(exec_performance): New function.
(engines): Add them.
* guix/scripts/pack.scm (wrapped-package)[fakechroot-library]
[audit-module]: New procedures.
[audit-source]: New variable.
[build](elf-interpreter, elf-loader-compile-flags): New procedures.
(build-wrapper): Use them.
* tests/guix-pack-relocatable.sh: Test with
'GUIX_EXECUTION_ENGINE=fakechroot'.
* doc/guix.texi (Invoking guix pack): Document the 'performance' and
'fakechroot' engines.
* gnu/packages/aux-files/pack-audit.c: New file.
* Makefile.am (AUX_FILES): Add it.
* gnu/packages/aux-files/run-in-namespace.c (struct engine): New type.
(exec_default): New function.
(engines): New variable.
(execution_engine): New function.
(main): Use it instead of calling 'exec_in_user_namespace' and
'exec_with_proot' directly.
* tests/guix-pack-relocatable.sh: Add test with 'GUIX_EXECUTION_ENGINE'.
* doc/guix.texi (Invoking guix pack): Document 'GUIX_EXECUTION_ENGINE'.
* doc/guix.texi (Invoking guix graph): Mention xdot. Remove a couple of
"| dot -Tpdf" in examples and add "| xdot".
(Invoking guix system): Likewise.
(Preparing to Use the Bootstrap Binaries): Likewise.
* gnu/system/vm.scm (system-docker-image): Add #:shared-network? and
pass it to 'containerized-operating-system'.
(qemu-image):
* guix/scripts/system.scm (system-derivation-for-action): Pass
#:shared-network? to 'system-docker-image'.
* doc/guix.texi (Invoking guix system): Document it.
* doc/guix.texi (Invoking `guix environment'): Add paragraph and example to
run Eolie in a guix environment container. Add `container' cindex for the
first container example, and the `certificates' cindex for the web browser
example.
Suggested by Bruno Haible <bruno@clisp.org>
in <https://bugs.gnu.org/41038>.
* doc/guix.texi (Packages for C Development): New node.
(Application Setup)[The GCC toolchain]: Empty and refer to it.
Fixes <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=40803>.
Reported by "operator.name" <operator.name@protonmail.com>.
* doc/build.scm (%languages): Add smaller list for the cookbook.
(syntax-highlighted-html): Adapt regexp for mono-node files to include
the cookbook.
Introduce a new `addresses' field that translates to passing `--address='
multiple times to dnsmasq.
* gnu/services/dns.scm (<dnsmasq-configuration>): Add an addresses field.
(dnsmasq-shepherd-service): Match the addresses field and translate it to
multiple '--address=' flags.
* doc/guix.texi (DNS Services): Document it.
Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
This is a follow-up to commit 57833803b4.
* doc/guix.texi (Initial RAM Disk): Refer to "%guile-3.0-static-stripped"
instead of "%guile-static-stripped".
* doc/guix.texi (Dictionary Service): Renamed to singular and changed
from 'subsubsection' to 'subheading'.
Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
This avoids a race with the bcm5974 kernel module.
Fixes <https://bugs.gnu.org/35574>.
* gnu/system.scm (%default-modprobe-blacklist): New variable.
(<operating-system>)[kernel-arguments]: Default to ...
(%default-kernel-arguments): ... this new variable.
* doc/guix.texi (operating-system Reference): Document the change.
* doc/guix-cookbook.texi (@samp{GUIX_PACKAGE_PATH}):
(Extended example):
(Setting up a bind mount):
(Basic setup with manifests):
(Default profile): Use @file instead of @samp or @code for file names and
extensions.
* doc/guix-cookbook.texi (Extended example):
(StumpWM):
(Basic setup with manifests): Prevent Texinfo from ending a sentence where it
should not.
(Setting up a bind mount): Add two spaces where needed.
* gnu/packages/fonts.scm (font-gnu-freefont): Add otf and woff font types.
* gnu/packages/genealogy.scm (gramps)[inputs]: Replace font-gnu-freefont-tff
with font-gnu-freefont.
* doc/guix.texi: Adjust a reference to the package.
Signed-off-by: Leo Famulari <leo@famulari.name>
* guix/gexp.scm (<scheme-file>)[load-path?]: New field.
(scheme-file): Add #:set-load-path? and honor it.
(scheme-file-compiler): Pass #:set-load-path? to 'gexp->file'.
* doc/guix.texi (G-Expressions): Document it.
* gnu/services/networking.scm (simulated-wifi-shepherd-services): New
procedure.
(simulated-wifi-service-type): New variable.
* doc/guix.texi (Networking Services): Document it.
* gnu/services/networking.scm (<hostapd-configuration>): New record
type.
(hostapd-configuration-file, hostapd-shepherd-services): New
procedures.
(hostapd-service-type): New variable.
* doc/guix.texi (Networking Services): Document it.
Suggested by Steven vanZyl <rushsteve1@rushsteve1.us>.
* doc/guix.texi (Binary Installation): Add @example showing how to
download the script. Use "systemctl enable --now".
This fixes a bug introduced in 362bcdb1b0
whereby the VM image would no longer contain /etc/config.scm, contrary
to what the manual says.
Reported by dbdude on #guix.
* Makefile.am (release): Pass '--save-provenance' to 'guix system
vm-image'.
* doc/guix.texi (Running Guix in a VM): Adjust file name accordingly.
@var is for meta-syntactic variables but it is used in some places for
mere variables, which is incorrect and leads to inconsistent layout in
PDF and HTML.
* doc/guix.texi (package Reference, The Store Monad)
(G-Expressions, operating-system Reference)
(File Systems, Base Services, Log Rotation)
(Networking Services, Invoking guix deploy): Replace incorrect uses of
@var with @code.
This allows us to catch "operating_002dsystem-1", for instance.
* doc/build.scm (syntax-highlighted-html)[build](anchor-id->key): Drop
"-1" & co. from ID.
This is a followup to da9deba13d.
Last-minute modification of the 'match' pattern would lead to an error:
"multiple ellipsis patterns not allowed at same level"
* doc/build.scm (syntax-highlighted-html)[build](collect-anchors):
Add 'worthy-entry?' procedure and use it instead of the unsupported
pattern for ('dt ...).
This makes it easier to jump to the definition of a procedure or
variable when looking at a code snippet. There can be false-positive
because scoping rules are ignored, for example, but it should be a good
approximation.
* doc/build.scm (syntax-highlighted-html)[build](highlights->sxml*): Add
'anchors' parameter. Add clause for ('symbol text).
(syntax-highlight): Add 'anchors' parameter. Wrap body in named let and
use it in recursive calls. Pass ANCHORS to 'highlights->sxml*'.
(underscore-decode, anchor-id->key, collect-anchors, html?): New procedures.
(process-file): Add 'anchors' parameter. and honor it.
Rewrite mono-node and multi-node HTML files separately.
Fixes <https://bugs.gnu.org/25569>.
Reported by Divan Santana <divan@santanas.co.za>.
* gnu/services/base.scm (shepherd-set-http-proxy-action): New procedure.
(guix-shepherd-service): Add 'actions' field. Change 'start' to a
lambda; check the value of the "http_proxy" environment variable and
add "http_proxy" and "https_proxy" to #:environment-variables as a
function of that.
* gnu/tests/base.scm (run-basic-test)["guix-daemon set-http-proxy
action", "guix-daemon set-http-proxy action, clear"]: New tests.
* doc/guix.texi (Base Services): Document it.
* gnu/services/base.scm (%base-services): Add an instance of
ROTTLOG-SERVICE-TYPE.
* doc/guix.texi (Log Rotation): Mention that it's part of
%BASE-SERVICES and change example.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.
* gnu/bootloader/grub.scm (keyboard-layout-file): Replace commas with
hyphens in the first argument to 'computed-file'.
* gnu/system/keyboard.scm (keyboard-layout->console-keymap): Likewise.
* doc/guix.texi (Keyboard Layout): Add example.
* doc/guix.texi (Linux Services): Add a new subsection and document the
new service and its configuration.
* gnu/services/linux.scm (kernel-module-loader-service-type): New type.
(kernel-module-loader-shepherd-service): New procedure.
* gnu/tests/linux-modules.scm (module-loader-program): Procedure
removed.
(modules-loaded?-program): New procedure.
(run-loadable-kernel-modules-test): 'module-loader-program' procedure
replaced by the new one.
[os]: Use 'kernel-module-loader-service'.
Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
Instead of accepting a string for just one protocol version accept a list of
supported versions.
* gnu/services/nfs.scm (<nfs-configuration>)[nfs-version]: Remove field and
replace...
[nfs-versions]: ...with this new field.
(nfs-shepherd-services): Pass as many "--nfs-version" options as there are
supported versions.
* doc/guix.texi (Network File System): Document nfs-versions.
* doc/guix.texi (Application Setup)[Emacs Packages]: No longer mention the
guix.d Elisp installation prefix. Do not treat the user profile specially, as
it is not special anymore.
(Build Systems): Document the correct Elisp installation prefix.
Exporting this variable allows reusing the default value of the `sudoers-file'
field when configuring it.
* gnu/system.scm (gnu): Export %sudoers-specification.
* doc/guix.texi (Invoking guix deploy): Document an example, to use with 'guix
deploy'.
* gnu/services/web.scm (<nginx-configuration>)[global-directives]: Add field.
(emit-global-directive): New procedure.
(default-nginx-config): Use it.
* doc/guix.texi (Web Services): Document it.
* guix/scripts/weather.scm (guix-weather)[package-list]: Account for all
the 'manifest entries in OPTS.
* doc/guix.texi (Invoking guix weather): Document it.
* guix/gexp.scm (<parameterized>): New record type.
(with-parameters): New macro.
(compile-parameterized): New gexp compiler.
* tests/gexp.scm ("with-parameters for %current-system")
("with-parameters for %current-target-system")
("with-parameters + file-append"): New tests.
* doc/guix.texi (G-Expressions): Document it.