Commit Graph

1879 Commits

Author SHA1 Message Date
Maxim Cournoyer b460ba7992
bootloader: grub: Allow booting from a Btrfs subvolume.
* gnu/bootloader/grub.scm (strip-mount-point): Remove procedure.
(normalize-file): Add procedure.
(grub-configuration-file): New BTRFS-SUBVOLUME-FILE-NAME parameter.  When
defined, prepend its value to the kernel and initrd file names, using the
NORMALIZE-FILE procedure.  Adjust the call to EYE-CANDY to pass the
BTRFS-SUBVOLUME-FILE-NAME argument.  Normalize the KEYMAP file as well.
(eye-candy): Add a BTRFS-SUBVOLUME-FILE-NAME parameter, and use it, along with
the NORMALIZE-FILE procedure, to normalize the FONT-FILE and IMAGE nested
variables.  Adjust doc.
* gnu/bootloader/depthcharge.scm (depthcharge-configuration-file): Adapt.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Likewise.
* gnu/system/file-systems.scm (btrfs-subvolume?)
(btrfs-store-subvolume-file-name): New procedures.
* gnu/system.scm (operating-system-bootcfg): Specify the Btrfs
subvolume file name the store resides on to the
`operating-system-bootcfg' procedure, using the new
BTRFS-SUBVOLUME-FILE-NAME argument.
* doc/guix.texi (File Systems): Add a Btrfs subsection to document the use of
subvolumes.
* gnu/tests/install.scm (%btrfs-root-on-subvolume-os)
(%btrfs-root-on-subvolume-os-source)
(%btrfs-root-on-subvolume-installation-script)
(%test-btrfs-root-on-subvolume-os): New variables.
2020-05-20 08:30:35 -04:00
Maxim Cournoyer fa35fb58c8
file-systems: Add helpers for parsing the options string into an alist.
* gnu/system/file-systems.scm (file-system-options->alist)
(alist->file-system-options): New procedures.
* tests/file-systems.scm: New tests.
* doc/guix.texi (File Systems): Add note about the newly added procedures.
2020-05-20 08:30:34 -04:00
Maxim Cournoyer 281d80d8e5
linux-boot: Refactor boot-system.
The --root option can now be omitted, and inferred from the root file system
declaration instead.

* gnu/build/file-systems.scm (canonicalize-device-spec): Extend to support NFS
directly, and...
* gnu/build/linux-boot.scm (boot-system): ...remove NFS special casing from
here.  Remove nested definitions for root-fs-type, root-fs-flags and
root-fs-options, and bind those inside the let* instead.  Make "--root" take
precedence over the device field string representation of the root file
system.
* doc/guix.texi (Initial RAM Disk): Document that "--root" can be left
unspecified.
2020-05-20 08:30:34 -04:00
Ekaitz Zarraga 9a27d84b7a
guix describe: Add '--list-formats'
* guix/scripts/describe.scm (%available-formats): New variable.
(list-formats): New procedure.
(%options, show-help): Add --list-formats
* doc/guix.texi: Add --list-formats

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-05-18 15:08:58 +02:00
Julien Lepiller e39b857d74
doc: meson-build-system: Fix build type documentation.
* doc/guix.texi (Build Systems): Fix meson build system description.
2020-05-17 03:28:49 +02:00
zimoun 6d85945156
doc: Reword "The GCC toolchain".
Fix commit 1f14e25c19
as discussed in <https://bugs.gnu.org/41038>.

* doc/guix.texi (Packages for C Development): Rename to...
(The GCC toolchain): ...this. Add gfortran-toolchain.
(Invoking guix package): Add guix-search anchor.
(Application Setup)[The GCC toolchain]: Remove.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-05-16 19:54:52 +02:00
Tobias Geerinckx-Rice 1a1faa78b0
etc: Add a systemd unit to bind-mount @storedir@ read-only.
* 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.
2020-05-16 15:37:41 +02:00
Ludovic Courtès 644cb40cd8
gexp: Add 'let-system'.
* 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.
2020-05-16 00:34:41 +02:00
Ludovic Courtès 6456232164
pack: Add relocation via ld.so and fakechroot.
* 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.
2020-05-14 17:21:27 +02:00
Ludovic Courtès fde2aec3f4
pack: Wrapper honors 'GUIX_EXECUTION_ENGINE' environment variable.
* 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'.
2020-05-14 17:21:27 +02:00
Brice Waegeneire 15014dc618
doc: Mention guix-daemon's 'https_proxy' environment variable.
* doc/guix.texi (Proxy Settings, Derivations): Mention 'https_proxy'.
2020-05-13 10:53:11 +02:00
nikita 3c986a7dc2
mailmap: Update entries for Nikita.
* .mailmap: change email and name for Nikita.
* Makefile.am, doc/guix.texi, etc/completion/fish/guix.fish,
gnu/packages/accessibility.scm, gnu/packages/admin.scm,
gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm,
gnu/packages/check.scm, gnu/packages/cinnamon.scm,
gnu/packages/compression.scm, gnu/packages/crypto.scm,
gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm,
gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm,
gnu/packages/enlightenment.scm, gnu/packages/erlang.scm,
gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm,
gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm,
gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm,
gnu/packages/gtk.scm, gnu/packages/guile-wm.scm, gnu/packages/guile-xyz.scm,
gnu/packages/haskell-apps.scm, gnu/packages/haskell-check.scm,
gnu/packages/haskell-crypto.scm, gnu/packages/haskell-xyz.scm,
gnu/packages/haskell.scm, gnu/packages/image-viewers.scm,
gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm,
gnu/packages/libcanberra.scm, gnu/packages/linux.scm,
gnu/packages/lisp-xyz.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm,
gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm,
gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm,
gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm,
gnu/packages/ncurses.scm, gnu/packages/networking.scm,
gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm,
gnu/packages/perl-check.scm, gnu/packages/perl.scm,
gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm,
gnu/packages/python-web.scm, gnu/packages/python-xyz.scm,
gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm,
gnu/packages/rust.scm, gnu/packages/scheme.scm,
gnu/packages/serialization.scm, gnu/packages/shells.scm,
gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm,
gnu/packages/telephony.scm, gnu/packages/text-editors.scm,
gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm,
gnu/packages/tor.scm, gnu/packages/version-control.scm,
gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm,
gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm,
gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm,
gnu/services/desktop.scm, gnu/services/version-control.scm,
gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Likewise.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2020-05-13 09:30:26 +03:00
Ludovic Courtès 88a96c568c
guix graph: Add '--path'.
* guix/scripts/graph.scm (display-path): New procedure.
(%options, show-help): Add '--path'.
(guix-graph): Handle it.
* tests/guix-graph.sh: Add tests.
* doc/guix.texi (Invoking guix graph): Document it.
(Invoking guix size): Mention it.
2020-05-11 23:30:55 +02:00
Ludovic Courtès c2b2c19a7b
doc: Mention xdot.
* 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.
2020-05-11 23:30:54 +02:00
Marius Bakke 4bdf4182fe
Merge branch 'core-updates' 2020-05-08 21:40:51 +02:00
Nicolas Goaziou 9ce89e597e
doc: Use @option for command-line options
* doc/guix.texi (Invoking guix system): Use @option instead of @code.
2020-05-07 13:59:38 +02:00
Ludovic Courtès d6c43d7bc1
guix system: 'docker-image' honors '--network'.
* 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.
2020-05-07 12:55:14 +02:00
Nicolas Goaziou f45baa4a0a
doc: Tiny markup fix.
* doc/guix.texi (Substitute Authentication): Use @samp instead of @code for
pseudo-code.
2020-05-07 11:55:02 +02:00
Nicolas Goaziou 82426f4d4a
doc: Remove markup for external package names.
* doc/guix.texi (Invoking guix import): Remove markup, which is not warranted
here.
2020-05-07 11:49:07 +02:00
Nicolas Goaziou 13b0777f25
doc: Use @file instead of @code also for file extensions.
* doc/guix.texi (Defining Packages):
(Build Systems):
(Derivations):
(Invoking guix import):
(Printing Services):
(Installing Debugging Files):
(Preparing to Use the Bootstrap Binaries): Use @file instead of @code.
2020-05-07 11:47:13 +02:00
Nicolas Goaziou 7ebe3163d6
doc: Use @env for environment variables.
* doc/guix.texi (Binary Installation):
(Build Environment Setup):
(Invoking guix-daemon):
(Application Setup):
(After System Installation):
(Invoking guix package):
(Proxy Settings):
(Invoking guix environment):
(Packages for C Development):
(Package Modules):
(Build Systems):
(The Store):
(Common Build Options):
(Invoking guix download):
(Invoking guix refresh):
(Using the Configuration System):
(Locales):
(Base Services):
(Networking Services):
(Sound Services):
(Continuous Integration):
(PAM Mount Service):
(X.509 Certificates): Use @env instead of @code for environment variables.
2020-05-07 11:42:12 +02:00
Nicolas Goaziou a87c90862c
doc: Use @option instead of @code.
* doc/guix.texi (Binary Installation):
(Requirements):
(Build Environment Setup):
(Invoking guix-daemon):
(Application Setup):
(Invoking guix package):
(Substitute Server Authorization):
(Substitution Failure):
(Invoking guix gc):
(Invoking guix pull):
(Invoking guix archive):
(Invoking guix environment):
(Invoking guix pack):
(Defining Packages):
(Build Systems):
(The Store):
(Invoking guix build):
(Common Build Options):
(Package Transformation Options):
(Additional Build Options):
(Debugging Build Failures):
(Invoking guix edit):
(Invoking guix import):
(Invoking guix refresh):
(Invoking guix lint):
(Invoking guix publish):
(Invoking guix challenge):
(Base Services):
(Virtualization Services):
(Initial RAM Disk):
(Invoking guix system):
(Preparing to Use the Bootstrap Binaries):
(Porting): Use @option instead of @code for command-line options.
2020-05-07 11:21:31 +02:00
Pierre Neidhardt caf90167fb
doc: Fix typo in container example.
* doc/guix.texi (Invoking `guix environment'): Fix sll -> ssl typo.
2020-05-07 10:37:11 +02:00
Pierre Neidhardt 60131df02b
doc: Add container example to run a web browser.
* 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.
2020-05-07 10:04:14 +02:00
Marius Bakke c263cfdcde
Merge branch 'master' into core-updates 2020-05-06 23:37:40 +02:00
Brice Waegeneire 2f93615670
doc: Clarify 'git-http-configuration' description.
Fix <https://issues.guix.info/31780>.

