Age | Commit message (Expand) | Author |
2014-03-17 | guix archive: Generate curve Ed25519 keys by default.•••* guix/scripts/archive.scm (%options) <generate-key>: Default to curve
Ed25519. Suggested by Christian Grothoff <grothoff@in.tum.de>.
| Ludovic Courtès |
2014-03-17 | guix archive: Improve '--generate-key' error reporting.•••* guix/scripts/archive.scm (%options) <generate-key>: Report the error
source and string when 'string->canonical-sexp' fails.
| Ludovic Courtès |
2014-03-13 | offload: Fix 'choose-build-machine' for several machines.•••* guix/scripts/offload.scm (choose-build-machine)[undecorate]: Turn into
a two-argument procedure.
| Ludovic Courtès |
2014-03-13 | offload: Convert the port number to a string when invoking lsh.•••* guix/scripts/offload.scm (remote-pipe, send-files): Pass the result of
'build-machine-port' to 'number->string'.
| Ludovic Courtès |
2014-03-13 | offload: Allow build machines to specify a port number.•••* guix/scripts/offload.scm (<build-machine>): Add 'port' field.
(remote-pipe, send-files): Use lsh's '-p' option when invoking it.
| Ludovic Courtès |
2014-03-13 | guix build: Support '--with-source' along with '-e'.•••* guix/scripts/build.scm (derivation-from-expression): Remove.
(options->derivations): Handle pairs of the form
"('argument . (? derivation?))".
(options/resolve-packages): Add 'store' parameter; update caller. Add
'system' variable. Add case for 'expression pairs.
* guix/scripts/archive.scm (derivation-from-expression): New procedure.
| Ludovic Courtès |
2014-03-12 | guix build: Add '--with-source'.•••* guix/scripts/build.scm (package-with-source): New procedure.
(show-help): Add '--with-source'.
(%options): Likewise.
(options->derivations): Call 'options/with-source' and
'options/resolve-packages'.
(options/resolve-packages, options/with-source): New procedures.
* doc/guix.texi (Invoking guix build): Document '--with-source'.
| Ludovic Courtès |
2014-03-09 | offload: Honor absolute build timeouts.•••* guix/scripts/offload.scm (offload): Remove default value for
'build-timeout'. Pass '--timeout' to the remote 'guix build'
process.
(transfer-and-offload, process-request): Remove default value for
'build-timeout'.
| Ludovic Courtès |
2014-03-09 | guix build: Add '--timeout' to the common build options.•••* guix/scripts/build.scm (show-build-options-help): Document
'--timeout'.
(set-build-options-from-command-line): Pass #:timeout to
'set-build-options'.
(%standard-build-options): Add '--timeout'.
* doc/guix.texi (Invoking guix build): Document it.
| Ludovic Courtès |
2014-03-09 | offload: Move macro definitions before use.•••* guix/scripts/offload.scm (lock-file, unlock-file, with-file-lock,
with-machine-lock, machine-slot-file, acquire-build-slot,
release-build-slot): Move definitions above their first use.
| Ludovic Courtès |
2014-03-09 | offload: Distinguish between 'decline' and 'postpone'.•••* guix/scripts/offload.scm (transfer-and-offload): New procedure, with
core formerly in 'process-request'.
(choose-build-machine): Remove 'requirements' parameter.
(process-request): Reply 'decline' when none of MACHINES matches the
requirements, and 'postpone' when MACHINES are busy.
| Ludovic Courtès |
2014-03-08 | offload: Prevent locked files from being GC'd.•••* guix/scripts/offload.scm (%slots): New variable.
(choose-build-machine): Add SLOT to '%slots'.
| Ludovic Courtès |
2014-03-08 | offload: Fix thinko.•••* guix/scripts/offload.scm (choose-build-machine)[machine+slots]: Use
'filter-map', not 'filter'.
| Ludovic Courtès |
2014-03-08 | offload: Make 'parallel-builds' a hard limit.•••* guix/scripts/offload.scm (machine-choice-lock-file,
machine-slot-file, acquire-build-slot, release-build-slot): New
procedures.
(choose-build-machine): Operate with (machine-choice-lock-file)
taken. Acquire a build slot for each of MACHINES. Release those not
used.
| Ludovic Courtès |
2014-03-08 | offload: Further generalize lock files.•••* guix/scripts/offload.scm (lock-machine, unlock-machine): Remove.
(lock-file, unlock-file): New procedures.
(with-file-lock): New macro.
(with-machine-lock): Rewrite in terms of 'with-file-lock'.
| Ludovic Courtès |
2014-03-08 | offload: Generalize the machine lock mechanism.•••* guix/scripts/offload.scm (lock-machine): Add 'hint' parameter.
(unlock-machine): Remove 'machine' parameter.
(with-machine-lock): Add 'hint' parameter, and pass it down.
(process-request): Adjust uses of 'with-machine-lock' to pass the
'bandwidth hint.
| Ludovic Courtès |
2014-03-06 | offload: Serialize file transfers to build machines.•••* guix/scripts/offload.scm (machine-lock-file, lock-machine,
unlock-machine): New procedures.
(with-machine-lock): New macro.
(process-request): Wrap 'send-files' and 'retrieve-files' calls in
'with-machine-lock'.
| Ludovic Courtès |
2014-03-01 | guix package: Use the common build options from (guix scripts build).•••* guix/scripts/build.scm (%standard-build-options): Change option
handlers to support multiple seeds.
* guix/scripts/package.scm (show-help): Remove --dry-run, --fallback,
--no-substitutes, and --max-silent-time.
(%options): Likewise, and add %STANDARD-BUILD-OPTIONS.
(%default-options): Add 'verbosity'.
(guix-package): Call 'set-build-options-from-command-line' instead of
'set-build-options'.
| Ludovic Courtès |
2014-03-01 | substitute-binary: Gracefully handle HTTP GET errors.•••* guix/http-client.scm (&http-get-error): New condition type.
(http-fetch): Raise it instead of using 'error'.
* guix/scripts/substitute-binary.scm (fetch) <http>: Wrap body into
'guard' form; gracefully handle 'http-get-error?' conditions.
| Ludovic Courtès |
2014-03-01 | offload: Comment out attempt to set up an lsh gateway.•••* guix/scripts/offload.scm (open-ssh-gateway): Comment out.
(process-request): Remove call to 'open-ssh-gateway' and to 'kill'.
| Ludovic Courtès |
2014-03-01 | offload: 'remote-pipe' uses the right SSH key.•••* guix/scripts/offload.scm (remote-pipe): Pass -i when invoking
%LSHG-COMMAND.
| Ludovic Courtès |
2014-03-01 | offload: Take the target machine load into account.•••* guix/scripts/offload.scm (machine-load, machine-less-loaded?,
machine-less-loaded-or-faster?): New procedures.
(choose-build-machine): Use 'machine-less-loaded-or-faster?' when
sorting. Return the head of MACHINES unless it's loaded is >= 2.
| Ludovic Courtès |
2014-02-28 | guix archive: Change '--help' to show '--authorize'.•••* guix/scripts/archive.scm (show-help): Add '--authorize'.
| Ludovic Courtès |
2014-02-21 | guix hash: Add '--recursive'.•••* guix/scripts/hash.scm (show-help): Add --recursive.
(%options): Likewise.
(guix-hash)[file-hash]: New procedure. Honor --recursive.
Use it.
* guix/nar.scm (write-file): Add missing field to the &nar-error
condition raised upon unsupported file type; change its message to be
more descriptive.
* tests/guix-hash.sh: Add tests with -r.
* doc/guix.texi (Invoking guix hash): Document --recursive.
| Ludovic Courtès |
2014-02-20 | guix hash: Don't load the whole file in memory.•••* guix/scripts/hash.scm (guix-hash)[eof->null]: Remove.
(guix-hash): Use 'port-sha256' to compute the hash instead of
'get-bytevector-all' and co.
| Ludovic Courtès |
2014-02-19 | gnu: Introduce the (gnu services ...) modules.•••* gnu/system/dmd.scm: Remove file. Move contents to...
* gnu/services.scm, gnu/services/base.scm, gnu/services/dmd.scm,
gnu/services/networking.scm, gnu/services/xorg.scm: ... here. New
files.
* gnu/system.scm, gnu/system/vm.scm: Adjust accordingly.
* guix/scripts/system.scm (%user-module): Likewise.
* doc/guix.texi (Using the Configuration System): Likewise.
(Defining Services): Likewise.
| Ludovic Courtès |
2014-02-18 | Add 'guix system'.•••* guix/scripts/system.scm: New file.
* Makefile.am (MODULES): Add it.
* po/POTFILES.in: Likewise.
* doc/guix.texi (Using the Configuration System): Link to "Invoking guix
system".
(Invoking guix system): New node.
| Ludovic Courtès |
2014-02-18 | guix build: Factorize common options.•••* guix/scripts/build.scm (show-build-options-help,
set-build-options-from-command-line): New procedures.
(show-help): Remove description of --dry-run,
--fallback, --no-substitutes, --max-silent-time, and --cores. Call
'show-build-options-help'.
(%standard-build-options): New variable.
(%options): Remove --dry-run, --fallback, --no-substitutes,
--verbosity, --max-silent-time, and --cores. Add
%STANDARD-BUILD-OPTIONS.
(guix-build): Use 'set-build-options-from-command-line' instead of
'set-build-options'.
* guix/scripts/archive.scm (show-help): Remove description of --dry-run,
--fallback, --no-substitutes, --max-silent-time, and --cores. Call
'show-build-options-help'.
(%options): Remove --dry-run, --fallback, --no-substitutes,
--verbosity, --max-silent-time, and --cores. Add
%STANDARD-BUILD-OPTIONS.
(export-from-store): Call 'set-build-options-from-command-line'
instead of 'set-build-options.
| Ludovic Courtès |
2014-02-12 | guix build: Move 'set-build-options' call earlier.•••* guix/scripts/build.scm (guix-build): Move 'set-build-options' call
before 'show-what-to-build'.
| Ludovic Courtès |
2014-02-02 | offload: Have 'build-machines' honor its argument.•••* guix/scripts/offload.scm (build-machines): Honor FILE.
| Ludovic Courtès |
2014-01-27 | offload: Do not try to retrieve anything upon build failure.•••* guix/scripts/offload.scm (offload): Add 'log-port' keyword parameter.
Handle log display here. Return the result of (close-pipe pipe).
(process-request): Adjust 'offload' call site accordingly. Call
'retrieve-files' only when 'offload' returns zero; exit when 'offload'
returns non-zero.
| Ludovic Courtès |
2014-01-24 | Add 'guix offload' as a daemon build hook.•••* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_BUILD_HOOK): New macro.
(options): Add '--no-build-hook'.
(parse_opt): Handle it.
(main)[HAVE_DAEMON_OFFLOAD_HOOK]: Set 'useBuildHook' by default.
Set $NIX_BUILD_HOOK to our offload hook unless otherwise specified.
[!HAVE_DAEMON_OFFLOAD_HOOK]: Clear 'useBuildHook'.
* pre-inst-env.in: Set and export NIX_BUILD_HOOK.
* nix/scripts/offload.in, guix/scripts/offload.scm: New files.
* guix/ui.scm (show-guix-help)[internal?]: Add "offload".
* config-daemon.ac: Call 'GUIX_CHECK_UNBUFFERED_CBIP'.
Instantiate 'nix/scripts/offload'. Set 'BUILD_DAEMON_OFFLOAD'
conditional, and optionally define 'HAVE_DEAMON_OFFLOAD_HOOK' cpp
macro.
* daemon.am (nodist_pkglibexec_SCRIPTS)[BUILD_DAEMON_OFFLOAD]: Add it.
* Makefile.am (MODULES)[BUILD_DAEMON_OFFLOAD]: Add
'guix/scripts/offload.scm'.
(EXTRA_DIST)[!BUILD_DAEMON_OFFLOAD]: Likewise.
* m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): New macro.
* doc/guix.texi (Setting Up the Daemon): Move most of the body to...
(Build Environment Setup): ... this. New subsection.
(Daemon Offload Setup): New subsection.
| Ludovic Courtès |
2014-01-24 | pki: Factorize signature manipulation procedures.•••* guix/pki.scm (signature-subject, signature-signed-data,
valid-signature?): New procedures.
* guix/scripts/authenticate.scm (guix-authenticate): Adjust to use
them.
| Ludovic Courtès |
2014-01-18 | Update 'nix-upstream' sub-module; adjust build system, doc, and substituter.•••* nix-upstream: Update sub-module.
* daemon.am (libutil_a_SOURCES): Add affinity.cc.
(libutil_headers): Add affinity.hh.
(libexec_PROGRAMS, nix_setuid_helper_SOURCES,
nix_setuid_helper_CPPFLAGS, nix_setuid_helper_LDADD): Remove.
* doc/guix.texi (Setting Up the Daemon): Remove paragraph about
'nix-setuid-helper'.
* guix/scripts/substitute-binary.scm (guix-substitute-binary): Exit 0 when
%CACHE-URL has an HTTP scheme and looking up its host fails.
Always print a newline to stdout when starting.
| Ludovic Courtès |
2014-01-13 | guix package: Gracefully handle EPIPE on '--search'.•••* guix/scripts/package.scm (guix-package): Wrap body of 'search' in
'leave-on-EPIPE'.
| Ludovic Courtès |
2014-01-08 | config: '%state-directory' always honors $NIX_STATE_DIR.•••* guix/config.scm.in (%state-directory): Honor $NIX_STATE_DIR.
* guix/scripts/package.scm (%profile-directory): Use %state-directory
directly.
* guix/store.scm (%default-socket-path, log-file): Likewise.
| Ludovic Courtès |
2014-01-06 | archive: Add '--missing'.•••* guix/scripts/archive.scm (show-help, %options): Add '--missing'.
(guix-archive)[lines]: New procedure.
Use it to honor '--missing'.
* tests/guix-archive.sh: Add tests.
* doc/guix.texi (Invoking guix archive): Document '--missing'.
| Ludovic Courtès |
2014-01-05 | archive: Make sure $sysconfdir/guix exists.•••* guix/pki.scm (ensure-acl): Make sure the directory of %ACL-FILE
exists.
* guix/scripts/archive.scm (generate-key-pair): Likewise for
%PUBLIC-KEY-FILE.
| Ludovic Courtès |
2014-01-05 | guix build: Add '--no-build-hook'.•••* guix/scripts/build.scm (%default-options): Add 'build-hook?' pair.
(show-help, %options): Add --no-build-hook.
(guix-build): Pass the 'build-hook?' value to 'set-build-options'.
* doc/guix.texi (Invoking guix build): Document '--no-build-hook'.
| Ludovic Courtès |
2014-01-04 | guix package: Gracefully deal with EPIPE on stdout for --list-*.•••* guix/scripts/package.scm (leave-on-EPIPE): New macro.
(guix-package): Use it for 'list-installed', 'list-available', and
'--list-generations'.
* tests/guix-package.sh: Add test.
| Ludovic Courtès |
2013-12-30 | archive: Add '--authorize'.•••* guix/scripts/archive.scm (authorize-key): New procedure.
(guix-archive): Call it when OPTS contains 'authorize-key'.
* tests/guix-archive.sh: Add test with invalid public key.
* guix/pki.scm: Export '%acl-file'.
* doc/guix.texi (Invoking guix archive): Make it clear that '--import'
works only with authorized keys. Document '--authorize'.
| Ludovic Courtès |
2013-12-30 | archive: Add '--generate-key'.•••* guix/pk-crypto.scm (error-source, error-string): New procedures.
* guix/pki.scm (%private-key-file): New variable.
* guix/scripts/archive.scm (show-help): Document '--generate-key'.
(%options): Add "generate-key".
(generate-key-pair): New procedure.
(guix-archive): Call 'generate-key' when OPTS contains a
'generate-key' pair.
* doc/guix.texi (Setting Up the Daemon): Suggest generating a key pair.
(Invoking guix archive): Document '--generate-key'.
| Ludovic Courtès |
2013-12-30 | authenticate: Consistently use 'leave' for fatal error reporting.•••* guix/scripts/authenticate.scm (guix-authenticate): Replace all uses of
'format' + 'exit' with 'leave'.
| Ludovic Courtès |
2013-12-29 | authenticate: Disallow imports signed with unauthorized keys.•••* guix/scripts/authenticate.scm (signature-sexp): Remove.
(guix-authenticate): Upon '-verify', check whether the signature's
public key passes 'authorized-key?'.
| Ludovic Courtès |
2013-12-29 | Move 'with-atomic-file-output' to (guix utils).•••* guix/scripts/substitute-binary.scm (with-atomic-file-output): Move to...
* guix/utils.scm (with-atomic-file-output): ... here.
| Ludovic Courtès |
2013-12-29 | authenticate: Store the public key as part of the signature.•••* guix/scripts/authenticate.scm (signature-sexp): New procedure.
(guix-authenticate): Use it to produce the signature. Adjust
verification code accordingly.
* tests/store.scm ("import corrupt path"): Adjust test accordingly.
| Ludovic Courtès |
2013-12-29 | pk-crypto: Rename 'gcry-sexp' to 'canonical-sexp'.•••* guix/pk-crypto.scm: Rename procedures, variables, etc. from
'gcry-sexp' to 'canonical-sexp'. Add comment with references.
* guix/scripts/authenticate.scm, tests/pk-crypto.scm: Adjust
accordingly.
| Ludovic Courtès |
2013-12-22 | Add 'guix archive'.•••* guix/scripts/archive.scm, tests/guix-archive.sh: New files.
* Makefile.am (MODULES): Add 'archive.scm'.
(SH_TESTS): Add 'guix-archive.sh'.
* doc/guix.texi (Invoking guix archive): New section.
* guix/scripts/build.scm: Export 'derivation-from-expression'.
* guix/scripts/package.scm: Export 'specification->package+output'.
| Ludovic Courtès |
2013-12-21 | guix build: Improve procedural decomposition.•••* guix/scripts/build.scm (%store): Remove.
(derivation-from-expression): Add 'store' parameter. Adjust caller
accordingly.
(register-root): New procedure, formerly within 'guix-build'.
(options->derivations): New procedure, formerly inline within
'guix-build'.
(guix-build): Adjust accordingly.
| Ludovic Courtès |
2013-12-21 | Factorize package search between 'guix package' and 'guix build'.•••* guix/scripts/package.scm (newest-available-packages): Remove.
(find-best-packages-by-name): Move to...
* gnu/packages.scm (find-best-packages-by-name): ... here.
(find-newest-available-packages): Memoize.
* guix/scripts/build.scm (specification->package): New procedure,
formerly called 'find-package' within 'guix-build'.
(guix-build): Adjust accordingly.
| Ludovic Courtès |