summaryrefslogtreecommitdiff
path: root/guix/scripts
AgeCommit message (Expand)Author
2018-12-17publish: Add a 'Cache-Control' header on /nar responses....Fixes <https://bugs.gnu.org/33721>. Reported by Chris Marusich <cmmarusich@gmail.com>. * guix/scripts/publish.scm (render-nar/cached): Add #:ttl and honor it. (make-request-handler): Pass #:ttl to 'render-nar/cached'. * tests/publish.scm ("with cache, uncompressed"): Pass "--ttl=42h" to 'guix publish'. Check 'Cache-Control' on narinfo response and on nar response. Ludovic Courtès
2018-12-17environment: Support package transformation options....Fixes <https://bugs.gnu.org/33776>. Reported by Adrien Guilbaud <adrien.guilbaud@inria.fr>. * guix/scripts/environment.scm (show-help): Add call to 'show-transformation-options-help'. (%options): Add %TRANSFORMATION-OPTIONS. (options/resolve-packages): Add 'store' parameter. [transform, package->manifest-entry*]: New procedures. Use 'package->manifest-entry*' instead of 'package->manifest-entry'. (guix-environment): Move definition of 'manifest' within 'with-store'. * tests/guix-environment.sh: Add test. Ludovic Courtès
2018-12-14substitute: Ignore irrelevant narinfo signatures....Fixes <https://bugs.gnu.org/33733>. Fixes a bug whereby 'guix substitute' would accept narinfos whose signature does not cover the StorePath/NarHash/References tuple. * guix/scripts/substitute.scm (narinfo-sha256)[%mandatory-fields]: New variable. Compute SIGNED-FIELDS; return #f unless each of the %MANDATORY-FIELDS is among SIGNED-FIELDS. * tests/substitute.scm ("query narinfo with signature over nothing") ("query narinfo with signature over irrelevant bits"): New tests. Ludovic Courtès
2018-12-10refresh: Account for overlapping updater coverage....* guix/scripts/refresh.scm (list-updaters-and-exit): Do not assume updater predicates are disjoint. Track covered packages directly. Eric Bavier
2018-12-07guix system: Fix bootloader config file generation by 'guix system roll-back'....Fixes <https://bugs.gnu.org/33623>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. Regression introduced in commit 46c296dcc4817f15a4b4ef7e5ef622306b4db62e. * guix/scripts/system.scm (reinstall-bootloader): Add call to 'lower-object'. Ludovic Courtès
2018-12-07describe: In 'channels' format, quote the channel name....Fixes a regression introduced in commit 8548f995494d8d6358e6a8d7bc3b3bb5a0cbecb5. * guix/scripts/describe.scm (channel->sexp): Quote the channel name. Ludovic Courtès
2018-12-04refresh: '--list-dependents' ignores deprecated packages....* guix/scripts/refresh.scm (all-packages): Filter out deprecated packages. Ludovic Courtès
2018-12-04build: Default to https://ci.guix.info for substitutes....* config-daemon.ac (guix_substitute_urls): Always default to "https://ci.guix.info". * doc/guix.texi (SUBSTITUTE-SERVER): Switch to ci.guix.info. * guix/scripts/build.scm (%default-log-urls): Likewise. * guix/scripts/substitute.scm (%default-substitute-urls): Likewise. * guix/store.scm (%default-substitute-urls): Likewise. Ludovic Courtès
2018-12-04Remove most references to hydra.gnu.org....* Makefile.am (assert-binaries-available): Don't mention hydra.gnu.org in comment. * build-aux/check-available-binaries.scm: Likewise. * build-aux/check-final-inputs-self-contained.scm: Likewise. * doc/guix.texi (SUBSTITUTE-SERVER): New variable. Use it throughout instead of "mirror.hydra.gnu.org". * doc/contributing.texi (Submitting Patches): Likewise. * gnu/services/base.scm (hydra-key-authorization) (guix-activation): Remove mentions of "hydra.gnu.org" in comments and messages. * gnu/system/install.scm (%installation-services): Likewise. * guix/scripts/size.scm (guix-size): Likewise. Ludovic Courtès
2018-12-03repl: Load user's initialization file....* guix/scripts/repl.scm (guix-repl): Load user's initialization file. Oleg Pykhalov
2018-11-30guix build: Add '--with-commit'....* guix/git.scm (<git-checkout>)[commit]: New field. (git-checkout-compiler): Honor it. * guix/scripts/build.scm (evaluate-git-replacement-specs): Add 'proc' parameter and honor it. (transform-package-source-branch)[replace]: New procedure. Adjust 'evaluate-git-replacement-specs' accordingly. (transform-package-source-commit): New procedure. (%transformations, %transformation-options) (show-transformation-options-help): Add 'with-commit'. * tests/guix-build-branch.sh: Add test. * doc/guix.texi (Package Transformation Options): Document it. Ludovic Courtès
2018-11-30guix build: Add '--with-branch' transformation option....* guix/scripts/build.scm (evaluate-git-replacement-specs) (transform-package-source-branch): New procedures. (%transformations, %transformation-options): Add 'with-branch'. (show-transformation-options-help): Likewise. * tests/guix-build-branch.sh: New file. * Makefile.am (SH_TESTS): Add it. * doc/guix.texi (Package Transformation Options): Document it. Ludovic Courtès
2018-11-28guix hash: Fix version and help messages...ca719424455465fca4b872c371daf2a46de88b33 changes the name of the executable to be displayed by the --version and --help commands of `guix hash` to "gcrypt hash". This is reverted by this commit. * guix/scripts/hash.scm (show-help): Change string literals Signed-off-by: Ludovic Courtès <ludo@gnu.org> Tim Gesthuizen
2018-11-27pack: List the available formats....* guix/scripts/pack.scm (show-formats): New variable. (%options, show-help): Add 'list-formats' option. Efraim Flashner
2018-11-27describe: Delete 'directory' argument from 'display-checkout-info'....This commit follows 1255400faabfcf0ca1666d17f2f34ea0d49f6b1f. * guix/scripts/describe.scm (display-checkout-info): Delete 'directory' argument. Oleg Pykhalov
2018-11-26repl: Do not exit repl on SIGINT....* guix/scripts/repl.scm (guix-repl): Do not exit repl on SIGINT. Oleg Pykhalov
2018-11-23pack: Add '--profile-name'....* guix/scripts/pack.scm (self-contained-tarball): Add #:profile-name and honor it. (squashfs-image, docker-image): Add #:profile-name. (%default-options): Add 'profile-name'. (%options, show-help): Add "--profile-name". (guix-pack): Honor it. * tests/guix-pack-localstatedir.sh: New file. * Makefile.am (SH_TESTS): Add it. * doc/guix.texi (Invoking guix pack): Document "--profile-name". Ludovic Courtès
2018-11-22describe: Add recutils format....* guix/scripts/describe.scm (channel->recutils): New procedure. (display-checkout-info, display-profile-info): Use this. (%options): Add 'recutils' option. * doc/guix.texi (Invoking guix describe): Document this. Oleg Pykhalov
2018-11-22describe: Add json format....* guix/scripts/describe.scm (channel->json): New procedure. (display-checkout-info, display-profile-info): Use this. (%options): Add 'json' option. * doc/guix.texi (Invoking guix describe): Document this. Oleg Pykhalov
2018-11-22describe: Use a procedure to format output....* guix/scripts/describe.scm (channel->sexp): New procedure. (display-checkout-info, display-profile-info): Use this. Oleg Pykhalov
2018-11-21guix system: Fix 'init' again....Fixes a regression introduced in 52ee4479ef26826a53b9929cd00ca7738be687b1, whereby 'install' would now be passed a procedure instead of a lowerable object. * guix/scripts/system.scm (perform-action): Pass BOOTLOADER-SCRIPT as the #:bootloader-installer argument of 'install'. Ludovic Courtès
2018-11-21describe: Add profile option....* guix/scripts/describe.scm (%options): Add profile option. (show-help): Document this. (display-checkout-info): Check for profile argument. * doc/guix.texi (Invoking guix describe): Document this. Oleg Pykhalov
2018-11-21describe: Fix 'format' option....Fix ‘guix describe’ ignores ‘--format=FORMAT’ option. * guix/scripts/describe.scm (%options): Fix 'format' option. Oleg Pykhalov
2018-11-20lint: 'check-derivation' fully disables grafts....Previously grafting could take place indirectly, for instance when lowering origins. * guix/scripts/lint.scm (check-derivation)[try]: Parameterize '%graft?'. Ludovic Courtès
2018-11-20lint: 'check-derivation' tries all the package's supported systems....This allows us to catch architecture-specific evaluation failures. * guix/scripts/lint.scm (check-derivation): Move body into... [try]: ... this. New procedure. Call 'try' for each supported system of PACKAGE. Ludovic Courtès
2018-11-19guix system: Fix 'init'....Fixes a regression introduced in 52ee4479ef26826a53b9929cd00ca7738be687b1, whereby 'install' would now be passed a <computed-file> object instead of a derivation. * guix/scripts/system.scm (install): Call 'lower-object' on BOOTCFG. Ludovic Courtès
2018-11-18guix system: Clarify 'perform-action'....* guix/scripts/system.scm (perform-action): Move non-monadic local variables outside the 'mlet' form. Ludovic Courtès
2018-11-18guix system: De-monadify bootloader installation script....* guix/scripts/system.scm (bootloader-installer-derivation): Rename to... (bootloader-installer-script): ... this. Use 'scheme-file' instead of 'gexp->file'. (perform-action): Adjust accordingly. Move 'lower-object' call to the point where DRVS is computed. Ludovic Courtès
2018-11-18guix system: Simplify bootloader package handling....* guix/scripts/system.scm (perform-action): Remove 'bootloader-package' variable. Pass (bootloader-package bootloader) as the 2nd argument to 'bootloader-installer-derivation'. Remove BOOTLOADER-PACKAGE from DRVS since it's redundant. Ludovic Courtès
2018-11-18system: De-monadify 'operating-system-bootcfg'....* gnu/system.scm (operating-system-bootcfg): Remove 'mlet*' and 'lower-object' call. * gnu/system/vm.scm (system-disk-image) (system-qemu-image/shared-store): Adjust accordingly. * guix/scripts/system.scm (perform-action): Add 'lower-object' call for BOOTCFG. Ludovic Courtès
2018-11-11guix system: Invoking 'guix system init' twice keeps timestamps zeroed....Fixes a bug whereby running 'guix system init config.scm /mnt' twice would, on the second run, change timestamps in /mnt/gnu/store from the Epoch to now. This is because the 'register-path' call would bypass the 'reset-timestamps' phase altogether in that case, as a consequence of commit bb3b6ccb05550fbfbeb459c68819a752327d6e1e. Reported by Christopher Baines. * guix/scripts/system.scm (install): When TARGET/var/guix exists, delete it. As a side-effect, this ensures that later on, the 'register-path' call invokes 'reset-timestamps' on all the copied store items. Ludovic Courtès
2018-11-11guix package: '--show' errors when asked for a non-existent package....Fixes <https://bugs.gnu.org/33323>. Reported by swedebugia <swedebugia@riseup.net>. * guix/scripts/package.scm (process-query): Call 'leave' when 'find-packages-by-name' returns the empty list. * tests/guix-package.sh: Test it. Ludovic Courtès
2018-11-07pull: Add missing monadic 'return'....Fixes a regression introduced in 5f7dd092ca577a534067f577b8849ed06cabf970 where, upon completion, 'guix pull' would fail (instead of printing the new/upgraded packages) with ugly errors like: successfully built /gnu/store/…-profile.drv 1 package in profile Backtrace: […] In guix/store.scm: 1605:24 1 (run-with-store _ _ #:guile-for-build _ #:system _ # _) In unknown file: 0 (_ #<build-daemon 256.97 2476b40>) ERROR: Wrong type to apply: #t Reported by thorwil on #guix. * guix/scripts/pull.scm (build-and-install): Add missing 'return' when DRY-RUN? is wrong. Ludovic Courtès
2018-11-06pack: Squashfs backend now honors '--localstatedir'....* guix/scripts/pack.scm (squashfs-image)[database]: New variable. [build]: Add (gnu build install) to the closure. Call 'install-database-and-gc-roots' when DATABASE is true, and invoke mksquashfs once more. * tests/pack.scm ("squashfs-image + localstatedir"): New test. Ludovic Courtès
2018-11-06pack: Docker backend now honors '--localstatedir'....* guix/docker.scm (build-docker-image): Add #:database parameter. Create /var/guix/db, /var/guix/profiles, etc. when DATABASE is true. * guix/scripts/pack.scm (docker-image): Export. Remove #:deduplicate? parameter. Define 'database' and pass it to 'docker-image'. * tests/pack.scm (test-assertm): Recompile the derivation of %BOOTSTRAP-GUILE. ("docker-image + localstatedir"): New test. Ludovic Courtès
2018-11-06pack: Import (guix store database) only when '--localstatedir' is passed....This is another way to address <https://bugs.gnu.org/32184>, which was previously addressed in commit 19c924af4f3726688ca155a905ebf1cb9acdfca2. * gnu/build/install.scm (register-closure): Move to... * gnu/build/vm.scm (register-closure): ... here. New procedure. * guix/scripts/pack.scm (self-contained-tarball)[build]: Remove now unneeded 'with-extensions' form and custom (guix config) module. * tests/guix-pack.sh: Revert the strategy from commit 19c924af4f3726688ca155a905ebf1cb9acdfca2. * tests/pack.scm ("self-contained-tarball"): Likewise. Ludovic Courtès
2018-11-06pack: Move store database creation to a separate derivation....* guix/scripts/pack.scm (store-database): New procedure. (self-contained-tarball): Use it when LOCALSTATEDIR? is true. Remove 'schema' and add 'database'. [build]: Pass DATABASE to 'populate-single-profile-directory'. (squashfs-image): Remove #:deduplicate? parameter. [build]: Remove (gnu build install) and (guix config) from the imported modules. Remove 'with-extensions'. * gnu/build/install.scm (populate-single-profile-directory): Remove #:deduplicate?, #:register?, and #:schema; add #:database. Remove call to 'register-closure' and simply copy DATABASE instead. Ludovic Courtès
2018-11-06pull: Make '--dry-run' behave as expected....* guix/scripts/pull.scm (show-help): Document '--dry-run'. (build-and-install): Add #:dry-run? parameter and honor it. (guix-pull): Remove (assoc-ref opts 'dry-run?) condition. Instead, pass it as #:dry-run? to 'build-and-install'. * doc/guix.texi (Invoking guix pull): Document '--dry-run'. Move '--verbose' to the bottom. Ludovic Courtès
2018-10-29Add 'guix processes'....* guix/scripts/processes.scm, tests/processes.scm: New files. * Makefile.am (MODULES): Add the former. (SCM_TESTS): Add the latter. * po/guix/POTFILES.in: Add guix/scripts/processes.scm. * doc/guix.texi (Invoking guix processes): New node. (Invoking guix-daemon): Reference it. Ludovic Courtès
2018-10-27pack: Hide 'zip' colliding binding....* guix/scripts/pack.scm: Hide 'zip' from (gnu packages compression). Ludovic Courtès
2018-10-27pack: Remove unused variable....* guix/scripts/pack.scm (self-contained-tarball)[libgcrypt]: Remove. Ludovic Courtès
2018-10-23scripts: Suggest running 'guix gc' when we're short on disk space....* guix/scripts.scm (%disk-space-warning): New variable. (warn-about-disk-space): New procedure. * guix/scripts/package.scm (build-and-use-profile): Use it. * guix/scripts/system.scm (process-action): Likewise. Ludovic Courtès
2018-10-19pack: Fix "-C none -f tarball"....Fixes a regression introduced in 48b444304e206c35cf2c8e0d87a4711f1aac4fd4 whereby "guix pack -C none hello" would fail with: ERROR: In procedure string-join: In procedure string-join: Wrong type argument in position 1: #f builder for `/gnu/store/…-tarball-pack.tar.drv' failed with exit code 1 * guix/scripts/pack.scm (self-contained-tarball): Adjust for when 'compressor-command' returns #f. Ludovic Courtès
2018-10-17import cran: Document "recursive" option....* guix/scripts/import/cran.scm: (show-help): Document "recursive" option. Pierre Neidhardt
2018-10-15status: Build upon multiplexed build output....This allows for more accurate status tracking and parsing of extended build traces. * guix/status.scm (multiplexed-output-supported?): New procedure. (print-build-event): Don't print \r when PRINT-LOG? is true. Adjust 'build-log' handling for when 'multiplexed-output-supported?' returns true. (bytevector-index, split-lines): New procedures. (build-event-output-port)[%build-output-pid, %build-output] [%build-output-left]: New variables. [process-line]: Handle "@ build-output" traces. [process-build-output]: New procedure. [write!]: Add case for when %BUILD-OUTPUT-PID is true. Use 'bytevector-index' rather than 'string-index'. (compute-status): Add #:derivation-path->output-path. Use it. * tests/status.scm ("compute-status, multiplexed build output"): New test. ("build-output-port, UTF-8") ("current-build-output-port, UTF-8 + garbage"): Adjust to new 'build-log' output. * guix/scripts/build.scm (set-build-options-from-command-line): Pass #:multiplexed-build-output?. (%default-options): Add 'multiplexed-build-output?'. * guix/scripts/environment.scm (%default-options): Likewise. * guix/scripts/pack.scm (%default-options): Likewise. * guix/scripts/package.scm (%default-options): Likewise. * guix/scripts/pull.scm (%default-options): Likewise. * guix/scripts/system.scm (%default-options): Likewise. Ludovic Courtès
2018-10-14describe: Canonicalize the profile....Fixes a regression introduced in 795d430d90e41eb172315bfccf79c9f13fc0ebfa whereby 'guix describe' would no longer display the generation number of ~/.config/guix/current. * guix/scripts/describe.scm (guix-describe): Call 'canonicalize-profile'. Ludovic Courtès
2018-10-12pull: Fix target of /var/guix/profiles/per-user/USER/current-guix....This is a followup to 8155a209071f981fbf359975f463be4bcf8fa23e. * guix/scripts/pull.scm (migrate-generations): Compute the right target for /var/guix/profiles/per-user/USER/current-guix. Previously we'd return "current-N-link" instead of "current-guix-N-link'. Ludovic Courtès
2018-10-12pull: Don't use rename(2) across potentially different devices....Reported by Formbi on #guix. * guix/scripts/pull.scm (migrate-generations): Use 'symlink' and 'delete-file' instead of 'rename-file'. The latter could lead to EXDEV when $HOME and /var were different partitions. Ludovic Courtès
2018-10-12pull: Create /var/guix/profiles/per-user/USER/current-guix....Previously the migration code would fail to create that file, so ~/.config/guix/current would be dangling. * guix/scripts/pull.scm (migrate-generations): Create /var/guix/profiles/per-user/USER/current-guix. Ludovic Courtès
2018-10-11pull: Turn ~/.config/guix/current into a symlink to /var/guix/profiles....This is more consistent with what 'guix package' does, more pleasant for users (we no longer clobber ~/.config/guix), and more cluster-friendly (since /var/guix/profiles is usually an NFS share already.) * guix/scripts/pull.scm (%current-profile, %user-profile-directory): New variables. (migrate-generations, ensure-default-profile): New procedures. (guix-pull): Use %CURRENT-PROFILE by default. Call 'ensure-default-profile'. * doc/guix.texi (Invoking guix pull): Adjust 'guix package -p ~/.config/guix/current' example. * guix/scripts.scm (warn-about-old-distro): Check %PROFILE-DIRECTORY "/current-guix". Ludovic Courtès