Age | Commit message (Expand) | Author |
2015-01-10 | derivations: Add 'substitution-oracle' and use it....This makes 'guix environment PACKAGE' significantly faster when
substitutes are enabled. Before that, it would lead to many invocations
of 'guix substitute-binary', one per 'derivation-prerequisites-to-build'
call. Now, all these are replaced by a single invocation.
* guix/derivations.scm (derivation-output-paths, substitution-oracle):
New procedures.
(derivation-prerequisites-to-build): Replace #:use-substitutes? with
#:substitutable?. Remove the local 'derivation-output-paths' and
'substitutable?'.
* guix/ui.scm (show-what-to-build): Add 'substitutable?'. Pass it to
'derivation-prerequisites-to-build'.
[built-or-substitutable?]: Use it instead of 'has-substitutes?'.
* tests/derivations.scm ("derivation-prerequisites-to-build and
substitutes"): Use #:substitutable? instead of #:use-substitutes?.
| Ludovic Courtès |
2015-01-09 | derivations: Add 'derivation-output-names'....* guix/derivations.scm (derivation-output-names): New procedure.
(derivation-prerequisites-to-build): Use it for #:outputs.
(map-derivation): Likewise.
* tests/derivations.scm ("derivation-output-names"): New test.
| Ludovic Courtès |
2014-11-02 | derivations: Add 'derivation-name'....* guix/derivations.scm (derivation-name): New procedure.
* tests/derivations.scm ("derivation-name"): New test.
| Ludovic Courtès |
2014-10-29 | derivations: Fix 'derivation-prerequisites-to-build' when #:local-build?....* guix/derivations.scm (derivation-prerequisites-to-build)[derivation-substitutable?]:
Call 'substitutable-derivation?'.
<body>: When 'substitutable-derivation?' returns #f, add DRV to BUILD.
| Ludovic Courtès |
2014-10-29 | tests: Move some of the narinfo test tools to (guix tests)....* guix/tests.scm (derivation-narinfo, call-with-derivation-narinfo): New
procedures.
(with-derivation-narinfo): New macro.
* tests/derivations.scm ("derivation-prerequisites-to-build and
substitutes"): Use them.
| Ludovic Courtès |
2014-10-29 | derivations: Add 'offloadable-derivation?' and 'substitutable-derivation?'....* guix/derivations.scm (offloadable-derivation?,
substitutable-derivation?): New procedures.
* tests/derivations.scm ("offloadable-derivation?"): New test.
| Ludovic Courtès |
2014-10-17 | derivations: Introduce 'graft' record type....* guix/derivations.scm (<graft>): New record type.
(graft-derivation): Rename 'replacements' to 'grafts', and expect it
to be a list of <graft> records. Adjust accordingly.
* tests/derivations.scm ("graft-derivation"): Use 'graft' instead of
pairs in argument to 'graft-derivation'.
| Ludovic Courtès |
2014-10-08 | derivations: Add 'graft-derivation'....* guix/derivations.scm (graft-derivation): New procedure.
* guix/build/graft.scm: New file.
* Makefile.am (MODULES): Add it.
* tests/derivations.scm ("graft-derivation"): New test.
| Ludovic Courtès |
2014-08-31 | daemon: Really enable automatic deduplication by default....* nix/nix-daemon/guix-daemon.cc (main): Set 'autoStoreOptimise' to
true. Add 'printMsg' call.
* tests/derivations.scm ("identical files are deduplicated"): New test.
| Ludovic Courtès |
2014-08-23 | Factorize test suite support in (guix tests)....* guix/tests.scm: New file.
* Makefile.am (noinst_DATA): New variable.
(GOBJECTS): Add guix/tests.go.
* tests/builders.scm (%store): Use 'open-connection-for-tests'
from (guix tests).
* tests/derivations.scm: Likewise.
* tests/monads.scm: Likewise.
* tests/packages.scm: Likewise.
* tests/profiles.scm: Likewise.
* tests/union.scm: Likewise.
* tests/gexp.scm: Likewise.
(guile-for-build): Remove. Use (%guile-for-build) instead.
* tests/nar.scm (make-random-bytevector, %seed, random-text): Remove.
(populate-file): Change 'make-random-bytevector' to 'random-bytevector'.
Use (guix tests).
* tests/store.scm (%seed, random-text): Remove.
Use (guix tests).
| Ludovic Courtès |
2014-06-01 | derivations: Add #:allowed-references 'derivation' parameter....* guix/derivations.scm (derivation): Add #:allowed-references
parameter.
[user+system-env-vars]: Honor it.
* tests/derivations.scm ("derivation #:allowed-references, ok",
"derivation #:allowed-references, not allowed",
"derivation #:allowed-references, self allowed",
"derivation #:allowed-references, self not allowed"): New tests.
* doc/guix.texi (Derivations): Document #:allowed-references.
| Ludovic Courtès |
2014-04-13 | derivations: Fix 'fixed-output-derivation?'....Reported by Nikita Karetnikov <nikita@karetnikov.org>.
* guix/derivations.scm (fixed-output-derivation?): Fix pattern.
* tests/derivations.scm ("fixed-output-derivation?"): Add test.
| Ludovic Courtès |
2014-03-22 | tests: Make sure substitutes are usable when we need them....* tests/derivations.scm ("derivation-prerequisites-to-build and
substitutes"): Add call to 'set-build-options'.
| Ludovic Courtès |
2014-03-09 | store: Add #:timeout build option....* guix/serialization.scm (write-string-pairs): New procedure.
* guix/store.scm (write-arg): Add 'string-pairs' case.
(set-build-options): Add 'timeout' keyword parameter. Honor it.
* tests/derivations.scm ("build-expression->derivation and timeout"):
New test.
| Ludovic Courtès |
2014-02-21 | derivations: Add support for recursive fixed-output derivations....* guix/derivations.scm (<derivation-output>): Add 'recursive?' field.
Adjust 'make-derivation-output' callers.
(%read-derivation) <fixed-output>: When HASH-ALGO starts with 'r:',
set the 'recursive?' field and drop 'r:' from the hash algo name.
(write-derivation)[write-output]: Write the algo as 'r:HASH-ALGO' when
the RECURSIVE? field is set.
(derivation-hash) <fixed-output>: Prepend "r:" when RECURSIVE? is set.
(fixed-output-path): New procedure.
(derivation): Add #:recursive? parameter. Use 'fixed-output-path' to
compute the output file name of a fixed output derivation.
(build-expression->derivation): Add #:recursive? parameter. Pass it
to 'derivation'.
* tests/derivations.scm ("fixed-output derivation, recursive",
"build-expression->derivation produces recursive fixed-output",
"build-expression->derivation uses recursive fixed-output"): New
tests.
* doc/guix.texi (Derivations): Document #:recursive? for 'derivation'.
Add #:recursive? for 'build-expression->derivation'.
| Ludovic Courtès |
2013-12-04 | derivations: Use more keyword parameters for 'build-expression->derivation'....* guix/derivations.scm (build-expression->derivation): Turn 'system' and
'inputs' into keyword parameters.
Adjust callers accordingly.
* gnu/system/linux.scm, gnu/system/vm.scm, guix/build-system/cmake.scm,
guix/build-system/gnu.scm, guix/build-system/perl.scm,
guix/build-system/python.scm, guix/build-system/trivial.scm,
guix/download.scm, guix/packages.scm, guix/profiles.scm,
guix/scripts/pull.scm, tests/derivations.scm, tests/guix-build.sh,
tests/monads.scm, tests/store.scm, tests/union.scm: Adjust users of
'build-expression->derivation' and 'derivation-expression'
accordingly.
* doc/guix.texi (Derivations): Adjust 'build-expression->derivation'
documentation accordingly.
(The Store Monad): Likewise for 'derivation-expression'.
| Ludovic Courtès |
2013-11-13 | derivations: Allow 'map-derivations' to replace sources....* guix/derivations.scm (map-derivation)[input->output-paths]: Allow
non-derivation inputs.
Allow replacements to be store files. Replace in SOURCES too.
* tests/derivations.scm ("map-derivation, sources"): New test.
| Ludovic Courtès |
2013-11-13 | derivations: Add 'map-derivation'....* guix/derivations.scm (map-derivation): New procedure.
* tests/derivations.scm ("map-derivation"): New test.
| Ludovic Courtès |
2013-11-04 | tests: Fix max-silent-time test....* tests/derivations.scm ("build-expression->derivation and
max-silent-time"): Use STORE instead of %STORE. Change BUILDER to
succeed by default. Return #f when no exception is raised.
| Ludovic Courtès |
2013-11-04 | tests: Add the builder as an input to raw derivations....* tests/derivations.scm ("build derivation with 1 source",
"derivation with local file as input",
"derivation with a fixed-output input",
"multiple-output derivation",
"multiple-output derivation, non-alphabetic order",
"user of multiple-output derivation"): Add %BASH as an input, needed
in chroot builds.
| Ludovic Courtès |
2013-10-30 | derivations: 'derivation-path->output-path' honors the 'output' parameter....* guix/derivations.scm (derivation-path->output-path): Pass OUTPUT.
* tests/derivations.scm ("multiple-output derivation,
derivation-path->output-path"): New test.
| Ludovic Courtès |
2013-09-18 | derivations: 'derivation' and related procedures return a single value....* guix/derivations.scm (derivation->output-path,
derivation->output-paths): New procedures.
(derivation-path->output-path): Use 'derivation->output-path'.
(derivation-path->output-paths): Use 'derivation->output-paths'.
(derivation): Accept 'derivation?' objects as inputs. Return a single
value.
(build-derivations): New procedure.
(compiled-modules): Use 'derivation->output-paths'.
(build-expression->derivation)[source-path]: Add case for when the
input matches 'derivation?'.
[prologue]: Accept 'derivation?' objects in INPUTS.
[mod-dir, go-dir]: Use 'derivation->output-path'.
* guix/download.scm (url-fetch): Adjust to the single-value return.
* guix/packages.scm (package-output): Use 'derivation->output-path'.
* guix/scripts/build.scm (guix-build): When the argument is
'derivation-path?', pass it through 'read-derivation'.
Use 'derivation-file-name' to print out the .drv file names, and to
register them. Use 'derivation->output-path' instead of
'derivation-path->output-path'.
* guix/scripts/package.scm (roll-back): Adjust to the single-value
return.
(guix-package): Use 'derivation->output-path'.
* guix/ui.scm (show-what-to-build): Adjust to deal with 'derivation?'
objects instead of .drv file names.
* gnu/system/grub.scm (grub-configuration-file): Use
'derivation->output-path' instead of 'derivation-path->output-path'.
* gnu/system/vm.scm (qemu-image, system-qemu-image): Likewise.
* tests/builders.scm, tests/derivations.scm, tests/packages.scm,
tests/store.scm, tests/union.scm: Adjust to the new calling
convention.
* doc/guix.texi (Defining Packages, The Store, Derivations): Adjust
accordingly.
| Ludovic Courtès |
2013-09-17 | derivations: Keep the .drv file name in <derivation> objects....* guix/derivations.scm (<derivation>): Add 'file-name' field.
(%read-derivation): Use (port-filename DRV-PORT) as the file name for
the result.
(derivation): Set the 'file-name' field in the result.
* tests/derivations.scm ("build derivation with 1 source"): Assert that
'derivation-file-name' returns the right thing.
| Ludovic Courtès |
2013-08-28 | derivations: Rename #:dependency-graphs to #:references-graphs....* guix/derivations.scm (derivation, build-expression->derivation):
Rename #:dependency-graphs to #:references-graphs, for consistency in
the terminology.
* tests/derivations.scm: Adjust accordingly.
| Ludovic Courtès |
2013-08-26 | derivations: Add #:dependency-graphs to `build-expression->derivation'....* guix/derivations.scm (build-expression->derivation): Add
#:dependency-graphs keyword argument. Pass it to `derivation'.
* tests/derivations.scm ("build-expression->derivation with
#:dependency-graphs"): New test.
* doc/guix.texi (Derivations): Update `build-expression->derivation'
description.
| Ludovic Courtès |
2013-08-26 | derivations: Add #:dependency-graphs `derivation' parameter....* guix/derivations.scm (derivation): Add `dependency-graphs' keyword
parameter; honor it.
* tests/derivations.scm (bootstrap-binary): New procedure.
(%bash): Use it.
(%mkdir): New variable.
(directory-contents): Add `slurp' optional parameter.
("derivation with #:dependency-graphs"): New test.
* doc/guix.texi (Derivations): Update accordingly.
| Ludovic Courtès |
2013-08-26 | derivations: Move 3 positional parameters into keyword parameters....* guix/derivations.scm (derivation): Turn `system', `env-vars', and
`inputs' into keyword parameters.
(build-expression->derivation): Adjust accordingly.
* gnu/packages/bootstrap.scm (%bootstrap-guile): Likewise.
* tests/derivations.scm, tests/store.scm: Likewise.
* doc/guix.texi (Derivations): Likewise.
| Ludovic Courtès |
2013-07-01 | Move `sha256' to (guix hash)....* guix/utils.scm (sha256): Move to...
* guix/hash.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
* guix/derivations.scm, guix/scripts/download.scm,
guix/scripts/hash.scm, guix/scripts/refresh.scm, tests/base32.scm,
tests/derivations.scm, tests/store.scm: Use (guix hash).
| Ludovic Courtès |
2013-05-20 | Add `--max-silent-time' to `guix build' and `guix package'....* guix/scripts/build.scm (%default-options): Add default
`max-silent-time' value.
(show-help, %options): Add `--max-silent-time'.
(guix-build): Pass `max-silent-time' to `set-build-options'.
* guix/scripts/package.scm (%default-options): Add default
`max-silent-time' value.
(show-help, %options): Add `--max-silent-time'.
(guix-package): Pass `max-silent-time' to `set-build-options'.
* guix/ui.scm (string->number*): New procedure.
* tests/derivations.scm ("build-expression->derivation and
max-silent-time"): New test.
* doc/guix.texi (Invoking guix package, Invoking guix build): Document
`--max-silent-time'.
| Ludovic Courtès |
2013-04-17 | scripts: Report what will be substituted....* guix/derivations.scm (derivation-input-output-paths): New procedure.
(derivation-prerequisites-to-build): New `use-substitutes?' keyword
argument. Change two return the list of substitutable paths as a
second argument.
* guix/ui.scm (show-what-to-build): Turn `dry-run?' into a keyword
argument. New `use-substitutes?' keyword argument. Use `fold2' and
adjust to use both return values of
`derivation-prerequisites-to-build'. Display what will/would be
downloaded.
* guix/scripts/build.scm (guix-build): Adjust accordingly.
* guix/scripts/package.scm (guix-package): Likewise.
* tests/derivations.scm ("derivation-prerequisites-to-build and
substitutes"): New test.
| Ludovic Courtès |
2013-02-04 | tests: Fix thinko in `derivation' test....* tests/derivations.scm ("derivation with local file as input"): Return
a Boolean instead of a bytevector. Don't attempt to compare the
content of the result with that of the input.
| Ludovic Courtès |
2013-02-01 | Augment `.dir-locals.el'....* .dir-locals.el: Add more Scheme settings.
* guix-build.in, tests/base32.scm, tests/build-utils.scm,
tests/builders.scm, tests/derivations.scm, tests/packages.scm,
tests/snix.scm, tests/store.scm, tests/union.scm, tests/utils.scm:
Remove redundant Emacs local variable settings.
| Ludovic Courtès |
2013-01-30 | store: Remove the `fixed?' parameter from `add-to-store'....* guix/store.scm (add-to-store): Remove the `fixed?' parameter from the
public interface.
* gnu/packages/bootstrap.scm, guix-download.in, guix/derivations.scm,
guix/packages.scm, tests/derivations.scm: Update all callers
accordingly.
| Ludovic Courtès |
2013-01-18 | distro: Rename (distro) to (gnu packages)....* distro.scm: Rename to...
* gnu/packages.scm: ... this. Update all users accordingly.
* Makefile.am (MODULES): Adjust accordingly.
* po/POTFILES.in: Likewise.
| Ludovic Courtès |
2013-01-18 | distro: Change the module name space to (gnu ...)....* distro: Rename to...
* gnu: ... this. Update module names accordingly.
* Makefile.am: Adjust accordingly.
* po/POTFILES.in: Likewise.
* distro.scm: Search for files under /gnu/packages instead of
/distro/packages.
* gnu/packages/base.scm (ld-wrapper-boot3): Likewise.
| Ludovic Courtès |
2013-01-11 | Merge branch 'core-updates'...Conflicts:
guix/build/union.scm
| Ludovic Courtès |
2013-01-09 | derivations: Fix `derivation-prerequisites-to-build' when outputs are there....Before it would list inputs not built, even if the outputs of the given
derivation were already available.
* guix/derivations.scm (derivation-prerequisites-to-build): Add
`outputs' keyword parameter.
[built?, derivation-built?]: New procedures.
[loop]: Add `sub-drvs' parameter. Use `derivation-built?' to check if
the SUB-DRVS of DRV are built before checking its inputs.
| Ludovic Courtès |
2013-01-06 | Merge branch 'master' into core-updates...Conflicts:
build-aux/download.scm
distro/packages/autotools.scm
distro/packages/base.scm
distro/packages/bootstrap.scm
distro/packages/lsh.scm
distro/packages/make-bootstrap.scm
distro/packages/ncurses.scm
distro/packages/perl.scm
tests/derivations.scm
tests/union.scm
| Ludovic Courtès |
2013-01-06 | Update license headers....Change all license headers, except guix/build/* and ld-wrapper.scm, with
this code:
(use-modules (guix build utils)
(srfi srfi-1))
(fluid-set! %default-port-encoding "UTF-8")
(substitute* (remove (lambda (f)
(or (string-contains f ".tar.")
(string-contains f ".git/")
(string-contains f ".so")
(string-suffix? ".o" f)
(string-suffix? ".a" f)
(string-suffix? ".go" f)
(string-suffix? ".pdf" f)
(string-suffix? ".png" f)
(string-suffix? ".info" f)
(equal? (basename f) "guix-daemon")
(equal? (basename f) "nix-setuid-helper")
(string-contains f "nix-upstream/")
(string-contains f "distro/packages/bootstrap/")))
(find-files "." "\\.[a-z]+$"))
(("^([[:graph:]]+) This file is part of Guix." _ comment-start)
(string-append comment-start " This file is part of GNU Guix."))
(("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
(string-append comment-start
" GNU Guix --- Functional package management for GNU\n"))
(("^([[:graph:]]+) Guix is " _ comment-start)
(string-append comment-start " GNU Guix is "))
(("^([[:graph:]]+) along with Guix." _ comment-start)
(string-append comment-start " along with GNU Guix."))
(("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
(string-append comment-start " Copyright ©")))
Change headers using C-style comments manually.
| Ludovic Courtès |
2013-01-05 | derivations: Add `derivation-path->output-paths'....* guix/derivations.scm (derivation-path->output-paths): New procedure.
* tests/derivations.scm ("multiple-output derivation"): Test it.
| Ludovic Courtès |
2013-01-02 | tests: Adjust to not rely on /bin/sh....* tests/derivations.scm (%bash): New variable.
Replace occurrences of "/bin/sh" by %BASH.
* tests/union.scm ("union-build"): Delete duplicates from
%BOOTSTRAP-INPUTS.
| Ludovic Courtès |
2012-12-13 | tests: Skip network-dependent tests when the network is unreachable....* tests/builders.scm (network-reachable?): New variable.
("url-fetch", "gnu-build"): Skip unless NETWORK-REACHABLE?.
* tests/derivations.scm (%coreutils): Check for network access.
("build-expression->derivation with one input"): Skip when %COREUTILS
is #f.
* tests/guix-package.sh: Skip installation of GNU Make when the network
is unreachable.
* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
* tests/union.scm ("union-build"): Likewise.
| Ludovic Courtès |
2012-12-06 | build: Update skip count in `tests/derivations.scm'....* tests/derivations.scm: When %STORE if #f, skip 11 tests.
| Ludovic Courtès |
2012-12-04 | derivations: Fix erroneous call to `add-to-store' for local files as input....* guix/derivations.scm (derivation)[inputs]: Fix typo in call to
`add-to-store'.
* tests/derivations.scm ("derivation with local file as input"): New test.
* tests/packages.scm ("trivial with local file as input"): New test.
| Ludovic Courtès |
2012-11-13 | tests: Remove extraneous test....* tests/derivations.scm ("build-expression->derivation for fixed-output
derivation"): Remove test. It is redundant with that in builders.scm,
and doesn't work out of the box with the statically-linked
%BOOTSTRAP-GUILE.
| Ludovic Courtès |
2012-11-11 | Move base32 code to (guix base32)....* guix/utils.scm (bytevector-quintet-ref, bytevector-quintet-ref-right,
bytevector-quintet-length, bytevector-quintet-fold,
bytevector-quintet-fold-right, make-bytevector->base32-string,
%nix-base32-chars, %rfc4648-base32-chars, bytevector->base32-string,
bytevector->nix-base32-string, bytevector-quintet-set!,
bytevector-quintet-set-right!, base32-string-unfold,
base32-string-unfold-right, make-base32-string->bytevector,
base32-string->bytevector, nix-base32-string->bytevector): Move to...
* guix/base32.scm: ... here. New file.
* tests/utils.scm (%nix-hash, "bytevector->base32-string",
"base32-string->bytevector", "nix-base32-string->bytevector", "sha256
& bytevector->base32-string"): Move to...
* tests/base32.scm: ... here. New file
* guix-download.in, guix/derivations.scm, guix/packages.scm,
guix/snix.scm, tests/builders.scm, tests/derivations.scm: Adjust
accordingly.
* guix.scm (%public-modules): Add `base32'.
| Ludovic Courtès |
2012-11-09 | derivations: build-expression->derivation: Builder only refers to sources....* guix/derivations.scm (build-expression->derivation)[source-path]: New
procedure.
[builder]: Pass only sources as references. This fixes a bug whereby
changing a fixed-output drv referred to by a builder would cause the
builder's hash to change, thereby leading to a full rebuild.
* tests/derivations.scm ("build-expression->derivation with a
fixed-output input"): New test.
| Ludovic Courtès |
2012-11-08 | derivations: Add tests relative to fixed-output derivations....* tests/derivations.scm ("fixed-output derivation"): Add comment that
the reference to BUILDER is optional.
("fixed-output derivation: output paths are equal",
"derivation with a fixed-output input",
"build-expression->derivation: same fixed-output path"): New tests.
| Ludovic Courtès |
2012-11-04 | distro: Move bootstrap packages to (distro packages bootstrap)....* distro/packages/base.scm (glibc-dynamic-linker, %bootstrap-guile,
bootstrap-origin, package-from-tarball, %bootstrap-base-url,
%bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc,
%bootstrap-gcc, %bootstrap-inputs, package-with-bootstrap-guile): Move
to ...
* distro/packages/bootstrap.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
* tests/builders.scm: Use (distro packages bootstrap).
(%bootstrap-guile): Remove.
* tests/packages.scm: Likewise.
* tests/union.scm: Likewise, and remove @@ to access %bootstrap-inputs.
* tests/derivations.scm: Use (distro packages bootstrap) and remove @@
to access %bootstrap-coreutils&co.
* HACKING (When the platform is supported by Nixpkgs): Update
accordingly.
| Ludovic Courtès |
2012-11-02 | tests: Run without substitutes....* tests/builders.scm, tests/derivations.scm, tests/packages.scm: Set
#:use-substitutes? #f for %STORE.
| Ludovic Courtès |