Commit graph

1582 commits

Author SHA1 Message Date
Ludovic Courtès
14328b81a2
guix build: Transformation options match packages by spec.
This allows us to combine several transformations on a given package, in
particular '--with-git-url' and '--with-branch'.

Previously transformations would ignore each other since they would all
take (specification->package SOURCE) as their replacement source,
compare it by identity, which doesn't work if a previous transformation
has already changed SOURCE.

* guix/scripts/build.scm (evaluate-replacement-specs): Adjust to produce
an alist as expected by 'package-input-rewriting/spec', with a package
spec as the first element of each pair.
(evaluate-git-replacement-specs): Likewise.
(transform-package-inputs):  Adjust accordingly and use
'package-input-rewriting/spec'.
(transform-package-inputs/graft): Likewise.
(transform-package-source-branch, transform-package-source-commit): Use
'package-input-rewriting/spec'.
(transform-package-source-git-url): Likewise, and adjust the
REPLACEMENTS alist accordingly.
(options->transformation): Iterate over OPTS instead of over
%TRANSFORMATIONS.  Invoke transformations one by one.
* tests/scripts-build.scm ("options->transformation, with-input"):
Adjust test to compare packages by name rather than by identity.
("options->transformation, with-git-url + with-branch"): New test.
2019-03-17 22:55:01 +01:00
Ludovic Courtès
f258d88628
packages: Add 'package-input-rewriting/spec'.
* guix/packages.scm (package-input-rewriting/spec): New procedure.
* tests/packages.scm ("package-input-rewriting/spec")
("package-input-rewriting/spec, partial match"): New tests.
* doc/guix.texi (Defining Packages): Document it.
2019-03-17 22:55:01 +01:00
Ludovic Courtès
880916ac52
guix build: Add '--with-git-url'.
* guix/scripts/build.scm (%not-equal): New variable.
(evaluate-git-replacement-specs): Use it instead of local variable
'not-equal'.
(transform-package-source-git-url): New procedure.
(%transformations): Add 'with-git-url'.
(%transformation-options, show-transformation-options-help): Add
'--with-git-url'.
* tests/scripts-build.scm ("options->transformation, with-git-url"):
New test.
2019-03-17 22:55:01 +01:00
nixo
c71b7b5b37
services: mpd: add more configuration options
* gnu/services/audio.scm (<mpd-configuration>): Add 'db-file', 'state-file'
  and 'sticker-file' fields.
* doc/guix.texi (Music Player Daemon): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-03-15 23:27:59 +01:00
Ludovic Courtès
99aec37a78
pack: "-RR" produces PRoot-enabled relocatable binaries.
* gnu/packages/aux-files/run-in-namespace.c (exec_with_proot): New
function.
(main): When 'clone' fails, call 'rm_rf'.
[PROOT_PROGRAM]: When 'clone' fails, call 'exec_with_proot'.
* guix/scripts/pack.scm (wrapped-package): Add #:proot?.
[proot]: New procedure.
[build]: Compile with -DPROOT_PROGRAM when PROOT? is true.
* guix/scripts/pack.scm (%options): Set the 'relocatable?' value to
'proot when "-R" is passed several times.
(guix-pack): Pass #:proot? to 'wrapped-package'.
* tests/guix-pack-relocatable.sh: Use "-RR" on Intel systems that lack
user namespace support.
* doc/guix.texi (Invoking guix pack): Document -RR.
2019-03-15 23:27:59 +01:00
Leo Famulari
e3900a4d64
build-system/go: Build with a filesystem union of Go dependencies.
This basically changes (guix build-system go) so that instead of looking
up its dependencies in a list of directories in $GOPATH, all the
Go dependencies are symlinked into a single directory.

Fixes <https://bugs.gnu.org/33620>.