* doc/guix.texi (Version Control Service): Extend
'git-http-configuration' description.
2020-05-06 11:03:43 +02:00
Marius Bakke 87a40d7203
Merge branch 'master' into core-updates 2020-05-05 20:43:21 +02:00
Nicolas Goaziou 826c2eecbe
doc: Typographic improvements.
* doc/guix.texi (Networking Services): Use @var, @option, and @command when
appropriate.  Add two spaces after sentences.
2020-05-05 16:38:29 +02:00
pinoaffe 051f3254cd
gnu: Add AutoSSH service.
* gnu/services/ssh.scm (<autossh-configuration>): New record type.
(autossh-service-type): New variable.
(autossh-service-activation, autossh-file-name): New procedures.
* doc/guix.texi (Networking Services): Document this.

Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2020-05-05 15:32:40 +03:00
Ludovic Courtès 9dbc7f50ab
doc: Remove prompt from X.509 examples.
* doc/guix.texi (X.509 Certificates): Remove leading "$".
2020-05-04 23:07:57 +02:00
Ludovic Courtès 1f14e25c19
doc: Add "Packages for C Development" section.
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.
2020-05-04 10:50:18 +02:00
Marius Bakke 50e6c1bf2e
Merge branch 'master' into core-updates 2020-05-02 17:31:28 +02:00
Pierre Langlois 5a0b78e62b
services: dnsmasq: Support the --address flag.
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>
2020-05-02 13:00:24 +08:00
Marius Bakke a2522c5da3
doc: Update initrd section to refer to the right Guile variable.
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".
2020-05-01 22:34:22 +02:00
Brice Waegeneire dc6eec77a5
doc: Move 'Dictionary Service' under 'Miscellaneous Services'.
* doc/guix.texi (Dictionary Service): Renamed to singular and changed
from 'subsubsection' to 'subheading'.

Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
2020-05-01 16:40:42 +02:00
Brice Waegeneire c316b85692
doc: Replace section 'Early OOM service' by 'Linux Services'.
* doc/guix.texi (Linux Services): Changed from 'subsubheading' to
'subsection'.
(Early OOM Service, Kernel Module Loader Service): Moved under 'Linux
Services'.

