Commit Graph

76957 Commits

Author SHA1 Message Date
Maxim Cournoyer 7a65beff0f
system: Add wget to %base-packages-networking.
Fixes <https://issues.guix.gnu.org/43530>.

Wget is typically included with most GNU/Linux distributions.  It adds about
~3 MiB to the system size.

* gnu/system.scm (%base-packages-networking): Add the wget package.
2021-05-07 17:20:41 -04:00
Maxim Cournoyer 3ab48ed6cd
gnu: system: Add SPICE capability to the VM image.
* gnu/system/examples/vm-image.tmpl (services)
[spice-vdagent-service-type]: Add service.
[slim-service-type] <xorg-configuration>: Add the xf86-video-qxl module.
2021-05-06 16:51:49 -04:00
Maxim Cournoyer b39c4e18f2
services: spice-vdagent: Clear the socket file prior to starting.
This fixes the following issue where spice-vdagent would fail to start if the
spice-vdagent-sock socket file already existed:

  spice-vdagentd: Fatal could not create the server socket
  /run/spice-vdagentd/spice-vdagent-sock: Error binding to address: Address
  already in use

The requirement is also modified to depend on dbus-system, a cue taken from
upstream's own systemd service file (see 'data/spice-vdagentd.service' in the
sources).

* gnu/services/spice.scm (spice-vdagent-activation): Delete procedure.
(spice-vdagent-shepherd-service): Fix indentation.
[requirement]: Replace udev by dbus-system.
[start]: Ensure the spice-vdagentd run-time directory exists and that the
spice-vdagent-sock socket file does *not* exist before forking the daemon.
2021-05-06 16:51:49 -04:00
Maxim Cournoyer a33afba4f1
gnu: spice-vdagent: Update to 0.21.0 and enable GTK+ support.
* gnu/packages/spice.scm (spice-vdagent): Update to 0.21.0.
Remove trailing #t.
[make-flags]: New argument.
[phases]{fix-test-termination}: New phase.
[inputs]: Add gtk+.
[native-inputs]{procps}: New input.
2021-05-06 16:51:49 -04:00
Ludovic Courtès 626e619590
swh: Adjust for compatibility with Guile 2.2's (web client).
Guile <= 2.2.7 did not support #:verify-certificate? so work around it.

* guix/swh.scm (http-get*, http-post*) [! guile-3]: Add variant for
Guile 2.2.
2021-05-05 23:44:48 +02:00
Ludovic Courtès 76c4646beb
gnu: guile2.2-guix: Add missing dependencies.
Reported by Maxime Devos <maximedevos@telenet.be>.

* gnu/packages/package-management.scm (guile2.2-guix)[inputs]
[propagated-inputs]: Add GUILE2.2-LIB, GUILE2.2-ZLIB, and
GUILE2.2-LZLIB.
2021-05-05 23:44:39 +02:00
Ludovic Courtès ca3780835f
gnu: guile-lzlib: Add Guile 2.2 variant.
* gnu/packages/guile.scm (guile2.2-lzlib): New variable.
2021-05-05 23:44:33 +02:00
Ludovic Courtès 3a3e62cc56
gnu: guile-zlib: Add Guile 2.2 variant.
* gnu/packages/guile.scm (guile2.2-zlib): New variable.
2021-05-05 23:44:28 +02:00
Maxim Cournoyer 6b0704339d
services: Fix the spice-vdagent service.
* gnu/services/spice.scm (spice-vdagent-activation): Update runtime directory
from /var/run/spice-vdagentd to /run/spice-vdagentd.
(spice-vdagent-service-type): Specify a default value and fix indentation.
2021-05-05 16:31:06 -04:00
Maxim Cournoyer b1b41a23f4
build: Do not compress the (already compressed) VM qcow2 images.
The qcow2 format supports compression, and the qcow2 type supported by 'guix
system image' produces compressed qcow2 images.

* Makefile.am (release): Do not re-compress the qcow2 VM images with xz.
* doc/guix.texi (Running Guix in a VM): Adjust VM image URL.
2021-05-05 16:31:06 -04:00
Maxim Cournoyer 6e71e71952
maint: Remove a workaround in Makefile.am.
This workaround was made obsolete by commit a23789bbbd, which prevented the PO
files from being spuriously updated upon running 'make'.

