Age | Commit message (Expand) | Author |
2015-05-27 | monads: 'foldm', 'mapm', and 'anym' now take a list of regular values....* guix/monads.scm (foldm, mapm, anym): Change to take a list of regular
values as is customary.
* tests/monads.scm ("mapm", "anym"): Adjust accordingly.
| Ludovic Courtès |
2015-05-26 | profiles: Hooks always return a monadic value....Suggested by 宋文武 <iyzsong@gmail.com>.
* guix/profiles.scm (ghc-package-cache-file): Return a monadic #f, not just
#f, when MANIFEST contains no GHC package.
(profile-derivation): Do not filter based on the return value of HOOK;
instead filter based on the value of items in EXTRAS.
| Ludovic Courtès |
2015-05-26 | ui: Improve error reporting for 'read/eval'....The effect is visible on commands like:
guix build -e '(+ 2 "foo")'
guix build -e '()'
* guix/ui.scm (read/eval): Change handler to properly report syntax errors and
use 'display-error' for other errors.
| Ludovic Courtès |
2015-05-26 | gc: ignore trailing slash or subdirectories for `guix gc -d'...Fixes <http://bugs.gnu.org/19757>.
* guix/scripts/gc.scm (guix-gc): Convert paths to direct store paths.
* guix/store.scm (direct-store-path): Get rid of subdirectories in store path.
* tests/guix-gc.sh: New tests.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
| Cyrill Schenkel |
2015-05-25 | guix system: Add '--on-error'....* guix/ui.scm (load*): Add #:on-error parameter.
[tag, error-string]: New variables.
Wrap 'load' call in 'call-with-prompt'. Pass TAG to 'make-stack'. Honor
ON-ERROR after 'report-load-error' call.
(report-load-error): Change to not exit on error. Make private.
* guix/scripts/system.scm (show-help, %options): Add --on-error.
(guix-system): Use 'load*' and pass it #:on-error.
| Ludovic Courtès |
2015-05-25 | guix package: --manifest DTRT when combined with --dry-run....* guix/scripts/package.scm (guix-package)[process-actions]: Process 'manifest
action regardless of whether 'dry-run? is set. Adjust the message
accordingly.
* tests/guix-package.sh: Add error-reporting test.
| Ludovic Courtès |
2015-05-25 | ui: Auto-compile user code, and improve error reporting....Reported by Christian Grothoff.
* guix/ui.scm (load*): Add 'frame-with-source'. Set
%load-should-auto-compile. Change error handle to just (exit 1). Add
pre-unwind handler to capture the stack and call 'report-load-error'.
(report-load-error): Add optional 'frame' parameter and pass it to
'display-error'.
* tests/guix-system.sh: Add "unbound variable" test.
| Ludovic Courtès |
2015-05-24 | ui: Make 'symlink' replacement more future-proof....* guix/ui.scm (symlink): Change next-to-last 'throw' argument to explicitly
ignore ARGS; change last argument to (list errno).
| Ludovic Courtès |
2015-05-24 | ui: Add 'copy-file' replacement with better error reporting....* guix/ui.scm (copy-file): New procedure.
| Ludovic Courtès |
2015-05-24 | guix system: init: Copy the closure of 'grub.cfg', not that of the system....Fixes <http://bugs.gnu.org/20591>.
Reported by Daniel Pimentel <d4n1@openmailbox.org>.
* guix/scripts/system.scm (install): Copy the closure of GRUB.CFG rather than
that of OS-DIR.
| Ludovic Courtès |
2015-05-24 | guix system: Always add zero previous entries in grub.cfg for 'init'....* guix/scripts/system.scm (grub.cfg): Remove.
(perform-action): Call 'operating-system-grub.cfg' with the empty list as
the 2nd argument when ACTION is 'init.
| Ludovic Courtès |
2015-05-24 | guix system: init: Make sure the target is root-owned....Suggested by Mark H Weaver <mhw@netris.org>.
* guix/scripts/system.scm (install): Add 'chown' and 'chmod' calls for TARGET
when running as root, and warn otherwise.
| Ludovic Courtès |
2015-05-22 | services: swap: Use 'restart-on-EINTR'....* gnu/services/base.scm (swap-service)[start, stop]: Use 'restart-on-EINTR'.
* guix/build/syscalls.scm (swapoff): Fix typo in 'throw' arguments.
| Ludovic Courtès |
2015-05-22 | syscalls: Add 'restart-on-EINTR'....* guix/build/syscalls.scm (call-with-restart-on-EINTR): New procedure.
(restart-on-EINTR): New macro.
| Ludovic Courtès |
2015-05-21 | guix package: Adjust --help message....* guix/scripts/package.scm (show-help): Add KIND parameter for
--search-paths as a followup to dbc31ab.
| Ludovic Courtès |
2015-05-21 | scripts: Move 'set-build-options-from-command-line*' to (guix scripts build) ......* guix/scripts/build.scm (set-build-options-from-command-line*): New
procedure.
* guix/scripts/environment.scm (set-build-options-from-command-line*): Delete.
| David Thompson |
2015-05-21 | ui: Deduplicate 'show-what-to-build*'....* guix/ui.scm (show-what-to-build*): New procedure.
* guix/scripts/environment.scm (show-what-to-build*): Delete.
* guix/scripts/system.scm (show-what-to-build*): Likewise.
* build-aux/make-binary-tarball.scm (show-what-to-build*): Likewise.
| David Thompson |
2015-05-20 | package: Add --manifest option....* guix/scripts/package.scm (show-help): Add help text.
(%options): Add manifest option.
(guix-package): Add manifest option handler.
* doc/guix.texi ("Invoking guix package"): Document it.
* tests/guix-package.sh: Add test.
| David Thompson |
2015-05-20 | profiles: Add 'packages->manifest' procedure....* guix/profiles.scm (packages->manifest): New procedure.
| David Thompson |
2015-05-20 | ui: Factorize user-provided Scheme file loading....* guix/ui.scm (make-user-module, load*): New procedures.
* guix/scripts/system.scm (%user-module): Define in terms of
'make-user-module'.
(read-operating-system): Define in terms of load*'.
| David Thompson |
2015-05-20 | ftp-client: Throw when log-in fails....* guix/ftp-client.scm (ftp-open): When '%ftp-listen' returns something
different from 220, throw instead of writing an error message.
| Ludovic Courtès |
2015-05-20 | guix package: Add optional argument to --search-paths....* guix/scripts/package.scm (search-path-environment-variables): Add #:kind
parameter. Pass it to 'environment-variable-definition'.
(display-search-paths): Add #:kind parameter and pass it to
'search-path-environment-variables'.
(%options): Add an optional parameter for "--search-paths".
(guix-package)[process-query]: Handle it.
* tests/guix-package-net.sh: Adjust existing test.
* tests/guix-package.sh: Adjust existing tests and add new test.
* doc/guix.texi (Invoking guix package): Document it.
| Ludovic Courtès |
2015-05-20 | guix package: --search-paths mentions $PATH....* guix/scripts/package.scm (search-path-environment-variables): Add $PATH to
SEARCH-PATHS.
| Ludovic Courtès |
2015-05-19 | guix gc: Add '--optimize'....* guix/scripts/gc.scm (show-help, %options): Add --optimize.
(guix-gc): Handle it.
| Ludovic Courtès |
2015-05-19 | store: Add 'optimize-store' RPC....* guix/store.scm (operation-id): Add 'optimize-store'.
(optimize-store): New procedure.
| Ludovic Courtès |
2015-05-18 | profiles: Gracefully deal with packages containing an etc/ symlink....This fixes a bug whereby 'guix package -i gcc-toolchain' would fail in
'build-profile'. This is because in 'gcc-toolchain', etc/ is a symlink,
and so the 'scandir' call in 'unsymlink' would return #f instead of
returning a list.
Reported by Andreas Enge <andreas.enge@inria.fr>.
* guix/build/profiles.scm (ensure-writable-directory)[unsymlink]: Append
"/" to TARGET before calling 'scandir'.
* tests/profiles.scm ("etc/profile when etc/ is a symlink"): New test.
| Ludovic Courtès |
2015-05-17 | syscalls: Add 'set-network-interface-up'....* guix/build/syscalls.scm (set-network-interface-up): New procedure.
| Ludovic Courtès |
2015-05-12 | publish: Add '--listen'....* guix/scripts/publish.scm (show-help, %options): Add --listen.
(getaddrinfo*): New procedure.
(%default-options): Add 'address'.
(open-server-socket): Replace 'addr' and 'port' with 'address', a
sockaddr.
(guix-publish): Adjust accordingly. Augment "publishing" message with
the actual address.
* doc/guix.texi (Invoking guix publish): Document it.
| Ludovic Courtès |
2015-05-12 | publish: Add '--user' option....* guix/scripts/publish.scm (show-help): Add --user.
(%options): Likewise.
(run-publish-server): Change 'port' parameter to 'socket'. Pass
#:socket instead of #:addr and #:port to 'run-server'. Update caller
accordingly.
(open-server-socket, gather-user-privileges): New procedures.
(guix-publish): Use them. Force %PRIVATE-KEY and %PUBLIC-KEY early
on. Warn when running as root.
* doc/guix.texi (Invoking guix publish): Document --user.
| Ludovic Courtès |
2015-05-10 | http-client: Remove monkey patching for 2.0.5....* guix/http-client.scm (read-response-body*): Remove.
(http-fetch): Remove hacks for 2.0.5.
| Ludovic Courtès |
2015-05-10 | Remove assorted Guile 2.0.5 workarounds....* guix/scripts/authenticate.scm (%default-port-conversion-strategy):
Remove.
* guix/scripts/substitute.scm (fetch): Remove 2.0.5 special cases.
* guix/serialization.scm (write-file): Remove 'scandir' workaround.
* guix/ui.scm (command-files): Likewise.
| Ludovic Courtès |
2015-05-08 | profiles: Ensure the profile's etc/ directory is writable....Reported by 宋文武 <iyzsong@gmail.com>.
* guix/build/profiles.scm (build-etc/profile,
ensure-writable-directory): New procedures.
(build-profile): Use them.
* tests/profiles.scm ("etc/profile when etc/ already exists"): New test.
| Ludovic Courtès |
2015-05-06 | profiles: Generate an 'etc/profile' file....Suggested by 宋文武 <iyzsong@gmail.com>
in <http://bugs.gnu.org/20255>.
* guix/build/profiles.scm (abstract-profile,
write-environment-variable-definition): New procedures.
(build-profile): Add #:search-paths parameter. Create
OUTPUT/etc/profile.
* guix/profiles.scm (profile-derivation)[builder]: Add 'search-paths'
variable and pass it to 'build-profile'. Adjust #:modules argument.
* tests/profiles.scm ("etc/profile"): New test.
* doc/guix.texi (Invoking guix package): Mention etc/profile.
| Ludovic Courtès |
2015-05-06 | profiles: Move build code to (guix build profiles)....* guix/build/profiles.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/profiles.scm (profile-derivation)[builder]: Call out to
'build-profile'.
Add (guix build profiles) to the #:modules argument.
| Ludovic Courtès |
2015-05-06 | search-paths: Export 'string-tokenize*'....* guix/search-paths.scm (string-tokenize*): Export.
* tests/utils.scm ("string-tokenize*"): Adjust accordingly.
| Ludovic Courtès |
2015-05-06 | download: Work around Guile small-receive-buffer bug....Previously, code using directly (guix build download) was still affected
by <http://bugs.gnu.org/15368>. This includes source derivations, the
'guix download' command, and (guix gnu-maintenance).
'guix substitute' was unaffected since it used (guix http-client), which
already had the fix.
* guix/http-client.scm (open-socket-for-uri): Remove.
(http-fetch): Remove #:buffered? argument to 'open-socket-for-uri';
use 'setvbuf' instead.
* guix/scripts/substitute.scm (fetch): Likewise.
* guix/build/download.scm (open-socket-for-uri): New procedure, taken
from guix/http-client.scm, but without the #:buffered? parameter.
| Ludovic Courtès |
2015-05-06 | download: Reinstate buffering on connection sockets....* guix/build/download.scm (open-connection-for-uri): Reinstate call to
'setvbuf' inadvertently removed in d17551d9.
| Ludovic Courtès |
2015-05-05 | environment: Move iteration outside of 'for-each-search-path'....* guix/search-paths.scm (search-path-definition): New procedure.
* guix/scripts/environment.scm (for-each-search-path): Rename to...
(evaluate-input-search-paths): ... this. Remove 'proc' and 'pure?'
parameters, and return directly the list of search-path/value pairs.
(create-environment): Use 'for-each' and 'evaluate-input-search-paths'
instead of 'for-each-search-path'.
(show-search-paths): Use 'for-each', 'search-path-definition', and
'evaluate-search-paths' instead of 'for-each-search-path'.
| Ludovic Courtès |
2015-05-05 | environment: Use 'evaluate-search-paths'....This allows 'guix environment' to correctly handle non-directory
and/or pattern search-path specifications, such as that for
'XML_CATALOG_FILES'.
* guix/scripts/environment.scm (for-each-search-path): Use
'evaluate-search-paths' instead of 'search-path-as-list' & co.
| Ludovic Courtès |
2015-05-05 | search-paths: Define the 'PATH' environment variable....* guix/search-paths.scm ($PATH): New variable.
* guix/scripts/environment.scm (for-each-search-path): Use it.
| Ludovic Courtès |
2015-05-05 | search-paths: 'evaluate-search-paths' can be passed a list of directories....* guix/search-paths.scm (evaluate-search-paths): Change 'directory' to
'directories', and adjust 'search-path-as-list' accordingly.
* guix/scripts/package.scm (search-path-environment-variables): Adjust
call accordingly.
| Ludovic Courtès |
2015-05-05 | gnu-maintenance: 'gnu-package?' returns #t for R and for GNOME packages....Reported by John Darrington.
* guix/gnu-maintenance.scm (gnu-package?)[mirror-type]: Add "gnome" to
the list of GNU mirrors. Return #f for "cran".
| Ludovic Courtès |
2015-05-05 | environment: Use (guix search-paths)....* guix/scripts/environment.scm: Use (guix search-paths). Fixes a
regression introduced in e89431b.
| Ludovic Courtès |
2015-05-04 | records: Make 'make-syntactic-constructor' available at load/eval/expand....* guix/records.scm (make-syntactic-constructor): Wrap in 'eval-when'.
| Ludovic Courtès |
2015-05-04 | profiles: Use a &message error condition instead of 'error'....* guix/profiles.scm (sexp->manifest): Use 'raise' instead of 'error'.
| Ludovic Courtès |
2015-05-04 | search-paths: 'evaluate-search-paths' now returns spec/value pairs....* guix/search-paths.scm (evaluate-search-paths): Return
specification/value pairs instead of variable/value pairs.
* guix/scripts/package.scm (search-path-environment-variables): Adjust
accordingly. Pass #:separator to 'environment-variable-definition'.
| Ludovic Courtès |
2015-05-04 | search-paths: Add 'environment-variable-definition'....* guix/search-paths.scm (environment-variable-definition): New variable.
* guix/scripts/package.scm (search-path-environment-variables): Use it.
| Ludovic Courtès |
2015-05-04 | search-paths: Add 'evaluate-search-paths', from (guix scripts package)....* guix/scripts/package.scm (with-null-error-port,
evaluate-search-paths): Move to...
* guix/search-paths.scm: ... here.
* guix/utils.scm (string-tokenize*): Move to...
* guix/search-paths.scm: ... here.
* tests/utils.scm ("string-tokenize*"): Adjust accordingly.
| Ludovic Courtès |
2015-05-04 | Move search path specifications to (guix search-paths)....* guix/packages.scm (<search-path-specification>,
search-path-specification->sexp, sexp->search-path-specification):
Move to...
* guix/search-paths.scm: ... here. New file.
* Makefile.am (MODULES): Add it.
* guix/build-system/cmake.scm, guix/build-system/glib-or-gtk.scm,
guix/build-system/gnu.scm, guix/build-system/haskell.scm,
guix/build-system/perl.scm, guix/build-system/python.scm,
guix/build-system/ruby.scm, guix/build-system/waf.scm,
guix/profiles.scm, guix/scripts/package.scm: Use it.
| Ludovic Courtès |
2015-05-04 | substitute: Increase TTL from 24h to 36h....* guix/scripts/substitute.scm (%narinfo-ttl): Increase to 36h.
| Ludovic Courtès |