* guix/profiles.scm (%manifest-format-version): New variable.
(manifest->gexp): Add optional 'format-version' parameter.
[optional, entry->gexp]: Honor it.
(profile-derivation): Add #:format-version parameter and honor it.
(<profile>)[format-version]: New field.
(profile-compiler): Honor it.
* guix/build/profiles.scm (manifest-sexp->inputs+search-paths): Support
both versions 3 and 4. Remove unused 'properties' variable.
* tests/profiles.scm ("profile-derivation format version 3"): New test.
Version 2 was introduced in commit
dedb17ad01 (May 2015), which made it into
Guix 0.9.0.
* guix/profiles.scm (find-package): Remove.
(sexp->manifest)[infer-search-paths]: Remove.
Remove clauses for versions 0 and 1.
* gnu/packages/lisp-xyz.scm (sbcl-slime-swank)[arguments]: Patch swank.asd to
store the .fasl in the ASDF registry so that they are found in the
package.
Also patch swank-loader.lisp so that it does not try to remove the .fasl from
the store.
(cl-slime-swank)[arguments]: Revert above patch of the swank.ask so that the
source package does not get bound to the SBCL package.
We would not have to do this if SLIME/Swank used ASDF properly instead of
working around it.
* gnu/packages/lisp-xyz.scm (sbcl-osicat)[source]: Remove unneeded release.sh
file.
This takes the closure size of cl-osicat from 40 MiB down to 0 MiB.
* gnu/packages/lisp-xyz.scm (sbcl-trivial-clipboard)[inputs]: Replace xclip
with xsel.
[arguments]: Adapt reference.
This takes the closure size of cl-trivial-clipboard from 90 MiB down to 78 MiB.
* gnu/packages/lisp-xyz.scm (sbcl-cluffer)[arguments]: Unpatch shell shebangs.
It's only needed to generate the documentation (which we should do at
build-time by the way).
This takes the closure size of cl-cluffer from 40 MiB down to 0 MiB.
* gnu/packages/lisp-xyz.scm (sbcl-clsql)[source]: Delete the 'debian' folder
and all Makefiles.
This takes the closure size from 930 MiB down to 889 MiB.
* gnu/packages/lisp.scm (sbcl)[arguments]: Add phase to do it.
This shrinks SBCL from 167MiB to 150MiB.
Most importantly, this propagates to all sbcl-* packages.
* doc/guix-cookbook.texi (A Scheme Crash Course): Suggest 'guix shell'
instead of 'guix environment'.
(Customizing the Kernel, The benefits of manifests): Likewise.
Gdal declared its configure script as deprecated with the release of
version 3.5 and is planning to deprecate it with release 3.6 which is
scheduled for November 2022.
* gnu/packages/geo.scm (gdal)[build-system]: Use cmake-build-system.
[arguments]: Remove configure flags for library search paths;
they are found automatically by cmake now. Add
-DGDAL_USE_INTERNAL_LIBS=WHEN_NO_EXTERNAL and
-DGDAL_USE_JPEG12_INTERNAL=OFF to get approximately the same results
as with the old configure script.
[inputs]: Remove pcre. Add pcre2 and qhull.
I'm looking at this as the Guix Data Service uses this behaviour to record and
display logs from inferior processes.
* guix/inferior.scm (open-bidirectional-pipe): Call dup2 for file descriptor
2, passing either the file number for the current error port, or a file
descriptor for /dev/null.
* tests/inferior.scm ("#:error-port stderr", "#:error-port pipe"): Add two new
tests that cover some of the #:error-port behaviour.