* guix/build/go-build-system.scm (setup-go-environment): New variable.
(setup-environment, install-source): Remove variables.
(unpack): Unpack the source relative to $GOPATH.
(install): Do not install the compiled objects in the 'pkg' directory.
Install the source code in this phase, and only install the source of
the package named by IMPORT-PATH.
* doc/guix.texi (Build Systems): Adjust accordingly.
* gnu/packages/docker.scm (docker): Import (guix build union) on the build side
and adjust to build phase name changes in (guix build-system go).
* gnu/packages/shellutils.scm (direnv): Likewise.
* gnu/packages/databases.scm (mongo-tools)[arguments]:
Set '#:install-source #f'.
* gnu/packages/music.scm (demlo)[arguments]: Move the 'install-scripts'
phase after the 'install' phase.
2019-03-14 15:34:26 -04:00
Ludovic Courtès
e1c15e8b8e
doc: Document the graphical installer some more.
* doc/guix.texi (Preparing for Installation): Rewrite to specify the two
installation modes.
(Guided Graphical Installation): New node.
(Manual Installation): New node, with the former sections.
(After System Installation): New node.
* doc/images/installer-network.png, doc/images/installer-partitions.png,
doc/images/installer-resume.png: New files.
* doc/local.mk (dist_infoimage_DATA): Add them.
2019-03-13 23:12:43 +01:00
Ludovic Courtès
59e8044588
Remove traces of "GuixSD".
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove
mentions of "GuixSD".
* gnu/bootloader/grub.scm (install-grub-efi): Likewise.
* gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to
"Guix_image".
(initialize-hard-disk): Search for the "Guix_image" label.
* gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD".
* gnu/installer/newt/welcome.scm (run-welcome-page): Likewise.
* gnu/packages/audio.scm (supercollider)[description]: Likewise.
* gnu/packages/curl.scm (curl): Likewise.
* gnu/packages/emacs.scm (emacs): Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/julia.scm (julia): Likewise.
* gnu/packages/linux.scm (alsa-plugins): Likewise.
(powertop, wireless-regdb): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/polkit.scm (polkit): Likewise.
* gnu/packages/tex.scm (texlive-bin): Likewise.
* gnu/services/base.scm (file-systems->fstab): Likewise.
* gnu/services/cups.scm (%cups-activation): Likewise.
* gnu/services/mail.scm (%dovecot-activation): Likewise.
* gnu/services/messaging.scm (prosody-configuration)[log]: Likewise.
* gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise.
* gnu/system/install.scm (installation-os)[file-systems]: Change root
file system label to "Guix_image".
* gnu/system/mapped-devices.scm (check-device-initrd-modules):
Remove "GuixSD".
* gnu/system/vm.scm (system-docker-image): Likewise.
(system-disk-image)[root-label]: Change to "Guix_image".
* gnu/tests/install.scm (run-install): Remove "GuixSD".
* guix/modules.scm (guix-module-name?): Likewise.
* nix/libstore/optimise-store.cc: Likewise.
2019-03-13 23:12:43 +01:00
Ludovic Courtès
13f62aef2d
maint: Change Guix System file names from guixsd-*.
* Makefile.am (GUIXSD_SUPPORTED_SYSTEMS): Rename to...
(GUIX_SYSTEM_SUPPORTED_SYSTEMS): ... this.
(GUIXSD_VM_SYSTEMS): Rename to...
(GUIX_SYSTEM_VM_SYSTEMS): ... this.
(GUIXSD_IMAGE_BASE): Rename to...
(GUIX_SYSTEM_IMAGE_BASE): ... this.  Change "guixsd-" to "guix-system-".
(GUIXSD_VM_IMAGE_BASE): Rename to...
(GUIX_SYSTEM_VM_IMAGE_BASE): ... this.  Change "guixsd-" to
"guix-system-".
(release): Adjust accordingly.
* doc/guix.texi (USB Stick and DVD Installation)
(Installing Guix in a VM, Invoking guix system)
(Running Guix in a VM): Adjust file names accordingly.
2019-03-13 23:12:43 +01:00
Julien Lepiller
61ce2e77ff
nls: Update 'de' translation of the manual. 2019-03-12 18:57:00 +01:00
Ludovic Courtès
082c648d28
services: mate-desktop: Deprecate the 'mate-desktop-service' procedure.
* gnu/services/desktop.scm (mate-desktop-service): Deprecate.
* doc/guix.texi (Desktop Services): Document 'mate-desktop-service-type'
and 'mate-desktop-configuration'.  Fix spelling of "Enlightenment".
2019-03-11 23:12:26 +01:00
Ludovic Courtès
910aaa3b86
doc: Document references.
Suggested by "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de>.
Fixes <https://bugs.gnu.org/34574>.

