Commit graph

3951 commits

Author SHA1 Message Date
Marius Bakke
4f8dc1536a
Merge branch 'master' into staging 2019-03-04 22:31:59 +01:00
Ludovic Courtès
dca5821958
environment: Rename '--inherit' to '--preserve'.
Suggested by Eric Bavier and Ricardo Wurmus.

* guix/scripts/environment.scm (show-help, %options): Emit a deprecation
warning for "--inherit" and add -E/--preserve.
* tests/guix-environment.sh: Adjust accordingly.
* doc/guix.texi (Invoking guix environment): Update accordingly.
2019-03-04 15:22:59 +01:00
Ludovic Courtès
bab9cc4aff
environment: Remove deprecated -E/--exec option.
* guix/scripts/environment.scm (%options): Remove "--exec", which was
deprecated in commit 1de2fe95e0 in 2015.
* tests/guix-environment.sh: Remove use of '-E'.
2019-03-04 15:22:59 +01:00
Marius Bakke
19464173ba
Merge branch 'master' into staging 2019-03-01 17:33:00 +01:00
Ivan Petkov
7d141788b1
gnu: rust: Factor out "cargo-utils" from "cargo-build-system".
* guix/build/cargo-utils.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/build-system/cargo.scm (%cargo-utils-modules): New variable.
(%cargo-build-system-modules): Use it.
* guix/build/cargo-build-system.scm (file-sha256, generate-checksums): Move
from here...
* guix/build/cargo-utils.scm: ...to here.
* gnu/packages/rust.scm (rust-1.19.0)[arguments]<#:imported-modules>: Use
%cargo-utils-modules.
<#:phases>[patch-cargo-checksums]: Use (guix build cargo-utils).
* gnu/packages/gnuzilla.scm (icecat):
[arguments]<#:imported-modules>: Use %cargo-utils-modules.
<#phases>[patch-cargo-checksums]: import (guix build cargo-utils).

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-03-01 08:20:50 +01:00
Marius Bakke
2c76e19df4
Merge branch 'master' into staging 2019-02-20 17:01:39 +01:00
Ludovic Courtès
54eadc42d2
self: Generated (guix config) honors %CURRENT-SYSTEM.
Fixes <https://bugs.gnu.org/34468>.
Reported by Diego Nicola Barbato <dnbarbato@posteo.de>.

* guix/self.scm (%config-variables): Remove %SYSTEM.
(make-config.scm): Define '%system' to (%current-system).
2019-02-17 00:04:57 +01:00
Ludovic Courtès
ba48895899
self: Bundle 'glibc-utf8-locales'.
This minimizes the risk of locale-related warnings, at least for those
who use one of the bundled UTF-8 locales.

* guix/self.scm (guix-command)[glibc-utf8-locales]: New variable.
In program body, set GUIX_LOCPATH.
2019-02-16 01:00:08 +01:00
Ludovic Courtès
e6e599fa01
environment: Add '--inherit'.
* guix/scripts/environment.scm (purify-environment): Add 'white-list'
parameter and honor it.
(create-environment): Add #:white-list parameter and honor it.
(launch-environment): Likewise.
(launch-environment/fork): Likewise.
(show-help, %options): Add '--inherit'.
(guix-environment): Define 'white-list' and pass it to
'launch-environment/fork'.
* tests/guix-environment.sh: Test '--inherit'.
* doc/guix.texi (Invoking guix environment): Document it.
2019-02-16 01:00:08 +01:00
Marius Bakke
142cf42121
gnu-maintenance: Verify GPG signatures in KDE updater.
* guix/gnu-maintenance.scm (latest-kde-release): Remove #:file->signature.
2019-02-15 12:12:09 +01:00
Christopher Baines
0168473c0a
guix: ruby-build-system: Fix removal of extension related files.
This functionality was broken, possibly to do with the vendor related changes
in the ruby build system. These changes restore the file removal functionality
at the end of the install phase.

* guix/build/ruby-build-system.scm (install): Fix removal of files related to
native extensions.
2019-02-14 19:30:15 +00:00
Christopher Baines
9be39b4c67
guix: ruby-build-system: Do gem install --verbose.
This is helpful as it displays more information about what gem install is
doing, especially for packages with native extensions.

* guix/build/ruby-build-system.scm (install): Add --verbose to gem install command.
2019-02-14 19:30:14 +00:00
Christopher Baines
ab149c6ba0
gnu: ruby-build-system: Change extract-gemspec to always return #t.
* guix/build/ruby-build-system.scm (extract-gemspec): Return #t right at the
end, rather than returning #<unspecified> when not handling a gem archive.
2019-02-14 19:30:12 +00:00
Ludovic Courtès
1e9698344d
guix system: List old generations from newest to oldest.
Previously 'guix system switch-generation' or 'delete-generations' would
yield a GRUB menu where entries for old generations were in the wrong
order (i.e., oldest first.)

