summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* self: Install 'guix.zh_CN.info'.Ludovic Courtès2019-04-25
| | | | | | | Reported by Julien Lepiller. * guix/self.scm (info-manual): Adjust file name regexp so that it matches *.zh_CN.texi.
* guix system: Compute 'bootcfg' only for 'init' and 'reconfigure'.Ludovic Courtès2019-04-23
| | | | | | | | | | | | Previously, 'guix system vm' would start by computing the bootcfg derivation, which itself depended on an incorrect OS derivation (for the original OS instead of the one passed through 'virtualized-operating-system'.) That added overhead and would force the user's config file to define a root file system, for example, even though it makes no sense in the case of a VM. * guix/scripts/system.scm (perform-action)[bootcfg]: Limit to the 'init' and 'reconfigure' actions.
* pull: Create profile after the store connection has been opened.Ludovic Courtès2019-04-22
| | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/35341>. Reported by Florian Pelz <pelzflorian@pelzflorian.de>. Previously, we'd call 'ensure-default-profile' before the connection to the daemon has been opened. On the first connection, the daemon ensures that /var/guix/profiles/per-user is world-writable. Since we were calling 'ensure-default-profile' before that, /var/guix/profiles/per-user was typically non-writable (555 and root-owned), and thus 'guix pull' would error out. * guix/scripts/pull.scm (guix-pull): Call 'ensure-default-profile' within 'with-store'.
* pull: Add '--news'.Ludovic Courtès2019-04-22
| | | | | | | | | | | | | Suggested by Tobias Geerinckx-Rice <me@tobias.gr>. * guix/scripts/pull.scm (%options, show-help): Add '--news'. (display-profile-news): Add #:current-is-newer? and #:concise?. Honor them. (build-and-install): Pass #:concise? #t. (display-new/upgraded-packages)[concise/max-item-count]: New variable. Add call to 'display-hint'. (process-query): Add clause for 'display-news'. * doc/guix.texi (Invoking guix pull): Add '--news'.
* guix build: Accept multiple '-s' options.Ludovic Courtès2019-04-19
| | | | | | | | | | | * guix/scripts/build.scm (%default-options): Remove 'system'. (%options) <--system>: Keep previous occurrences of 'system in RESULT. (options->derivations)[system]: Remove. [systems, things-to-build]: New variables. [compute-derivation]: New procedure. Iterate on all of SYSTEMS to compute the derivations of THINGS-TO-BUILD. * tests/guix-build.sh: Add test for one and multiple '-s' flags. * doc/guix.texi (Additional Build Options): Document this behavior.
* guile-build-system: Support building in parallel.Christopher Baines2019-04-18
| | | | | | * guix/build/guile-build-system.scm (build): Use invoke-each, instead of for-each, to use multiple cores if available. (invoke-each, report-build-process): New procedures.
* lint: 'check-github-url' uses our own 'open-connection-for-uri'.Ludovic Courtès2019-04-18
| | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/35053>. Reported by Efraim Flashner <efraim@flashner.co.il>. Previously 'check-github-url' would let Guile 2.2's (web client) module take care of opening the connection. Consequently, it wouldn't use the TLS priority strings that we use in (guix build download), 'open-connection-for-uri'. In particular, it would not disable TLSv1.3, which would trigger <https://bugs.gnu.org/34102> for github.com. * guix/scripts/lint.scm (check-github-url): Add #:timeout parameter. [follow-redirect]: Change parameter name to 'url' and pass it to 'string->uri'. Call 'guix:open-connection-for-uri' to open the connection and pass it to 'http-head' via #:port.
* pull: '--url', '--commit', and '--branch' apply to the 'guix' channel.Ludovic Courtès2019-04-17
| | | | | | | | Suggested by pkill9 <pkill9@runbox.com>. * guix/scripts/pull.scm (channel-list): Apply REF and URL to the 'guix' channel. * doc/guix.texi (Invoking guix pull): Adjust accordingly.
* build: No longer substitute 'LIBGCRYPT'.Ludovic Courtès2019-04-17
| | | | | | | This had become useless since ca719424455465fca4b872c371daf2a46de88b33. * configure.ac (LIBGCRYPT): Remove. * guix/config.scm.in (%libgcrypt): Remove.
* self: Remove unused variable.Ludovic Courtès2019-04-17
| | | | | | | | This variable is unused since commit 45779fa676419de8838cb26b6c7a24678a2be1cd. * guix/self.scm (%dependency-variables): Remove. * build-aux/build-self.scm (%dependency-variables): Remove.
* store: Add "add-data-to-store-cache" profiling component.Ludovic Courtès2019-04-16
| | | | | * guix/store.scm (add-data-to-store): Define 'lookup' and use it instead of 'hash-ref'.
* derivations: Reduce 'valid-path?' RPCs in 'derivation-prerequisites-to-build'.Ludovic Courtès2019-04-16
| | | | | | | | On a profile with 280 packages, this reduces the number of 'valid-paths?' RPCs made by 'guix package -nu' from 6K to 500. * guix/derivations.scm (derivation-prerequisites-to-build)[built?]: Memoize 'valid-path?' calls.
* store: Memoize 'built-in-builders' call directly in <store-connection>.Ludovic Courtès2019-04-16
| | | | | | | | | | | | | | | The caching strategy introduced in 40cc850aebb497faed0a11d867d8fcee729023df was ineffective since we regularly start from an empty object cache. For example, "guix build inkscape -n" would make 241 'built-in-builders' RPCs. * guix/store.scm (<store-connection>)[built-in-builders]: New field. (open-connection): Adjust '%make-store-connection' call accordingly. (port->connection): Likewise. (built-in-builders): Rename to... (%built-in-builders): ... this. (built-in-builders): New procedure. * guix/download.scm (built-in-builders*): Remove 'mcached' call.
* guix build: Fix relative file name canonicalization for '--root'.Ludovic Courtès2019-04-15
| | | | | | | | | Fixes <https://bugs.gnu.org/35271>. Reported by rendaw <7e9wc56emjakcm@s.rendaw.me>. * guix/scripts/build.scm (register-root): When ROOT is a relative file name, append the basename of ROOT, not ROOT itself. * tests/guix-build.sh: Add test.
* ui: Highlight heading of generation lists.Ludovic Courtès2019-04-14
| | | | * guix/ui.scm (display-generation): Highlight the "Generation" heading.
* colors: Add 'highlight'.Ludovic Courtès2019-04-14
| | | | | | | * guix/colors.scm (%highlight-color): New variable. (highlight): New procedure. * guix/ui.scm (%highlight-argument)[highlight]: Remove. (%highlight-color): Remove.
* build-system/linux-module: Configure module like the kernel.Danny Milosavljevic2019-04-12
| | | | | * guix/build/linux-module-build-system.scm (configure): New procedure. (%standard-phases): Add "configure" phase.
* build-system/linux-module: Support module source versioning.Danny Milosavljevic2019-04-12
| | | | | | | | * guix/build-system/linux-module.scm (make-linux-module-builder) [native-inputs]: Add linux. [arguments]<#:phases>[install]: Install "System.map" and "Module.symvers". * guix/build/linux-module-build-system.scm (configure): Delete procedure. (%standard-phases): Delete "configure" phase.
* colors: Add 'colorize-matches'.Ludovic Courtès2019-04-11
| | | | | * guix/colors.scm (colorize-matches): New procedure. (color-rules): Rewrite in terms of 'colorize-matches'.
* colors: Introduce a disjoint type and pre-compute ANSI escapes.Ludovic Courtès2019-04-11
| | | | | | | | | | | | | | | | | | * guix/colors.scm (color-table, color): Remove. (<color>): New record type. (print-color): New procedure. (define-color-table, color): New macros. (color-codes->ansi): New procedure. (%reset): New variable. (colorize-string): Rewrite accordingly. (color-rules): Adjust accordingly. * guix/status.scm (print-build-event): Adjust to new 'colorize-string' interface. * guix/ui.scm (%highlight-argument): Likewise. (%warning-colors, %info-colors, %error-colors, %hint-colors) (%highlight-colors): Remove. (%warning-color, %info-color, %error-color, %hint-color) (%highlight-color): New variables.
* guix gc: '-d' does not attempt to delete non-user-owned roots.Ludovic Courtès2019-04-11
| | | | | * guix/scripts/gc.scm (guix-gc)[delete-generations]: Limit to user-owned roots, unless we're running as root.
* Add (guix build-system linux-module).Danny Milosavljevic2019-04-11
| | | | | | | * guix/build/linux-module-build-system.scm: New file. * guix/build-system/linux-module.scm: New file. * doc/guix.texi (Build Systems): Document it. * Makefile.am (MODULES): Add them.
* import: opam: Use dune-build-system when possible.Julien Lepiller2019-04-10
| | | | * guix/import/opam.scm (opam->guix-package): Detect when dune can be used.
* import: opam: Add more patterns to opam file parser.Julien Lepiller2019-04-10
| | | | | | * guix/import/opam.scm: Add more patterns to peg parser. (choice-pat choice condition-not condition-paren): New patterns. (ground-value condition-content condition-var): Update patterns.
* scripts: GC hint suggests 'guix gc -d 1m'.Ludovic Courtès2019-04-10
| | | | * guix/scripts.scm (warn-about-disk-space): Suggest 'guix gc -d'.
* guix gc: Add '--delete-generations'.Ludovic Courtès2019-04-10
| | | | | | | | | | * guix/scripts/gc.scm (show-help, %options): Add '--delete-generations'. Change '--delete' shorthand to '-D'. (delete-old-generations): New procedure. (guix-gc)[delete-generations]: New procedure. Call it when ACTION is 'collect-garbage' and OPTS contains 'delete-generations. * doc/guix.texi (Invoking guix gc): Document it.
* profiles: Add 'generation-profile'.Ludovic Courtès2019-04-10
| | | | | * guix/profiles.scm (%profile-generation-rx): New variable. (generation-profile): New procedure.
* guix gc: Add '--list-roots'.Ludovic Courtès2019-04-10
| | | | | | | | * guix/scripts/gc.scm (show-help, %options): Add '--list-roots'. (guix-gc)[list-roots]: New procedure. Handle '--list-roots'. * tests/guix-gc.sh: Test it. * doc/guix.texi (Invoking guix gc): Document it.
* Add (guix store roots).Ludovic Courtès2019-04-10
| | | | | | * guix/store/roots.scm, tests/store-roots.scm: New files. * Makefile.am (STORE_MODULES): Add guix/store/roots.scm. (SCM_TESTS): Add tests/store-roots.scm.
* pull: Remove duplicate '--dry-run' description.Ludovic Courtès2019-04-10
| | | | | | | Reported by pkill9. * guix/scripts/pull.scm (show-help): Remove duplicate '--dry-run' description.
* ui: Highlight diagnostic format string arguments.Ludovic Courtès2019-04-10
| | | | | | * guix/ui.scm (highlight-argument): New macro. (%highlight-argument): New procedure. (define-diagnostic): Use 'highlight-argument'.
* ui: Colorize hints.Ludovic Courtès2019-04-10
| | | | | | * guix/ui.scm (%info-colors): Remove CYAN. (%hint-colors): New variable. (display-hint): Adjust so that the "hint:" prefix is colorized.
* ui: Colorize diagnostics.Ludovic Courtès2019-04-10
| | | | | | | | * guix/ui.scm (define-diagnostic): Add 'colors' parameter and pass it to 'print-diagnostic-prefix'. (warning, info, report-error): Add extra argument. (%warning-colors, %info-colors, %error-colors): New variables. (print-diagnostic-prefix): Add #:colors parameter and honor it.
* ui: Diagnostic procedures can display error location.Ludovic Courtès2019-04-10
| | | | | | | | | * guix/ui.scm (define-diagnostic): Add optional 'location' parameter. Pass it to 'print-diagnostic-prefix'. (print-diagnostic-prefix): Add optional 'location' parameter and honor it. (report-load-error): Use 'report-error' and 'warning' instead of (format (current-error-port) …).
* ui: Factorize 'print-diagnostic-prefix'.Ludovic Courtès2019-04-10
| | | | | * guix/ui.scm (define-diagnostic): Emit call to 'print-diagnostic-prefix'. (print-diagnostic-prefix): New procedure.
* ui: Make diagnostic message prefix translatable.Ludovic Courtès2019-04-10
| | | | | | * guix/ui.scm (define-diagnostic): Expect PREFIX to be enclosed in 'G_'. Emit call to 'gettext' on PREFIX. (warning, info, report-error): Wrap prefix in 'G_'.
* ui: Fix i18n for diagnostic messages.Ludovic Courtès2019-04-10
| | | | | | | | | | Until now, we'd pass 'gettext' the "augmented" format string, which 'gettext' would not find in message catalogs. Now we pass it FMT as is, which is what catalogs contain. * guix/ui.scm (define-diagnostic)[augmented-format-string]: Remove. Emit one 'format' call to print the prefix, and a second one to print the actual message.
* Add (guix colors).Ludovic Courtès2019-04-10
| | | | | | | * guix/colors.scm: New file. * Makefile.am (MODULES): Add it. * guix/ui.scm (color-table, color, colorize-string): Remove. * guix/status.scm (isatty?*, color-output? color-rules): Remove.
* store: 'with-store' expands to a single procedure call.Ludovic Courtès2019-04-10
| | | | | * guix/store.scm (call-with-store): New procedure. (with-store): Write in terms of 'call-with-store'.
* guix package: Use absolute file names in search path recommendations.Ludovic Courtès2019-04-10
| | | | | | | Suggested by Chris Marusich. * guix/scripts/package.scm (absolutize): New procedure. (display-search-paths): Use it.
* build-system/cargo: refactor phases to successfully buildIvan Petkov2019-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build-system/cargo.scm (%cargo-build-system-modules): Add (json parser). (cargo-build): [vendor-dir]: Define flag and pass it to builder code. [cargo-test-flags]: Likewise. [skip-build?]: Likewise. * guix/build/cargo-build/system.scm (#:use-module): use (json parser). (package-name->crate-name): Delete it. (manifest-targets): Add it. (has-executable-target?): Add it. (configure): Add #:vendor-dir name and use it. Don't touch Cargo.toml. Don't symlink to duplicate inputs. Remove useless registry line from cargo config. Define RUSTFLAGS to lift lint restrictions. (build): Add #:skip-build? flag and use it. (check): Likewise. Add #:cargo-test-flags and pass it to cargo. (install): Factor source logic to install-source. Define #:skip-build? flag and use it. Only install if executable targets are present. (install-source): Copy entire crate directory not just src. [generate-checksums] pass dummy file for unused second argument. (%standard-phases): Add install-source phase. Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
* licenses: Remove 'bsd-style'.Ludovic Courtès2019-04-08
| | | | | | This procedure had been deprecated since March 2015. * guix/licenses.scm (bsd-style): Remove.
* size: Optimize dependency size computation.Ludovic Courtès2019-04-07
| | | | | | | | | | This reduces 'guix size' run time by ~4% here: items="$(guix build icecat inkscape emacs libreoffice)" guix size $items * guix/scripts/size.scm (store-profile): Define 'size-table' and use it to lookup the size of ITEM in 'dependency-size'.
* licenses: Add Lisp Lesser General Public License.Katherine Cox-Buday2019-04-07
| | | | | | * gnu/licenses.scm (llgpl): New variable. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
* scripts: More commands default to verbosity level 1.Ludovic Courtès2019-04-04
| | | | | | | * guix/scripts/environment.scm (%default-options): Change 'verbosity' to 1. * guix/scripts/pack.scm (%default-options): Likewise. * guix/scripts/system.scm (guix-system): Likewise, except for the 'build' command.
* gexp: Remove workarounds for <https://bugs.gnu.org/15602>.Ludovic Courtès2019-04-04
| | | | | | | * gnu/services/base.scm (hydra-key-authorization)[aaa]: Remove. [default-acl]: Don't import it. * guix/scripts/pack.scm (store-database)[build]: Don't import (gnu build install).
* gexp: 'compiled-modules' loads modules before compiling them.Ludovic Courtès2019-04-04
| | | | | | | | | | | This works around <https://bugs.gnu.org/15602> in the context of modules specified with 'with-imported-modules'. * guix/gexp.scm (gexp->derivation): Add #:pre-load-modules? parameter and pass it to 'compiled-modules'. (compiled-modules): Add #:pre-load-modules? parameter and honor it. * guix/packages.scm (patch-and-repack): Pass #:pre-load-modules? to 'gexp->derivation'.
* self: Ship all the (gnu bootloader …) modules.Ludovic Courtès2019-04-03
| | | | | * guix/self.scm (compiled-guix)[*system-modules*]: Explicitly add all of gnu/bootloader/*.
* environment: '-C' creates namespaces where the user is not root.Ludovic Courtès2019-04-02
| | | | | | | | | * guix/scripts/environment.scm (launch-environment/container): Add UID and GID. Use them in PASSWD and GROUPS. Pass them as #:guest-uid and #:guest-gid to 'call-with-container'. * tests/guix-environment-container.sh: Test the inner UID. In '--user' test, replace hard-coded 0 with 1000. * doc/guix.texi (Invoking guix environment): Adjust accordingly.
* packages: Remove 'maintainers' field.Ludovic Courtès2019-03-30
| | | | | | | This field was never used and doesn't match the way we collectively maintain packages. * guix/packages.scm (<package>)[maintainers]: Remove.