Age | Commit message (Expand) | Author |
2019-02-05 | status: Display the current build phase....* guix/status.scm (spin!): Add 'phase' parameter and honor it. Callers
updated.
(print-build-event)[report-progress]: Likewise.
| Ludovic Courtès |
2019-02-05 | 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
| Ludovic Courtès |
2019-02-05 | 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.
| Ludovic Courtès |
2019-02-04 | 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>
| Gabriel Hondet |
2019-02-04 | 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").
| Ludovic Courtès |
2019-02-04 | store: 'log-file' honors 'GUIX_LOG_DIRECTORY'....* guix/store.scm (derivation-log-file): Use %LOCALSTATEDIR or
"GUIX_LOG_DIRECTORY" instead of (dirname %STATE-DIRECTORY).
| Ludovic Courtès |
2019-02-04 | 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
7e6d8d366a61f951936ed83371877ce006f679f6.
* 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.
| Ludovic Courtès |
2019-02-04 | 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.
| Ludovic Courtès |
2019-02-01 | profiles: 'manual-database' hook reports progress....* guix/profiles.scm (manual-database)[build](compute-entries): Write a
progress report.
| Ludovic Courtès |
2019-02-01 | guix package: '-A' no longer lists deprecated packages....Fixes a regression introduced in
0ea939fb796fdd4f0d46d3534b2ec6135e0f3dc7.
* guix/scripts/package.scm (process-query) <'list-available>: Change
#:superseded? to #:deprecated? since that's what
'fold-available-packages' passes.
| Ludovic Courtès |
2019-01-29 | pull: Default to verbosity level 1....* guix/scripts/pull.scm (%default-options): Change 'verbosity to 1.
| Ludovic Courtès |
2019-01-29 | 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.
| Ludovic Courtès |
2019-01-29 | 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.
| Ludovic Courtès |
2019-01-29 | 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.
| Ludovic Courtès |
2019-01-29 | status: Record more information about builds....* guix/status.scm (<build>): New record type.
(build, matching-build): New procedures.
(compute-status): Adjust to manipulate <build> records instead of
derivation file names in 'build-status-builds-completed' and
'build-status-building'.
(build-event-output-port)[process-line]: Use 'string-split' to preserve
spaces.
* tests/status.scm ("compute-status, builds + substitutes")
("compute-status, missing events"): Adjust to expect <build> records.
Produce complete "build-started" events.
("compute-status, multiplexed build output"): Likewise, and remove
"bar.drv" from 'builds-completed'.
| Ludovic Courtès |
2019-01-29 | channels: Do not offload package cache derivation....* guix/channels.scm (package-cache-file): Pass #:local-build? to
'gexp->derivation-in-inferior'.
| Ludovic Courtès |
2019-01-28 | pull: Don't trigger 'hash guix' hint needlessly....Previously if ~/.config/guix/current/bin was in $PATH, we'd still
suggest to run 'hash guix' because we'd compare (which "guix") against
/var/guix/profiles/per-user/….
* guix/scripts/pull.scm (build-and-install): Check whether (which
"guix") matches PROFILE or its user-friendly variant.
| Ludovic Courtès |
2019-01-28 | channels: Turn off deprecation warnings when loading 'build-self.scm'....* guix/channels.scm (build-from-source): Parameterize
DEPRECATION-WARNING-PORT when loading SCRIPT.
| Ludovic Courtès |
2019-01-28 | packages: 'package-input-rewriting' can take a promise....* guix/packages.scm (package-input-rewriting): Allow REPLACEMENTS to be
a promise.
* gnu/packages/guile.scm (package-for-guile-2.0): Delay the first
argument to 'package-input-rewriting'.
| Ludovic Courtès |
2019-01-25 | weather: Add '--coverage'....* guix/scripts/weather.scm (show-help, %options): Add '--coverage'.
(package-partition-boundary, package->output-mapping)
(substitute-oracle, report-package-coverage-per-system)
(report-package-coverage): New procedures.
(guix-weather): Honor '--coverage'.
* doc/guix.texi (Invoking guix weather): Document it.
| Ludovic Courtès |
2019-01-25 | refresh: Better account for private and generated packages....Until now, private and generated packages (e.g., those created by
'texlive-union') we missing from the list passed to 'node-back-edges',
which would lead to inaccurate dependent counts.
Previously we'd get:
$ guix refresh -l texlive-fonts-cm
Building the following 80 packages would ensure 116 dependent packages
are rebuilt: …
Now we have:
$ Building the following 240 packages would ensure 597 dependent
packages are rebuilt: …
* guix/scripts/refresh.scm (list-dependents): Call 'package-closure'.
| Ludovic Courtès |
2019-01-25 | refresh: Fix format string that would lead '-l' to print incorrect numbers....The skip "~*" argument was misplaced, leading the number of dependents
to be skipped (instead of the number of covering packages.) Thus, we'd
get:
$ guix refresh -l ocaml4.02-ppx-deriving@4.1
Building the following package would ensure 1 dependent packages are rebuilt: bap@1.3.0
instead of:
Building the following package would ensure 26 dependent packages are rebuilt: bap@1.3.0
* guix/scripts/refresh.scm (list-dependents): Move "~*" in the right
place, to skip (length covering) rather than (length dependents).
| Ludovic Courtès |
2019-01-25 | weather: Ignore deprecated packages but not hidden packages....* guix/scripts/weather.scm (all-packages): Pass #:select? to
'fold-packages'.
| Ludovic Courtès |
2019-01-25 | packages: Add 'package-closure'....* guix/packages.scm (package-closure): New procedure.
* tests/packages.scm ("package-closure"): New test.
| Ludovic Courtès |
2019-01-24 | records: Make 'report-duplicate-field-specifier' available at expansion-time....Fixes a regression in 'guix pack -R' introduced with commit
c2dcff41c2e47f5f978f467864d5ed7829939884. The imported modules of
'c-compiler' would be compiled in this order: first (guix records),
then (guix search-paths). Consequently,
'report-duplicate-field-specifier' would be reported as unbound while
compiling (guix search-paths), leading to a build failure.
* guix/records.scm (report-invalid-field-specifier)
(report-duplicate-field-specifier): Move within 'eval-expand'.
| Ludovic Courtès |
2019-01-24 | tests: Remove duplicate field initializers....Fixes a regression introduced in
c2dcff41c2e47f5f978f467864d5ed7829939884, whereby many tests in
'tests/packages.scm' would trigger a syntax error due to duplicate field
intializers in forms like:
(dummy-package "foo" (version "0"))
* guix/tests.scm (dummy-package, dummy-origin): Rewrite to inherit from
a base record. This restores the semantics from before
c2dcff41c2e47f5f978f467864d5ed7829939884.
* tests/services.scm ("instantiate-missing-services, indirect"): Remove
duplicate 'extensions' field.
| Ludovic Courtès |
2019-01-24 | licenses: Add lppl1.1+....* guix/licenses.scm (lppl1.1+): New variable.
| Ricardo Wurmus |
2019-01-23 | ui: Don't report "build failed:" for daemon error messages....Until now we'd get things like:
guix build: error: build failed: build of `/gnu/store/….drv' failed
or:
$ guix gc -d /sdf
guix gc: error: build failed: path `/sdf' is not in the store
which is kinda ridiculous.
* guix/ui.scm (call-with-error-handling): Remove "build failed:" prefix
for 'store-protocol-error?'.
| Ludovic Courtès |
2019-01-23 | deduplication: Ignore EMLINK....Until now 'guix offload' would fail (transient failure) upon EMLINK.
* guix/store/deduplication.scm (replace-with-link)
(deduplicate): Ignore EMLINK.
| Ludovic Courtès |
2019-01-22 | self: System tests depend on CLI modules....This is because (gnu tests docker) depends on (guix scripts pack).
* guix/self.scm (compiled-guix)[*system-test-modules*]: Add dependency
on *CLI-MODULES*.
| Ludovic Courtès |
2019-01-22 | offload: 'status' reports the time difference....* guix/scripts/offload.scm (check-machine-status): Report the time
difference for each MACHINE.
| Ludovic Courtès |
2019-01-22 | records: Detect duplicate field initializers....* guix/records.scm (report-duplicate-field-specifier): New procedure.
(make-syntactic-constructor): Call it.
* tests/records.scm ("define-record-type* & duplicate initializers"):
New test.
Co-authored-by: Mark H Weaver <mhw@netris.org>
| Ludovic Courtès |
2019-01-22 | compile: Let compiler warnings through during the load phase....Previous warnings and errors such as those raised by (guix records)
would not be displayed during the load phase.
* guix/build/compile.scm (load-files): Remove 'parameterize' around
'resolve-interface' call.
(compile-files)[build]: Move 'with-fluids' for *CURRENT-WARNING-PREFIX*
to...
<top level>: ... here.
| Ludovic Courtès |
2019-01-22 | self: Remove leftover export....* guix/self.scm: Remove 'reload-guix' export.
| Ludovic Courtès |
2019-01-21 | store: Rename '&nix-error' to '&store-error'....* guix/store.scm (&nix-error): Rename to...
(&store-error): ... this, and adjust users.
(&nix-connection-error): Rename to...
(&store-connection-error): ... this, and adjust users.
(&nix-protocol-error): Rename to...
(&store-protocol-error): ... this, adjust users.
(&nix-error, &nix-connection-error, &nix-protocol-error): Define these
condition types and their getters as deprecrated aliases.
* build-aux/run-system-tests.scm, guix/derivations.scm,
guix/grafts.scm, guix/scripts/challenge.scm,
guix/scripts/graph.scm, guix/scripts/lint.scm,
guix/scripts/offload.scm, guix/serialization.scm,
guix/ssh.scm, guix/tests.scm, guix/ui.scm,
tests/derivations.scm, tests/gexp.scm, tests/guix-daemon.sh,
tests/packages.scm, tests/store.scm, doc/guix.texi: Adjust to use the
new names.
| Ludovic Courtès |
2019-01-21 | store: Rename <nix-server> to <store-connection>....* guix/store.scm (<nix-server>): Rename to...
(<store-connection>): ... this. Adjust users accordingly.
(nix-server?, nix-server-major-version)
(nix-server-minor-version, nix-server-socket)
(nix-server-version): Define as deprecated aliases.
* guix/inferior.scm: Adjust accordingly.
* guix/ssh.scm: Likewise.
| Ludovic Courtès |
2019-01-21 | deprecation: Send warnings to (current-error-port) by default....* guix/deprecation.scm (deprecation-warning-port): Default
to (current-error-port).
| Ludovic Courtès |
2019-01-21 | deprecation: Add 'define-deprecated/alias'....* guix/deprecation.scm (define-deprecated/alias): New macro.
| Ludovic Courtès |
2019-01-21 | import: github: Improve readability....* guix/import/github.scm (latest-released-version): Use any and cond instead
of a recursive loop and an if-else ladder respectively.
| Arun Isaac |
2019-01-21 | import: github: Use prereleases when package has no releases....* guix/import/github.scm (latest-released-version): Use preleases when package
has no releases.
| Arun Isaac |
2019-01-20 | pull: Add missing import....Fixes <https://bugs.gnu.org/34136>.
Reported by Pierre Neidhardt <mail@ambrevar.xyz>.
Fixes wrong-type-arg crash of "guix pull -p /does-not-exist -l".
* guix/scripts/pull.scm: Use (srfi srfi-34).
| Ludovic Courtès |
2019-01-20 | self: Build the (gnu tests …) modules....* guix/self.scm (compiled-guix)[*system-modules*]: Remove gnu/tests/*
from #:extra-files.
[*system-test-modules*]: New variable.
[build-modules]: Add them.
| Ludovic Courtès |
2019-01-21 | import: github: Check if git URIs are GitHub URIs....This fixes a regression introduced in 9a5091d0c181453d0f31ce97f96a4e577a25e796
whereby packages with git origin URIs not hosted on GitHub would be wrongly
detected as being covered under the github updater.
Reported by Efraim Flashner <efraim@flashner.co.il>.
* guix/import/github.scm (updated-github-url): Check if git URIs are GitHub
URIs.
| Arun Isaac |
2019-01-20 | channels: Use 'fold2'....* guix/channels.scm (latest-channel-instances): Use 'fold2' instead of
'fold'.
| Ludovic Courtès |
2019-01-20 | channels: Gracefully report the lack of a 'guix' channel....* guix/channels.scm (channel-instance-derivations): Raise an '&message'
condition when CORE-INSTANCE is #f.
| Ludovic Courtès |
2019-01-20 | channels: Build channel modules in an inferior....This ensures that channel modules are compiled with the right Guile,
that they get to see the right modules, and so on. IOW, it avoids bugs
such as those addressed by commits
3c0e16391ed9a3e3e4611b940fb393c5f2ecea63 and
cb341c121919877ae6267a6460c0c17536d06eff.
* guix/channels.scm (standard-module-derivation): Add 'core'
parameter. Rewrite in terms of 'gexp->derivation-in-inferior'.
(build-from-source): Add #:core parameter and pass it to
'standard-module-derivation'.
(build-channel-instance): Add 'core' parameter and pass it on.
(channel-instance-derivations)[dependencies]: Remove.
Adjust 'build-channel-instance' call.
| Ludovic Courtès |
2019-01-20 | inferior: 'gexp->derivation-in-inferior' honors EXP's load path....Previously the imported modules and extensions of EXP would be missing
from the load path of 'guix repl'.
* guix/inferior.scm (gexp->derivation-in-inferior)[script]: New
variable.
[trampoline]: Write (primitive-load #$script) to PIPE. Add #$output.
* tests/channels.scm ("channel-instances->manifest")[depends?]: Check
for requisites rather than direct references.
Adjust callers accordingly.
| Ludovic Courtès |
2019-01-20 | channels: Don't pull from the same channel more than once....Previous 'channel-instance->manifest' would call
'latest-channel-derivation', which could trigger another round of
'latest-repository-commit' for no good reason.
* guix/channels.scm (resolve-dependencies): New procedure.
(channel-instance-derivations)[edges]: New variable.
[instance->derivation]: New procedure.
* tests/channels.scm (make-instance): Use 'checkout->channel-instance'
instead of 'channel-instance'.
("channel-instances->manifest"): New test.
| Ludovic Courtès |
2019-01-20 | lint: check-source-unstable-tarball: Don't assume uri length....* guix/scripts/lint.scm (check-source-unstable-tarball): Replace third
with code to make sure there are enough elements to check.
| Efraim Flashner |
2019-01-20 | profiles: Allow a profile to be added as an entry of another profile....* guix/build/profiles.scm (build-etc/profile): When 'OUTPUT/etc/profile'
already exists, delete it first.
(build-profile): Likewise for 'OUTPUT/manifest'.
* tests/profiles.scm ("profile in profile"): New test.
| Ludovic Courtès |