* doc/guix.texi (Derivations): Document references.
2019-03-08 12:31:37 +01:00
Ludovic Courtès
d40ec4a0d0
pack: Add '--save-provenance'.
* guix/scripts/pack.scm (show-help, %options): Add '--save-provenance'.
(guix-pack)[manifest-from-args]: Honor it.
* doc/guix.texi (Invoking guix pack): Document it.
2019-03-07 00:00:18 +01:00
Ludovic Courtès
dca5821958
environment: Rename '--inherit' to '--preserve'.
Suggested by Eric Bavier and Ricardo Wurmus.

* guix/scripts/environment.scm (show-help, %options): Emit a deprecation
warning for "--inherit" and add -E/--preserve.
* tests/guix-environment.sh: Adjust accordingly.
* doc/guix.texi (Invoking guix environment): Update accordingly.
2019-03-04 15:22:59 +01:00
Ludovic Courtès
c483c5c82c
doc: Better explain the 'password' field of <user-account>.
* doc/guix.texi (User Accounts): Provide an example use of 'crypt', and
mention the security implications.
2019-03-04 15:22:58 +01:00
Julien Lepiller
15f1bff4b6
nls: Update 'fr' translation of the manual. 2019-03-01 21:52:26 +01:00
Tobias Geerinckx-Rice
98808c8aed
doc: Fix typo.
* doc/guix.texi (Proceeding with the Installation): Fix typo.
2019-02-19 13:29:08 +01:00
Jan Nieuwenhuizen
24f11b06bb
services: xorg: Enable override of xserver-arguments.
* gnu/services/xorg.scm (xorg-start-command): Add parameter #:xserver-arguments.
* doc/guix.texi (X Window): Document it.
2019-02-17 08:48:49 +01:00
Ludovic Courtès
7af417502c
doc: '--inherit' option can be repeated.
* doc/guix.texi (Invoking guix environment): Mention that '--inherit'
can be repeated.
2019-02-17 00:04:56 +01:00
Christopher Baines
8b9a7b26c2
services: Improve the upower-service-type.
Add a description and default value. Switch the documentation to mention the
service-type and the configuration record, rather than the upower-service
procedure.

* gnu/services/desktop.scm (upower-service-type)[description, default-value]:
Define these fields.
(%desktop-services): Change (upower-service) to (service upower-service-type).
* doc/guix.texi (Desktop Services): Update the upower service documentation.
2019-02-16 22:05:15 +00:00
Ludovic Courtès
e6e599fa01
environment: Add '--inherit'.
* guix/scripts/environment.scm (purify-environment): Add 'white-list'
parameter and honor it.
(create-environment): Add #:white-list parameter and honor it.
(launch-environment): Likewise.
(launch-environment/fork): Likewise.
(show-help, %options): Add '--inherit'.
(guix-environment): Define 'white-list' and pass it to
'launch-environment/fork'.
* tests/guix-environment.sh: Test '--inherit'.
* doc/guix.texi (Invoking guix environment): Document it.
2019-02-16 01:00:08 +01:00
Ludovic Courtès
d423d6892a
doc: Add a "Development" chapter.
* doc/guix.texi (Managing Software the Guix Way): Add reference to the
"Development" section.
(Invoking guix environment, Invoking guix pack): Move to...
(Development): ... here.  New node.
2019-02-13 16:19:54 +01:00
Ludovic Courtès
499b166d1c
guix system: Add 'delete-generations'.
* guix/scripts/package.scm (delete-matching-generations): Export.
* guix/scripts/system.scm (show-help): Add 'delete-generations'.
(process-command): Honor it.
(guix-system): Support it.
* doc/guix.texi (Invoking guix system): Document it.
2019-02-13 16:19:54 +01:00
Chris Marusich
b0a372637f
doc: Clarify channel file structure.
Suggested by Hartmut Goebel <h.goebel@crazy-compilers.com>.

