git-download: Use “builtin:git-download” when available.
Fixes <https://issues.guix.gnu.org/63331>.
Longer-term this will remove Git from the derivation graph when its sole
use is to perform a checkout for a fixed-output derivation, thereby
breaking dependency cycles that can arise in these situations.
* guix/git-download.scm (git-fetch): Rename to…
(git-fetch/in-band): … this. Deal with GIT or GUILE being #f.
(git-fetch/built-in, built-in-builders*, git-fetch): New procedures.
* tests/builders.scm ("git-fetch, file URI"): New test.
perform-download: Use the ‘git’ command captured at configure time.
* guix/scripts/perform-download.scm (perform-git-download): Pass #:git-command
to ‘git-fetch-with-fallback’.
build: Add dependency on Git.
* configure.ac: Check for ‘git’ and substitute ‘GIT’.
* guix/config.scm.in (%git): New variable.
* guix/self.scm (compiled-guix): Define ‘git’ and pass it to
‘make-config.scm’.
(make-config.scm): Add #:git; emit a ‘%git’ variable.
* doc/guix.texi (Requirements): Add it.
daemon: Add “git-download” built-in builder.
The new builder makes it possible to break cycles that occurs when the
fixed-output derivation for the source of a dependency of ‘git’ would
itself depend on ‘git’.
* guix/scripts/perform-download.scm (perform-git-download): New
procedure.
(perform-download): Move fixed-output derivation check to…
(guix-perform-download): … here. Invoke ‘perform-download’ or
‘perform-git-download’ depending on what ‘derivation-builder’ returns.
* nix/libstore/builtins.cc (builtins): Add “git-download”.
* tests/derivations.scm ("built-in-builders"): Update.
("'git-download' built-in builder")
("'git-download' built-in builder, invalid hash")
("'git-download' built-in builder, invalid commit")
("'git-download' built-in builder, not found"): New tests.
perform-download: Remove unused one-argument clause.
Code in ‘builtins.cc’ only ever invokes ‘guix perform-download’ with two
arguments.
* guix/scripts/perform-download.scm (guix-perform-download): Remove
unused one-argument clause.
(perform-download): Make ‘output’ parameter mandatory; remove ‘output*’
variable.
git-download: Honor the ‘GUIX_DOWNLOAD_FALLBACK_TEST’ environment variable.
* guix/git-download.scm (git-fetch): Honor ‘%download-fallback-test’.
git-download: Move fallback code to (guix build git).
* guix/build/git.scm (git-fetch-with-fallback): New procedure, with code
taken from…
* guix/git-download.scm (git-fetch): … here.
[modules]: Remove modules that are no longer directly used in ‘build’.
[build]: Use ‘git-fetch-with-fallback’.
gnu: imgui: Update to 1.89.9.
* gnu/packages/toolkits.scm (imgui): Update to 1.89.9.
gnu: glfw: Patch dlopen calls.
* gnu/packages/gl.scm (glfw) [arguments]: Add #:modules and #:phases argument.
[inputs]: New field.
gnu: imgui: Enable freetype support.
* gnu/packages/toolkits.scm (imgui) [arguments]: Add -DIMGUI_ENABLE_FREETYPE
to make flags.
[inputs]: Add freetype.
gnu: capstone: Update to 5.0.1.
* gnu/packages/engineering.scm (capstone): Update to 5.0.1.
gnu: gtypist: Install the gtypist-mode Emacs major mode.
* gnu/packages/games.scm (gtypist) [source]: Delete trailing #t in snippet.
[native-inputs]: Add emacs-minimal.
multiqc: Don't propagate inputs.
* gnu/packages/bioinformatics.scm (multiqc)[propagated-inputs]: Move all
packages ...
[inputs]: ... to here.
gnu: transmission: Restore HTML files in the default output.
This fixes transmission-daemon.
* gnu/packages/bittorrent.scm (transmission)[arguments]: remove "transmission"
directory from the 'move-gui' procedure.
gnu: aalib: Really build the shared library on powerpc64le-linux.
Fixes <https://issues.guix.gnu.org/57134>.
The old build scripts were buggy and causing a static library to be produced
instead, which would fail to be linked by gst-plugins-good.
* gnu/packages/video.scm (aalib) [native-inputs]: Remove labels.
[arguments]: Use gexps.
<configure-flags>: New argument.
<phases>: Remove update-config-scripts and configure override.
Add force-autoreconf.
Reported-by: Marcel van der Boom <marcel@van-der-boom.nl>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
gnu: edk2-tools: Update to 202308.
* gnu/packages/firmware.scm (edk2-tools): Update to 202308.
[arguments] <make-flags>: Add CC.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
doc: Add new 'Circular Module Dependencies' section.
* doc/contributing.texi (Circular Module Dependencies): New subsection.
Series-version: 2
Series-to: 65860@debbugs.gnu.org
Patch-cc: mhw@netris.org
Cover-letter:
Resolve a circular module dependencies in embedded modules
This series is the culmination of at least a day of effort tracking down the
source of a module dependency cycle (!). The last commit adds some guidelines
in the hope to avoid a repeat (perhaps 'lint' could be taught to
automate these checks).
END