summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* store: Add 'add-data-to-store'.Ludovic Courtès2017-01-30
| | | | | | | | | * guix/serialization.scm (write-bytevector): New procedure. (write-string): Rewrite in terms of 'write-bytevector'. * guix/store.scm (write-arg): Add 'bytevector' case. (add-data-to-store): New procedure, from former 'add-text-to-store'. (add-text-to-store): Rewrite in terms of 'add-data-to-store'. * tests/store.scm ("add-data-to-store"): New test.
* build-system/python: 'package-with-explicit-python' uses 'eq?' memoization.Ludovic Courtès2017-01-28
| | | | | | * guix/build-system/python.scm (package-with-explicit-python): Use 'mlambdaq' instead of 'mlambda'. This does not change the <package> graph and has no visible impact on performance.
* gnu-maintenance: 'gnu-package?' uses 'eq?' memoization.Ludovic Courtès2017-01-28
| | | | | * guix/gnu-maintenance.scm (gnu-package?): Use 'mlambdaq' instead of 'mlambda'.
* packages: Remove 'define-memoized/v' and use 'mlambdaq' instead.Ludovic Courtès2017-01-28
| | | | | | | * guix/packages.scm (define-memoized/v): Remove. (package-transitive-supported-systems): Use 'mlambdaq' instead of 'define-memoized/v'. (package-input-rewriting)[replace]: Likewise.
* Use 'mlambda' instead of 'memoize'.Ludovic Courtès2017-01-28
| | | | | | | | | | | | | | | | | * gnu/packages.scm (find-newest-available-packages): Use 'mlambda' instead of (memoize (lambda ...) ...). * gnu/packages/bootstrap.scm (package-with-bootstrap-guile): Likewise. * guix/build-system/gnu.scm (package-with-explicit-inputs)[rewritten-input]: Likewise. * guix/build-system/python.scm (package-with-explicit-python)[transform]: Likewise. * guix/derivations.scm (derivation->string): Likewise. * guix/gnu-maintenance.scm (gnu-package?): Likewise. * guix/modules.scm (module-file-dependencies): Likewise. * guix/scripts/graph.scm (standard-package-set): Likewise. * guix/scripts/lint.scm (official-gnu-packages*): Likewise. * guix/store.scm (store-regexp*): Likewise. * guix/utils.scm (location): Likewise.
* Add (guix memoization).Ludovic Courtès2017-01-28
| | | | | | | | | | | | | * guix/combinators.scm (memoize): Remove. * guix/memoization.scm: New file. * Makefile.am (MODULES): Add it. * gnu/packages.scm, gnu/packages/bootstrap.scm, guix/build-system/gnu.scm, guix/build-system/python.scm, guix/derivations.scm, guix/gnu-maintenance.scm, guix/import/cran.scm, guix/import/elpa.scm, guix/modules.scm, guix/scripts/build.scm, guix/scripts/graph.scm, guix/scripts/lint.scm, guix/store.scm, guix/utils.scm: Adjust imports accordingly.
* packages: Add 'package-upstream-name' and use it.Ludovic Courtès2017-01-28
| | | | | | | * guix/packages.scm (package-upstream-name): New procedure. * guix/gnu-maintenance.scm (gnu-package?, ftp-server/directory) (latest-release*, latest-gnome-release) (latest-kde-release): Use it instead of the inline expression.
* import: github: Better tolerate unexpected file extensions.Ludovic Courtès2017-01-28
| | | | | * guix/import/github.scm (find-extension): Add ".tbz". (updated-github-url): When 'find-extension' returns #f, use "" for EXT.
* gnu-maintenance: 'gnu-package?' ignores invalid URLs.Ludovic Courtès2017-01-28
| | | | | * guix/gnu-maintenance.scm (gnu-package?)[gnu-home-page?]: Add '>>' threading macro and use it.
* gnu-maintenance: GNU updater handles gnu.org-hosted Emacs packages.Ludovic Courtès2017-01-28
| | | | | | * guix/gnu-maintenance.scm (pure-gnu-package?): If an "emacs-" package matches 'gnu-hosted?', return true. (gnu-hosted?): New procedure.
* gnu-maintenance: Honor 'upstream-name' property in GNU updater.Ludovic Courtès2017-01-28
| | | | | | * guix/gnu-maintenance.scm (gnu-package?): Honor the 'usptream-name' property of PACKAGE. (ftp-server/directory): Likewise.
* bournish: Extend 'rm' command.Ricardo Wurmus2017-01-26
| | | | | | * guix/build/bournish.scm (rm-command): New procedure. (%commands): Use it. * tests/bournish.scm: Add tests for "rm" and "rm -r".
* import: pypi: Don't add setuptools to propagated-inputs.Carlo Zancanaro2017-01-26
| | | | | * guix/import/pypi.scm (compute-inputs): Don't add setuptools to the imported package's propagated-inputs.
* copy: Use userauth-public-key/auto! for ssh authentification.Mathieu Othacehe2017-01-26
| | | | | | | | * guix/scripts/copy.scm (open-ssh-session): Replace userauth-agent! by userauth-public-key/auto!. This way, if ssh-agent is not run, default ssh key (~/.ssh/id_rsa) will be used as a fallback. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* container: Pass through TERM when calling exec.Christopher Baines2017-01-25
| | | | | | | | | | * guix/scripts/container/exec.scm (guix-container-exec): Capture the value of the TERM environment variable, and pass it through to the container. This means some applications now work where they did not before (e.g. htop), and others have more functionality, providing that the terminal was capable of enabling that functionality in the first place. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* grafts: Do not pull derivation outputs not depended on.Ludovic Courtès2017-01-25
| | | | | | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/24886>. Previously, the grafting derivation of, say, brdf-explorer would pull in qt:doc even though brdf-explorer depends only on qt:out, not qt:doc. * guix/grafts.scm (with-cache): Use 'vhash-assoc' and 'vhash-cons' instead of 'vhash-assq' and 'vhash-consq'. (cumulative-grafts): Pass #:outputs to 'graft-derivation/shallow'. Use OUTPUTS instead of (derivation-output-names drv). (graft-derivation): Add #:outputs parameter; pass it to 'cumulative-grafts'. * tests/grafts.scm (make-derivation-input): New variable. ("graft-derivation, replaced derivation has multiple outputs"): Make sure P2:zzz is not part of the outputs of P3D. ("graft-derivation with #:outputs") ("graft-derivation, unused outputs not depended on"): New tests.
* grafts: Shallow grafting can be performed on a subset of the outputs.Ludovic Courtès2017-01-24
| | | | | | | * guix/grafts.scm (graft-derivation/shallow): Add #:outputs parameter. [outputs]: Rename to... [output-pairs]: ... this. Adjust 'build-expression->derivation' call accordingly.
* syscalls: Export 'read-utmpx'.Ludovic Courtès2017-01-24
| | | | | | * guix/build/syscalls.scm (read-utmpx-from-port): New procedure. * tests/syscalls.scm ("read-utmpx, EOF") ("read-utmpx"): New tests.
* lint: Display PACKAGE@VERSION.Ludovic Courtès2017-01-21
| | | | | * guix/scripts/lint.scm (run-checkers): Remove 'name' variable. Display PACKAGE@VERSION instead of PACKAGE-VERSION.
* syscalls: Add utmpx procedures and data structure.Ludovic Courtès2017-01-19
| | | | | | | * guix/build/syscalls.scm (<utmpx-entry>): New record type. (%utmpx): New C struct. (login-type): New bits. (setutxent, endutxent, getutxent, utmpx-entries): New procedures.
* syscalls: Extract 'bytes->string'.Ludovic Courtès2017-01-19
| | | | | * guix/build/syscalls.scm (bytes->string): New procedure. (bytevector->string-list): Use it.
* import: github: Catch HTTP 403 error during fetch.Mathieu OTHACEHE2017-01-19
| | | | | | | | * 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>
* guix environment, build: Allow absolute file names with '--root'.Ludovic Courtès2017-01-19
| | | | | | | | | 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.
* grafts: Preserve the cache across recursive calls.Ludovic Courtès2017-01-16
| | | | | | | | | | | 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.
* grafts: Actually cache grafts during the derivation DAG traversal.Ludovic Courtès2017-01-16
| | | | | | | | | | | 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'.
* profiles: Export 'ca-certificate-bundle'.Christopher Baines2017-01-16
| | | | | | | | * 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>
* guix build: Add '--repair'.Ludovic Courtès2017-01-15
| | | | | | * guix/scripts/build.scm (show-help, %options): Add '--repair'. * doc/guix.texi (Invoking guix gc): Mention 'guix build --repair'. (Additional Build Options): Document it.
* guix build: Do not force 'build-cores', 'max-build-jobs', and 'max-silent-time'.Ludovic Courtès2017-01-15
| | | | | | | | | 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'.
* daemon: Client settings no longer override daemon settings.Ludovic Courtès2017-01-15
| | | | | | | | | | | | | | | | 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.
* challenge: Add '--verbose'.Ludovic Courtès2017-01-14
| | | | | | | | | * 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.
* challenge: Return comparison reports instead of just discrepancies.Ludovic Courtès2017-01-14
| | | | | | | | | | | | | | | | | | | | | | 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.
* licenses: Add wtfpl2.ng02017-01-13
| | | | | | * guix/licenses.scm (wtfpl2): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
* http-client: Provide 'User-Agent' header by default.Ludovic Courtès2017-01-13
| | | | | | | * 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.
* import: github: Fix regression on the /releases retrieval.Ludovic Courtès2017-01-13
| | | | | | | | | 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.
* ui: Wrap 'canonicalize-path' for better error reporting.Ludovic Courtès2017-01-13
| | | | | | Reported by Christopher Baines. * guix/ui.scm (canonicalize-path): New procedure.
* ui: Factorize error-reporting wrapper code.Ludovic Courtès2017-01-13
| | | | | | * guix/ui.scm (augmented-system-error-handler): New procedure. (error-reporting-wrapper): New macro. (symlink, copy-file): Define using 'error-reporting-wrapper'.
* challenge: Use a warning when substitutes are lacking.Ludovic Courtès2017-01-12
| | | | | * guix/scripts/challenge.scm (discrepancies): Use 'warning' instead of 'leave'.
* perform-download: Add backward-compatible case.Ludovic Courtès2017-01-11
| | | | | | | | | | | 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.
* derivations: Make <derivation> record datatype immutable.Mathieu Lirzin2017-01-11
| | | | | * guix/derivations.scm (<derivation>): Make it immutable. (derivation): Use generic 'set-field' instead of ad-hoc functional setter.
* git download: Remove redundant argument in 'gexp->derivation' call.Mathieu Lirzin2017-01-11
| | | | | * guix/git-download.scm (git-fetch): Call 'gexp->derivation' with only one '#:local-build?' keyword argument.
* daemon: Allow check builds of 'builtin:download' derivations.Ludovic Courtès2017-01-11
| | | | | | | | | | | | | | | | | | 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.
* guix package: Fix version and output for 'guix package -i /gnu/store/…'.Ludovic Courtès2017-01-11
| | | | | | | | | * 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.
* guix archive: Allow compilation in the absence of Guile-JSON.Ludovic Courtès2017-01-10
| | | | | | | | 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).
* http-client: Improve error reporting.Ludovic Courtès2017-01-10
| | | | | * guix/http-client.scm (http-fetch): Change message in &message condition to include URI, CODE, and the reason phrase.
* guix archive: '-f docker' supports package names as arguments.Ludovic Courtès2017-01-07
| | | | | | | | | | | | | | | 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.
* guix: Add Docker image export.Ricardo Wurmus2017-01-06
| | | | | | | | * 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.
* derivations: Share a cache between 'derivation' and 'read-derivation'.Ludovic Courtès2017-01-05
| | | | | | | | | 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.
* derivations: Micro-optimize 'write-derivation'.Ludovic Courtès2017-01-05
| | | | | | | * 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.
* graph: Add '%reverse-package-node-type'.Ludovic Courtès2017-01-04
| | | | | | | | | * 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'.
* grafts: Move caching to a new 'with-cache' macro.Ludovic Courtès2017-01-04
| | | | | | * guix/grafts.scm (with-cache): New macro. (cumulative-grafts)[return/cache]: Remove. Use 'with-cache' instead.