* Makefile.am (release) <git checkout>: Remove command.
2021-05-05 16:31:06 -04:00
Maxim Cournoyer 214b77b5e7
.gitignore: Ignore .tarball-ignore.
This file can be useful to fix a version string when experimenting with 'make
release'.

* .gitignore: Add a pattern to ignore .tarball-version.
2021-05-05 16:31:05 -04:00
Maxim Cournoyer ace6723946
doc: Update the OpenPGP key used to sign the release.
It was discussed on guix-devel that the manual only needs to have correct
instructions for the latest release.

* doc/guix.texi (OPENPGP-SIGNING-KEY-ID): Update to my public OpenPGP key.
(OPENPGP-SIGNING-KEY-URL): Adjust URL.
2021-05-05 11:26:26 -04:00
Maxim Cournoyer f40b0fa8e6
Revert "doc: Update to cover for an additional OpenPGP signing key."
This reverts commit b9fb13b284.  Per discussions
simply updating OPENPGP-SIGNING-KEY-ID and OPENPGP-SIGNING-KEY-URL will be
enough.
2021-05-05 11:25:24 -04:00
Maxim Cournoyer 74009c4cf0
guix-install.sh: Exit early if Guix is already installed.
* etc/guix-install.sh (sys_create_store): Move the check & exit before The
Guix binary archive is unpacked.  Re-indent tar extraction command.
2021-05-05 11:01:07 -04:00
Maxim Cournoyer 5b0ce3393b
guix-install.sh: Propose automatically fetching OpenPGP keys.
Via, for example, yes | ./guix-install.sh.

* etc/guix-install.sh (prompt_yes_no): New procedure.
(chk_gpg_keyring, sys_authorize_build_farms): Use it.
2021-05-05 11:01:07 -04:00
Maxim Cournoyer e61fe664a4
guix-install.sh: Please the shellcheck linter.
* etc/guix-install.sh <FUNCNAME>: Explicitly refer to the first item of the
FUNCNAME array.
(ROOT_HOME): Replace variable by ~root directly; manually expanding it via
echo was not necessary.
(chk_gpg_keyring): Use an if branch for the exit to avoid a warning about
expression precedence.
(chk_term) <ansi_term>: Remove unused variable.
(guix_get_bin) <wget, gpg>: Test the commands directly.  Use an array for the
wget arguments, which can then be properly expanded.
(sys_create_store): Disable SC1090 for the source command, as we don't care
about following the sourced script.
<_msg>: Reuse the GUIX_PROFILE variable in the message.
(sys_create_build_user) <getent>: Test the command directly.
2021-05-05 11:01:06 -04:00
Ludovic Courtès af66a9510f
gnu: guix: Phases refer to #:system, #:target, and #:native-inputs.
* gnu/packages/package-management.scm (guix)[arguments]: In
'copy-bootstrap-guile' and 'wrap-program' phases, refer to #:system,
 #:native-inputs, and #:target instead of unquoting (%current-system)
and (%current-target-system).
2021-05-05 12:08:28 +02:00
Ludovic Courtès c47f3fc135
gnu: guix: Avoid Bash wrapper.
The Bash wrapper created by 'wrap-program' creates an extra
indirection and may annoyingly emit locale warnings:

  /gnu/store/…-bash-minimal-5.0.16/bin/bash: warning: setlocale: LC_ALL: cannot change locale (wtf)

This warning would typically show up when running Guix, as produced by
'guix pack guix', on a foreign distro, annihilating efforts made in
1d4ab335b2 and
8a973abc6f.

* gnu/packages/package-management.scm (guix)[arguments]: In
'wrap-program' phase, remove 'string-join' call for PATH and GOPATH.
Replace 'wrap-program' call with a 'substitute*' form.  Remove (when
target ...) form.
[inputs]: Remove "bash-minimal" added in commit
38b9af7c92 and no longer needed.
2021-05-05 12:08:17 +02:00
Ludovic Courtès 72b7ea416b
gnu: guix: Add run-time dependency on Guile-Lib.
This is a followup to 02e2e093e8, which
added Guile-Lib as an input but did not add it to the wrapper's search
path.

