summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2019-04-10ui: Colorize diagnostics....* 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. Ludovic Courtès
2019-04-10ui: Diagnostic procedures can display error location....* 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) …). Ludovic Courtès
2019-04-10ui: Factorize 'print-diagnostic-prefix'....* guix/ui.scm (define-diagnostic): Emit call to 'print-diagnostic-prefix'. (print-diagnostic-prefix): New procedure. Ludovic Courtès
2019-04-10ui: Make diagnostic message prefix translatable....* 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_'. Ludovic Courtès
2019-04-10ui: Fix i18n for diagnostic messages....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. Ludovic Courtès
2019-04-10Add (guix colors)....* 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. Ludovic Courtès
2019-04-10store: 'with-store' expands to a single procedure call....* guix/store.scm (call-with-store): New procedure. (with-store): Write in terms of 'call-with-store'. Ludovic Courtès
2019-04-10guix package: Use absolute file names in search path recommendations....Suggested by Chris Marusich. * guix/scripts/package.scm (absolutize): New procedure. (display-search-paths): Use it. Ludovic Courtès
2019-04-09build-system/cargo: refactor phases to successfully build...* 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> Ivan Petkov
2019-04-08licenses: Remove 'bsd-style'....This procedure had been deprecated since March 2015. * guix/licenses.scm (bsd-style): Remove. Ludovic Courtès
2019-04-07size: Optimize dependency size computation....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'. Ludovic Courtès
2019-04-07licenses: Add Lisp Lesser General Public License....* gnu/licenses.scm (llgpl): New variable. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Katherine Cox-Buday
2019-04-04scripts: More commands default to verbosity level 1....* 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. Ludovic Courtès
2019-04-04gexp: Remove workarounds for <https://bugs.gnu.org/15602>....* 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). Ludovic Courtès
2019-04-04gexp: 'compiled-modules' loads modules before compiling them....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'. Ludovic Courtès
2019-04-03self: Ship all the (gnu bootloader …) modules....* guix/self.scm (compiled-guix)[*system-modules*]: Explicitly add all of gnu/bootloader/*. Ludovic Courtès
2019-04-02environment: '-C' creates namespaces where the user is not root....* 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. Ludovic Courtès
2019-03-30packages: Remove 'maintainers' field....This field was never used and doesn't match the way we collectively maintain packages. * guix/packages.scm (<package>)[maintainers]: Remove. Ludovic Courtès
2019-03-30packages: Remove 'self-native-input?' field....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?'. Ludovic Courtès
2019-03-30packages: Define 'this-package' and 'this-origin'....* 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. Ludovic Courtès
2019-03-30records: Support custom 'this' identifiers....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. Ludovic Courtès
2019-03-28pull: Truncate the list of packages displayed on completion....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. Ludovic Courtès
2019-03-28pull: Factorize pretty-printing for new/upgraded package lists....* guix/scripts/pull.scm (display-new/upgraded-packages)[pretty]: New procedure. Use it. Ludovic Courtès
2019-03-27refresh: Update the source code URL....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. Ludovic Courtès
2019-03-27upstream: 'package-update' returns the <upstream-source> object....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. Ludovic Courtès
2019-03-27scripts: Skip 'guix pull' suggestion when running code from a checkout....* guix/scripts.scm (warn-about-old-distro): Do not warn when GUIX_UNINSTALLED is set. Ludovic Courtès
2019-03-26environment: Create /etc/group in containers....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. Ludovic Courtès
2019-03-26environment: Use (gnu build accounts) for /etc/passwd handling....* 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'. Ludovic Courtès
2019-03-26packages: Adjust to new calling convention for "thunked" fields....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. Ludovic Courtès
2019-03-25records: Allow thunked fields to refer to 'this-record'....* 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. Ludovic Courtès
2019-03-24ui: Bypass Texinfo parsing and rendering for searches....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. Ludovic Courtès
2019-03-23guix: dune-build-system: Add a package parameter....* guix/build-system/dune.scm: Add a package parameter. * guix/build/dune.scm (build, test, install): Use it. * doc/guix.texi: Document it. Julien Lepiller
2019-03-23build: Add rakudo-build-system....* 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. Efraim Flashner
2019-03-23import: opam: Also update dune packages....* guix/import/opam.scm (opam-package?): Also accept packages that use the dune build system. Julien Lepiller
2019-03-23graph: Factorize calls to 'fold-packages'....* guix/scripts/graph.scm (all-packages): New procedure. (%reverse-package-node-type, %reverse-bag-node-type): Use 'all-packages' instead of 'fold-packages'. Ludovic Courtès
2019-03-23graph: Add the 'reverse-bag' graph....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. Ludovic Courtès
2019-03-21build-system/meson: Add #:allowed-references and #:disallowed-references....* guix/build-system/meson.scm (meson-build): Add support for #:allowed-references and #:disallowed-references. Marius Bakke
2019-03-19pack: Create an empty /home directory for '-f squashfs'....Fixes <https://bugs.gnu.org/34914>. * guix/scripts/pack.scm (squashfs-image)[build]: Pass "-p /home d 555 0 0". Ludovic Courtès
2019-03-19pack: Produce relative symlinks when using '-f squashfs'....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. Ludovic Courtès
2019-03-18import: Add Launchpad updater....* guix/import/launchpad.scm: New file. * Makefile.am (MODULES): Register it. * doc/guix.texi (Invoking guix refresh): Mention the Launchpad updater. Arun Isaac
2019-03-18Correct name and email address for ng0....* .mailmap, Makefile.am, doc/guix.de.texi, doc/guix.fr.texi, doc/guix.texi, etc/completion/fish/guix.fish, gnu/packages/accessibility.scm, gnu/packages/admin.scm, gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/cinnamon.scm, gnu/packages/compression.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/erlang.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm, gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm,gnu/packages/guile-xyz.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm, gnu/packages/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Correct name and email address for ng0. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> ng0
2019-03-18describe: Warn about 'GUIX_PACKAGE_PATH' in json and recutils format....Fixes <https://bugs.gnu.org/34884>. Reported by Pierre Neidhardt <mail@ambrevar.xyz>. * guix/scripts/describe.scm (display-package-search-path): Add catch-all case for FMT. Ludovic Courtès
2019-03-17guix build: '--with-branch' strips slashes from the version string....This fixes things like: guix build glibc \ --with-git-url=glibc=git://sourceware.org/git/glibc.git \ --with-branch=glibc=release/2.25/master whereby slashes would before go straight to the 'version' field, leading to an invalid store file name. * guix/scripts/build.scm (transform-package-source-branch)[replace]: Replace slashes with hyphens in BRANCH when building the version string. Ludovic Courtès
2019-03-17guix build: '--with-commit' makes recursive checkouts....This was an omission from commit 024a6bfba906742c136a47b4099f06880f1d3f15. * guix/scripts/build.scm (transform-package-source-commit): Add 'recursive?' field to SOURCE. * tests/scripts-build.scm ("options->transformation, with-branch") ("options->transformation, with-commit"): New tests. Ludovic Courtès
2019-03-17guix build: Transformation options match packages by spec....This allows us to combine several transformations on a given package, in particular '--with-git-url' and '--with-branch'. Previously transformations would ignore each other since they would all take (specification->package SOURCE) as their replacement source, compare it by identity, which doesn't work if a previous transformation has already changed SOURCE. * guix/scripts/build.scm (evaluate-replacement-specs): Adjust to produce an alist as expected by 'package-input-rewriting/spec', with a package spec as the first element of each pair. (evaluate-git-replacement-specs): Likewise. (transform-package-inputs): Adjust accordingly and use 'package-input-rewriting/spec'. (transform-package-inputs/graft): Likewise. (transform-package-source-branch, transform-package-source-commit): Use 'package-input-rewriting/spec'. (transform-package-source-git-url): Likewise, and adjust the REPLACEMENTS alist accordingly. (options->transformation): Iterate over OPTS instead of over %TRANSFORMATIONS. Invoke transformations one by one. * tests/scripts-build.scm ("options->transformation, with-input"): Adjust test to compare packages by name rather than by identity. ("options->transformation, with-git-url + with-branch"): New test. Ludovic Courtès
2019-03-17guix build: Factorize 'package-git-url'....* guix/scripts/build.scm (package-git-url): New procedure. (evaluate-git-replacement-specs): Use it. Ludovic Courtès
2019-03-17packages: Add 'package-input-rewriting/spec'....* guix/packages.scm (package-input-rewriting/spec): New procedure. * tests/packages.scm ("package-input-rewriting/spec") ("package-input-rewriting/spec, partial match"): New tests. * doc/guix.texi (Defining Packages): Document it. Ludovic Courtès
2019-03-17guix build: Add '--with-git-url'....* guix/scripts/build.scm (%not-equal): New variable. (evaluate-git-replacement-specs): Use it instead of local variable 'not-equal'. (transform-package-source-git-url): New procedure. (%transformations): Add 'with-git-url'. (%transformation-options, show-transformation-options-help): Add '--with-git-url'. * tests/scripts-build.scm ("options->transformation, with-git-url"): New test. Ludovic Courtès
2019-03-17scripts: 'warn-about-old-distro' looks at the age of the running Guix....This fixes a discrepancy that could be seen when running: sudo guix system … where 'guix' would warn about the age of root's Guix, even though the running Guix is the user's, not root's. * guix/scripts.scm (warn-about-old-distro)[false-if-not-found]: Remove. Obtain the profile date by calling 'current-profile-date' instead of stat'ing "current-guix". Ludovic Courtès
2019-03-17describe: Add 'current-profile-date'....* guix/describe.scm (current-profile-date): New procedure. Ludovic Courtès