aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* Work around a issue in grootfs when unpacking tar archivesChristopher Baines2019-02-24
|
* Support placing the pkg and src directories in a lib outputChristopher Baines2019-02-24
|
* scripts: system: Add support for container network sharing.Christopher Baines2019-02-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a port of the functionality in the Guix environment command to the guix system container command. This requires additional changes to the operating-system definitions used, in particular, networking related services may need removing if the host network is shared. * guix/scripts/system.scm (system-derivation-for-action): Add #:container-shared-network? argument. (perform-action): Add #:container-shared-network? argument. (show-help): Add "-N, --network" help information. (%options): Add network option. (process-action): Call perform-action with #:container-shared-network?. * gnu/system/linux-container.scm (%network-configuration-files): New variable. (container-script): Add support for returning a container script that shares the host network. * gnu/system.scm (essential-services): Add #:container-shared-network? argument. (operating-system-services): Add #:container-shared-network? argument. (operating-system-etc-service): Add #:container-shared-network? argument, and support for ommiting some configuration if the network is shared. (operating-system-activation-script): Add #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-boot-script): Add #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-derivation): Add the #:container-shared-network? argument, and pass this through to the operating-system-services procedure. (operating-system-profile): Add the #:container-shared-network? argument, and pass this through to the operating-system-services procedure.
* Alter the GitHub updater to use git tagsChristopher Baines2019-02-24
| | | | | Just using tags is the most consistent way of getting releases for GOV.UK related software.
* self: Generated (guix config) honors %CURRENT-SYSTEM.Ludovic Courtès2019-02-17
| | | | | | | | 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).
* self: Bundle 'glibc-utf8-locales'.Ludovic Courtès2019-02-16
| | | | | | | | 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.
* environment: Add '--inherit'.Ludovic Courtès2019-02-16
| | | | | | | | | | | | | * 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.
* gnu-maintenance: Verify GPG signatures in KDE updater.Marius Bakke2019-02-15
| | | | * guix/gnu-maintenance.scm (latest-kde-release): Remove #:file->signature.
* guix system: List old generations from newest to oldest.Ludovic Courtès2019-02-13
| | | | | | | | | 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'.
* guix system: Add 'delete-generations'.Ludovic Courtès2019-02-13
| | | | | | | | * 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.
* pull: Speed up the new/upgraded package computation.Ludovic Courtès2019-02-12
| | | | | | * 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.
* pull: Move profile comparison to 'new/upgraded-packages'.Ludovic Courtès2019-02-12
| | | | | | * guix/scripts/pull.scm (new/upgraded-packages): New procedure, with code formerly in 'display-new/upgraded-packages'. (display-new/upgraded-packages): Use it.
* inferior: Add 'inferior-available-packages'.Ludovic Courtès2019-02-12
| | | | | * guix/inferior.scm (inferior-available-packages): New procedure. * tests/inferior.scm ("inferior-available-packages"): New test.
* pull: Use 'fold-available-packages' for the current package list.Ludovic Courtès2019-02-12
| | | | | | * 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'.
* Avoid name clash with 'build' from (guix store) and (guix status).Ludovic Courtès2019-02-11
| | | | | | | | | | | | | | | | 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.
* pack, vm: Fix incorrect use of 'package-transitive-propagated-inputs'.Ludovic Courtès2019-02-11
| | | | | | | | | | 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.
* git: Add an exception printer for 'git-error'.Ludovic Courtès2019-02-11
| | | | | * guix/git.scm (print-git-error): New procedure. <top level>: Call 'set-exception-printer!'.
* ui: Always print the exception upon load errors.Ludovic Courtès2019-02-11
| | | | | | | | | | | | 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.
* status: Erase the current line upon new builds or downloads.Ludovic Courtès2019-02-11
| | | | | * guix/status.scm (print-build-event): Add 'erase-current-line*' call upon 'build-started, 'substituter-started, 'download-started.
* Merge branch 'staging'Ludovic Courtès2019-02-09
|\
| * Merge branch 'master' into stagingMarius Bakke2019-01-31
| |\
| * | download: Ask not to use TLS 1.3.Ludovic Courtès2019-01-26
| | | | | | | | | | | | | | | | | | | | | | | | 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".
* | | git: Always use the system certificates by default.Ludovic Courtès2019-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | '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!'.
* | | guix build: '--with-branch' & co. fetch submodules.Ludovic Courtès2019-02-08
| | | | | | | | | | | | | | | * guix/scripts/build.scm (transform-package-source-branch)[replace]: Add 'recursive?' field to the new package.
* | | git: Add a 'recursive?' field to <git-checkout> records.Ludovic Courtès2019-02-08
| | | | | | | | | | | | | | | | | | * 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.
* | | git: Support recursive updates of submodules.Ludovic Courtès2019-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | status: Do not systematically erase the previous line.Ludovic Courtès2019-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | profiles: Raise an error for unmatched patterns.Ludovic Courtès2019-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | monads, gexp: Prevent redefinition of syntax parameters.Ludovic Courtès2019-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | import: opam: Work around janestreet version numbers.Julien Lepiller2019-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | import: opam: Replace "_" with "-" in imported names.Julien Lepiller2019-02-05
| | | | | | | | | | | | | | | | | | * guix/import/opam.scm (ocaml-name->guix-name): Replace "_" with "-". (opam->guix-packages): Add upstream name when we cannot guess it properly.
* | | import: opam: Fix conditions.Julien Lepiller2019-02-05
| | | | | | | | | | | | | | | | | | * guix/import/opam.scm (condition-eq, condition-neq): The first argument can be empty. * tests/opam.scm: Add test case.
* | | status: Display the current build phase.Ludovic Courtès2019-02-05
| | | | | | | | | | | | | | | | | | * guix/status.scm (spin!): Add 'phase' parameter and honor it. Callers updated. (print-build-event)[report-progress]: Likewise.
* | | status: Keep track of the current build phase.Ludovic Courtès2019-02-05
| | | | | | | | | | | | | | | | | | | | | | | | * 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
* | | status: Use 'define-immutable-record-type' and its functional setters.Ludovic Courtès2019-02-05
| | | | | | | | | | | | | | | | | | | | | * 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.
* | | gnu: dune: Update to 1.6.3.Gabriel Hondet2019-02-04
| | | | | | | | | | | | | | | | | | | | | * 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>
* | | status: Erase the progress bar or spinner.Ludovic Courtès2019-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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").
* | | store: 'log-file' honors 'GUIX_LOG_DIRECTORY'.Ludovic Courtès2019-02-04
| | | | | | | | | | | | | | | * guix/store.scm (derivation-log-file): Use %LOCALSTATEDIR or "GUIX_LOG_DIRECTORY" instead of (dirname %STATE-DIRECTORY).
* | | self: Ensure the daemon refers to the right 'guix' command.Ludovic Courtès2019-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | daemon: Rename 'NIX_STATE_DIR' and 'NIX_DB_DIR' environment variables.Ludovic Courtès2019-02-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | profiles: 'manual-database' hook reports progress.Ludovic Courtès2019-02-01
| | | | | | | | | | | | | | | * guix/profiles.scm (manual-database)[build](compute-entries): Write a progress report.
* | | guix package: '-A' no longer lists deprecated packages.Ludovic Courtès2019-02-01
| |/ |/| | | | | | | | | | | | | | | 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.
* | pull: Default to verbosity level 1.Ludovic Courtès2019-01-29
| | | | | | | | * guix/scripts/pull.scm (%default-options): Change 'verbosity to 1.
* | self: Produce progress reports compatible with (guix status).Ludovic Courtès2019-01-29
| | | | | | | | | | | | * guix/self.scm (compiled-modules)[build](report-load) (report-compilation): Write "[M/N]" progress reports. Use line-buffering.
* | status: Print a progress bar for on-going builds when possible.Ludovic Courtès2019-01-29
| | | | | | | | | | | | | | | | * 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.
* | status: Keep track of build completion as reported by build tools.Ludovic Courtès2019-01-29
| | | | | | | | | | | | | | | | | | * 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.
* | status: Record more information about builds.Ludovic Courtès2019-01-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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'.
* | channels: Do not offload package cache derivation.Ludovic Courtès2019-01-29
| | | | | | | | | | * guix/channels.scm (package-cache-file): Pass #:local-build? to 'gexp->derivation-in-inferior'.
* | pull: Don't trigger 'hash guix' hint needlessly.Ludovic Courtès2019-01-28
| | | | | | | | | | | | | | | | | | 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.
* | channels: Turn off deprecation warnings when loading 'build-self.scm'.Ludovic Courtès2019-01-28
| | | | | | | | | | * guix/channels.scm (build-from-source): Parameterize DEPRECATION-WARNING-PORT when loading SCRIPT.