* gnu/packages/package-management.scm (guix)[arguments]: In
'wrap-program' phase, add GUILE-LIB to DEPS.
2021-05-05 12:08:13 +02:00
Ludovic Courtès b37ab28401
Update NEWS. 2021-05-04 16:57:05 +02:00
Ludovic Courtès 2e4808465d
locale: Remove glibc 2.29 from '%default-locale-libcs'.
Having 2.29 is most likely no longer justified.  Removing it reduces the
closure size returned by:

  guix size $(guix system build gnu/system/install.scm)

from 1.6G to 1.5G.

* gnu/system/locale.scm (%default-locale-libcs): Remove GLIBC-2.29.
2021-05-04 14:19:11 +02:00
Maxim Cournoyer 0f583f60f8
doc: Update to cover for an additional OpenPGP signing key.
The upcoming 1.3.0 release will be signed with my OpenPGP key; subsequent
releases may also be.

* doc/guix.texi (OPENPGP-SIGNING-KEY-ID, OPENPGP-SIGNING-KEY-URL): Rename to...
(OPENPGP-SIGNING-KEY-ID-1, OPENPGP-SIGNING-KEY-URL-1): ... these,
respectively.
(OPENPGP-SIGNING-KEY-ID-2, OPENPGP-SIGNING-KEY-URL-2): New variables.
(Binary Installation): Adjust to cover for the new key.
(USB Stick and DVD Installation): Likewise.
(Invoking guix refresh): Adjust accordingly.
2021-05-03 23:14:13 -04:00
Ludovic Courtès 82c0f34c7e
maint: Do not xz-compress ISO images.
The xz-compressed image is 23% smaller than the original ISO image (with
built-in zlib compression), but the extra decompression step is
unconventional and often a hindrance for users.  See discussion at
<https://lists.gnu.org/archive/html/guix-devel/2021-04/msg00497.html>.

* Makefile.am (release): Do not compress ISO images.
* doc/guix.texi (USB Stick and DVD Installation): Remove ".xz" suffix
from URL and file name.
(Copying to a USB Stick, Burning on a DVD): Remove introductory words,
@enumerate, and first item.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-05-03 22:41:36 -04:00
Julien Lepiller 66072a00d7
nls: Guard against the list of translated Texinfo files becoming stale.
This change is so that the list of translated Texinfo files remain in sync
with the list of supported (translated) languages.

* doc/local.mk (MANUAL_LANGUAGES, COOKBOOK_LANGUAGES): New variables.
(lang_to_texinfos): New function.
(TRANSLATED_INFO): Use it to construct the list of files.

Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-05-03 22:41:35 -04:00
Maxim Cournoyer 10cf742cbc
doc: Update the URL of the system VM image.
This is a follow up to commit ebf5d77eab, which added the qcow2 file extension
to the VM image file name.

* doc/guix.texi (Running Guix in a VM): Update URL.
2021-05-03 09:49:53 -04:00
Maxim Cournoyer f13049f3a8
nls: Remove the doc-po-update target.
As discussed with Julien Lepiller on IRC, updating the PO files is not useful.
This change removes the target and associated rules that allowed updating
them.  This has the benefit of not having the PO files updated automatically
when generating the .pot files, which was causing spurious changes under the
po sub-directory.

* po/doc/local.mk (make-update-po-files-rule): Remove function and its uses.
(doc-po-update): Remove target.
2021-05-03 09:29:45 -04:00
Maxim Cournoyer f995f710e8
build: Replace the doc-po-update prerequisite by doc-pot-update.
What is really required for the dist target is the presence of the
auto-generated .pot files; updating the PO files is not necessary nor
desirable (it causes spurious changes in the tree).

* Makefile.am (dist) <doc-po-update>: Replace prerequisite with...
<doc-pot-update>: ... this one.
2021-05-03 09:29:44 -04:00
Julien Lepiller a23789bbbd
nls: Do not update po files on first make invocation.
We need to update the minimal gettext version to take advantage of new
features.  Before this patch, the first make invocation would modify
po/guix and po/packages po files, and we advised to run `git checkout
po` to clean the changes.

* configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.19.1.
* po/guix/Makevars: Set PO_DEPENDS_ON_POT to no.
* po/packages/Makevars: Set PO_DEPENDS_ON_POT to no.

Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2021-05-03 09:29:44 -04:00
Julien Lepiller 283d4960a4
Makefile: Reimplement `download-po` target.
The weblate API rate limit is very close to the number of files we need
to download.  The previous implementation did not add new translations.

