summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2019-02-14guix: 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. Christopher Baines
2019-02-14guix: 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. Christopher Baines
2019-02-14gnu: 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. Christopher Baines
2019-02-13guix 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'. Ludovic Courtès
2019-02-13guix 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. Ludovic Courtès
2019-02-12pull: 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. Ludovic Courtès
2019-02-12pull: 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. Ludovic Courtès
2019-02-12inferior: Add 'inferior-available-packages'....* guix/inferior.scm (inferior-available-packages): New procedure. * tests/inferior.scm ("inferior-available-packages"): New test. Ludovic Courtès
2019-02-12pull: 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'. Ludovic Courtès
2019-02-11Avoid name clash with 'build' from (guix store) and (guix status)....Since commit 976ef2d97887d16eab8d4eb9dad811786b04d690, (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. Ludovic Courtès
2019-02-11pack, 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. Ludovic Courtès
2019-02-11git: Add an exception printer for 'git-error'....* guix/git.scm (print-git-error): New procedure. <top level>: Call 'set-exception-printer!'. Ludovic Courtès
2019-02-11ui: 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. Ludovic Courtès
2019-02-11status: 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. Ludovic Courtès
2019-02-09Merge branch 'staging'Ludovic Courtès
2019-02-08git: 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!'. Ludovic Courtès
2019-02-08guix build: '--with-branch' & co. fetch submodules....* guix/scripts/build.scm (transform-package-source-branch)[replace]: Add 'recursive?' field to the new package. Ludovic Courtès
2019-02-08git: 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. Ludovic Courtès
2019-02-08git: 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. Ludovic Courtès
2019-02-07status: 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. Ludovic Courtès
2019-02-07profiles: 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. Ludovic Courtès
2019-02-06monads, 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. Ludovic Courtès
2019-02-05import: 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. Julien Lepiller
2019-02-05import: 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. Julien Lepiller
2019-02-05import: opam: Fix conditions....* guix/import/opam.scm (condition-eq, condition-neq): The first argument can be empty. * tests/opam.scm: Add test case. Julien Lepiller
2019-02-05status: 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-05status: 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-05status: 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-04gnu: 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-04status: 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-04store: '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-04self: 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-04daemon: 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-01profiles: 'manual-database' hook reports progress....* guix/profiles.scm (manual-database)[build](compute-entries): Write a progress report. Ludovic Courtès
2019-02-01guix 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-31Merge branch 'master' into stagingMarius Bakke
2019-01-29pull: Default to verbosity level 1....* guix/scripts/pull.scm (%default-options): Change 'verbosity to 1. Ludovic Courtès
2019-01-29self: 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-29status: 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-29status: 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-29status: 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-29channels: 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-28pull: 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-28channels: 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-28packages: '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-26download: Ask not to use TLS 1.3....Works around <https://bugs.gnu.org/34102>. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/build/download.scm (tls-wrap): Add "-VERS-TLS1.3" to the priority string when (gnutls-version) is not prefixed by "3.5". Ludovic Courtès
2019-01-25weather: 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-25refresh: 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-25refresh: 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-25weather: Ignore deprecated packages but not hidden packages....* guix/scripts/weather.scm (all-packages): Pass #:select? to 'fold-packages'. Ludovic Courtès