* doc/guix.texi (Channels): Clarify how a channel author should structure the
files in their channel's Git repository.
2019-02-12 21:39:38 -08:00
Ludovic Courtès
50a93adc05
Merge branch 'staging' 2019-02-09 15:14:59 +01:00
Ludovic Courtès
024a6bfba9
guix build: '--with-branch' & co. fetch submodules.
* guix/scripts/build.scm (transform-package-source-branch)[replace]: Add
'recursive?' field to the new package.
2019-02-08 10:41:13 +01:00
Ludovic Courtès
9c6124f829
doc: Mention flag to get an ISO image.
* doc/guix.texi (Building the Installation Image): Add
'--file-system-type=iso9660'.
2019-02-07 15:46:45 +01:00
Danny Milosavljevic
89339a35bd
doc: Document how to enable qemu binfmt service and how to use it.
* doc/contributing.texi (Submitting Patches): Document how to enable qemu
binfmt service and how to use it.

Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
2019-02-04 17:56:28 +01:00
Ludovic Courtès
f73ab814a5
doc: Show how to install Emacs, Guile, and Geiser.
* doc/contributing.texi (The Perfect Setup): Show "guix package -i"
command line.
2019-02-04 00:03:30 +01:00
Tobias Geerinckx-Rice
2049cbb326
doc: Update left-over references to lsh.
* doc/guix.texi (Using the Configuration System, Defining Services):
Refer to OpenSSH instead of lsh.
2019-02-01 17:39:51 +01:00
Marius Bakke
0747328e31
Merge branch 'master' into staging 2019-01-31 23:32:56 +01:00
Ludovic Courtès
796a4491fd
doc: Clarify 'sudo' vs. 'guix pull' and 'guix system reconfigure'.
* doc/guix.texi (Proceeding with the Installation): Clarify use of
"sudo" with "guix pull" and "guix system reconfigure".
2019-01-28 15:45:48 +01:00
Ludovic Courtès
280e9c2a26
doc: Update bit about GUIX_LD_WRAPPER_ALLOW_IMPURITIES.
This is a followup to d0a2db47fb.

* doc/guix.texi (Application Setup)[The GCC toolchain]: Adjust bit
about GUIX_LD_WRAPPER_ALLOW_IMPURITIES.
2019-01-26 00:06:55 +01:00
Ludovic Courtès
1379319fe7
doc: Switch from "GuixSD" to "Guix System".
* doc/guix.texi (Introduction): Add footnote about the change from
"GuixSD" to "Guix System".
Replace occurrences of "GuixSD" with "Guix System", "Guix", "system", or
other appropriate phrases.
2019-01-26 00:06:55 +01:00
Ludovic Courtès
9b104bfeef
doc: Make /dev/kvm note more visible.
Suggested by Giovanni Biscuolo <g@xelera.eu>.

