Age | Commit message (Expand) | Author |
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 |
2016-11-15 | guix: python-build-system: Fix an outdated comment. | Hartmut Goebel |
2016-11-14 | import/cpan: Maybe coerce version to string....* guix/import/cpan.scm (cpan-module->sexp) <version>: Test if version in
meta is string or number. If it is number, coerce to string.
| Alex Sassmannshausen |
2016-11-13 | Merge branch 'core-updates' | Ludovic Courtès |
2016-11-12 | substitute: Disable HTTPS certificate verification....Fixes a regression introduced in
9e4e431e049fae3f1121c3be22cf13b174404ba8 as a consequence of
bc3c41ce36349ed4ec758c70b48a7059e363043a.
Reported by Marius Bakke <mbakke@fastmail.com>.
* guix/scripts/substitute.scm (fetch): Pass #:verify-certificate? #f to
'open-connection-for-uri' and 'http-fetch'.
(download-cache-info): Likewise.
(http-multiple-get): Add #:verify-certificate? and honor it.
(fetch-narinfos): Pass #:verify-certificate? #f.
| Ludovic Courtès |
2016-11-12 | http-client: Add #:verify-certificate? to 'http-fetch'....* guix/http-client.scm (http-fetch): Add #:verify-certificate? parameter
and pass it to 'open-connection-for-uri'.
| Ludovic Courtès |
2016-11-10 | container: Pass a list of <file-system> objects as things to mount....* gnu/build/linux-container.scm (mount-file-systems): 'mounts' is now a
list of <file-system> objects instead of a list of lists ("specs").
Add call to 'file-system->spec' as the argument to 'mount-file-system'.
(run-container, call-with-container): Adjust docstring accordingly.
* gnu/system/file-systems.scm (spec->file-system): New procedure.
* gnu/system/linux-container.scm (container-script)[script]: Call
'spec->file-system' inside gexp.
* guix/scripts/environment.scm (launch-environment/container): Remove
call to 'file-system->spec'.
* tests/containers.scm ("call-with-container, mnt namespace")
("call-with-container, mnt namespace, wrong bind mount"): Pass a list of
<file-system> objects.
| Ludovic Courtès |
2016-11-09 | lint: 'cve' checker catches 'tls-certificate-error'....Reported by Frederick Muriithi <fredmanglis@gmail.com>.
* guix/scripts/lint.scm (tls-certificate-error-string): New procedure.
(validate-uri): Use it.
(current-vulnerabilities*): Catch 'tls-certificate-error' and print a
warning.
| Ludovic Courtès |
2016-11-08 | system: Use grub from bootloader configuration....* gnu/system/grub.scm (gnu): Export grub-configuration-grub.
* guix/scripts/system.scm (perform-action): Use it.
(define-module): Don't import (gnu packages grub).
Co-authored-by: Danny Milosavljevic <dannym@scratchpost.org>
| Marius Bakke |
2016-11-07 | guix download: Add '--no-check-certificate' option....* guix/download.scm (download-to-store): Add #:verify-certificate?
parameter and honor it.
* guix/scripts/download.scm (%default-options): Add
'verify-certificate?' key.
(show-help, %options): Add '--no-check-certificate'.
(guix-download): Pass #:verify-certificate to 'download-to-store'.
* doc/guix.texi (Invoking guix download): Document it.
| Ludovic Courtès |
2016-11-07 | download: Verify TLS certificates unless asked not to....Fixes <http://bugs.gnu.org/24466>.
Reported by Leo Famulari <leo@famulari.name>.
* guix/build/download.scm (%x509-certificate-directory): New variable.
(make-credendials-with-ca-trust-files, peer-certificate)
(assert-valid-server-certificate, print-tls-certificate-error): New
procedures. Add 'print-tls-certificate-error' as an exception printer
for 'tls-certificate-error'.
(tls-wrap): Add #:verify-certificate? parameter and honor it.
(open-connection-for-uri): Likewise.
(http-fetch): Likewise.
(url-fetch): Likewise.
* guix/download.scm (url-fetch)[builder]: Pass #:verify-certificate? #f.
* guix/scripts/lint.scm (probe-uri): Add case for 'tls-certificate-error'.
(validate-uri): Likewise.
* doc/guix.texi (Invoking guix download): Mention 'SSL_CERT_DIR'.
| Ludovic Courtès |
2016-11-07 | Merge branch 'master' into core-updates | Mark H Weaver |
2016-11-06 | system: Add 'guix system' actions: switch-generation and roll-back....* guix/scripts/system.scm (roll-back-system, switch-to-system-generation): new
actions.
(reinstall-grub): New procedure, used by switch-to-system-generation.
(show-help, process-command, guix-system): Honor the new actions.
* doc/guix.texi (Invoking guix system) <switch-generation, roll-back>: Add the
new actions.
<reconfigure>: In the footnote, mention that the new actions also only work on
GuixSD.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Chris Marusich |
2016-11-06 | system: Optionally limit the entries returned by profile-grub-entries....* guix/scripts/system.scm (profile-grub-entries): Add an optional parameter
which allows the caller to limit the number of returned grub entries.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Chris Marusich |
2016-11-06 | system: Rename previous-grub-entries to profile-grub-entries....* guix/scripts/system.scm (previous-grub-entries, profile-grub-entries):
Rename previous-grub-entries to profile-grub-entries to indicate that it is
stateful and returns the entries for all profile generations, not just the
previous ones. Update all callers.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Chris Marusich |
2016-11-06 | profiles: Extract a procedure for getting relative generation numbers....* guix/profiles.scm (relative-generation-spec->number): New procedure.
* guix/scripts/package.scm (switch-generation-action): Use it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Chris Marusich |
2016-11-06 | Merge branch 'master' into core-updates | Mark H Weaver |
2016-11-03 | import: cran: Fix off-by-one error....* guix/import/cran.scm (package->upstream-name): Do not include leading
slash in upstream name URL.
| Ricardo Wurmus |