summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2015-12-09guix build: Add '--check'.Ludovic Courtès
* guix/derivations.scm (build-derivations): Add optional 'mode' parameter. * guix/scripts/build.scm (%default-options): Add 'build-mode'. (show-help, %options): Add '--check'. (guix-build): Honor 'build-mode' key of OPTS. Pass it to 'show-what-to-build' and 'build-derivations'. * doc/guix.texi (Invoking guix build): Document it. (Substitutes): Mention it.
2015-12-09derivations: Determine what's built in 'check' mode.Ludovic Courtès
* guix/derivations.scm (substitution-oracle): Add #:mode parameter and honor it. (derivation-prerequisites-to-build): Likewise. [derivation-built?]: Take it into account. * guix/ui.scm (show-what-to-build): Add #:mode parameter. Pass it to 'substitute-oracle' and 'derivations-prerequisites-to-build'. * tests/derivations.scm ("derivation-prerequisites-to-build in 'check' mode"): New test.
2015-12-08guix build: Add '--rounds'.Ludovic Courtès
* guix/scripts/build.scm (show-build-options-help) (%standard-build-options): Add --rounds. (set-build-options-from-command-line): Honor it. * doc/guix.texi (Invoking guix build): Document it. * doc/contributing.texi (Submitting Patches): Mention it.
2015-12-08store: Allow clients to request multiple builds.Ludovic Courtès
* guix/store.scm (set-build-options): Add #:rounds parameter and honor it. * tests/store.scm ("build multiple times"): New test.
2015-12-08gnu-maintenance: Exclude development releases from GNOME update candidates.Ludovic Courtès
Suggested by Efraim Flashner <efraim@flashner.co.il>. * guix/gnu-maintenance.scm (latest-ftp-release): Add #:keep-file? parameter and honor it. (latest-gnome-release)[%not-dot]: New variable. [even-minor-version?, even-numbered-tarball?]: New procedures. Pass EVEN-NUMBERED-TARBALL? as #:keep-file? argument.
2015-12-07gnu-maintenance: ftp.gnome.org does not provide signatures.Ludovic Courtès
* guix/gnu-maintenance.scm (latest-ftp-release): Add #:file->signature parameter. Honor it. (latest-gnome-release): Pass #:file->signature. * guix/upstream.scm (coalesce-sources): Keep 'signature-urls' as #f unless both sources provide it.
2015-12-07gnu-maintenance: Add GNOME updater.Ludovic Courtès
* guix/gnu-maintenance.scm (ftp-server/directory)[quirks]: Remove glib. (false-if-ftp-error): New macro. (latest-release*): Use it. (non-emacs-gnu-package?): Rename to... (pure-gnu-package?): ... this. Add call to 'gnome-package?'. (%gnu-updater): Adjust accordingly. (gnome-package?, latest-gnome-release): New procedures. (%gnome-updater): New variable. * guix/scripts/refresh.scm (%updaters): Add %GNOME-UPDATER. * doc/guix.texi (Invoking guix refresh): Mention it.
2015-12-07gnu-maintenance: Generalize 'latest-ftp-release'.Ludovic Courtès
* guix/gnu-maintenance.scm (latest-release): Rename to... (latest-ftp-release): ... this. Add #:server and #:directory parameters. (latest-release): New procedure.
2015-12-07refresh: Bail out when asked for a nonexistent updater.Ludovic Courtès
* guix/scripts/refresh.scm (lookup-updater): Call 'leave' when 'find' returns #f.
2015-12-07gnu-maintenance: Do not look for releases in "w32" sub-directories.Ludovic Courtès
* guix/gnu-maintenance.scm (latest-release): Filter out "w32" directories.
2015-12-07gnu-maintenance: Add tests for 'release-file?'.Ludovic Courtès
* tests/gnu-maintenance.scm: New file. * Makefile.am (SCM_TESTS): Add it. * guix/gnu-maintenance.scm (release-file?): Export.
2015-12-07gnu-maintenance: Properly handle TeXmacs.Ludovic Courtès
* guix/gnu-maintenance.scm (ftp-server/directory): Add comment. (release-file?): Use 'string-ci=?' instead of 'equal?' when comparing project names.
2015-12-07gnu-maintenance: Adjust tarball regexp for IceCat tarballs.Ludovic Courtès
* guix/gnu-maintenance.scm (%tarball-rx): Tweak to match IceCat tarball patterns.
2015-12-07gnu-maintenance: Fix URLs returned by 'latest-release' for deep trees.Ludovic Courtès
With this, (latest-release "gcc") returns an <upstream-source> with URL: ftp://ftp.gnu.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz Previous it would omit "gcc-5.3.0/" from the URL. Fixes a regression introduced in 0a7c5a0. * guix/gnu-maintenance.scm (latest-release)[file->url, file->source]: Add 'directory' parameter. Update users.
2015-12-06edit: Don't assume that an emacs daemon is running.Mathieu Lirzin
* guix/scripts/edit.scm (%editor): Use Emacs as a default value.
2015-12-06edit: Allow command line arguments in $VISUAL and $EDITOR.Mathieu Lirzin
* guix/scripts/edit.scm (guix-edit): Fix the assumption that %editor is a one word command.
2015-12-04profiles: Silence GTK+ icon cache creation.Ludovic Courtès
Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/profiles.scm (gtk-icon-themes)[build]: Pass --quiet to 'gtk-update-icon-cache'.
2015-12-04profiles: Silence GTK+ icon theme union.Ludovic Courtès
Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/profiles.scm (gtk-icon-themes)[build]: Pass 'union-build' a #:log-port argument.
2015-12-04store: 'build-things' now supports older daemon protocols.Ludovic Courtès
This is a followup to d203d3d. * guix/store.scm (build-things): Add 'build/old'. Use it when STORE's minor version is less than 15.
2015-12-03store: Add mode parameter to 'build-paths'.Ludovic Courtès
* guix/store.scm (%protocol-version): Set minor to 15. (build-mode): New enumerate type. (build-things): Add 'mode' parameter; pass it to the RPC. * tests/store.scm ("build-things, check mode"): New check.
2015-12-03store: Update to the new daemon protocol.Ludovic Courtès
* guix/store.scm (%protocol-version): Set minor to 14. (open-connection): Add 'cpu-affinity' parameter and honor it.
2015-12-01import: pypi: Updater silently ignores packages without source.Ludovic Courtès
Reported by Andreas Enge <andreas@enge.fr> at <https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00764.html>. * guix/import/pypi.scm (&missing-source-error): New error type. (latest-source-release): Raise it instead of using 'error'. (pypi->guix-package): Guard against it and use 'leave' to report the error. (latest-release): Guard against it and return #f when caught.
2015-12-01guix build: Modularize transformation handling.Ludovic Courtès
* guix/scripts/build.scm (options/resolve-packages): Remove. (options->things-to-build, transform-package-source): New procedure. (%transformations): New variable. (options->transformation): New procedure. (options->derivations): Rewrite to use 'options->things-to-build' and 'options->transformation'.
2015-12-01guix package: Refactor 'options->installable'.Ludovic Courtès
* guix/scripts/package.scm (options->upgrade-predicate) (store-item->manifest-entry): New procedures. * guix/scripts/package.scm (options->installable): Use them. Remove the 'packages-to-upgrade' and 'packages-to-install' variables by getting rid of a level of indirection.
2015-12-01guix package: Move 'process-actions' out of sight.Ludovic Courtès
* guix/scripts/package.scm (process-actions): New procedure, moved from... (guix-package): ... here. Adjust accordingly.
2015-12-01guix package: Formalize the list of actions.Ludovic Courtès
* guix/scripts/package.scm (roll-back-action, switch-generation-action) (delete-generations-action, manifest-action): New procedures. (%actions): New variable. * guix/scripts/package.scm (guix-package)[process-action]: Rewrite to traverse %ACTIONS.
2015-12-01guix package: Move 'build-and-use-profile' out of sight.Ludovic Courtès
* guix/scripts/package.scm (build-and-use-profile): New procedure. Adapted and moved from... (guix-package)[process-actions]: ... here. Adjust call sites.
2015-12-01guix package: Move a couple of procedures out of sight.Ludovic Courtès
* guix/scripts/package.scm (ensure-default-profile, process-query): New procedures, moved from... (guix-package): ... here.
2015-12-01guix package: Remove unnecessary use of (%store).Ludovic Courtès
* guix/scripts/package.scm (delete-matching-generations): Use STORE instead of (%store).
2015-11-29gnu: python: Set SOURCE_DATE_EPOCH to 1 instead of 0.Ludovic Courtès
* gnu/packages/python.scm (python-2)[arguments]: Set SOURCE_DATE_EPOCH to 1 to match what the daemon does. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): Likewise.
2015-11-29gnu: python-2: Honor 'SOURCE_DATE_EPOCH'.Ludovic Courtès
* gnu/packages/patches/python-2.7-source-date-epoch.patch: New file. * gnu/packages/python.scm (python-2)[source]: Use it. [arguments]: Set SOURCE_DATE_EPOCH in 'patch-lib-shells' phase. * guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): New procedure. (%standard-phases): Add it. * gnu-system.am (dist_patch_DATA): Add patch.
2015-11-29refresh: Check updater availability at run time.Ludovic Courtès
This is a followup to b68d2db, which added a check for updaters at macro-expansion time. The problem is that, when running 'guix pull', Guile-JSON is found, so the PyPi updater (say) is added to %UPDATERS, but then at run time Guile-JSON might be missing. Reported by orbea on #guix. * guix/scripts/refresh.scm (maybe-updater): Rewrite as 'syntax-rules'. Produce code that checks conditions at run time. (list-updaters): Update docstring.
2015-11-29http-client: 'http-fetch' converts strings to URIs.Ludovic Courtès
* guix/http-client.scm (http-fetch): Use 'string->uri' if URI is a string. Fixes a regression introduced in 8a5063f.
2015-11-29guix build: Factorize build log query.Ludovic Courtès
* guix/scripts/build.scm (show-build-log): New procedure. (guix-build): New variable 'items'. Use it and 'show-build-log'.
2015-11-28environment: Set build options early on.Ludovic Courtès
This fixes a bug whereby some options, such as #:substitute-urls, would be passed to the daemon too late to have an effect. * guix/scripts/environment.scm (build-inputs): Remove call to 'set-build-options-from-command-line*'. (guix-environment): Add call to 'set-build-options-from-command-line' as early as possible.
2015-11-28lint: Do not report already-patched vulnerabilities.Ludovic Courtès
* guix/scripts/lint.scm (patch-file-name): New procedure. (check-vulnerabilities): Use it to filter out patched vulnerabilities. * tests/lint.scm ("cve: one patched vulnerability"): New test.
2015-11-28substitute: Warn upon store prefix mismatches.Ludovic Courtès
Suggested by Hynek Urban <hynek.urban@gmail.com>. * guix/scripts/substitute.scm (fetch-narinfos): Move body to... [do-fetch]: ... here. New procedure. Emit a warning when CACHE-INFO's prefix does not match.
2015-11-26lint: Add "cve" checker.Ludovic Courtès
Fixes <http://bugs.gnu.org/21289>. * guix/scripts/lint.scm (package-name->cpe-name, package-vulnerabilities) (check-vulnerabilities): New procedures. * guix/scripts/lint.scm (%checkers): Add "cve" checker. * tests/lint.scm ("cve", "cve: one vulnerability"): New tests. * doc/guix.texi (Invoking guix lint): Mention it.
2015-11-26Add (guix cve).Ludovic Courtès
* guix/cve.scm, tests/cve-sample.xml, tests/cve.scm: New files. * Makefile.am (MODULES): Add guix/cve.scm. (SCM_TESTS): Add tests/cve.scm. (EXTRA_DIST): Add tests/cve-sample.scm.
2015-11-26http-client: 'http-fetch' and 'http-fetch/cached' support HTTPS.Ludovic Courtès
* guix/http-client.scm (http-fetch): Use 'open-connection-for-uri', to support HTTPS.
2015-11-26import: hackage: Assume current 'ghc' package version.Federico Beffa
* guix/scripts/import/hackage.scm (%default-options): Do it. (ghc-default-version): New variable.
2015-11-26import: hackage: Handle CRLF end of line style.Federico Beffa
* guix/import/hackage.scm (hackage-fetch, hackage->guix-package): Use 'canonical-newline-port'.
2015-11-26utils: Add 'canonical-newline-port'.Federico Beffa
* guix/utils.scm (canonical-newline-port): New procedure. * tests/utils.scm ("canonical-newline-port"): New test.
2015-11-26import: hackage: Make parsing of tests and fields more flexible.Federico Beffa
* guix/import/cabal.scm (is-test): Allow spaces between keyword and parentheses. (is-id): Add argument 'port'. Allow spaces between keyword and column. (lex-word): Adjust call to 'is-id'.
2015-11-26import: hackage: Make it resilient to missing final newline.Federico Beffa
* guix/import/cabal.scm (peek-next-line-indent): Check for missing final newline.
2015-11-26import: hackage: Imporve parsing of tests.Federico Beffa
* guix/import/cabal.scm (lex-word): Add support for tests with no spaces. (impl): Rewrite.
2015-11-26import: hackage: Add recognition of 'true' and 'false' symbols.Federico Beffa
* guix/import/cabal.scm (is-true, is-false, lex-true, lex-false): New procedures. (lex-word): Use them. (make-cabal-parser): Add TRUE and FALSE tokens. (eval): Add entries for 'true and 'false symbols.
2015-11-25gexp: Build text derivations locally.Ludovic Courtès
* guix/gexp.scm (gexp->file): Pass #:substitutable? #f. (text-file*): Likewise, and #:local-build? #t.
2015-11-24guix package: Reduce startup time by ~50%.Ludovic Courtès
As measured with: time sh -c 'for i in `seq 1 10` ; do guix package --search-paths ; done' On my machine, when running: strace -o ,,s guix package --search-paths the number returned by: grep -E '^(open|l?stat).*\.go' ,,s | wc -l drops from 1610 to 837. * guix/scripts/package.scm: Remove two unnecessary #:use-module forms. Autoload (gnu packages ...) modules.
2015-11-23graph: Add '%bag-with-origins-node-type'.Ludovic Courtès
* guix/scripts/graph.scm (bag-node-edges): Remove 'filter' call. Add case for 'origin'. (%bag-node-type)[edges]: Add filtering here. (%bag-with-origins-node-type): New variable. (%node-types): Add it. * tests/graph.scm ("bag DAG, including origins"): New test. * tests/guix-graph.sh: Add 'bag-with-origins'. * doc/guix.texi (Invoking guix graph): Document it.