* doc/guix.texi (Invoking guix system): Move note about /dev/kvm access
to the beginning of the 'vm' action description.
2019-01-26 00:06:55 +01:00
Ricardo Wurmus
02d38bd3a2
Merge branch 'master' into staging 2019-01-25 15:20:25 +01:00
Ludovic Courtès
bd414e273c
weather: Add '--coverage'.
* guix/scripts/weather.scm (show-help, %options): Add '--coverage'.
(package-partition-boundary, package->output-mapping)
(substitute-oracle, report-package-coverage-per-system)
(report-package-coverage): New procedures.
(guix-weather): Honor '--coverage'.
* doc/guix.texi (Invoking guix weather): Document it.
2019-01-25 14:06:37 +01:00
Pierre Neidhardt
b1c4dafbf1
doc: Replace some cons* with beginner-friendly (append (list ...)).
* doc/guix.texi (Base Services): Do it.
2019-01-23 18:01:16 +01:00
Pierre Neidhardt
286749bd44
doc: Correct EFI-specific system configuration details.
* doc/guix.texi (Preparing for Installation): /boot/efi is arbitrary.
Mention /boot/efi consistently.
(Proceeding with the Installation): Make it explicit that the EFI mount point
must both be mounted and be specified in the system configuration.
2019-01-23 18:01:16 +01:00
Ricardo Wurmus
5aaef5c5de
Merge branch 'master' into staging 2019-01-23 12:08:27 +01:00
Ludovic Courtès
ce6236f419
doc: Move "Package Modules" under "Programming Interface".
* doc/guix.texi (Package Modules): Move to...
(Programming Interface): ... here.  Turn into a section.
2019-01-22 23:04:06 +01:00
Ludovic Courtès
afe7408e19
doc: Move "Packaging Guidelines" under "Contributing".
* doc/guix.texi (Packaging Guidelines): Move to...
* doc/contributing.texi (Packaging Guidelines): ... here.  Turn into a
section.  Adjust references to "Contributing".
2019-01-22 23:04:06 +01:00
Ludovic Courtès
83db020506
doc: Move "System Installation" right after "Installation".
* doc/guix.texi (System Installation): Move right after "Installation".
2019-01-22 23:04:06 +01:00
Ludovic Courtès
b40de030d1
doc: Move sections under "GNU Distribution" one level higher.
* doc/guix.texi (Introduction): Add note about Guix System.
[Managing Software the Guix Way]: New section heading.
[GNU Distribution]: New subsection of "Introduction".  Mention "Guix
System" rather than "GuixSD" and update the list of supported systems.
(GNU Distribution): Remove as a chapter.
(System Installation, System Configuration, Documentation)
(Installing Debugging Files, Security Updates, Package Modules)
(Packaging Guidelines, Bootstrapping, Porting): Turn these sections
into chapters.
2019-01-22 23:04:05 +01:00
Ludovic Courtès
f9e8a12379
store: Rename '&nix-error' to '&store-error'.
* guix/store.scm (&nix-error): Rename to...
(&store-error): ... this, and adjust users.
(&nix-connection-error): Rename to...
(&store-connection-error): ... this, and adjust users.
(&nix-protocol-error): Rename to...
(&store-protocol-error): ... this, adjust users.
(&nix-error, &nix-connection-error, &nix-protocol-error): Define these
condition types and their getters as deprecrated aliases.
* build-aux/run-system-tests.scm, guix/derivations.scm,
guix/grafts.scm, guix/scripts/challenge.scm,
guix/scripts/graph.scm, guix/scripts/lint.scm,
guix/scripts/offload.scm, guix/serialization.scm,
guix/ssh.scm, guix/tests.scm, guix/ui.scm,
tests/derivations.scm, tests/gexp.scm, tests/guix-daemon.sh,
tests/packages.scm, tests/store.scm, doc/guix.texi: Adjust to use the
new names.
2019-01-21 23:09:55 +01:00
Ludovic Courtès
3e2d4e69c3
Merge branch 'master' into staging 2019-01-20 22:12:10 +01:00
Ricardo Wurmus
65cd70ce42
services: openssh: Add escape hatch.
* gnu/services/ssh.scm (<openssh-configuration>)[extra-content]: New field.
* doc/guix.texi (Networking Services): Document it.
2019-01-17 17:58:35 +01:00
Mathieu Othacehe
2e7addd20b
doc: Document the graphical installer.
* doc/guix.texi (Preparing for Installation): Mention the graphical installer.
2019-01-17 14:04:21 +01:00
Damien Cassou
61b7f97177
doc: Add missing parameter to guix system reconfigure
* doc/guix.texi (Proceeding with the Installation): Mention that
  /etc/config.scm must be passed as parameter and that root is needed.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-01-16 14:07:38 +01:00
Ludovic Courtès
2e04ab7147
services: avahi: Deprecate the 'avahi-service' procedure.
* gnu/services/avahi.scm (<avahi-configuration>): Export getters.  Add
default values.
(avahi-service-type)[default-value]: New field.
(avahi-service): Mark as deprecated.
* gnu/services/desktop.scm (%desktop-services): Use the 'service' form
instead of calling 'avahi-service'.
* gnu/tests/base.scm (%avahi-os): Likewise.
* doc/guix.texi (Base Services): Adjust example accordingly.
(Networking Services): Update accordingly.
2019-01-16 14:07:37 +01:00