* guix/scripts/system.scm (reinstall-bootloader): Reverse the list
returned by 'generation-numbers'.
2019-02-13 16:19:54 +01:00
Ludovic Courtès
499b166d1c
guix system: Add 'delete-generations'.
* guix/scripts/package.scm (delete-matching-generations): Export.
* guix/scripts/system.scm (show-help): Add 'delete-generations'.
(process-command): Honor it.
(guix-system): Support it.
* doc/guix.texi (Invoking guix system): Document it.
2019-02-13 16:19:54 +01:00
Ludovic Courtès
201253674b
pull: Speed up the new/upgraded package computation.
* guix/scripts/pull.scm (new/upgraded-packages): OLD no longer stores
all the versions of each package.  Remove 'vhash-fold*' call and reduce
the number of 'version>?' calls when computing UPGRADED.
2019-02-12 23:30:16 +01:00
Ludovic Courtès
cf0eacceb4
pull: Move profile comparison to 'new/upgraded-packages'.
* guix/scripts/pull.scm (new/upgraded-packages): New procedure, with
code formerly in 'display-new/upgraded-packages'.
(display-new/upgraded-packages): Use it.
2019-02-12 23:30:16 +01:00
Ludovic Courtès
739380542d
inferior: Add 'inferior-available-packages'.
* guix/inferior.scm (inferior-available-packages): New procedure.
* tests/inferior.scm ("inferior-available-packages"): New test.
2019-02-12 23:30:16 +01:00
Ludovic Courtès
46765f82db
pull: Use 'fold-available-packages' for the current package list.
* guix/scripts/pull.scm (display-profile-news): Use
'fold-available-packages' instead of 'fold-packages' to compute OLD.
(profile-package-alist): Use 'inferior-available-packages'.
2019-02-12 23:30:16 +01:00
Ludovic Courtès
2637cfd7a4
Avoid name clash with 'build' from (guix store) and (guix status).
Since commit 976ef2d978, (guix status)
exports 'build', which clashes with 'build' from (guix store).

* build-aux/run-system-tests.scm: Select 'with-status-verbosity'
from (guix status).
* guix/scripts/archive.scm: Likewise.
* guix/scripts/build.scm: Likewise.
* guix/scripts/copy.scm: Likewise.
* guix/scripts/environment.scm: Likewise.
* guix/scripts/pack.scm: Likewise.
* guix/scripts/package.scm: Likewise.
* guix/scripts/pull.scm: Likewise.
* guix/scripts/system.scm: Likewise.
2019-02-11 23:23:28 +01:00
Ludovic Courtès
910d0121a8
pack, vm: Fix incorrect use of 'package-transitive-propagated-inputs'.
In practice the error was not triggered because
'package-transitive-propagated-inputs' currently returns the empty list
for these two packages.

* guix/scripts/pack.scm (gcrypt-sqlite3&co): Remove labels from the
result.
* gnu/system/vm.scm (gcrypt-sqlite3&co): Likewise.
2019-02-11 23:23:28 +01:00
Ludovic Courtès
1d8b10d00f
git: Add an exception printer for 'git-error'.
* guix/git.scm (print-git-error): New procedure.
<top level>: Call 'set-exception-printer!'.
2019-02-11 23:23:28 +01:00
Ludovic Courtès
70a50305c4
ui: Always print the exception upon load errors.
Fixes <https://bugs.gnu.org/34402>.
Reported by <pkill9@runbox.com>.

Previously 'display-error' could be called with the wrong number of
arguments (e.g., for 'git-error' exceptions), and thus nothing at all
was displayed.

* guix/ui.scm (report-load-error): Check whether ARGS matches the
parameters for 'display-error' and call 'print-exception' otherwise.
2019-02-11 23:23:28 +01:00
Ludovic Courtès
5ea206a8a9
status: Erase the current line upon new builds or downloads.
* guix/status.scm (print-build-event): Add 'erase-current-line*' call
upon 'build-started, 'substituter-started, 'download-started.
2019-02-11 23:23:27 +01:00
Ludovic Courtès
50a93adc05
Merge branch 'staging' 2019-02-09 15:14:59 +01:00
Ludovic Courtès
bc041b3e26
git: Always use the system certificates by default.
'guix pull' was always doing it, and now '--with-branch' & co. will do
it as well.

