aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* Rename 'guix substitute-binary' to 'guix substitute'.Ludovic Courtès2015-03-25
| | | | | | | | | | | | | | | | | | | * guix/scripts/substitute-binary.scm: Rename to... * guix/scripts/substitute.scm: ... this. Adjust module name, entry point, comments, and help string accordingly. * nix/scripts/substitute-binary.in: Rename to... * nix/scripts/substitute.in: ... this. * pre-inst-env.in (NIX_SUBSTITUTERS): Adjust accordingly. * tests/substitute-binary.scm: Rename to... * tests/substitute.scm: ... this. Adjust references to (guix scripts substitute) accordingly. * guix/ui.scm (show-guix-help)[internal?]: Change "substitute-binary" to "substitute". * Makefile.am (MODULES, SCM_TESTS): Adjust to file renames. * daemon.am (nodist_pkglibexec_SCRIPTS): Likewise. * config-daemon.ac: Likewise. * guix/tests.scm (call-with-derivation-narinfo): Adjust comments and docstring.
* derivations: 'substitution-oracle' now ignores sub-trees that are valid.Ludovic Courtès2015-03-25
| | | | | | | | | | | Before that, "guix build qt", when only qt itself is missing, would lead 'substitution-oracle' to call 'substitutable-paths' with 318 items. Now, this is down to 6 items, because it doesn't ask about prerequisites that are already valid. * guix/derivations.scm (substitution-oracle)[valid-input?, dependencies]: New procedures. Use 'dependencies' and remove call to 'remove'.
* derivations: Add a 'cut?' parameter to 'derivation-prerequisites'.Ludovic Courtès2015-03-25
| | | | | | | * guix/derivations.scm (valid-derivation-input?): New procedure. (derivation-prerequisites): Add 'cut?' parameter and honor it. * tests/derivations.scm ("derivation-prerequisites and derivation-input-is-valid?"): New test.
* derivations: Don't invoke the substituter when an item is already in store.Ludovic Courtès2015-03-24
| | | | | | | | Fixes <http://bugs.gnu.org/20188>. Reported by Mark H Weaver <mhw@netris.org>. * guix/derivations.scm (substitution-oracle): Add 'valid?' procedure. Remove 'valid?' items from PATHS.
* substitute-binary: Remove thread-safe 'regexp-exec' wrapper.Ludovic Courtès2015-03-23
| | | | * guix/scripts/substitute-binary.scm: Remove 'regexp-exec' setting.
* substitute-binary: Pipeline HTTP requests instead of using threads.Ludovic Courtès2015-03-23
| | | | | | | | | | | * guix/scripts/substitute-binary.scm (fetch-narinfo, %lookup-threads, n-par-map*): Remove. (narinfo-cache-file, cached-narinfo, cache-narinfo!, narinfo-request, http-multiple-get, read-to-eof, fetch-narinfos, lookup-narinfos, narinfo-from-file): New procedures. (lookup-narinfo): Rewrite in terms of 'lookup-narinfos'. (guix-substitute-binary): Use 'lookup-narinfos' instead of 'lookup-narinfo'.
* substitute-binary: Allow callers to specify the size of a narinfo.Ludovic Courtès2015-03-23
| | | | | * guix/scripts/substitute-binary.scm (read-narinfo): Add #:size parameter and honor it.
* store: Default to a non-empty list of substituters.Ludovic Courtès2015-03-22
| | | | | | | | | Fixes <http://bugs.gnu.org/20163>. Reported by Mark H Weaver <mhw@netris.org>. * guix/store.scm (%default-substitute-urls): New variable. (set-build-options): Change default value of #:substitute-urls to %DEFAULT-SUBSTITUTE-URLS.
* gexp: Fix handling of nativeness in nested gexps.Ludovic Courtès2015-03-22
| | | | | | | | * guix/gexp.scm (gexp-inputs): Remove 'references' parameter; add #:native? and honor it. [add-reference-inputs]: Distinguish between native gexp inputs, and non-native gexp inputs. Honor 'native?' field of list inputs. * tests/gexp.scm ("ungexp + ungexp-native, nested"): New test.
* gexp: Ignore nested gexps in macro expansion.Ludovic Courtès2015-03-22
| | | | | | | | | | | Before that, the 'references' and 'natives' or the outer gexp in an expression like #~#+#~#$coreutils would include those of the inner gexp. * guix/gexp.scm (gexp)[collect-escapes]: Ignore everything below 'ungexp-native' or 'ungexp-native-splicing'. [collect-native-escapes]: Ignore everything below 'ungexp' or 'ungexp-splicing'.
* gexp: Allow <gexp-input> objects in #:allowed-references.Ludovic Courtès2015-03-22
| | | | | | * guix/gexp.scm (lower-references): Add <gexp-input> case. * tests/gexp.scm ("gexp->derivation #:allowed-references, specific output"): New test.
* gexp: Add identity compiler for derivations.Ludovic Courtès2015-03-22
| | | | | | | * guix/gexp.scm (derivation-compiler): New procedure. (lower-inputs): Remove 'derivation?' case. (gexp-inputs)[add-reference-inputs]: Likewise. (gexp->sexp)[reference->sexp]: Likewise.
* guix package: '-s' sorts packages by name, then by version.Ludovic Courtès2015-03-20
| | | | | | | | | | | | | Before that it would sort them by name only, so the order in which two packages with the same name but a different version would appear was non-deterministic. Reported by Tomáš Čech <sleep_walker@gnu.org>. * guix/scripts/package.scm (find-packages-by-description)[version<?]: New variable. Change the 2nd argument to 'sort' to use 'string-compare' and resort to 'version<?' when P1 and P2 have the same name.
* guix package: '-s' displays different packages that have the same location.Ludovic Courtès2015-03-20
| | | | | | | | | | | | | | | | | Before that, 'guix package -s foobarbaz' would display only one package when several match but they have the same location (which is common when using 'inherit'.) The original rationale was given at <http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00280.html> but it was arguably misguided because it led to "real" packages being hidden. Reported by Tomáš Čech <sleep_walker@gnu.org>. * guix/scripts/package.scm (find-packages-by-description)[same-location?]: Remove. Remove call to 'delete-duplicates'.
* ftp-client: Switch to binary mode before using the "SIZE" command.Ludovic Courtès2015-03-19
| | | | * guix/ftp-client.scm (ftp-size): Add '%ftp-command' call.
* lint: Report details about FTP errors.Ludovic Courtès2015-03-19
| | | | | | | * guix/scripts/lint.scm (probe-uri) <'ftp>: Pass more information about failures alongside 'ftp-response. (validate-uri) <ftp-response>: Handle it, and adjust "not reachable" message accordingly.
* lint: Change misleading variable name.Ludovic Courtès2015-03-19
| | | | * guix/scripts/lint.scm (probe-uri) <'ftp>: Rename 'port' to 'conn'.
* substitute-binary: Fix recently-introduced regression.Ludovic Courtès2015-03-18
| | | | | * guix/scripts/substitute-binary.scm (%cache-url): Fix regression introduced in 41c45e7.
* store: Remove debugging leftover.Ludovic Courtès2015-03-18
| | | | | * guix/store.scm (set-build-options): Remove leftover 'pk' call from 41c45e7.
* store: Add preliminary support for client-supplied substitute URLs.Ludovic Courtès2015-03-18
| | | | | | | | * guix/store.scm (set-build-options): Rename #:binary-caches to #:substitute-urls. Actually pass it in 'pairs' under the "substitute-urls" key. * guix/scripts/substitute-binary.scm (%cache-url): Add comment for "untrusted-substitute-urls".
* pk-crypto: Improve documentation of 'key-type'.Ludovic Courtès2015-03-18
| | | | * guix/pk-crypto.scm (key-type): Improve docstring.
* build: ruby: Set $GEM_HOME that matches Ruby's $GEM_PATH.David Thompson2015-03-17
| | | | | * guix/build/ruby-build-system.scm (install): Ignore the Ruby patch version when creating $GEM_HOME.
* gexp: Move the package and origin compilers to (guix packages).Ludovic Courtès2015-03-17
| | | | | | | | | | | | | From now own, (guix packages) depends on (guix gexps); it was the other way around now. This means that (guix packages) code can use gexps. * guix/gexp.scm (origin-compiler, package-compiler): Remove. (default-guile-derivation): New procedure. (gexp->derivation): Use it instead of 'default-guile' + 'package->derivation'. * guix/packages.scm (default-guile-derivation): New procedure. (package-compiler, origin-compiler): New variables. * doc/guix.texi (G-Expressions): Mention extensibility.
* packages: Move grafting parameter to (guix derivations).Ludovic Courtès2015-03-17
| | | | | * guix/packages.scm (%graft?, set-grafting): Move to... * guix/derivations.scm: ... here.
* gexp: Separate "compilers" for origins and packages from the core.Ludovic Courtès2015-03-17
| | | | | | | | | | | | | * guix/gexp.scm (<gexp-compiler>): New record type. (%gexp-compilers): New variable. (register-compiler!, lookup-compiler): New procedures. (define-gexp-compiler): New macro. (origin-compiler, package-compiler): New compilers. (lower-inputs): Remove clauses for 'origin?' and 'package?'. Add clause with 'lookup-compiler' instead. (lower-references): Likewise. (gexp-inputs)[add-reference-inputs]: Likewise. (gexp->sexp)[reference->sexp]: Likewise.
* gexp: Remove special meaning of forms (PACKAGE OUTPUT) in ungexp.Ludovic Courtès2015-03-17
| | | | | | | | | | | * guix/gexp.scm (gexp-inputs)[add-reference-inputs]: Remove clause for inputs of the form (PACKAGE OUTPUT). (gexp->sexp)[reference->sexp]: Likewise. * tests/gexp.scm ("input list splicing"): Change 'list' to 'gexp-input' for glibc:debug. ("text-file*"): Likewise for %bootstrap-guile:out. ("input list splicing + gexp-input + ungexp-native-splicing"): Remove, now redundant.
* profiles: Use 'gexp-input' instead of two-element lists.Ludovic Courtès2015-03-17
| | | | | | | * guix/profiles.scm (package->manifest-entry): Use 'gexp-input' instead of two-element lists to denote specific package outputs. (manifest-inputs): Likewise. (profile-derivation)[info-dir]: Likewise.
* gexp: Export 'gexp-input' constructor.Ludovic Courtès2015-03-17
| | | | | | | | | | | | * guix/gexp.scm (<gexp-input>)[gexp-input]: Rename to... [%gexp-input]: ... this. Adjust callers accordingly. (gexp-input): New procedure. (gexp-inputs)[add-reference-inputs]: When the input is a list, check whether each item is already 'gexp-input?' and to not rewrap those. (gexp-outputs)[add-reference-output]: Likewise. (gexp->sexp): Likewise. * tests/gexp.scm ("input list splicing + gexp-input + ungexp-native-splicing"): New test.
* gexp: Add <gexp-input>.Ludovic Courtès2015-03-17
| | | | | | | | | | | * guix/gexp.scm (<gexp-input>): New record type. (gexp-inputs)[add-reference-inputs]: Adjust clauses to expect <gexp-input> objects. (gexp-outputs)[add-reference-output]: Likewise. (gexp->sexp)[reference->sexp]: Likewise. (canonicalize-reference): Remove. (gexp)[escape->ref]: Use 'gexp-input' for all the references. Remove use of 'canonicalize-reference'.
* gexp: Rename <output-ref> to <gexp-output>.Ludovic Courtès2015-03-17
| | | | | | * guix/gexp.scm (<output-ref>): Rename to... (<gexp-output>): ... this. Adjust constructor/accessor names and users accordingly.
* licenses: Add the Ms-PL.Ludovic Courtès2015-03-17
| | | | * guix/licenses.scm (ms-pl): New variable.
* scripts: environment: Improve error messages.David Thompson2015-03-16
| | | | | * guix/scripts/environment.scm (guix-environment): Wrap procedure body with error handling form.
* licenses: Rename 'bsd-style' to 'non-copyleft'.Ludovic Courtès2015-03-14
| | | | | | * guix/licenses.scm (bsd-style): Rename to... (non-copyleft): ... this. Clarify docstring. (bsd-style): Introduce as an alias for 'non-copyleft'.
* gnu: cmake: Add CMAKE_PREFIX_PATH as a native search path, and dropAndreas Enge2015-03-14
| | | | | | | | CMAKE_LIBRARY_PATH and CMAKE_INCLUDE_PATH from the cmake build system. * gnu/packages/cmake.scm (cmake)[native-search-paths]: New field. * guix/build/cmake-build-system.scm (configure): Drop environment variables CMAKE_LIBRARY_PATH and CMAKE_INCLUDE_PATH.
* build-system/python: Delay evaluation of the 'python2' package.Ludovic Courtès2015-03-12
| | | | | | | | | | | | This fixes a bug whereby uses of 'package-with-python2' at the top-level in modules other than (gnu packages python) could lead to an "Unbound variable: python2" error due to the circular references. Reported by Tomáš Čech. * guix/build-system/python.scm (package-with-explicit-python)[arguments]: Check whether PYTHON is a promise, and force it if it is. (package-with-python2): Wrap 'default-python2' call in 'delay'.
* lint: Add tests for the 'source' checker.Ludovic Courtès2015-03-05
| | | | | | * guix/scripts/lint.scm (check-source): Export. * tests/lint.scm (%null-sha256): New procedure. ("source: 200", "source: 404"): New tests.
* store: Attempt to decode build logs as UTF-8.Ludovic Courtès2015-03-05
| | | | | | | * guix/serialization.scm (read-maybe-utf8-string): New procedure. * guix/store.scm (process-stderr): Use it for the build log and errors. * tests/store.scm ("current-build-output-port, UTF-8", "current-build-output-port, UTF-8 + garbage"): New tests.
* serialization: Factorize 'read-byte-string'.Ludovic Courtès2015-03-05
| | | | | * guix/serialization.scm (read-byte-string): New procedure. (read-string, read-latin1-string): Use it.
* tests: Remove dependency on 'glibc-utf8-locales' for profile tests.Ludovic Courtès2015-03-04
| | | | | | | | | | | This fixes a regression introduced in commit 536c3ee. * guix/profiles.scm (ca-certificate-bundle): When MANIFEST is empty, make a trivial derivation. * guix/scripts/package.scm (guix-package)[process-actions]: Pass #:ca-certificate-bundle? to 'profile-generation'. * tests/packages.scm ("--search-paths with pattern"): Likewise. * tests/profiles.scm ("profile-derivation"): Likewise.
* Merge branch 'core-updates'.Ludovic Courtès2015-03-04
|\
| * gexp: Make sure 'gexp-outputs' removes duplicate outputs.Ludovic Courtès2015-03-02
| | | | | | | | | | | | | | | | Fixes a regression introduced in f9efe56. * guix/gexp.scm (gexp-outputs): Add call to 'delete-duplicates'. * tests/gexp.scm ("output list, combined gexps, duplicate output"): New test.
| * Revert "build-system/gnu: Keep the sloppy conversion strategy during bootstrap."Ludovic Courtès2015-03-01
| | | | | | | | | | | | This reverts commit b479c3ddaf85c831e34888229849bc1ce34419de. This commit was the result of an incorrect characterization of the problem; see the log of commit 87c8b92 for details.
| * build-system/gnu: Keep the sloppy conversion strategy during bootstrap.Ludovic Courtès2015-03-01
| | | | | | | | | | | | | | * guix/build/gnu-build-system.scm (gnu-build): Leave %DEFAULT-PORT-CONVERSION-STRATEGY unchanged when 'string->bytevector' fails to convert to ISO-8859-1. This is an attempt to work around the build failures at <http://hydra.gnu.org/build/263002>.
| * utils: Treat 'configure' and Makefiles with an 8-bit encoding.Ludovic Courtès2015-02-28
| | | | | | | | | | * guix/build/utils.scm (patch-makefile-SHELL, patch-/usr/bin/file): Wrap 'substitute*' in 'with-fluids'. Fixes <http://hydra.gnu.org/build/262895>.
| * packages: Set the port conversion strategy to 'error'.Ludovic Courtès2015-02-28
| | | | | | | | | | | | | | | | Suggested by Mark H Weaver. * guix/build/gnu-build-system.scm (gnu-build): Set %DEFAULT-PORT-CONVERSION-STRATEGY to 'error. * guix/packages.scm (patch-and-repack)[builder]: Likewise.
| * utils: Change 'patch-shebangs' to use binary input.Ludovic Courtès2015-02-28
| | | | | | | | | | | | | | * guix/build/utils.scm (get-char*): New procedure. (patch-shebang): Use it instead of 'read-char'. (fold-port-matches): Remove local 'get-char' and use 'get-char*' instead.
| * gexp: Aggregate outputs of compound gexps.Ludovic Courtès2015-02-27
| | | | | | | | | | | | | | * guix/gexp.scm (gexp-outputs)[add-reference-output]: Recurse into lists. * tests/gexp.scm ("output list + ungexp-splicing list, combined gexps"): New test.
| * download: Comment on lack of progress report with chunked encoding.Ludovic Courtès2015-02-27
| | | | | | | | * guix/build/download.scm (progress-proc): Add comment.
| * download: Measure and display the throughput.Ludovic Courtès2015-02-27
| | | | | | | | | | | | * guix/build/download.scm (duration->seconds, throughput->string): New procedures. (progress-proc): Measure and display the throughput.
| * download: Abstract the receive buffer size.Ludovic Courtès2015-02-27
| | | | | | | | | | * guix/build/download.scm (%http-receive-buffer-size): New variable. (progress-proc, tls-wrap, http-fetch): Use it.