* Makefile.am (download-po): Update target.
(make-download-po-rule, make-check-po-rule): Remove functions.
2021-05-03 09:29:44 -04:00
Brendan Tildesley ce5026b9f4
gnu: xfce4-settings: Add gsettings-desktop-schemas.
* gnu/packages/xfce.scm (xfce4-settings):[propagated-inputs]: Add
gsettings-desktop-schemas. This makes it appear in the system profile
via the xfce service. This fixes a bug where changing icon theme causes
xfce4-appearance-settings to crash with the error:

GLib-GIO-ERROR **: 15:41:45.828: Settings schema 'org.gnome.desktop.interface' is not installed
Trace/breakpoint trap

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-05-01 17:41:09 +02:00
Ludovic Courtès 78789cb6e2
gnu: openjdk: Disallow references to the JDK used for build.
This ensures JDKs don't unintentionally keep references to the one used
to build them, as reported at <https://issues.guix.gnu.org/31719#7> and
fixed by 97a43db8b4.

* gnu/packages/java.scm (icedtea-8)[arguments]: Add #:disallowed-references.
(openjdk9)[arguments]: Likewise.
(openjdk10)[arguments]: Likewise.
(openjdk11)[arguments]: Likewise.
2021-05-01 17:12:28 +02:00
Ludovic Courtès 668384d160
gnu: openjdk: Avoid non-top-level 'use-modules'.
* gnu/packages/java.scm (icedtea-8, openjdk9, openjdk11)[arguments]:
Replace non-top-level 'use-modules' by '@'.
2021-05-01 17:12:24 +02:00
Carlo Zancanaro 522a48a228
gnu: openjdk: Fix library substitution when libraries aren't found.
* gnu/packages/java.scm (icedtea-8, openjdk9, openjdk11)[arguments]:
Change 'find-library' to always return a string.  Change 'find-library'
callers to use 'string-append' rather than 'format'.  Starting from
97a43db8b4, 'find-library' could return #f
and JNI substitutions would emit a literal "#f".

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2021-05-01 17:12:21 +02:00
Carlo Zancanaro 92b02d0c18
gnu: openjdk: Clean up runtime dependencies between Java versions.
* gnu/packages/java.scm (icedtea-8, openjdk9, openjdk11): Do not consider
icedtea/openjdk input paths when rewriting JNI libraries.

Signed-off-by: Andreas Enge <andreas@enge.fr>
2021-05-01 17:12:15 +02:00
Maxim Cournoyer 185709221d
guix-install.sh: Add support for more than one signing key.
The forthcoming 1.3.0 release will be signed with my personal GnuPG key; the
installation script need to tell users how fetch it.

* etc/guix-install.sh (OPENPGP_SIGNING_KEY_ID): Remove variable.
(GPG_SIGNING_KEYS): New associative array.
(chk_gpg_keyring): Process all the keys contained in the above array.
(main) <GUIX_BINARY_FILE_NAME>: Double quote variable.
2021-05-01 01:03:18 -04:00
Maxim Cournoyer 0084f0054f
build: Correct a mistake in the guix-manual.pot rule.
This is a follow-up to commit 0d353b06ec.

* po/doc/local.mk: Fix function name in comment.
(%D%/guix-manual.pot): Refer to *all* the prerequisites via the $^ special
variable rather than $<, which only refers to the first one.

Reported-by: Julien Lepiller <julien@lepiller.eu>
2021-04-30 18:03:10 -04:00
Maxim Cournoyer 9bf205e5a0
gnu: guix: Update to 6fd7f16. 2021-04-29 21:18:56 -04:00
Maxim Cournoyer 6fd7f161d7
gnu: guix: Update to 1.3.0rc1. 2021-04-29 17:38:02 -04:00
Maxim Cournoyer 0d353b06ec
build: Make doc-po-update and doc-pot-update targets idempotent.
It used to be that the running the doc-po-update and doc-pot-update targets
would redo the same work on every run.  This change splits the problem in
smaller chunks and specifies build dependencies in a way that outputs only get
rebuilt when their inputs changed.