* guix/git.scm (honor-system-x509-certificates!): New procedure.
(%certificates-initialized?): New variable.
(with-libgit2): Add call to 'honor-system-x509-certificates!'.
* guix/scripts/pull.scm (honor-x509-certificates): Call
'honor-system-x509-certificates!' and fall back to
'honor-lets-encrypt-certificates!'.
2019-02-08 10:41:13 +01:00
Ludovic Courtès
024a6bfba9
guix build: '--with-branch' & co. fetch submodules.
* guix/scripts/build.scm (transform-package-source-branch)[replace]: Add
'recursive?' field to the new package.
2019-02-08 10:41:13 +01:00
Ludovic Courtès
06fff484ce
git: Add a 'recursive?' field to <git-checkout> records.
* guix/git.scm (<git-checkout>)[recursive?]: New field.
(latest-repository-commit*): Add #:recursive? and honor it.
(git-checkout-compiler): Honor the 'recursive?' field of CHECKOUT.
2019-02-08 10:41:13 +01:00
Ludovic Courtès
60cbc6a8df
git: Support recursive updates of submodules.
* guix/git.scm: Autoload (git submodule).
(url-cache-directory): Add #:recursive? and honor it.
(call-with-repository): New procedure.
(with-repository): New macro.
(update-submodules): New procedure.
(update-cached-checkout): Add #:recursive? and #:log-port and honor
them.
(latest-repository-commit): Add #:recursive? and honor it.
[dot-git?]: Recognize ".git" regular files when RECURSIVE? is true.
2019-02-08 10:41:13 +01:00
Ludovic Courtès
024d5275c5
status: Do not systematically erase the previous line.
After a successful download, we'd erase the download-progress line, and
the end result would be two empty lines following the "downloading …"
line.

Reported by Ricardo Wurmus <rekado@elephly.net> at
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33470#27>.

* guix/status.scm (print-build-event)[erase-current-line*]: Set to a
no-op when PRINT-LOG? is true.
Move calls to 'erase-current-line*' to the 'build-succeeded' and
'build-failed' events.
2019-02-07 15:46:45 +01:00
Ludovic Courtès
487cbb0164
profiles: Raise an error for unmatched patterns.
Previously, "guix package -r something-not-installed" would silently
complete.  Now an error is raised.

* guix/profiles.scm (&unmatched-pattern-error): New condition type.
(manifest-matching-entries): Rewrite to raise an error when one of
PATTERNS is not matched.
* guix/ui.scm (call-with-error-handling): Handle 'unmatched-pattern-error?'.
* tests/guix-package.sh: Add test.
* tests/profiles.scm ("manifest-matching-entries"): Don't try to remove
unmatched pattern.
("manifest-matching-entries, no match"): New test.
("manifest-transaction-effects"): Remove 'remove' field.
2019-02-07 15:46:45 +01:00
Ludovic Courtès
8245bb74fc
monads, gexp: Prevent redefinition of syntax parameters.
Fixes <https://bugs.gnu.org/27476>.

This fixes multi-threaded compilation of this code where syntax
parameters could end up being redefined and where a race condition could
lead a thread to see the "wrong" value of the syntax parameter.

* guix/monads.scm (define-syntax-parameter-once): New macro.
(>>=, return): Use it.
* guix/gexp.scm (define-syntax-parameter-once): New macro.
(current-imported-modules, current-imported-extensions): Use it.
2019-02-06 23:06:18 +01:00
Julien Lepiller
c3a191fafd
import: opam: Work around janestreet version numbers.
janestreet reversionned its packages and prefixed them with "v". Let the
importer know about that and choose "v" versions first.

* guix/import/opam.scm (find-latest-version): Work around version
rewrite from janestreet.
(opam->guix-package): Do not pass "v" to version number.
2019-02-05 22:33:13 +01:00
Julien Lepiller
beee37ecdb
import: opam: Replace "_" with "-" in imported names.
* guix/import/opam.scm (ocaml-name->guix-name): Replace "_" with "-".
(opam->guix-packages): Add upstream name when we cannot guess it
properly.
2019-02-05 22:33:08 +01:00
Julien Lepiller
0f4432c620
import: opam: Fix conditions.
* guix/import/opam.scm (condition-eq, condition-neq): The first argument
can be empty.
* tests/opam.scm: Add test case.
2019-02-05 22:33:06 +01:00
Ludovic Courtès
596fb4baf0
status: Display the current build phase.
* guix/status.scm (spin!): Add 'phase' parameter and honor it.  Callers
updated.
(print-build-event)[report-progress]: Likewise.
2019-02-05 12:03:25 +01:00
Ludovic Courtès
ba514b601b
status: Keep track of the current build phase.
* guix/status.scm (<build>)[phase]: New field.
(%phase-start-rx): New variable.
(update-build): Add clause to match %PHASE-START-RX and adjust the
'phase' field accordingly.
* tests/status.scm ("compute-status, build phase"): Add test
2019-02-05 12:03:25 +01:00
Ludovic Courtès
c7465dcb96
status: Use 'define-immutable-record-type' and its functional setters.
* guix/status.scm (<build>): Define using
'define-immutable-record-type', and add 'set-build-completion' binding.
(update-build)[set-completion]: Remove.
Use 'set-build-completion' instead.
2019-02-05 12:03:25 +01:00
Gabriel Hondet
625a3daa12
gnu: dune: Update to 1.6.3.
* gnu/packages/ocaml.scm (dune): Update to 1.6.3.
* guix/build/dune-build-system.scm (build): Use --libdir.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2019-02-04 22:03:22 +01:00
Ludovic Courtès
7473bce207
status: Erase the progress bar or spinner.
Previously the progress bar wouldn't be erased by the time the next
"building foo" line would be printed.