Signed-off-by: Mathieu Othacehe <m.othacehe@gmail.com>
2020-05-01 16:40:41 +02:00
Florian Pelz e06664da02
system: Blacklist usbmouse kernel module in default kernel-arguments.
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.
2020-05-01 08:46:59 +00:00
Leo Famulari 6c7a39c45e
doc: Bootloader Configuration: Fix an obsolete example.
Reported by rawmat on #guix.

* doc/guix.texi (Bootloader Configuration): Replace 'grub-configuration' with
'bootloader-configuration'.
2020-04-30 17:22:01 -04:00
Diego Nicola Barbato e4aa9ab637
doc: Mention that PulseAudio service overrides user configuration.
* doc/guix.texi (Sound Services): Add a warning that 'pulseaudio-service-type'
  overrides per-user configuration files in '~/.config/pulse'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-04-28 23:28:17 +02:00
operator.name 619f9181a3
doc: Update url to singularity before link rot occurs.
* doc/guix.texi: Update url to singularity before link rot occurs.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-04-27 23:29:40 +02:00
TomZ f4f4aa628a
doc: guix: Fix grammar in "Debugging Build Failures"
* doc/guix.texi (Debugging Build Failures): Fix grammar.

Signed-off-by: Jakub Kądziołka <kuba@kadziolka.net>
2020-04-27 18:24:19 +02:00
Nicolas Goaziou d558de8048
doc: guix: Fix some markup.
* doc/guix.texi (Build Systems):
(Base Services):
(X Window):
(Printing Services):
(Mail Services):
(Messaging Services):
(LDAP Services):
(Virtualization Services):
(Version Control Services): Use @samp, @code and double quotes where
appropriate.
2020-04-25 23:35:44 +02:00
Raghav Gururajan 5483a2d0a9
gnu: font-gnu-freefont: Add otf and woff font types.
* 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>
2020-04-22 17:59:44 -04:00
Ludovic Courtès 9475c631a7
doc: Adjust @var vs. @code.
* doc/guix.texi (Base Services): Adjust @var vs. @code.  Use 'cons'
instead of 'cons*' in example.
2020-04-22 19:23:58 +02:00
Brice Waegeneire 2b0c0d9301
services: Add udev-rules-service helper.
* doc/guix.texi (Base services): Add documentation for
'udev-rules-service'. Replace examples of 'udev-service-type' extension
with 'udev-rules-service'.
* gnu/services/base.scm (udev-rules-service): New procedure.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-04-22 19:23:58 +02:00
Ludovic Courtès 34faf63ebc
gexp: Add 'load-path?' field to <scheme-file>.
* 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.
2020-04-22 19:23:57 +02:00
Ludovic Courtès c8d8f6160e
packages: Recommend against the use of 'package-file'.
* guix/packages.scm (package-file): Recommend against its use in the
docstring.
* doc/guix.texi (The Store Monad): Likewise.
2020-04-21 00:06:40 +02:00
Ludovic Courtès 5e7076f2a5
services: Add 'simulated-wifi-service-type'.
* gnu/services/networking.scm (simulated-wifi-shepherd-services): New
procedure.
(simulated-wifi-service-type): New variable.
* doc/guix.texi (Networking Services): Document it.
2020-04-19 23:50:17 +02:00
Ludovic Courtès a03943ec00
services: Add 'hostapd-service-type'.
* 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.
2020-04-19 23:50:17 +02:00
Ludovic Courtès 40c6b1802c
doc: Make install script more prominent.
Suggested by Steven vanZyl <rushsteve1@rushsteve1.us>.

* doc/guix.texi (Binary Installation): Add @example showing how to
download the script.  Use "systemctl enable --now".
2020-04-19 13:27:07 +02:00