This reverts commit 68775338a5.
Fixes <https://issues.guix.gnu.org/61841>.
(%guile-for-build) is a derivation for a specific system,
whereas (default-guile) is a system-independent package. It's crucial
to preserve this distinction.
See discussion at <https://issues.guix.gnu.org/61255#29>.
* guix/gexp.scm (computed-file-compiler): Honor (default-guile),
not (%guile-for-build).
Commit 68380db4c4 moved from
'gexp->derivation', which as a side effect, would lead tests to require
a "world rebuild"--specifically, they'd have to build (default-guile).
This was mitigated by 68775338a5, but that
change introduced another regression.
* guix/scripts/pack.scm (populate-profile-root): Define 'bootstrap?'.
Pass #:guile to 'computed-file', with a value depending on 'bootstrap?'.
* tests/pack.scm ("self-contained-tarball + localstatedir")
("docker-image + localstatedir", "squashfs-image + localstatedir")
("deb archive with symlinks and control files")
("rpm archive can be installed/uninstalled"): Use a <profile> record
instead of a derivation.
* gnu/packages/lisp.scm (sbcl-sdl2):
[arguments]{asd-systems}: Add sdl2/examples.
{phases}<fix-path>: Remove trailing #f from lambda, use
search-input-file to link SO library.
[inputs]: Remove labels, add sbcl-cl-opengl.
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
This makes these package definitions compatible with the openmpi package which
uses gexps as of f45fc72c28.
* gnu/packages/mpi.scm (openmpi-c++, java-openmpi,
openmpi-thread-multiple)[arguments]: Use gexps.
emacs-transient is built into emacs already and not required as an explicit
dependency anymore, but having it in propagated-inputs can break things in
various ways: for example emacs-next have a newer version and automatically
pulling older emacs-transient into profile breaks emoji-insert, or
emacs-docker.
* gnu/packages/emacs-xyz.scm (emacs-piem, emacs-clj-deps-new, emacs-dirvish):
Remove emacs-transient from propagated-inputs.
Actionlint is a linter for GitHub Action workflow files.
* gnu/packages/check.scm (actionlint): New variable.
Signed-off-by: Leo Famulari <leo@famulari.name>
This is the only way to get reasonably small binaries that don’t pull
in a ton of ghc-* packages.
* guix/build/haskell-build-system.scm (configure): Explicitly
add --enable-static and --disable-executable-dynamic, as well as
-split-sections to configure flags.
This turns on the linker flag -Wl,-E for all libraries depending on it,
resulting in large binaries, because --gc-sections cannot clean exported
symbols.
* gnu/packages/haskell-xyz.scm (ghc-lua)[arguments]: Disable
export-dynamic feature.
* gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/haskell.scm (ghc-9.2)[origin]: Use it.
* gnu/packages/elm.scm (elm-sans-reactor)[source]: Add patch to support GHC 9.2.
* gnu/packages/patches/elm-ghc9.2.patch: This one.
* gnu/local.mk: Add it.
A bug caused install-transitive-deps to stop looping if a dependency
file already existed in the target directory. For Haskell packages
with multiple libraries (like attoparsec) this resulted in missing
dependencies and error messages like this:
The following packages are broken because other packages they depend
on are missing. These broken packages must be rebuilt before they
can be used.
installed package attoparsec-0.14.4 is broken due to missing package
scientific-0.3.7.0-9XG3zUjXOw970JFcruv0cZ
See <https://issues.guix.gnu.org/54729#11>.
* guix/build/haskell-build-system.scm (register): Unconditionally loop
over all tails.