* guix/status.scm (print-build-event)[erase-current-line*]: New
procedure.
Call it instead of (display "\r").
2019-02-04 16:20:01 +01:00
Ludovic Courtès
7c4700e9f9
store: 'log-file' honors 'GUIX_LOG_DIRECTORY'.
* guix/store.scm (derivation-log-file): Use %LOCALSTATEDIR or
"GUIX_LOG_DIRECTORY" instead of (dirname %STATE-DIRECTORY).
2019-02-04 00:03:30 +01:00
Ludovic Courtès
765a5bf167
self: Ensure the daemon refers to the right 'guix' command.
Previously it would refer to
/var/guix/profiles/per-user/root/current-guix/bin/guix, which would fail
when that profile does not exist.  This is notably the case when using
'channel-instance->package' as done in commit
7e6d8d366a.

* gnu/packages/package-management.scm (guix-daemon)[arguments]: In
'install phase, honor environment variable 'GUIX'.
* guix/self.scm (whole-package)[wrap]: New procedure.
Use it.
2019-02-04 00:03:30 +01:00
Ludovic Courtès
a87d66f371
daemon: Rename 'NIX_STATE_DIR' and 'NIX_DB_DIR' environment variables.
Fixes <https://bugs.gnu.org/22459>.
Reported by Jeff Mickey <j@codemac.net>.

* guix/config.scm.in (%state-directory): Change NIX_STATE_DIR to
GUIX_STATE_DIRECTORY.
(%store-database-directory): Change NIX_DB_DIR to
GUIX_DATABASE_DIRECTORY.
* nix/libstore/globals.cc (Settings::processEnvironment): Likewise.
* guix/self.scm (make-config.scm): Likewise.
* build-aux/build-self.scm (make-config.scm): Likewise.
* build-aux/test-env.in: Likewise.
* tests/derivations.scm ("derivation #:leaked-env-vars"): Likewise.
* tests/guix-build.sh (GUIX_DAEMON_SOCKET): Likewise.
* tests/guix-daemon.sh (socket): Likewise.
2019-02-04 00:03:30 +01:00
Ludovic Courtès
f6fe7da372
profiles: 'manual-database' hook reports progress.
* guix/profiles.scm (manual-database)[build](compute-entries): Write a
progress report.
2019-02-01 19:31:34 +01:00
Ludovic Courtès
35ef5bc866
guix package: '-A' no longer lists deprecated packages.
Fixes a regression introduced in
0ea939fb79.

* guix/scripts/package.scm (process-query) <'list-available>: Change
 #:superseded? to #:deprecated? since that's what
 'fold-available-packages' passes.
2019-02-01 19:28:49 +01:00
Marius Bakke
0747328e31
Merge branch 'master' into staging 2019-01-31 23:32:56 +01:00
Ludovic Courtès
2790b6670b
pull: Default to verbosity level 1.
* guix/scripts/pull.scm (%default-options): Change 'verbosity to 1.
2019-01-29 12:09:53 +01:00
Ludovic Courtès
35dcaa119e
self: Produce progress reports compatible with (guix status).
* guix/self.scm (compiled-modules)[build](report-load)
(report-compilation): Write "[M/N]" progress reports.
Use line-buffering.
2019-01-29 12:09:52 +01:00
Ludovic Courtès
3854c6429c
status: Print a progress bar for on-going builds when possible.
* guix/status.scm (print-build-event)[report-build-progress]: New
procedure.
[print-log-line]: Add ID parameter.  Call 'report-build-progress' when
appropriate.
Adjust callers.
2019-01-29 12:09:52 +01:00
Ludovic Courtès
73a8681a16
status: Keep track of build completion as reported by build tools.
* guix/status.scm (<build>)[completion]: New field.
(build): Add #:completion parameter.
(%percentage-line-rx, %fraction-line-rx): New variables.
(update-build): New procedure.
(compute-status): Add 'build-log' case.
* tests/status.scm ("compute-status, build completion"): New test.
2019-01-29 12:09:52 +01:00