summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2017-01-24grafts: Shallow grafting can be performed on a subset of the outputs.Ludovic Courtès
* guix/grafts.scm (graft-derivation/shallow): Add #:outputs parameter. [outputs]: Rename to... [output-pairs]: ... this. Adjust 'build-expression->derivation' call accordingly.
2017-01-24syscalls: Export 'read-utmpx'.Ludovic Courtès
* guix/build/syscalls.scm (read-utmpx-from-port): New procedure. * tests/syscalls.scm ("read-utmpx, EOF") ("read-utmpx"): New tests.
2017-01-21lint: Display PACKAGE@VERSION.Ludovic Courtès
* guix/scripts/lint.scm (run-checkers): Remove 'name' variable. Display PACKAGE@VERSION instead of PACKAGE-VERSION.
2017-01-19syscalls: Add utmpx procedures and data structure.Ludovic Courtès
* guix/build/syscalls.scm (<utmpx-entry>): New record type. (%utmpx): New C struct. (login-type): New bits. (setutxent, endutxent, getutxent, utmpx-entries): New procedures.
2017-01-19syscalls: Extract 'bytes->string'.Ludovic Courtès
* guix/build/syscalls.scm (bytes->string): New procedure. (bytevector->string-list): Use it.
2017-01-19import: github: Catch HTTP 403 error during fetch.Mathieu OTHACEHE
* guix/import/github.scm (json-fetch*): Catch 403 HTTP error that may be raised if a github token has not been set. Signed-off-by: Mathieu OTHACEHE <m.othacehe@gmail.com> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-01-19guix environment, build: Allow absolute file names with '--root'.Ludovic Courtès
Reported by Chris Webber. * guix/scripts/build.scm (register-root): If ROOT is absolute, keep it as is. * guix/scripts/environment.scm (register-gc-root): Likewise. * tests/guix-environment.sh (expected): Add test.
2017-01-16grafts: Preserve the cache across recursive calls.Ludovic Courtès
Before this commit, we'd lose the cache across recursive calls to 'cumulative-grafts', which isn't great performance-wise. This bug was already present before d38bc9a9f6feefc465964531520fee5663a12f48. * guix/grafts.scm (with-cache): In the miss case, call 'current-state' after EXP has been evaluated.
2017-01-16grafts: Actually cache grafts during the derivation DAG traversal.Ludovic Courtès
This fixes a regression introduced in d38bc9a9f6feefc465964531520fee5663a12f48 whereby the cache was effectively disabled. Reported by Thomas Danckaert <thomas.danckaert@gmail.com>. * guix/grafts.scm (with-cache): In the cache miss case, wrap body in 'mbegin'.
2017-01-16profiles: Export 'ca-certificate-bundle'.Christopher Baines
* guix/profiles.scm: Export ca-certificate-bundle, such that it can be used in other G-expressions. This is useful where these G-expressions run programs that require a ca-certificate-bundle, e.g. git. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-01-15guix build: Add '--repair'.Ludovic Courtès
* guix/scripts/build.scm (show-help, %options): Add '--repair'. * doc/guix.texi (Invoking guix gc): Mention 'guix build --repair'. (Additional Build Options): Document it.
2017-01-15guix build: Do not force 'build-cores', 'max-build-jobs', and 'max-silent-time'.Ludovic Courtès
This lets the daemon use its own default settings unless otherwise specified. * guix/scripts/build.scm (set-build-options-from-command-line): Do not provide default values for #:build-cores and #:max-build-jobs. (%default-options): Remove 'max-silent-time'.
2017-01-15daemon: Client settings no longer override daemon settings.Ludovic Courtès
Fixes <http://bugs.gnu.org/20217>. * nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump to 0x161. * nix/nix-daemon/nix-daemon.cc (performOp): "build-max-jobs", "build-max-silent-time", and "build-cores" are no longer read upfront; instead, read them from the key/value list at the end. * nix/nix-daemon/guix-daemon.cc (main): Explicitly set 'settings.maxBuildJobs'. * guix/store.scm (%protocol-version): Bump to #x161. (set-build-options): #:max-build-jobs, #:max-silent-time, and #:build-cores now default to #f. Adjust handshake to new protocol. * tests/store.scm ("build-cores"): New test. * tests/guix-daemon.sh: Add test for default "build-cores" value.
2017-01-14challenge: Add '--verbose'.Ludovic Courtès
* guix/scripts/challenge.scm (summarize-report): Add #:verbose? parameter. [report-hashes]: New procedure. Use it. Honor VERBOSE? in the 'match case. (show-help, %options): Add '--verbose'. (guix-challenge): Honor it.
2017-01-14challenge: Return comparison reports instead of just discrepancies.Ludovic Courtès
This makes it easier to distinguish between matches, mismatches, and the various cases of inconclusive reports. * guix/scripts/challenge.scm (<discrepancy>): Rename to... (<comparison-report>): ... this. Add 'result' field. (comparison-report): New macro. (comparison-report-predicate, comparison-report-mismatch?) (comparison-report-match?) (comparison-report-inconclusive?): New procedures. (discrepancies): Rename to... (compare-contents): ... this. Change to return a list of <comparison-report>. Remove calls to 'warning'. (summarize-discrepancy): Rename to... (summarize-report): ... this. Adjust to <comparison-report>. (guix-challenge): Likewise. * tests/challenge.scm ("no discrepancies") ("one discrepancy"): Adjust to new API. ("inconclusive: no substitutes") ("inconclusive: no local build"): New tests.
2017-01-13licenses: Add wtfpl2.ng0
* guix/licenses.scm (wtfpl2): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
2017-01-13http-client: Provide 'User-Agent' header by default.Ludovic Courtès
* guix/http-client.scm (http-fetch): Add #:headers parameter and honor it. Rename 'auth-header' to 'headers'. * guix/import/github.scm (json-fetch*): Add comment about required User-Agent.
2017-01-13import: github: Fix regression on the /releases retrieval.Ludovic Courtès
Fixes a regression introduced in 62bd24db39a86f80242f923eb4cc2f18f3b02c67, which introduced a call to 'hash-table->alist'. * guix/import/github.scm (json-fetch*): New procedure. (latest-released-version): Use it.
2017-01-13ui: Wrap 'canonicalize-path' for better error reporting.Ludovic Courtès
Reported by Christopher Baines. * guix/ui.scm (canonicalize-path): New procedure.
2017-01-13ui: Factorize error-reporting wrapper code.Ludovic Courtès
* guix/ui.scm (augmented-system-error-handler): New procedure. (error-reporting-wrapper): New macro. (symlink, copy-file): Define using 'error-reporting-wrapper'.
2017-01-13Merge branch 'master' into python-testsLeo Famulari
2017-01-12challenge: Use a warning when substitutes are lacking.Ludovic Courtès
* guix/scripts/challenge.scm (discrepancies): Use 'warning' instead of 'leave'.
2017-01-11perform-download: Add backward-compatible case.Ludovic Courtès
This is meant to ease transition for people running an older guix-daemon invoking a recent 'guix perform-download' with only one argument. This is a followup to 9b5364a3afb03414bd6e3ded2fbfdacabe4e8870. * guix/scripts/perform-download.scm (perform-download): Make 'output' optional. Bind 'output*' from DRV's "out" and honor it. (guix-perform-download): Add clause with one argument.
2017-01-11derivations: Make <derivation> record datatype immutable.Mathieu Lirzin
* guix/derivations.scm (<derivation>): Make it immutable. (derivation): Use generic 'set-field' instead of ad-hoc functional setter.
2017-01-11git download: Remove redundant argument in 'gexp->derivation' call.Mathieu Lirzin
* guix/git-download.scm (git-fetch): Call 'gexp->derivation' with only one '#:local-build?' keyword argument.
2017-01-11daemon: Allow check builds of 'builtin:download' derivations.Ludovic Courtès
Fixes <http://bugs.gnu.org/25089>. Reported by Leo Famulari <leo@famulari.name>. * nix/libstore/build.cc (DerivationGoal::runChild): In the 'isBuiltin' case, check whether DRV's output is in 'redirectedOutputs', and pass an 'output' argument to the built-in builder. (DerivationGoal::addHashRewrite): Add 'printMsg' call. * nix/libstore/builtins.hh (derivationBuilder): Add 'output' parameter. * nix/libstore/builtins.cc (builtinDownload): Likewise. Add OUTPUT to ARGV. * guix/scripts/perform-download.scm (perform-download): Add 'output' parameter. (guix-perform-download): Adjust 'match' clauses accordingly. * tests/derivations.scm ("'download' built-in builder, check mode"): New test.
2017-01-11guix package: Fix version and output for 'guix package -i /gnu/store/…'.Ludovic Courtès
* guix/utils.scm (package-name->name+version): Add optional 'delimiter' parameter. * guix/scripts/package.scm (store-item->manifest-entry): Pass #\- as the delimiter for 'package-name->name+version'. Use "out" instead of #f for the 'output' field. * tests/guix-package.sh: Add test.
2017-01-10guix archive: Allow compilation in the absence of Guile-JSON.Ludovic Courtès
Fixes <http://bugs.gnu.org/25409>. Reported by Ben Woodcroft <b.woodcroft@uq.edu.au>. * guix/scripts/archive.scm: Use 'module-autoload!' instead of #:use-module to (guix docker).
2017-01-10http-client: Improve error reporting.Ludovic Courtès
* guix/http-client.scm (http-fetch): Change message in &message condition to include URI, CODE, and the reason phrase.
2017-01-07guix archive: '-f docker' supports package names as arguments.Ludovic Courtès
This allows users to type: guix archive -f docker emacs as was already the case for the 'nar' format. Reported by David Thompson. * guix/scripts/archive.scm (%default-options): Add 'format'. (export-from-store): Dispatch based on the 'format' key in OPTS. (guix-archive): Call 'export-from-store' in all cases when the 'export' key is in OPTS.
2017-01-06guix: Add Docker image export.Ricardo Wurmus
* guix/docker.scm: New file. * Makefile.am (MODULES): Register it. * guix/scripts/archive.scm (show-help, %options, guix-archive): Add support for "--format". * doc/guix.texi (Invoking guix archive): Document it.
2017-01-05derivations: Share a cache between 'derivation' and 'read-derivation'.Ludovic Courtès
This leads a 13% speedup on 'guix build libreoffice -d' and 18% on 'guix build gnome -d'. * guix/derivations.scm (%derivation-cache): New variable. (read-derivation): Use it instead of the private 'cache' variable. (derivation): Populate %DERIVATION-CACHE before returning.
2017-01-05derivations: Micro-optimize 'write-derivation'.Ludovic Courtès
* guix/derivations.scm (write-derivation)[write-input]: Use 'display' instead of 'write' for PATH. Use 'simple-format' instead of 'format', and '~a' instead of '~s' for SYSTEM and BUILDER.
2017-01-04graph: Add '%reverse-package-node-type'.Ludovic Courtès
* guix/scripts/graph.scm (%reverse-package-node-type): New variable. (%node-types): Add it. * tests/graph.scm ("reverse package DAG"): New test. * doc/guix.texi (Invoking guix refresh): Add cross-reference to "Invoking guix graph". (Invoking guix graph): Document 'reverse-package'.
2017-01-04grafts: Move caching to a new 'with-cache' macro.Ludovic Courtès
* guix/grafts.scm (with-cache): New macro. (cumulative-grafts)[return/cache]: Remove. Use 'with-cache' instead.
2017-01-04gnu: Add ocaml-build-system.Julien Lepiller
* guix/build/ocaml-build-system.scm: New file. * guix/build-system/ocaml.scm: New file. * Makefile.am (MODULES): Add them. * gnu/packages/ocaml.scm (ocaml)[native-search-paths]: Adjuste OCAMLPATH. Signed-off-by: David Craven <david@craven.ch>
2017-01-04git-download: Add some helpers.David Craven
* guix/git-download.scm (git-version, git-file-name): New variables.
2017-01-04build-system: cargo: Use correct cargo.David Craven
* gnu/packages/rust.scm (cargo-bootstrap): Make private. * guix/build-system/cargo.scm (default-cargo): Use cargo.
2017-01-03guix: build: make-bootstrap: Copy libpthread_nonshared.a to the new system.Manolis Ragkousis
* guix/build/make-bootstrap.scm (%libc-object-files-rx): Update regexp.
2017-01-02ui: Keep the word "Copyright" untranslated.Ludovic Courtès
Suggested by John Darrington <john@darrington.wattle.id.au>. * guix/ui.scm (show-version-and-exit): Make "Copyright (C) 2017" untranslatable, except "(C)" itself, like Gnulib's version-etc does.
2017-01-02guix hash: '-x' excludes '.git' even when it is a regular file.Ludovic Courtès
* guix/scripts/hash.scm (guix-hash)[vcs-file?]: Add case for '.git' regular files.
2017-01-01ui: It's 2017 now!Ludovic Courtès
* guix/ui.scm (show-version-and-exit): Change year to 2017.
2017-01-01syscalls: 'terminal-columns' swallows ENOSYS.Ludovic Courtès
* guix/build/syscalls.scm (terminal-columns): Catch ENOSYS.
2017-01-01gnu-maintenance: Update ViewVC URLs.Ludovic Courtès
* guix/gnu-maintenance.scm (%gnumaint-base-url): Change "/gnumaint" to "/womb/gnumaint". (%package-list-url, %package-description-url): Adjust accordingly.
2017-01-01gexp: Support 'ungexp' forms in improper lists.Ludovic Courtès
* guix/gexp.scm (gexp)[collect-escapes, substitute-references]: Replace the (exp0 exp ...) patterns with (exp0 . exp) to match improper lists. Adjust clause bodies accordingly. * tests/gexp.scm ("one input package, dotted list"): New test.
2017-01-01gexp: Properly report substitution errors.Ludovic Courtès
* guix/gexp.scm (gexp)[substitute-ungexp]: Wrap body in 'with-syntax' and pass EXP as the last argument to 'syntax-error'. [substitute-ungexp-splicing]: Pass EXP as the last argument to 'syntax-error'.
2017-01-01build-system: cargo: Handle Cargo.lock file not present.David Craven
* guix/build-system/cargo.scm (cargo-build): Add src output. (private-keywords): Add #:outputs. * guix/build/cargo-build-system.scm (configure): Use /share/rust-source when replacing inputs. (build, check): Don't do anything when there isn't a Cargo.lock file present. (install): Install sources to src output. When a Cargo.lock file is present use cargo install to install binaries to out. * guix/import/crate.scm (make-crate-sexp): Importer uses the src output for crate inputs by default. * guix/import/utils.scm (package-names->package-inputs, maybe-inputs, maybe-native-inputs): Take an optional output argument. * tests/crate.scm (crate->guix-package test): Update. Problem reported by Francisco Gómez García <espectalll@kydara.com>.
2017-01-01import: crate: Provide a default home-page value.David Craven
* guix/import/crate.scm (make-crate-sexp): Provide a default home-page value. * tests/crate.scm (test-crate): Add repository field. Problem reported by ng0 <ng0@libertad.pw>.
2017-01-01build-system: cargo: Make Cargo.toml writeable.David Craven
* guix/build/cargo-build-system.scm (configure): Make sure Cargo.toml is writeable before attempting modification. Problem reported by Danny Milosavljevic <dannym@scratchpost.org>.
2016-12-31Add 'guix copy'.Ludovic Courtès
* guix/scripts/copy.scm: New file. * guix/scripts/archive.scm (options->derivations+files): Export. * doc/guix.texi (Invoking guix copy): New node. * Makefile.am (MODULES) [HAVE_GUILE_SSH]: Add guix/scripts/copy.scm. * po/guix/POTFILES.in: Likewise.