* po/doc/local.mk (DOC_PO_FILES): Harmonize escapes.
(POT_OPTIONS): Re-indent uniformly.
(doc-po-update-%, doc-po-update-cookbook-%): Re-implement with...
(make-update-po-files-rule): ... this new function.
(TMP_POT_FILES): Remove variable.
(%D%/%.pot, %D%/guix-manual.pot): New pattern rules.
(doc-pot-update, doc-po-update): Adjust prerequisites accordingly.
2021-04-29 15:30:27 -04:00
Maxim Cournoyer eaf79d319d
build: Build the guix.pot-update and contributing.pot-update targets only once.
* po/doc/local.mk (doc-pot-update): Fix an issue where guix.pot-update an
contributing.pot-update were built twice.
2021-04-29 14:09:23 -04:00
Maxim Cournoyer 868113126c
build: Have the release target depend on 'all'.
Otherwise, the scripts/guix wrapper may not be present, which would cause the
user's guix wrapper to be used, which in turn would manipulate GUILE_LOAD_PATH
in a way that would cause its Guix modules to take precedence over those of
the tree, with confusion ensuing.

* Makefile.am (release): Add 'all' as a prerequisite.
2021-04-29 14:09:23 -04:00
Maxim Cournoyer ebf5d77eab
build: Add the qcow2 file extension to the VM image.
Including the extension of the format type of the image is not only useful to
the user, but also to software.  One example is GNOME Boxes, which will reject
an image with an unknown file extension.

This should be fixed more definitely in Guix, where the output of the VM image
derivation would already have the correct file extension but for now this will
do.

* Makefile.am (release): Add .qcow2 to the file extension of the VM images.
2021-04-29 14:09:22 -04:00
Maxim Cournoyer 54dc9d36fa
build: Update and add new comments for the release target.
* Makefile.am (release): Update and add new comments.
2021-04-29 14:09:22 -04:00
Maxim Cournoyer c8b1799fd7
Makefile.am: Remove the GUIX_FOR_BINARY_TARBALL variable.
There is no use case where the Guix package is not named 'guix'.

* Makefile.am (GUIX_FOR_BINARY_TARBALL): Remove variable and replace its uses
by 'guix'.
2021-04-29 14:09:22 -04:00
Maxim Cournoyer 8214e70fa8
guix-install.sh: Ensure GUIX_BINARY_FILE_NAME is an absolute path.
This is necessary as the directory context is changed in the script, breaking
the use of a relative path.

* etc/guix-install.sh (main) <GUIX_BINARY_FILE_NAME>: Resolve its absolute
path via the 'realpath' command.
2021-04-29 14:09:22 -04:00
Mathieu Othacehe 68110f7288
gnu: kmscon: Fix layout setup.
Kmscon may discover multiple inputs, corresponding to multiple devices. This
means that the uxkb_dev_keymap_update function may be called multiple times,
and the FIFO is registered on each input poll loop.

When a new layout is written on the FIFO by the installer, the first input
picking up the message, will apply the new layout. However, that input may not
be the input that the user is currently using.

To fix it, register the FIFO on the first input poll loop, but apply the new
layout on all the inputs in the uxkb_keymap_update_handler function.

* gnu/packages/patches/kmscon-runtime-keymap-switch.patch
(uxkb_keymap_update_handler): Apply the new layout to all the inputs.
(input_new_dev): Register the FIFO fd only on the first input poll loop.
2021-04-29 12:06:07 +02:00
Mathieu Othacehe c254af8c73
installer: Add MSDOS disk label support on UEFI systems.
Fixes: <https://issues.guix.gnu.org/47889>.

* gnu/installer/parted.scm (esp-partition?): Remove the MSDOS check.
(auto-partition!): On MSDOS disks, check if an ESP partition is present. If
that's the case, do not remove it. Otherwise, if UEFI is supported, create
one.
2021-04-28 15:52:20 +02:00
Mathieu Othacehe 2b645e359e
installer: Force GPT disk label when UEFI is supported.
* gnu/installer/newt/partition.scm (run-label-page): Force the GPT disk label
when UEFI is supported.
2021-04-28 15:52:20 +02:00
Ludovic Courtès 42ac8da474
maint: Require "emacs-no-x" instead of "emacs" on armhf-linux.
* etc/release-manifest.scm (%base-packages/armhf): New variable.
(%base-manifest): Use it.
2021-04-27 22:22:15 +02:00