summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2019-04-10import: opam: Use dune-build-system when possible.Julien Lepiller
* guix/import/opam.scm (opam->guix-package): Detect when dune can be used.
2019-04-10import: opam: Add more patterns to opam file parser.Julien Lepiller
* 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.
2019-04-10scripts: GC hint suggests 'guix gc -d 1m'.Ludovic Courtès
* guix/scripts.scm (warn-about-disk-space): Suggest 'guix gc -d'.
2019-04-10guix gc: Add '--delete-generations'.Ludovic Courtès
* 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.
2019-04-10profiles: Add 'generation-profile'.Ludovic Courtès
* guix/profiles.scm (%profile-generation-rx): New variable. (generation-profile): New procedure.
2019-04-10guix gc: Add '--list-roots'.Ludovic Courtès
* 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.
2019-04-10Add (guix store roots).Ludovic Courtès
* 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.
2019-04-10pull: Remove duplicate '--dry-run' description.Ludovic Courtès
Reported by pkill9. * guix/scripts/pull.scm (show-help): Remove duplicate '--dry-run' description.
2019-04-10ui: Highlight diagnostic format string arguments.Ludovic Courtès
* guix/ui.scm (highlight-argument): New macro. (%highlight-argument): New procedure. (define-diagnostic): Use 'highlight-argument'.
2019-04-10ui: Colorize hints.Ludovic Courtès
* guix/ui.scm (%info-colors): Remove CYAN. (%hint-colors): New variable. (display-hint): Adjust so that the "hint:" prefix is colorized.
2019-04-10ui: Colorize diagnostics.Ludovic Courtès
* 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.
2019-04-10ui: Diagnostic procedures can display error location.Ludovic Courtès
* 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) …).
2019-04-10ui: Factorize 'print-diagnostic-prefix'.Ludovic Courtès
* guix/ui.scm (define-diagnostic): Emit call to 'print-diagnostic-prefix'. (print-diagnostic-prefix): New procedure.
2019-04-10ui: Make diagnostic message prefix translatable.Ludovic Courtès
* 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_'.
2019-04-10ui: Fix i18n for diagnostic messages.Ludovic Courtès
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.
2019-04-10Add (guix colors).Ludovic Courtès
* 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.
2019-04-10store: 'with-store' expands to a single procedure call.Ludovic Courtès
* guix/store.scm (call-with-store): New procedure. (with-store): Write in terms of 'call-with-store'.
2019-04-10guix package: Use absolute file names in search path recommendations.Ludovic Courtès
Suggested by Chris Marusich. * guix/scripts/package.scm (absolutize): New procedure. (display-search-paths): Use it.
2019-04-09build-system/cargo: refactor phases to successfully buildIvan Petkov
* 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>
2019-04-08licenses: Remove 'bsd-style'.Ludovic Courtès
This procedure had been deprecated since March 2015. * guix/licenses.scm (bsd-style): Remove.
2019-04-07size: Optimize dependency size computation.Ludovic Courtès
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'.
2019-04-07licenses: Add Lisp Lesser General Public License.Katherine Cox-Buday
* gnu/licenses.scm (llgpl): New variable. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2019-04-04scripts: More commands default to verbosity level 1.Ludovic Courtès
* 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.
2019-04-04gexp: Remove workarounds for <https://bugs.gnu.org/15602>.Ludovic Courtès
* 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).
2019-04-04gexp: 'compiled-modules' loads modules before compiling them.Ludovic Courtès
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'.
2019-04-03self: Ship all the (gnu bootloader …) modules.Ludovic Courtès
* guix/self.scm (compiled-guix)[*system-modules*]: Explicitly add all of gnu/bootloader/*.
2019-04-02environment: '-C' creates namespaces where the user is not root.Ludovic Courtès
* 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.
2019-03-30packages: Remove 'maintainers' field.Ludovic Courtès
This field was never used and doesn't match the way we collectively maintain packages. * guix/packages.scm (<package>)[maintainers]: Remove.
2019-03-30packages: Remove 'self-native-input?' field.Ludovic Courtès
This field has become unnecessary with the addition of 'this-package'. * guix/packages.scm (<package>)[self-native-input?]: Remove. (package->bag): Adjust accordingly. * doc/guix.texi (package Reference): Remove 'self-native-input?'.
2019-03-30packages: Define 'this-package' and 'this-origin'.Ludovic Courtès
* guix/packages.scm (<origin>): Choose 'this-origin' as the 'this' identifier. (<package>): Choose 'this-package'. * gnu/packages/gnucash.scm (gnucash)[arguments]: Use 'this-package' instead of 'this-record'. * gnu/packages/version-control.scm (git)[arguments]: Likewise.
2019-03-30records: Support custom 'this' identifiers.Ludovic Courtès
This lets record users choose an identifier other than 'this-record'. * guix/records.scm (make-syntactic-constructor): Add #:this-identifier. [wrap-field-value]: Honor it. (define-record-type*): Add form with extra THIS-IDENTIFIER and honor it. * tests/records.scm ("define-record-type* & thunked & inherit & custom this"): New test.
2019-03-28pull: Truncate the list of packages displayed on completion.Ludovic Courtès
Previously, if you'd run 'guix pull' after a couple of weeks, it would fill your screen with package names, which is unhelpful. * guix/scripts/pull.scm (ellipsis): New procedure. (display-new/upgraded-packages): Add #:concise?. [list->enumeration]: New procedure. Use it instead of 'string-join'. (display-profile-news): Pass #:concise? #t.
2019-03-28pull: Factorize pretty-printing for new/upgraded package lists.Ludovic Courtès
* guix/scripts/pull.scm (display-new/upgraded-packages)[pretty]: New procedure. Use it.
2019-03-27refresh: Update the source code URL.Ludovic Courtès
Reported by Tobias Geerinckx-Rice <me@tobias.gr> in <https://bugs.gnu.org/35010>. * guix/upstream.scm (update-package-source): Take 'source' instead of 'version' as the second argument. [update-expression]: Change to take 'replacements', a list of replacement pairs. Compute OLD-URL and NEW-URL and replace the dirname of the OLD-URL with that of NEW-URL. * guix/scripts/refresh.scm (update-package): Adjust call to 'update-package-source' accordingly.
2019-03-27upstream: 'package-update' returns the <upstream-source> object.Ludovic Courtès
Fixes a regression introduced in abd4d6b33dba4de228e90ad15a8efb456fcf7b6e, where CHANGES would no longer be a thunk. Reported by Ricardo Wurmus. * guix/upstream.scm (package-update/url-fetch): Return SOURCE as the third value instead of CHANGES. * guix/scripts/refresh.scm (update-package): Adjust accordingly.
2019-03-27scripts: Skip 'guix pull' suggestion when running code from a checkout.Ludovic Courtès
* guix/scripts.scm (warn-about-old-distro): Do not warn when GUIX_UNINSTALLED is set.
2019-03-26environment: Create /etc/group in containers.Ludovic Courtès
Reported by Pierre Neidhardt <mail@ambrevar.xyz>. * guix/scripts/environment.scm (launch-environment/container): Create GROUPS and call 'write-group'. * tests/guix-environment-container.sh: Test it.
2019-03-26environment: Use (gnu build accounts) for /etc/passwd handling.Ludovic Courtès
* guix/scripts/environment.scm (launch-environment/container): Remove call to 'mock-passwd'; instantiate a <password-entry> instead. Call 'write-passwd' to write the pasword database instead of using custom code. (mock-passwd): Remove. * tests/guix-environment-container.sh: Test 'getpwuid'.
2019-03-26packages: Adjust to new calling convention for "thunked" fields.Ludovic Courtès
Fixes <https://bugs.gnu.org/34995>. This is a followup to abd4d6b33dba4de228e90ad15a8efb456fcf7b6e. * guix/packages.scm (package->bag): Adjust calls to INPUTS, PROPAGATED-INPUTS, NATIVE-INPUTS, and ARGS, passing them SELF as an argument. * gnu/packages/gnucash.scm (gnucash)[arguments]: Use (package-inputs this-record) intead of (inputs). * gnu/packages/version-control.scm (git)[arguments]: Likewise.
2019-03-25records: Allow thunked fields to refer to 'this-record'.Ludovic Courtès
* guix/records.scm (this-record): New syntax parameter. (make-syntactic-constructor)[wrap-field-value]: When F is thunked, return a one-argument lambda instead of a thunk, and parameterize THIS-RECORD. (define-record-type*)[thunked-field-accessor-definition]: Pass X to (real-get X). * tests/records.scm ("define-record-type* & thunked & this-record") ("define-record-type* & thunked & default & this-record") ("define-record-type* & thunked & inherit & this-record"): New tests.
2019-03-24ui: Bypass Texinfo parsing and rendering for searches.Ludovic Courtès
This makes search queries such as: LANGUAGE=fr guix package -s utilitaire -s recherche about 6 times faster. * guix/ui.scm (%package-metrics): Do not use 'package-synopsis-string' and 'package-description-string' to bypass Texinfo parsing and rendering.
2019-03-23guix: dune-build-system: Add a package parameter.Julien Lepiller
* guix/build-system/dune.scm: Add a package parameter. * guix/build/dune.scm (build, test, install): Use it. * doc/guix.texi: Document it.
2019-03-23build: Add rakudo-build-system.Efraim Flashner
* guix/build-system/rakudo.scm, guix/build/rakudo-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build System): Document it.
2019-03-23import: opam: Also update dune packages.Julien Lepiller
* guix/import/opam.scm (opam-package?): Also accept packages that use the dune build system.
2019-03-23graph: Factorize calls to 'fold-packages'.Ludovic Courtès
* guix/scripts/graph.scm (all-packages): New procedure. (%reverse-package-node-type, %reverse-bag-node-type): Use 'all-packages' instead of 'fold-packages'.
2019-03-23graph: Add the 'reverse-bag' graph.Ludovic Courtès
Suggested by Julien Lepiller. * guix/scripts/graph.scm (%reverse-bag-node-type): New variable. (%node-types): Add it. * tests/graph.scm ("reverse bag DAG"): New test. * doc/guix.texi (Invoking guix graph): Document it.
2019-03-21build-system/meson: Add #:allowed-references and #:disallowed-references.Marius Bakke
* guix/build-system/meson.scm (meson-build): Add support for #:allowed-references and #:disallowed-references.
2019-03-19pack: Create an empty /home directory for '-f squashfs'.Ludovic Courtès
Fixes <https://bugs.gnu.org/34914>. * guix/scripts/pack.scm (squashfs-image)[build]: Pass "-p /home d 555 0 0".
2019-03-19pack: Produce relative symlinks when using '-f squashfs'.Ludovic Courtès
Fixes <https://bugs.gnu.org/34913>. * guix/scripts/pack.scm (squashfs-image)[build]: Use 'relative-file-name' when creating SYMLINKS. * guix/scripts/pack.scm (guix-pack): Pass #:relative-symlinks? #t when PACK-FORMAT is 'squashfs.
2019-03-18import: Add Launchpad updater.Arun Isaac
* guix/import/launchpad.scm: New file. * Makefile.am (MODULES): Register it. * doc/guix.texi (Invoking guix refresh): Mention the Launchpad updater.