summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
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.
2016-12-31ssh: 'retrieve-files' detects remote export failures.Ludovic Courtès
* guix/ssh.scm (retrieve-files): Call 'lookahead-u8' and raise a '&message' condition when it returns EOF.
2016-12-31ssh: 'send-files' returns the list of items sent.Ludovic Courtès
* guix/ssh.scm (send-files): Return MISSING.
2016-12-31ssh: Allow transfers of complete closures.Ludovic Courtès
* guix/ssh.scm (store-export-channel, send-files) (file-retrieval-port, retrieve-files): Add #:recursive? parameter and honor it.
2016-12-31git-download: Use a single download script for all derivations.Ludovic Courtès
That way, we have only one /gnu/store/…-git-download instead of one /gnu/store/…-PACKAGE-checkout-builder for each package. This is a followup to ced200328ca6337ac446e4557c645629e7d7a997. * guix/git-download.scm (git-fetch)[build]: Get the URL, commit, and recursive parameter using 'getenv'. Pass #:script-name and #:env-vars arguments to 'gexp->derivation'.
2016-12-31Add (guix ssh) module.Ludovic Courtès
* guix/scripts/offload.scm (connect-to-remote-daemon) (store-import-channel, store-export-channel, send-files) (retrieve-files): Move to (guix ssh). (nonce): Add optional 'name' parameter and use it. (retrieve-files*): New procedure. (transfer-and-offload): Use it instead of 'retrieve-files', and add first parameter to 'send-files'. (assert-node-can-import): Likewise. (assert-node-can-export): Use 'retrieve-files' instead of 'store-export-channel'. * guix/ssh.scm: New file. * configure.ac: Use 'GUIX_CHECK_GUILE_SSH' and define 'HAVE_GUILE_SSH' Automake conditional. * Makefile.am (MODULES) [HAVE_GUILE_SSH]: Add guix/ssh.scm.
2016-12-29import: elpa: Import dependencies as propagated-inputsCarlo Zancanaro
* guix/import/elpa.scm (elpa-package->sexp): Import dependencies as propagated-inputs. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-12-29import: elpa: Fix call-with-downloaded-fileCarlo Zancanaro
* guix/import/elpa.scm (call-with-downloaded-file): Make function behaviour match documentation string. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2016-12-21guix build: '--with-source' overrides the 'replacement' of a package.Ludovic Courtès
* guix/scripts/build.scm (package-with-source): Set 'replacement' to #f. * tests/scripts-build.scm ("options->transformation, with-source, replacement"): New test.
2016-12-20import: github: Use 'json-fetch'.Ludovic Courtès
* guix/import/github.scm (json-fetch*): Remove. (latest-released-version): Adjust accordingly.
2016-12-20environment: Add '--root' option.Ludovic Courtès
* guix/scripts/environment.scm (show-help, %options): Add --root. (register-gc-root): New procedure. (guix-environment): Call 'register-gc-root' when OPTS has a 'gc-root' option. * doc/guix.texi (Invoking guix environment): Document it. * tests/guix-environment.sh: Add tests.
2016-12-20import: pypi: Match new 'pypi-uri' domain in updater.Marius Bakke
* guix/import/pypi.scm (pypi-package?): Match pypi.io domain.
2016-12-19gexp: Slightly simplify 'gexp-inputs'.Ludovic Courtès
* guix/gexp.scm (gexp-inputs)[add-reference-inputs]: Remove unneeded 'if' in the non-native nested gexp case.
2016-12-19gexp: Native inputs of nested gexps are properly accounted for.Ludovic Courtès
Previously, 'gexp-native-inputs' would not return the native inputs of nested gexps. For example, this: (gexp-native-inputs #~(foo #$#~(bar #+coreutils))) would return '(). * guix/gexp.scm (gexp-inputs)[add-reference-inputs]: In the non-recursive cases, check whether N? and NATIVE? are the same, and act accordingly. [native-input?]: Remove. Fold over all of (gexp-references exp). * tests/gexp.scm ("ungexp + ungexp-native, nested, special mixture"): New test. * tests/gexp.scm ("input list splicing + ungexp-native-splicing"): Pass #:native? #t to 'gexp-input'.
2016-12-17import cran: Handle HTTP errors.Ricardo Wurmus
Fixes <http://bugs.gnu.org/23479>. * guix/import/cran.scm (fetch-description): Return #f in case of HTTP errors.
2016-12-17guix import: Print list of expressions.Ricardo Wurmus
* guix/scripts/import.scm (guix-import): Print list of expressions.
2016-12-17import cran: Add "recursive" option.Ricardo Wurmus
* guix/scripts/import/cran.scm: (%options): Add "recursive" option. (guix-import-cran): Handle "recursive" option. * doc/guix.texi (Invoking guix import): Document it.
2016-12-17import cran: Add recursive importer.Ricardo Wurmus
* guix/import/cran.scm (recursive-import): New variable. (cran->guix-package): Memoize the procedure.
2016-12-17import cran: Ignore default R packages.Ricardo Wurmus
* guix/import/cran.scm (default-r-packages): New variable. (description->package): Drop default R packages from list of inputs.
2016-12-17import cran: description->package: Also return package dependencies.Ricardo Wurmus
* guix/import/cran.scm (description->package): Return package dependencies in addition to generated package expression.
2016-12-17import cran: Move guix-name to top-level.Ricardo Wurmus
* guix/import/cran.scm (guix-name): Move to top-level.
2016-12-17import cran: Remove more invalid characters from package names.Ricardo Wurmus
* guix/import/cran.scm (guix-name): Replace period and underscore with dash; always prepend package names with "r-".
2016-12-17import cran: Handle BSD licenses with LICENSE file.Ricardo Wurmus
* guix/import/cran.scm (string->license): Add cases for BSD licenses with LICENSE file.
2016-12-17import cran: Translate MIT to the Expat license.Ricardo Wurmus
* guix/import/cran.scm (string->license): Translate "MIT" license to Expat license.
2016-12-17import cran: Do not use "or later" licenses by default.Ricardo Wurmus
* guix/import/cran.scm (string->license): Use exact license versions.
2016-12-17profiles: Remove dependency on 'glibc-utf8-locales' for tests.Ludovic Courtès
Commit 1af0860e8be81c01ad405c1226d6bc4516e62863 added a mandatory dependency on 'glibc-utf8-locales', which entails long rebuilds for tests. * guix/profiles.scm (profile-derivation): Add #:locales? parameter. Add 'set-utf8-locale' variable. Use it when LOCALES? is true. (link-to-empty-profile): Pass #:locales? #f. * guix/scripts/environment.scm (inputs->profile-derivation): Pass #:locales?. * guix/scripts/package.scm (build-and-use-profile): Likewise. * tests/packages.scm ("--search-paths with pattern"): Pass #:locales? #f. * tests/profiles.scm ("profile-derivation") ("profile-derivation, inputs", "profile-manifest, search-paths") ("etc/profile", "etc/profile when etc/ already exists"): ("etc/profile when etc/ is a symlink"): Likewise.
2016-12-16profiles: Build profiles in a UTF-8 locale.Ludovic Courtès
Fixes <http://bugs.gnu.org/25213>. Reported by Christopher Baines <mail@cbaines.net>. * guix/profiles.scm (profile-derivation)[glibc-utf8-locales]: New variable. [builder]: Use it to set 'LOCPATH'.
2016-12-16download: Protect against dangling symlinks in $SSL_CERT_DIR.Ludovic Courtès
Reported by Christopher Baines <mail@cbaines.net> in <https://bugs.gnu.org/25213>. * guix/build/download.scm (make-credendials-with-ca-trust-files): Check whether FILE exists before calling 'set-certificate-credentials-x509-trust-file!'.
2016-12-16refresh: Make dependency on (guix import crates) weak.Ludovic Courtès
Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * guix/scripts/refresh.scm: Do not explicitly import (guix import crates).
2016-12-15upstream: Determine archive type correctly.David Craven
* guix/upstream.scm (package-update): Take the basename of the uri before trying to determine the extension.
2016-12-14graph: Add d3js backend.Ricardo Wurmus
* d3.v3.js, graph.js: New files. * Makefile.am (EXTRA_DIST): List them. * guix/graph.scm (%d3js-backend): New variable. (emit-d3js-prologue, emit-d3js-epilogue, emit-d3js-node, emit-d3js-edge): New procedures. (%graph-backends): Add %d3js-backend.