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.
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.
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.
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'.
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.
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.
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.
Fixes <https://bugs.gnu.org/39341>.
Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>.
Until now, as soon as you had selected the keyboard layout in the
Guix System installer, kmscon would start spinning on epoll_wait(2)
calls because of an event on the initial FIFO file
descriptor (corresponding to the fact that the client closed it.)
* gnu/packages/patches/kmscon-runtime-keymap-switch.patch: In
'uxkb_keymap_update_handler', add calls to 'ev_eloop_rm_fd', 'close',
and 'uxkb_dev_keymap_update' In 'uxkb_dev_keymap_update', add call
to 'unlink'.
Fixes <https://bugs.gnu.org/47713>.
Reported by bo0od <bo0od@riseup.net>.
This ensures applications such as IceCat can properly text (numbers in
the case of IceCat).
* gnu/packages/enlightenment.scm (enlightenment)[propagated-inputs]: Add
FONT-DEJAVU.
* gnu/packages/mate.scm (mate)[propagated-inputs]: New field.
* gnu/packages/xfce.scm (xfce)[propagated-inputs]: New field.
Partly fixes <https://bugs.gnu.org/47867>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.
The non-tail recursive call to 'connect' could cause requests to be
processed twice, with 'p' possibly closed the second time.
Regression introduced in 205833b72c and
carried over in 45fce38fb0.
* guix/http-client.scm (http-multiple-get): Remove call to 'close-port'
and recursive call to 'connect' when the 'write-request' block returns #f.
Partly fixes <https://bugs.gnu.org/47867>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.
In GnuTLS up to 3.7.1 included, GNUTLS_E_AGAIN and GNUTLS_E_INTERRUPTED
are not handled by 'write_to_session_record_port' and could be thrown at
the caller. This patch works around that by dropping connections
altogether and restarting when this happens.
* guix/http-client.scm (false-if-networking-error): Swallow ERROR/AGAIN
and ERROR/INTERRUPTED.
* guix/scripts/substitute.scm (call-with-cached-connection): Likewise.
Fixes <https://bugs.gnu.org/47941>.
Reported by Jack Hill <jackhill@jackhill.us>.
* guix/cve.scm (reference-data->cve-references): Gracefully handle lack
of "reference_data".
(cpe-match->cve-configuration): Gracefully handle lack of "cpe23Uri".
This importer has suffered from bitrot and no longer works with current
Nix and Nixpkgs. See <https://bugs.gnu.org/32339> and
<https://bugs.gnu.org/36255>.
* guix/import/snix.scm, guix/scripts/import/nix.scm,
tests/snix.scm: Remove.
* Makefile.am (MODULES, SCM_TESTS): Remove them.
* guix/scripts/import.scm (importers): Remove "nix".
* build-aux/test-env.in: Remove NIXPKGS variable.
* configure.ac: Remove '--with-nixpkgs' option.
* doc/guix.texi (Invoking guix import): Remove bit about "guix import
nix".
* etc/completion/fish/guix.fish: Likewise.
This is useful for example for testing release candidates not yet uploaded to
the FTP, or for testing manually downloaded images from the CI.
* etc/guix-install.sh (main)[GUIX_BINARY_FILE_NAME]: When this variable is
defined, use it as the file name of a Guix binary, instead of automatically
retrieving the latest archive from the FTP.
Previously, (read-partition-uuid "/does/not/exist") would return #f.
With this change, a 'system-error exception is raised as expected.
* gnu/build/file-systems.scm (ENOENT-safe): Clarify docstring.
(partition-field-reader): Remove use of 'ENOENT-safe'.
(partition-predicate): Wrap READER in 'ENOENT-safe'.
This avoids interference with other users of (htmlprag) and makes the
intent clearer.
* guix/import/go.scm <top level>: Remove call to '%strict-tokenizer?'.
(go-package-licenses, go-package-description)
(go-package-synopsis, fetch-module-meta-data): Pass #:strict? #t to
'html->sxml'.
Not ignoring these in the tree leads to the next generated version (.version)
being suffixed with '-dirty', which confuses things.
* .gitignore [/guix-*]: New pattern.
[/doc/stamp-[0-9]]: Adjust to ...
[/doc/stamp-*]: ... this.
[/release-*]: New pattern.
These older system actions are deprecated and cause warnings to be emitted.
* Makefile.am (release) <guix system disk-image>
<guix system vm-image>: Replace by...
<guix system image>: ... this. Specify the type of the VM image as qcow2.
These files are automatically-extracted templates rather than source, hence
shouldn't be checked in.
* .gitignore: Add a glob pattern to ignore .pot files.
Otherwise 'make dist' would fail with the message: "No rule to make target
'po/doc/guix-manual.pot', needed by 'distdir-am'. Stop.".
* Makefile.am (dist) <doc-po-update>: Add prerequisite.
(dist-hook) <doc-po-update>: Remove prerequisite.
A number of packages doesn't really make sense in the name of the section to
be substituted. This change allows using simply '*** new packages' instead of
'*** 1999 new packages', for example, and have the update-NEWS.scm script
update it.
* build-aux/update-NEWS.scm (write-packages-added) <regexp>: Do not care about
leading white space in the name of the section.