Age | Commit message (Expand) | Author |
2015-11-17 | ftp-client: Restrict to TCP/IP connections....Fixes <http://bugs.gnu.org/21925>.
Regression introduced in 279ec1d.
Reported by Chris Marusich <cmmarusich@gmail.com>.
* guix/ftp-client.scm (ftp-open): Restrict sockets to
SOCK_STREAM/IPPROTO_IP.
| Ludovic Courtès |
2015-11-16 | graft: Graft files in parallel....* guix/build/graft.scm (rewrite-directory): Use 'n-par-for-each' instead
of 'for-each'.
| Ludovic Courtès |
2015-11-16 | graft: Graft files in a deterministic order....* guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Change to take
a single parameter. Add call to 'lstat'. Factorize result of
'destination'.
Use 'find-files' instead of 'file-system-fold'.
| Ludovic Courtès |
2015-11-12 | lint: Have connections time out after 3 seconds....* guix/scripts/lint.scm (probe-uri): Add #:timeout parameter. Pass it
to 'open-connection-for-uri' and 'ftp-open'.
(validate-uri): Pass #:timeout 3 to 'probe-uri'.
| Ludovic Courtès |
2015-11-12 | download: Always use AI_ADDRCONFIG when resolving host names....* guix/build/download.scm (open-socket-for-uri): Always pass
AI_ADDRCONFIG to 'getaddrinfo' as recommended in the fine Guile
manual.
* guix/ftp-client.scm (ftp-open): Ditto.
| Ludovic Courtès |
2015-11-12 | download: Add timeout parameter for connections....* guix/build/download.scm (ensure-uri): New procedure.
(current-http-proxy): New variable.
(open-socket-for-uri): Copy from Guile commit aaea5b2, but add #:timeout
parameter and use 'connect*' instead of 'connect'.
(open-connection-for-uri): Add #:timeout parameter and pass it to
'open-socket-for-uri'.
| Ludovic Courtès |
2015-11-12 | ftp-client: Add timeout parameter to 'ftp-open'....* guix/ftp-client.scm (catch-EINPROGRESS): New macro.
(connect*): New procedure.
(ftp-open): Add #:timeout parameter. Use 'connect*' instead of
'connect' and pass it TIMEOUT.
| Ludovic Courtès |
2015-11-12 | ftp-client: Restrict to TCP connections....* guix/ftp-client.scm (ftp-open): Force SOCK_STREAM as the socket type
to avoid calling 'connect' on a datagram socket.
| Ludovic Courtès |
2015-11-11 | guix gc: Error out when extra arguments are passed....Fixes <http://bugs.gnu.org/21817>.
Reported by Petter Berntsen <petter@mykolab.ch>.
* guix/scripts/gc.scm (guix-gc)[assert-no-extra-arguments]: New
procedure.
Use it for actions 'collect-garbage', 'optimize', and 'verify'.
* tests/guix-gc.sh: Add tests.
| Ludovic Courtès |
2015-11-11 | edit: Honor $VISUAL....Suggested by Andreas Enge <andreas@enge.fr>.
* guix/scripts/edit.scm (%editor): Honor 'VISUAL' before 'EDITOR'.
(show-help): Adjust accordingly.
* doc/guix.texi (Invoking guix edit): Likewise.
| Ludovic Courtès |
2015-11-11 | refresh: Avoid non-literal format string....Reported by Mathieu Lirzin <mthl@gnu.org>.
* guix/scripts/refresh.scm (guix-refresh): Rewrite 'list-dependent?'
report to avoid nested 'N_' calls.
| Ludovic Courtès |
2015-11-11 | ui: 'guix help COMMAND' is like 'guix COMMAND --help'....* guix/ui.scm (run-guix): Add ("help" COMMAND) case.
| Ludovic Courtès |
2015-11-11 | guix package: '--search-paths' can report combined search paths....Partly fixes <http://bugs.gnu.org/20255>.
* guix/scripts/package.scm (search-path-environment-variables): Change
'profile' to 'profiles'; expect it to be a list.
(display-search-paths): Likewise.
(%default-options): Remove 'profile' entry.
(%options) <--profile>: Keep previous values associated with 'profile'
in RESULT.
(guix-package)[process-actions, process-query]: Handle the possible
lack of 'profile' pair in OPTS.
| Ludovic Courtès |
2015-11-08 | refresh: Discard PyPI updater when Guile-JSON is missing....Reported by Sleep_Walker and Mathieu Lirzin <mthl@gnu.org>.
* guix/scripts/refresh.scm (maybe-updater, list-updaters): New macros.
(%updaters): Use 'list-updaters' instead of 'list'. Make
%PYPI-UPDATER conditional.
| Ludovic Courtès |
2015-11-05 | edit: Improve error reporting when $EDITOR is not found....Reported by Benno Evers <benno@bmevers.de>
at <https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00125.html>.
* guix/scripts/edit.scm (guix-edit): Wrap 'execl' call in 'catch'.
Provide more meaningful error message.
| Ludovic Courtès |
2015-11-05 | edit: Lift helper procedure....* guix/scripts/edit.scm (package->location-specification): New
procedure, with code formerly...
(guix-edit): ... here. Use it.
| Ludovic Courtès |
2015-11-04 | import: hackage: Fix invalid use of 'leave'....Reported by Paul van der Walt <paul@denknerd.org>
in <http://bugs.gnu.org/21829>.
* guix/scripts/import/hackage.scm (guix-import-hackage): Add missing
argument in call to 'leave'.
| Ludovic Courtès |
2015-11-04 | build-system/python: 'package-with-python2' preserves source location....* guix/build-system/python.scm (package-with-explicit-python): Add
'location' field.
| Ludovic Courtès |
2015-11-04 | import: pypi: Make downloads silent....* guix/import/pypi.scm (pypi-fetch): Wrap body in
'call-with-output-file' and 'with-error-to-port'.
| Ludovic Courtès |
2015-11-04 | import: pypi: Add missing copyright line....* guix/import/pypi.scm: Add missing copyright line for bab020d.
| Ludovic Courtès |
2015-11-03 | scripts: container: Fix 'exec' command line parsing....* guix/scripts/container/exec.scm (partition-args): Reimplement such
that all args up to and including the PID are returned as the first of
the two values.
| David Thompson |
2015-11-03 | import: pypi: add updater...* guix/import/pypi.scm (guix-package->pypi-name,
latest-release): New procedures.
(%pypi-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add %PYPI-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention PyPI
| Cyril Roelandt |
2015-11-03 | import: pypi: Use "pypi-uri" instead of building the URL manually....* guix/import/pypi.scm (make-pypi-sexp): Use "pypi-uri".
* tests/pypi.scm: Update the tests accordingly.
| Cyril Roelandt |
2015-11-03 | guix: Add a "pypi-uri" helper method....* guix/download.scm (mirrors): New "pypi" mirror.
* guix/build-system/python.scm (pypi-uri): New method.
| Cyril Roelandt |
2015-11-03 | scripts: environment: Display friendly container error messages....* guix/scripts/environment.scm (assert-container-features): New
procedure.
(guix-environment): Use it.
| David Thompson |
2015-11-03 | import: gnu: Update to the (guix upstream) API....This is a followup to 0a7c5a0.
* guix/import/gnu.scm (preferred-archive-type): Use
'upstream-source-archive-types' instead of 'gnu-release-archive-types'.
(gnu-package->sexp): Use 'upstream-source-urls' et al. Update call to
'download-tarball'.
(gnu->guix-package): Use <upstream-source> instead of <gnu-release>.
* guix/upstream.scm (upstream-source-archive-types): Export.
| Ludovic Courtès |
2015-11-02 | guix system: Always build grub.cfg for 'init' and 'reconfigure'....Fixes <http://bugs.gnu.org/21068>.
Reported by Germano Gabbianelli <tyrion.mx@gmail.com>
and Mark H Weaver <mhw@netris.org>.
* guix/scripts/system.scm (perform-action): Always add GRUB.CFG to DRVS
for 'init' and 'reconfigure'.
Co-authored-by: Mark H Weaver <mhw@netris.org>
| Ludovic Courtès |
2015-11-02 | services: Add 'system-service-type'....* gnu/services.scm (system-derivation): New procedure.
(system-service-type): New variable.
(boot-script-entry): New procedure.
(boot-service-type): Extend SYSTEM-SERVICE-TYPE.
(etc-entry): New procedure.
(etc-service-type): Extend SYSTEM-SERVICE-TYPE.
(fold-services): Change default #:target-type to SYSTEM-SERVICE-TYPE.
* gnu/system.scm (operating-system-directory-base-entries): New procedure.
(essential-services): Use it. Add an instance of
SYSTEM-SERVICE-TYPE.
(operating-system-boot-script): Pass #:target-type to 'fold-services'.
(operating-system-derivation): Rewrite in terms of 'fold-services'.
* gnu/system/linux-container.scm (system-container): Remove.
(container-script): Use 'operating-system-derivation'.
* guix/scripts/system.scm (export-extension-graph): Replace
BOOT-SERVICE-TYPE by SYSTEM-SERVICE-TYPE.
* doc/images/service-graph.dot: Add 'system' node and edges.
* doc/guix.texi (Service Composition): Mention SYSTEM-SERVICE-TYPE.
(Service Reference): Document it. Update 'fold-services'
documentation.
| Ludovic Courtès |
2015-11-02 | scripts: environment: Ignore user shell when spawning container....* guix/scripts/environment.scm (%default-options): Remove 'exec'
association.
(guix-environment): If the user didn't specify a command, use the
default shell, or use /bin/sh when a container is requested.
| David Thompson |
2015-11-02 | emacs: Add completions for '--type' option of 'refresh' popup....* guix/scripts/refresh.scm: Export '%updaters'.
* emacs/guix-main.scm (refresh-updater-names): New procedure.
* emacs/guix-base.el (guix-refresh-updater-names): New function.
* emacs/guix-read.el (guix-read-refresh-updater-names,
guix-read-refresh-updater-names-string): New functions.
* emacs/guix-command.el (guix-command-improve-refresh-argument): Use
'guix-read-refresh-updater-names-string'.
| Alex Kost |
2015-11-01 | scripts: Add 'container' subcommand....* guix/scripts/container.scm: New file.
* guix/scripts/container/exec.scm: New file.
* po/guix/POTFILES.in: Add them.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Invoking guix container): New section.
| David Thompson |
2015-10-31 | guix system: Fix typo in --help message....* guix/scripts/system.scm (show-help): Align 'container' the same way as
other actions.
| Alex Kost |
2015-10-30 | scripts: environment: Allow lists of packages in expressions....* guix/scripts/environment.scm (options/resolve-packages): Match against
lists of packages when evaluating expressions.
* tests/guix-environment.sh: Add test.
* doc/guix.texi ("invoking guix environment"): Add docs.
| David Thompson |
2015-10-30 | scripts: system: Add 'container' action....* guix/scripts/system.scm (show-help): Display 'container' action.
(system-derivation-for-action, guix-system): Add 'container' case.
(perform-action): Skip GRUB config generation when building a container.
* doc/guix.texi (Invoking guix system): Document it.
| David Thompson |
2015-10-29 | scripts: environment: Allow mixing regular and ad-hoc packages....This patch changes the --ad-hoc flag to be positional. That is, the
packages that appear before --ad-hoc are interpreted as packages whose
inputs should be in the environment; the packages that appear after are
interpreted as packages to be directly added to the environment.
* guix/scripts/environment.scm (tag-package-arg, compact): New
procedures.
(%options): Tweak the handlers for --load and --expression options.
(options/resolve-packages): Preserve package mode tag.
(parse-args): Tweak argument handler to use package tagging procedure.
(guix-environment): Apply ad-hoc behavior on a per package basis.
* tests/guix-environment.sh: Add test.
* doc/guix.texi ("invoking guix environment"): Document new behavior of
--ad-hoc.
| David Thompson |
2015-10-28 | refresh: Support comma-separated updater types....* guix/scripts/refresh.scm (%options): Handle comma-separated types for
'--type' option.
(guix-refresh): Adjust accordingly.
(show-help): Likewise.
* doc/guix.texi (Invoking guix refresh): Document it.
| Alex Kost |
2015-10-28 | ui: Add 'make-regexp*'....Fixes <http://bugs.gnu.org/21773>.
Reported by Jan Synáček <jan.synacek@gmail.com>.
* guix/ui.scm (make-regexp*): New procedure.
* guix/scripts/package.scm (options->installable, guix-package): Use it
when processing user-provided regexps.
| Ludovic Courtès |
2015-10-28 | store: Use the daemon's substitute URLs by default....Partly fixes <http://bugs.gnu.org/20217>.
* guix/store.scm (set-build-options): Change #:substitute-urls to
default to #f. Send the 'substitute-urls' pair only if
SUBSTITUTE-URLS is true.
* guix/scripts/build.scm (set-build-options-from-command-line): Do not
default to %DEFAULT-SUBSTITUTE-URLS for #:substitute-urls.
* guix/scripts/size.scm (%default-options): Remove 'substitute-urls'.
| Ludovic Courtès |
2015-10-28 | scripts: build: Add --file option....* guix/scripts/build.scm (show-help): Add help text for --file option.
(%options): Add --file option.
(options/resolve-packages): Handle 'file' options.
* tests/guix-build.sh: Add tests.
* doc/guix.texi ("invoking guix build"): Add doc.
| David Thompson |
2015-10-28 | substitute: Honor all the specified server URLs....* guix/scripts/substitute.scm (lookup-narinfos/diverse): New procedure.
(lookup-narinfo): Use it.
(process-query): Change #:cache-url to #:cache-urls.
[valid?]: Remove 'narinfo?' check, which is no longer necessary.
Use 'lookup-narinfos/diverse' instead of 'lookup-narinfos'.
(process-substitution): Change #:cache-url to #:cache-urls.
(%cache-url): Rename to...
(%cache-urls): ... this. Turn into a list.
(guix-substitute): Remove 'getaddrinfo' test with early exit. Adjust
calls to 'process-query' and 'process-substitution'.
* tests/substitute.scm: Change '%cache-url' to '%cache-urls'.
| Ludovic Courtès |
2015-10-28 | substitute: 'lookup-narinfos' returns exactly a list of narinfos....* guix/scripts/substitute.scm (lookup-narinfos): Filter out #f values
from CACHED, such that the end result is exactly a list of narinfos,
not interspersed with #f.
* guix/scripts/challenge.scm (discrepancies): Assume REMOTE is a list of
narinfos.
| Ludovic Courtès |
2015-10-28 | substitute: 'http-multiple-get' follows 'fold' style....* guix/scripts/substitute.scm (http-multiple-get): Add 'seed'
parameter. Call PROC in 'fold' style.
(fetch-narinfos)[handle-narinfo-response]: Adjust accordingly.
Update 'http-multiple-get' call accordingly.
| Ludovic Courtès |
2015-10-27 | refresh: Add '--list-updaters' option....* guix/scripts/refresh.scm (list-updaters-and-exit): New procedure.
(%options, show-help): Add '--list-updaters' option.
* doc/guix.texi (Invoking guix refresh): Document it.
| Alex Kost |
2015-10-27 | upstream: Add 'description' field to 'upstream-updater'....Suggested by Ludovic Courtès <ludo@gnu.org>.
* guix/upstream.scm (<upstream-updater>): Use 'define-record-type*'.
[description]: New field.
(lookup-updater): Adjust accordingly.
* guix/gnu-maintenance.scm (%gnu-updater): Likewise.
* guix/import/cran.scm (%cran-updater): Likewise.
* guix/import/elpa.scm (%elpa-updater): Likewise.
* po/guix/POTFILES.in: Add guix/scripts/import/cran.scm and
guix/gnu-maintenance.scm.
| Alex Kost |
2015-10-27 | profiles: Add generation manipulation procedures....* guix/scripts/package.scm (delete-generations): Use
'delete-generation*' instead of 'delete-generation'.
(guix-package)[process-actions]: Use 'roll-back*' instead of
'roll-back' and 'switch-to-generation*' instead of
'switch-to-generation'.
(link-to-empty-profile, switch-to-generation,
switch-to-previous-generation, roll-back, delete-generation): Move
to...
* guix/profiles.scm: ... here. Adjust to not print messages and to
return values that can be used by user interfaces.
* guix/ui.scm (display-generation-change, roll-back*,
switch-to-generation*, delete-generation*): New procedures.
| Ludovic Courtès |
2015-10-27 | utils: Add 'switch-symlinks', moved from (guix ui)....* guix/ui.scm (switch-symlinks): Move to...
* guix/utils.scm: ... here. New procedure.
* guix/scripts/pull.scm: Use it.
| Ludovic Courtès |
2015-10-27 | guix system: Add the 'list-generations' command....* guix/scripts/system.scm (display-system-generation, list-generations):
New procedures.
(process-action): Clarify docstring.
(process-command): New procedure.
(guix-system)[parse-sub-command]: Add 'list-generations'
Call 'process-command' instead of 'process-action'.
* doc/guix.texi (Using the Configuration System): Mention generations,
rollback, and 'list-generations'.
(Invoking guix system): Document 'list-generations'.
| Ludovic Courtès |
2015-10-27 | guix system: Factorize boot parameter parsing....* guix/scripts/system.scm (<boot-parameters>): New record type.
(read-boot-parameters): New procedure.
(previous-grub-entries)[system->grub-entry]: Use it.
| Ludovic Courtès |
2015-10-27 | ui: Add procedures to display a profile generation....* guix/scripts/package.scm (guix-package)[process-query](list-generations):
Move part of the body to 'delete-generation' and
'display-profile-content'.
* guix/ui.scm (display-generation, display-profile-content): New
procedures.
| Ludovic Courtès |
2015-10-27 | utils: Add 'readlink*'....* guix/scripts/package.scm (readlink*): Move to...
* guix/utils.scm (readlink*): ... here. New procedure.
| Ludovic Courtès |