Age | Commit message (Expand) | Author |
2021-02-04 | build/gnu: Only make source checkout files writable....This is a followup commit to 6129ebddbd.
It was suggested by Ludovic in #guix that it's probably safer to leave files
extracted from a tarball alone. While at it, guard against possible
exceptions that can happen in the presence of dangling symbolic links, for
example.
* guix/build/gnu-build-system.scm (unpack): Wrap the make-file-writable call
in a false-if-exception handler. Move the for-each loop under the
file-is-directory? cond branch.
| Maxim Cournoyer |
2021-02-04 | build/gnu: Ensure the files are writable after the unpack phase....Fixes <https://issues.guix.gnu.org/43015>.
* guix/build/gnu-build-system.scm (unpack): Call 'make-file-writable' on every
source file.
| Maxim Cournoyer |
2021-02-03 | build: python: Fix build phases ordering....The wrap phase was happening before the installed site location was added to
GUIX_PYTHONPATH, causing wrapped commands to not find their own Python
libraries.
* guix/build/python-build-system.scm (%standard-phases): Explicit the
sequential ordering of phases using add-after directives, so that the wrap
phase occurs after the add-install-to-pythonpath and add-install-to-path
phases.
| Maxim Cournoyer |
2021-02-03 | Merge branch 'master' into core-updates | Christopher Baines |
2021-02-02 | guix: narinfo: Export narinfo-contents....As this is useful if you want to work with narinfo signatures outside of Guix,
in the Guix Data Service for example.
* guix/narinfo.scm: Export narinfo-contents.
| Christopher Baines |
2021-02-02 | import: gnu: Fix the detection of non-GNU packages....* guix/import/gnu.scm (gnu->guix-package): Move the 'find-package' call before
the 'latest-release' call, which would fail when the package did not have an
entry on the FTP server.
| Maxim Cournoyer |
2021-02-01 | gnu: meson-for-build: Remove package....The meson-for-build package doesn't carry any special patch anymore; it
appears to be obsolete.
* gnu/packages/build-tools.scm (meson-for-build): Remove variable.
* guix/build-system/meson.scm (default-meson): Use meson.
* doc/guix.texi (Build Systems): Update doc.
| Maxim Cournoyer |
2021-02-01 | build/python: Add a sanity check phase....Add a new phase validating the usability of installed Python packages.
* gnu/packages/aux-files/python/sanity-check.py: New file.
* Makefile.am (AUX_FILES): Register it.
* guix/build-system/python.scm (sanity-check.py): New variable.
(lower): Add the script as an implicit input.
* guix/build/python-build-system.scm: Remove trailing #t.
(sanity-check): New phase.
(%standard-phases): Use it.
* tests/builders.scm: (make-python-dummy)
(dummy-ok, dummy-dummy-nosetuptools, dummy-fail-requirements)
(dummy-fail-import, dummy-fail-console-script): New variables.
("python-build-system: dummy-ok")
("python-build-system: dummy-dummy-nosetuptools")
("python-build-system: dummy-fail-requirements")
("python-build-system: dummy-fail-import")
("python-build-system: dummy-fail-console-script"): Add tests.
| Lars-Dominik Braun |
2021-02-01 | build/python: Adjust wrap phase to use the new GUIX_PYTHONPATH....* guix/build/python-build-system.scm (wrap): Adjust to use the new
GUIX_PYTHONPATH. Remove trailing #t.
| Maxim Cournoyer |
2021-02-01 | build/python: Add the installation bin directory to PATH....This also to reduce the need for boilerplate code found in check phase
overrides.
* guix/build/python-build-system.scm (add-install-to-path): New phase.
(%standard-phases): Order it before the check phase.
| Maxim Cournoyer |
2021-02-01 | build/python: Always add the install prefix to the Guix PYTHONPATH....This is to remove the need for common boilerplate code in check phase
overrides.
* guix/build/python-build-system.scm
(add-installed-pythonpath): Streamline. This phase depends on the presence of
a "python" input; thus GUIX_PYTHONPATH is guaranteed to be defined. Update doc.
(add-install-to-pythonpath): New phase.
(%standard-phases): Order it before the check phase.
| Maxim Cournoyer |
2021-02-01 | build/python: Replace PYTHONPATH by GUIX_PYTHONPATH....* guix/build/python-build-system.scm (add-installed-pythonpath): Replace
"PYTHONPATH" by "GUIX_PYTHONPATH".
| Maxim Cournoyer |
2021-02-01 | gnu: python: Replace PYTHONPATH by GUIX_PYTHONPATH....Using PYTHONPATH as a mean to discover the Python packages had the following
issues:
1. It is not versioned, so different versions of Python would clash if
installed in a shared profile.
2. It would interfere with the host Python site on foreign
distributions, sometimes preventing a a user to login their GDM
session (!).
3. It would take precedence over user installed Python packages
installed through pip.
4. It would leak into Python virtualenvs, which are supposed to create
isolated Python environments.
This changes fixes the above issues by making use of a sitecustomize.py
module. The newly introduced GUIX_PYTHONPATH environment variable is read
from the environment, filtered for the current Python version of the
interpreter, and spliced in 'sys.path' just before Python's own site location,
which provides the expected behavior.
* gnu/packages/aux-files/python/sitecustomize.py: New file.
* Makefile.am: Register it.
* gnu/packages/python.scm (customize-site)
(guix-pythonpath-search-path): New procedures.
(python-2.7)[phases]{install-sitecustomize.py}: New phase.
[native-inputs]{sitecustomize.py}: New input.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
(python-3.9)[native-search-paths]: Likewise.
[phases]{install-sitecustomize}: Override with correct version.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
* gnu/packages/commencement.scm (python-boot0):
[phases]{install-sitecustomize}: Likewise.
[native-inputs]{sitecustomize.py}: New input.
[native-search-paths]: Replace PYTHONPATH with GUIX_PYTHONPATH.
* guix/build/python-build-system.scm (site-packages): Do not add a trailing
'/'.
squash! gnu: python: Replace PYTHONPATH by GUIX_PYTHONPATH.
| Maxim Cournoyer |
2021-02-01 | guix package: Add '--export-channels'....* guix/channels.scm (sexp->channel): Export.
* guix/describe.scm: Use (guix channels).
(manifest-entry-provenance): New procedure.
* guix/scripts/package.scm (channel=?, export-channels): New
procedures.
(show-help, %options): Add '--export-channels'.
(process-query): Honor it.
* build-aux/build-self.scm (build-program)[select?]: Exclude (guix
channels) to account for the (guix describe) change above.
* doc/guix.texi (Invoking guix package): Document it.
| Ludovic Courtès |
2021-02-01 | channels: Add 'channel->code'....* guix/channels.scm (channel->code): New procedure, taken from...
* guix/scripts/describe.scm (channel->sexp): ... here.
Adjust callers accordingly.
| Ludovic Courtès |
2021-02-01 | guix describe: Use 'manifest-entry-channel'....* guix/channels.scm (manifest-entry-channel): Export.
* guix/scripts/describe.scm (display-profile-content): Use it.
| Ludovic Courtès |
2021-02-01 | channels: Add the channel name to channel sexps....* guix/channels.scm (channel-instance->sexp): Add 'name'.
(sexp->channel): Extract the name from SEXP, using the optional argument
as a fallback.
| Ludovic Courtès |
2021-02-01 | channels: Factorize 'manifest-entry-channel' and channel serialization....* guix/channels.scm (sexp->channel, manifest-entry-channel): New
procedures.
(profile-channels): Replace lambda by 'manifest-entry-channel'.
(channel-instance->sexp): New procedure.
(channel-instances->manifest)[instance->entry]: Use
'channel-instance->sexp' instead of inline code.
| Ludovic Courtès |
2021-02-01 | guix package: Add '--export-manifest'....* guix/scripts/package.scm (export-manifest): New procedure.
(show-help, %options): Add '--export-manifest'.
(process-query): Honor it.
* guix/build/profiles.scm (build-profile): Mention it.
* tests/guix-package.sh: Test it.
* doc/guix.texi (Invoking guix package): Document it.
| Ludovic Courtès |
2021-02-01 | utils: Add 'version-unique-prefix'....* guix/utils.scm (version-unique-prefix): New procedure.
* tests/utils.scm ("version-unique-prefix"): New test.
| Ludovic Courtès |
2021-02-01 | profiles: Add 'manifest->code'....* guix/profiles.scm (manifest->code): New procedure.
* tests/profiles.scm ("manifest->code, simple")
("manifest->code, simple, versions")
("manifest->code, transformations"): New tests.
| Ludovic Courtès |
2021-01-31 | scripts: import: json: Fix error handling....Fixes partially <https://bugs.gnu.org/44115>.
* guix/scripts/import/json.scm (guix-import-json): Handle error.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-01-31 | import: gnu: Mention package name upon failure....* guix/import/gnu.scm (gnu->guix-package): Use 'formatted-message' and
mention the package name in error messages.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-01-31 | gnu-maintenance: Fix error handling....Fixes partially <https://bugs.gnu.org/44115>.
* guix/gnu-maintenance.scm (latest-release): Handle 'ftp-error'.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| zimoun |
2021-01-31 | database: Validate #:nar-size and #:time when registering store items....* guix/store/database.scm (assert-integer): New procedure.
(update-or-insert): Use it to validate NAR-SIZE and TIME.
* tests/store-database.scm ("sqlite-register with incorrect size"): New
test.
| Ludovic Courtès |
2021-01-31 | database: Remove workarounds unnecessary with guile-sqlite3 0.1.2....* guix/store/database.scm (sqlite-exec, sqlite-finalize): Remove.
| Ludovic Courtès |
2021-01-31 | ci: Add missing imports....This is a followup to 041a9466ea23d6ae811491bcf529bf9487317b48.
* guix/ci.scm: Add missing imports.
* guix/channels.scm: Remove (guix ci) import.
| Ludovic Courtès |
2021-01-31 | guix: channels: Introduce "channel-with-substitutes-available"....* guix/channels.scm (find-latest-commit-with-substitutes,
channel-with-substitutes-available): New procedures.
* guix/scripts/pull.scm (guix-pull): Move "channel-list" call inside the
%current-system parameter scope.
* doc/guix.texi (Channels with substitutes): New section.
| Mathieu Othacehe |
2021-01-30 | guix system: Adjust 'upgrade-shepherd-services' to shepherd service change....Fixes a regression introduced in 95f72dcd7aece05e9252c93bef5a831f96cb5393.
* guix/scripts/system/reconfigure.scm (upgrade-shepherd-services)[target-services]:
Add call to 'shepherd-configuration-services'.
| Ludovic Courtès |
2021-01-30 | services: shepherd: Allow custom 'shepherd' package....* gnu/services/shepherd.scm (<shepherd-configuration>): New record.
(shepherd-boot-gexp, shepherd-root-service-type): Use it.
(scm->go, shepherd-configuration-file): Allow passing custom
shepherd package.
* gnu/system.scm (operating-system-shepherd-service-names): Use the new
record.
* guix/scripts/system.scm (export-shepherd-graph): Adjust accordingly.
* doc/guix.texi (Shepherd Services). Document it.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Maxime Devos |
2021-01-30 | build-system/julia: Don't rely on file name to set module name....* guix/build/julia-build-system.scm (project.toml->name): New procedure.
(precompile, check, julia-build): Accept new key argument #:julia-package-name.
* guix/build-system/julia.scm (julia-build): ... add it.
* doc/guix.texi (julia-build-system): Update julia-package-name accordingly.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| nixo |
2021-01-30 | build-system/julia: Enable tests....* guix/build-system/julia.scm (julia-build): Set tests? default to #t.
* guix/build/julia-build-system.scm (check): Respect tests? and fix julia
invocation.
(%standard-phases): Add check phase after install.
* doc/guix.texi (julia-build-system): Update accordingly.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| nixo |
2021-01-29 | gnu: texlive-bin: Enable the use of multiple TeX Live trees....Attempting to compose multiple TeX Live trees (such as can happen when using a
texlive-union generated package) proved problematic; only the texmf.cnf
configuration file from the union would be honored, causing other TeX Live
components to be ignored.
This change does away with TeX Live unions, instead relying on the default
texmf.cnf configuration file provided by the texlive-bin package to honor
individual TeX Live trees referred to via the newly introduced GUIX_TEXMF
variable, and replacing the texlive-union procedure by texlive-updmap.cfg, to
explicit that generating the fonts map configuration is now its sole purpose.
* gnu/packages/tex.scm (texlive-bin)[phases]{customize-texmf}: New phase.
{postint}: Move the patching of the texmf.cnf file to the new above phase.
Patch the updmap.pl script to find its Perl modules.
[native-search-paths]: Rename the TEXMF variable to GUIX_TEXMF. Remove the
TEXMFCNF variable.
* guix/profiles.scm (texlive-configuration): Remove procedure.
(%default-profile-hooks)[texlive-configuration]: Unregister hook.
(texlive-union): Alias to what has moved to...
(texlivke-updmap.cfg): ... here. Update doc. Do not provide a different
texmf.cnf configuration.
[inherit]: Do not inherit from texlive-base.
[build-system]: Switch to the copy-build-system.
[arguments]{install-plan}: New argument.
[phases]{regenerate-updmap.cfg}: New phase, which keeps only the fonts map
generating code from the previous builder code.
[inputs]: Remove bash, and move to ...
[propagated-inputs]: ... here.
[native-inputs]: Remove field, and move the source of the base updmap.cfg file
to...
[source]: ... here.
[synopsis]: Update.
[description]: Likewise.
[license]: Delete duplicates.
| Maxim Cournoyer |
2021-01-29 | inferior: Speed up 'cached-channel-instance' for cache hits....That way a command like:
guix time-machine --commit=5aeee07cc9 -- describe
goes from 3.4s to 0.5s on a cache hit, even slightly less when passing
the full commit ID.
* guix/inferior.scm (channel-full-commit): New procedure.
(cached-channel-instance): Remove 'instances' top-level variable. Add
'commits' and use it for 'key'. Move 'latest-channel-instances' call to
the cache miss case.
| Ludovic Courtès |
2021-01-28 | ui: Look up extensions before built-in commands....* guix/ui.scm (run-guix-command): Modify order so that extensions are allowed
to override default commands.
Co-authored-by: Ricardo Wurmus <rekado@elephly.net>
| zimoun |
2021-01-28 | guix: Add Open Software License 2.1....* guix/licenses.scm (osl2.1): New variable.
| Ricardo Wurmus |
2021-01-28 | guix: Fix typo....* guix/inferior.scm (inferior-available-packages): Remove extra word in
docstring.
| Ricardo Wurmus |
2021-01-27 | inferior: Memoize entries in 'inferior-package->manifest-entry'....Fixes a performance issue as reported by Ricardo Wurmus
in <https://bugs.gnu.org/46100>.
* guix/inferior.scm (inferior-package->manifest-entry): Remove #:parent parameter.
[cache]: New variable.
[memoized]: New macro.
[loop]: New procedure.
| Ludovic Courtès |
2021-01-26 | build-systems/gnu: Allow unpacking/repacking more kind of files....Before this change, only plain directories, tar or zip archives were supported
as the source of a package for the GNU build system; anything else would cause
the unpack phase to fail. Origins relying on snippets would suffer from the
same problem.
This change adds the support to use files of the following extensions: .gz,
.Z, .bz2, .lz, and .xz, even when they are not tarballs. Files of unknown
extensions are treated as uncompressed files and supported as well.
* guix/packages.scm (patch-and-repack): Only add the compressor utility to the
PATH when the file is compressed. Bind more inputs in the mlet, and use them
for decompressing single files. Adjust the decompression and compression
routines.
[decompression-type]: Remove nested variable.
* guix/build/utils.scm (compressor, tarball?): New procedures. Move
%xz-parallel-args to the new 'compression helpers' section.
* tests/packages.scm: Add tests. Add missing copyright year for Jan.
* guix/build/gnu-build-system.scm (first-subdirectory): Return #f when no
sub-directory was found.
(unpack): Support more file types, including uncompressed plain files.
| Maxim Cournoyer |
2021-01-26 | utils: Add NIX_STORE_DIR as a candidate for the value of the store directory....On the daemon side, nixStore gets set to the environment variable
NIX_STORE_DIR, else the environment variable NIX_STORE else the compile time
macro NIX_STORE_DIR (see the Settings::processEnvironment method in
nix/libstore/globals.cc). When creating a build environment, it sets
NIX_STORE with the value computed as described above. Hence, it's safer to
look for both NIX_STORE_DIR and NIX_STORE in (guix build utils), so that it
works in any context (build context or external context).
* guix/build/utils.scm (%store-directory): Consider both NIX_STORE_DIR and
NIX_STORE as environment variables.
| Maxim Cournoyer |
2021-01-22 | store: Add 'find-roots' RPC....* guix/serialization.scm (read-string-pairs): New procedure.
* guix/store.scm (read-arg): Add support for 'string-pairs'.
(find-roots): New procedure.
* tests/store.scm ("add-indirect-root and find-roots"): New test.
| Ludovic Courtès |
2021-01-21 | Revert "substitute: Remove extra 'newline' call."...This reverts commit d5a1b0e86f248edd53c785b910b5d51ee708b0fc.
This change turned out to be misguided; it would lead to "substitute:"
lines being printed on the client side, without anything beyond the
colon sign.
| Ludovic Courtès |
2021-01-21 | repl: Fix exception handling for interpreted code....The 'stack' variable could be #f when code is interpreted, which in
practice happens when running in "legacy" mode--i.e., when
'open-inferior' invokes "guile" instead of "guix repl".
* guix/repl.scm (send-repl-response)[handle-exception]: Check whether
STACK is true before passing it to 'stack->frames'.
* tests/inferior.scm ("&inferior-exception, legacy mode"): New test.
| Ludovic Courtès |
2021-01-21 | import, swh: Adjust to Guile-JSON 4.5.x unspecified value handling....* guix/import/cpan.scm (<cpan-release>)[home-page]: Add 'unspecified?'
case.
* guix/import/gem.scm (<gem>)[licenses]: Likewise.
(json->gem-dependency-list): Likewise.
* guix/swh.scm (<directory-entry>)[checksums]: Likewise.
| Ludovic Courtès |
2021-01-20 | archive: Note service type in ACL hint....* guix/scripts/archive.scm (authorize-key): Mention guix-service-type.
| Tobias Geerinckx-Rice |
2021-01-20 | import/cran: Add more invalid package names to ignore....* guix/import/cran.scm (invalid-packages): Add more names.
| Ricardo Wurmus |
2021-01-19 | transformations: Add '--with-latest'....* guix/upstream.scm (upstream-source-compiler): New procedure.
(%updaters): Set! it.
* guix/transformations.scm (transform-package-latest): New procedure.
(%transformations): Add 'with-latest'.
(%transformation-options, show-transformation-options-help/detailed):
Add '--with-latest'.
* tests/transformations.scm ("options->transformation, with-latest"):
New test.
* doc/guix.texi (Package Transformation Options): Document it.
| Ludovic Courtès |
2021-01-19 | environment: Fix '--root' option with relative file name....The path normalization of `--root` option of `guix environment` was
buggy as it appended full argument after normalized directory. This
patch fixes it.
* guix/scripts/environment.scm (register-gc-root): Fix gc-root path
normalization.
* tests/guix-environment.sh: Add test.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| JOULAUD François |
2021-01-19 | modules: Recognize #:re-export-and-replace....* guix/modules.scm (extract-dependencies): Recognize
#:re-export-and-replace, which was introduced in Guile 3.0.
| Ludovic Courtès |
2021-01-19 | system: Rename 'disk-image' command 'image'....* guix/scripts/system.scm (system-derivation-for-action): Rename 'disk-image'
command 'image'. Warn when using the now deprecated 'disk-image' command.
(show-help): Adapt accordingly.
(guix-system): Ditto.
* tests/guix-system.sh: Ditto.
* gnu/system/examples/bare-hurd.tmpl: Ditto.
* doc/guix.texi (Building the Installation Image,
Building the Installation Image for ARM Boards,
Invoking guix pack,
Invoking guix system): Adapt documentation.
| Mathieu Othacehe |