Age | Commit message (Expand) | Author |
2016-12-04 | Merge branch 'master' into staging | Marius Bakke |
2016-12-01 | offload: Do not abort when a machine is unreachable....* guix/scripts/offload.scm (machine-load): Wrap 'open-ssh-session' call
in 'false-if-exception'; return +inf.0 if it returns #f.
| Ludovic Courtès |
2016-12-01 | offload: Gracefully report connection failures....* guix/scripts/offload.scm (open-ssh-session): Check the return value of
'connect!'. Call 'leave' when it's not 'ok.
| Ludovic Courtès |
2016-12-01 | store: Increase buffering for the '%stderr-write' upcall....* guix/store.scm (process-stderr) <%stderr-write>: Pass #:buffer-size to
'dump-port'.
| Ludovic Courtès |
2016-12-01 | offload: Warn about the lack of zlib support....* guix/scripts/offload.scm (guix-offload): Print a warning when
'zlib-support?' returns false.
| Ludovic Courtès |
2016-12-01 | offload: Remove redundant call to 'topologically-sorted' in 'send-file'....* guix/scripts/offload.scm (send-files): Remove call to
'topologically-sorted'.
| Ludovic Courtès |
2016-11-30 | Merge branch 'master' into staging | Marius Bakke |
2016-11-30 | refresh: '--list-updaters' shows updater coverage....* guix/scripts/refresh.scm (list-updaters-and-exit): Compute the
coverage ratio of each updater and print it. Print the coverage ratio
for all the updaters.
* doc/guix.texi (Invoking guix refresh): Document it.
| Ludovic Courtès |
2016-11-30 | gnu-maintenance: Add kernel.org updater....* guix/gnu-maintenance.scm (latest-kernel.org-release): New procedure.
(%kernel.org-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add it.
| Ludovic Courtès |
2016-11-30 | upstream: Properly verify signatures of uncompressed tarballs....* guix/upstream.scm (uncompressed-tarball): New procedure.
(download-tarball): Use it when the basename of SIGNATURE-URL doesn't
contain the basename of URL.
| Ludovic Courtès |
2016-11-30 | refresh: Honor the selected updaters when '-u' isn't given....Fixes a regression introduced in
e9c72306fdfd6a60158918850cb25d0ff3837d16.
* guix/scripts/refresh.scm (check-for-package-update): Add 'updaters'
parameter and honor it.
(guix-refresh): Pass UPDATERS to 'check-for-package-update'.
| Ludovic Courtès |
2016-11-30 | gnu-maintenance: Factorize URL prefix predicates....* guix/gnu-maintenance.scm (url-prefix-predicate): New procedure.
(gnome-package?): Rewrite in terms of 'url-prefix-predicate'.
(kde-package?, xorg-package?): Remove.
(%kde-updater, %xorg-updater): Use 'url-prefix-predicate'.
| Ludovic Courtès |
2016-11-29 | Merge branch 'master' into python-build-system | Hartmut Goebel |
2016-11-29 | gnu-maintenance: 'latest-kde-release' honors 'upstream-name' properties....* guix/gnu-maintenance.scm (latest-kde-release): Honor the
'upstream-name' property of PACKAGE.
| Ludovic Courtès |
2016-11-29 | refresh: Warn about packages that lack an updater....* guix/upstream.scm (package-update-path): Rename to...
(package-latest-release): ... this. Remove 'version>?' check.
(package-latest-release*): New procedure.
(package-update): Use it.
* guix/scripts/refresh.scm (lookup-updater): Rename to...
(lookup-updater-by-name): ... this.
(warn-no-updater): New procedure.
(update-package): Add #:warn? parameter and honor it.
(check-for-package-update): New procedure.
(guix-refresh)[warn?]: New variable.
Replace inline code when UPDATE? is false with a call to
'check-for-package-update'.
Pass WARN? to 'check-for-package-update' and 'update-package'.
* doc/guix.texi (Invoking guix refresh): Document it. Fix a couple of
typos.
| Ludovic Courtès |
2016-11-28 | pull: Set '%nix-instantiate' to a sensible value....Reported by ng0 <ng0@libertad.pw>.
Fixes <http://bugs.gnu.org/25053>.
* guix/build/pull.scm (build-guix): Replace "@NIX_INSTANTIATE@" in
guix/config.scm with "nix-instantiate".
| Ludovic Courtès |
2016-11-26 | offload: Call 'machine-load' only once per machine....This fixes a longstanding issue where 'choose-build-machine' would make
on average O(N log(N)) calls to 'machine-load', plus an extra call for
the selected machine, instead of N calls.
* guix/scripts/offload.scm (machine-load): Add comment.
(machine-power-factor, machine-less-loaded-or-faster?): Remove.
(choose-build-machine)[machines+slots]: Rename to...
[machines+slots+loads]: ... this.
[undecorate]: Adjust accordingly.
[machine-less-loaded-or-faster?]: New procedure.
Remove extra 'machine-load' call in body.
| Ludovic Courtès |
2016-11-25 | offload: Drop 'remote-pipe'....* guix/scripts/offload.scm (remote-pipe): Remove.
(machine-load): Use 'open-remote-pipe*' instead of 'remote-pipe'.
| Ludovic Courtès |
2016-11-25 | offload: Rewrite to make direct RPCs to the remote daemon....* guix/scripts/offload.scm (<build-machine>)[daemon-socket]: New field.
(connect-to-remote-daemon): New procedure.
(%gc-root-file, register-gc-root, remove-gc-roots, offload): Remove.
(transfer-and-offload): Rewrite using 'connect-to-remote-daemon' and
RPCs over SSH.
(store-import-channel, store-export-channel): New procedures.
(send-files, retrieve-files): Rewrite using these.
| Ludovic Courtès |
2016-11-25 | offload: Remove 'with-nar-error-handling' macro....* guix/scripts/offload.scm (with-nar-error-handling): Remove.
(guix-offload): Use 'with-error-handling' instead.
| Ludovic Courtès |
2016-11-25 | store: 'open-connection' can taken an open port....* guix/store.scm (open-unix-domain-socket): New procedure.
(open-connection): Add #:port parameter and honor it.
| Ludovic Courtès |
2016-11-25 | offload: Reuse SSH session during 'transfer-and-offload'....* guix/scripts/offload.scm (remote-pipe): Replace 'machine' parameter
with 'session'. Remove 'open-ssh-session' call.
(register-gc-root): Replace 'machine' with 'session'. Use '
session-get' instead of 'build-machine-name'.
(remove-gc-roots, offload, send-files, retrieve-files): Likewise.
(transfer-and-offload): Add 'open-ssh-session' call. Handle 'offload'
errors here.
(machine-load): Add call to 'open-ssh-session'.
| Ludovic Courtès |
2016-11-25 | offload: Use Guile-SSH instead of GNU lsh....* guix/scripts/offload.scm (<build-machine>)[ssh-options]: Remove.
[host-key, host-key-type]: New fields.
(%lsh-command, %lshg-command, user-lsh-private-key): Remove.
(user-openssh-private-key, private-key-from-file*): New procedures.
(host-key->type+key, open-ssh-session): New procedures.
(remote-pipe): Remove 'mode' parameter. Rewrite in terms of
'open-ssh-session' etc. Update users.
(send-files)[missing-files]: Rewrite using the bidirectional channel
port.
Remove call to 'call-with-compressed-output-port'.
(retrieve-files): Remove call to 'call-with-decompressed-port'.
(machine-load): Remove exit status logic.
* doc/guix.texi (Requirements): Mention Guile-SSH.
(Daemon Offload Setup): Document 'host-key' and 'private-key'. Show the
default value on each @item line.
* m4/guix.m4 (GUIX_CHECK_GUILE_SSH): New macro.
* config-daemon.ac: Use 'GUIX_CHECK_GUILE_SSH'. Set
'HAVE_DAEMON_OFFLOAD_HOOK' as a function of that.
| Ludovic Courtès |
2016-11-25 | Merge branch 'master' into python-build-system | Leo Famulari |
2016-11-23 | Merge branch 'master' into staging | Leo Famulari |
2016-11-21 | syscalls: Add 'add-network-route/gateway' and 'delete-network-route'....* guix/build/syscalls.scm (SIOCADDRT, SIOCDELRT): New variables.
(%rtentry): New C struct.
(RTF_UP, RTF_GATEWAY, %sockaddr-any): New variables.
(add-network-route/gateway, delete-network-route): New procedures.
* tests/syscalls.scm ("add-network-route/gateway")
("delete-network-route"): New tests.
| Ludovic Courtès |
2016-11-21 | syscalls: Add 'c-struct-field-offset'....* guix/build/syscalls.scm (define-c-struct-macro): New macro.
(define-c-struct): Use it.
(c-struct-field-offset): New macro.
| Ludovic Courtès |
2016-11-19 | lint: Add 'mirror-url' checker....* guix/scripts/lint.scm (origin-uris): New procedure.
(check-source): Use it.
(check-mirror-url): New procedure.
(%checkers): Add 'mirror-url' checker.
* tests/lint.scm ("mirror-url")
("mirror-url: one suggestion"): New tests.
* doc/guix.texi (Invoking guix lint): Document it.
| Ludovic Courtès |
2016-11-19 | store: Add 'references*'....* guix/store.scm (references*): New procedure.
* guix/profiles.scm (manifest-lookup-package)[references*]: Remove.
* guix/scripts/system.scm (references*): Remove.
* tests/gexp.scm ("gexp->file", "gexp->file + file-append")
("gexp->derivation", "gexp->derivation, cross-compilation")
("gexp->derivation, ungexp + ungexp-native")
("scheme-file", "text-file*", "mixed-text-file"): Remove 'references*'
instead of (store-lift references).
| Ludovic Courtès |
2016-11-19 | derivations: Add 'raw-derivation'....* guix/derivations.scm (raw-derivation): New procedure.
* guix/download.scm (raw-derivation): Remove.
* guix/gexp.scm (raw-derivation): Remove.
| Ludovic Courtès |
2016-11-18 | download: Do not offload 'builtin:download' derivations....* guix/download.scm (built-in-download): Pass #:local-build? #t.
| Ludovic Courtès |
2016-11-17 | guix package: Display newline after generation diffs....* guix/ui.scm (display-profile-content-diff): Display an extra newline.
| Roel Janssen |
2016-11-17 | syscalls: 'configure-network-interface' has a #:netmask parameter....* guix/build/syscalls.scm (configure-network-interface): Add #:netmask
keyword parameter and honor it.
| Ludovic Courtès |
2016-11-16 | syscalls: Add bindings for SIOCGIFNETMASK and SIOCSIFNETMASK....* guix/build/syscalls.scm (SIOCGIFNETMASK, SIOCSIFNETMASK): New
variables.
(set-network-interface-netmask, network-interface-netmask): New
procedures.
* tests/syscalls.scm ("network-interface-netmask lo")
("set-network-interface-netmask"): New tests.
| Ludovic Courtès |
2016-11-16 | syscalls: Use 'define-c-struct' for 'struct ifconf'....* guix/build/syscalls.scm (ifconf-struct): Remove.
(%ifconf-struct): New C struct.
(network-interface-names): Use 'make-bytevector' and 'write-ifconf!'
instead of 'make-c-struct', and 'read-ifconf' instead of
'parse-c-struct'.
| Ludovic Courtès |
2016-11-16 | syscalls: C struct writer correctly handles pointer fields....* guix/build/syscalls.scm (write-type): Add case for '*.
| Ludovic Courtès |
2016-11-16 | download: Use the built-in 'download' builder when available....Fixes <http://bugs.gnu.org/22774>.
Reported by Christopher W Carpenter.
* guix/download.scm (built-in-builders*, raw-derivation)
(built-in-download): New procedures.
(in-band-download): New procedure, with code formerly in 'url-fetch'.
(url-fetch): Call 'built-in-builders*' and dispatch between
'built-in-download' and 'in-band-download'.
| Ludovic Courtès |
2016-11-16 | daemon: Add 'built-in-builders' RPC....* nix/libstore/builtins.cc (builtinBuilderNames): New function.
* nix/libstore/builtins.hh (builtinBuilderNames): New declaration.
* nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump to 0x160.
(WorkerOp)[wopBuiltinBuilders]: New value.
* nix/nix-daemon/nix-daemon.cc (performOp): Handle it.
* guix/store.scm (operation-id)[built-in-builders]: New value.
* guix/store.scm (read-arg): Add 'string-list'.
(built-in-builders): New procedure.
* tests/derivations.scm ("built-in-builders"): New test.
| Ludovic Courtès |
2016-11-16 | daemon: Add "builtin:download" derivation builder....This ensures that 1) the derivation doesn't change when Guix changes;
2) the derivation closure doesn't contain Guix and its dependencies; 3)
we don't have to rely on ugly chroot hacks.
Adapted from Nix commit 0a2bee307b20411f5b0dda0c662b1f9bb9e0e131.
* nix/libstore/build.cc (DerivationGoal::runChild): Add special case for
'isBuiltin(drv)'. Disable chroot when 'isBuiltin(drv)'.
* nix/libstore/builtins.cc, nix/libstore/builtins.hh,
nix/scripts/download.in, guix/scripts/perform-download.scm: New files.
* guix/ui.scm (show-guix-help)[internal?]: Add 'perform-download'.
* nix/local.mk (libstore_a_SOURCES): Add builtins.cc.
(libstore_headers): Add builtins.hh.
(nodist_pkglibexec_SCRIPTS): Add 'scripts/download'.
* config-daemon.ac: Emit 'scripts/download'.
* Makefile.am (MODULES): Add 'guix/scripts/perform-download.scm'.
* tests/derivations.scm ("unknown built-in builder")
("'download' built-in builder")
("'download' built-in builder, invalid hash")
("'download' built-in builder, not found")
("'download' built-in builder, not fixed-output"): New tests.
Co-authored-by: Eelco Dolstra <eelco.dolstra@logicblox.com>
| Ludovic Courtès |
2016-11-16 | tests: Move HTTP server to (guix tests http)....* tests/lint.scm (%http-server-port, %local-url)
(%http-server-socket, http-write, %http-server-lock)
(%http-server-ready, http-open, stub-http-server)
(call-with-http-server, with-http-server): Move to (guix tests http).
Adjust tests for %HTTP-SERVER-SOCKET as a promise and %LOCAL-URL as a
parameter.
* guix/tests/http.scm: New file.
* Makefile.am (dist_noinst_DATA): Add it.
(GOBJECTS): Add .go files for all of $(dist_noinst_DATA).
(make-go): Depend on $(dist_noinst_DATA).
| Ludovic Courtès |
2016-11-16 | guix download: Add '-o' option....* guix/scripts/download.scm (download-to-file, download-to-store*): New
procedures.
(%default-options): Add 'download-proc'.
(show-help): Adjust description and document '-o'.
(%options): Add '-o'.
(guix-download): Remove 'store' variable. Add 'fetch' and define 'path'
to as its result.
* tests/guix-download.sh: Add test.
| Ludovic Courtès |
2016-11-15 | guxi: cmake-build-system: Enable output for failing test-cases....* guix/build/cmake-build-system.scm (cmake-build-system): Set
environment variable CTEST_OUTPUT_ON_FAILURE to an non-empty value.
| Hartmut Goebel |
2016-11-15 | lint: more packages to probably be a native input....* guix/scripts/lint.scm (check-inputs-should-be-native package): Add python
packages which are typically used for testing or for building the
documentation.
| Hartmut Goebel |
2016-11-15 | guix: Add lint-checker for packages which should be no inputs at all....Also refactor some common code into a new function.
Examples for these pacakges are python(2)-setuptools and python(2)-pip, which
are installed together with python itself.
* guix/scripts/lint.scm (warn-if-package-has-input): New procedure.
(check-inputs-should-be-native package): Use it; rename and clean-up
variables. (check-inputs-should-not-be-an-input-at-all): New procedure.
(%checkers) Add it.
* doc/guix.texi (Python Modules): Document it.
* tests/lint.scm: ("inputs: python-setuptools should not be an input at all
(input)", "inputs: python-setuptools should not be an input at all
(native-input)" "inputs: python-setuptools should not be an input at all
(propagated-input)"): Add tests.
| Hartmut Goebel |
2016-11-15 | guix: python-build-system: Add background about Python installation methods. | Hartmut Goebel |
2016-11-15 | guix: python-build-system: Delete .egg-info file created in phase check....* guix/build/python-build-system.scm (check): Delete .egg-info dirs
which did not exist prior to calling setup.py but afterwards.
| Hartmut Goebel |
2016-11-15 | guix: python-build-system: Add helpers for getting and setting PYTHONPATH....* guix/build/python-build-system.scm (add-installed-pythonpath,
site-packages): New exported procedures.
| Hartmut Goebel |
2016-11-15 | guix: python-build-system: Add option "#:use-setuptools?" (default true)....* guix/build-system/python.scm (python-build): New keyword argument
"#:use-setuptools?", defaulting to #t.
* guix/build/python-build-system.scm (call-setup-py): New positional
parameter "use-setuptools?". If false, do not use the shim-wrapper
for addin setuptools. (build, check): accept keyword-
parameter, and pass to call-setuppy. (install): same; if
"use-setuptools?" is false, do not use options "--root" and
"--single-version-externally-managed" for setup.py.
* doc/guix.texi (Build Systems): Document it.
| Hartmut Goebel |
2016-11-15 | guix: python-build-system: Import setuptools before calling `setup.py'....This is needed for packages using "distutils" instead of "setuptools" since
the former does not understand the "--single-version-externally-managed"
flag. Also export __file__ since it will be unset when setup.py is called from
python "exec".
* guix/build/python-build-system.scm (call-setuppy): extend "python setup.py"
call to import setuptools, export __file__, and call setup.py from
setuptools python environment.
Co-Authored-By: Hartmut Goebel <h.goebel@crazy-compilers.com>
| Marius Bakke |
2016-11-15 | guix: build all Python packages with --single-version-externally-managed....This requires setuptools to be installed together with python, which is
the case for Python 3 anyway and which we do for our build of Python 2
(see last commit).
* guix/build/python-build-system.scm (install): Add
"--single-version-externally-managed" and "--root=/" to params to be
passed to call-setuppy. Remove thus needless manipulation of
PYTHONPATH. Remove now unused argument "inputs".
| Hartmut Goebel |