summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* gexp: Add 'plain-file'.Ludovic Courtès2015-06-03
| | | | | | | * guix/gexp.scm (<plain-file>): New type. (plain-file, plain-file-compiler): New procedures. * tests/gexp.scm ("one plain file"): New test. * doc/guix.texi (G-Expressions): Document 'plain-file'.
* gexp: Export <local-file> accessors.Ludovic Courtès2015-06-03
| | | | | * guix/gexp.scm (local-file-file, local-file-name, local-file-recursive?): Export.
* gnu-maintenance: latest-release: Honor releases that are not in subdirs.Ludovic Courtès2015-06-02
| | | | | | | | Reported by Mark H Weaver. * guix/gnu-maintenance.scm (latest-release): Add 'result' parameter to 'loop'. When entering a sub-directory, use the current directory's latest release as 'result'. This fixes the code for 'gnu-pw-mgr' and 'sharutils'.
* lint: source: Warn only when all the URIs are unreachable.Ludovic Courtès2015-05-31
| | | | | | | * guix/scripts/lint.scm (call-with-accumulated-warnings): New procedure. (with-accumulated-warnings): New macro. (check-source): Add 'try-uris' and use it. Emit warnings only upon failure.
* lint: 'validate-uri' really returns #f on failure.Ludovic Courtès2015-05-31
| | | | * guix/scripts/lint.scm (validate-uri): Always return #f on failure.
* base32: Use a custom error condition instead of 'misc-error'.Ludovic Courtès2015-05-31
| | | | | | | | Suggested by Christopher Allan Webber <cwebber@dustycloud.org>. * guix/base32.scm (&invalid-base32-character): New error condition. (make-base32-string->bytevector): Use it instead of 'error'. * tests/base32.scm ("&invalid-base32-character"): New test.
* ui: Do not call 'display-error' for SRFI-34 exceptions.Ludovic Courtès2015-05-31
| | | | | * guix/ui.scm (report-load-error, warn-about-load-error, read/eval): Add clause for SRFI-34 exceptions.
* emacs: Report about "search paths" after operation.Alex Kost2015-05-29
| | | | | * guix/scripts/package.scm: Export 'display-search-paths'. * emacs/guix-main.scm (process-package-actions): Use it.
* guix environment: Add --ad-hoc option.David Thompson2015-05-28
| | | | | | | | * guix/scripts/environment.scm (%options): Add "ad-hoc" option. (show-help): Display help for "--ad-hoc". (packages+propagated-inputs): New procedure. (guix-environment): Create ad hoc environment when asked. * doc/guix.texi ("invoking guix environment"): Document it.
* profiles: Deal with non-directory items in share/icons.Ludovic Courtès2015-05-28
| | | | | | | Reported by Mark H Weaver <mhw@netris.org>. * guix/profiles.scm (gtk-icon-themes)[build]: Check whether DIR is a directory before calling 'ensure-writable-directory'.
* profiles: Export 'ensure-writable-directory' and use it.Ludovic Courtès2015-05-27
| | | | | | * guix/build/profiles.scm (ensure-writable-directory): Export. * guix/profiles.scm (gtk-icon-themes)[build]: Remove '@@' form and use (guix build profiles).
* profiles: Don't assume all the inputs are of a package are packages.Ludovic Courtès2015-05-27
| | | | | | | | | Reported by Ricardo Wurmus. * guix/profiles.scm (gtk-icon-themes)[entry-lookup-gtk+](find-among-packages): Rename to... (find-among-inputs): ... this. Check whether INPUT is a package before calling 'package-name'. Fixes a regression introduced in b04af0e.
* profiles: Use 'derivation?' to filter hooks.宋文武2015-05-27
| | | | | | | Fixes a regression introduced in 07eaecfa. * guix/profiles.scm (profile-derivation): Use 'derivation?' instead of 'gexp?' to filter hooks.
* profiles: Add gtk-icon-themes hook.宋文武2015-05-27
| | | | | * guix/profiles.scm (gtk-icon-themes): New function. (%default-profile-hooks): Add it.
* monads: 'foldm', 'mapm', and 'anym' now take a list of regular values.Ludovic Courtès2015-05-27
| | | | | | * guix/monads.scm (foldm, mapm, anym): Change to take a list of regular values as is customary. * tests/monads.scm ("mapm", "anym"): Adjust accordingly.
* profiles: Hooks always return a monadic value.Ludovic Courtès2015-05-26
| | | | | | | | | 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.
* ui: Improve error reporting for 'read/eval'.Ludovic Courtès2015-05-26
| | | | | | | | | | 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.
* gc: ignore trailing slash or subdirectories for `guix gc -d'Cyrill Schenkel2015-05-26
| | | | | | | | | | 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>
* guix system: Add '--on-error'.Ludovic Courtès2015-05-25
| | | | | | | | | | * 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.
* guix package: --manifest DTRT when combined with --dry-run.Ludovic Courtès2015-05-25
| | | | | | | * 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.
* ui: Auto-compile user code, and improve error reporting.Ludovic Courtès2015-05-25
| | | | | | | | | | | 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.
* ui: Make 'symlink' replacement more future-proof.Ludovic Courtès2015-05-24
| | | | | * guix/ui.scm (symlink): Change next-to-last 'throw' argument to explicitly ignore ARGS; change last argument to (list errno).
* ui: Add 'copy-file' replacement with better error reporting.Ludovic Courtès2015-05-24
| | | | * guix/ui.scm (copy-file): New procedure.
* guix system: init: Copy the closure of 'grub.cfg', not that of the system.Ludovic Courtès2015-05-24
| | | | | | | | 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.
* guix system: Always add zero previous entries in grub.cfg for 'init'.Ludovic Courtès2015-05-24
| | | | | | * 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.
* guix system: init: Make sure the target is root-owned.Ludovic Courtès2015-05-24
| | | | | | | 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.
* services: swap: Use 'restart-on-EINTR'.Ludovic Courtès2015-05-22
| | | | | * gnu/services/base.scm (swap-service)[start, stop]: Use 'restart-on-EINTR'. * guix/build/syscalls.scm (swapoff): Fix typo in 'throw' arguments.
* syscalls: Add 'restart-on-EINTR'.Ludovic Courtès2015-05-22
| | | | | * guix/build/syscalls.scm (call-with-restart-on-EINTR): New procedure. (restart-on-EINTR): New macro.
* guix package: Adjust --help message.Ludovic Courtès2015-05-21
| | | | | * guix/scripts/package.scm (show-help): Add KIND parameter for --search-paths as a followup to dbc31ab.
* scripts: Move 'set-build-options-from-command-line*' to (guix scripts build) ↵David Thompson2015-05-21
| | | | | | | | module. * guix/scripts/build.scm (set-build-options-from-command-line*): New procedure. * guix/scripts/environment.scm (set-build-options-from-command-line*): Delete.
* ui: Deduplicate 'show-what-to-build*'.David Thompson2015-05-21
| | | | | | | * 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.
* package: Add --manifest option.David Thompson2015-05-20
| | | | | | | | * 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.
* profiles: Add 'packages->manifest' procedure.David Thompson2015-05-20
| | | | * guix/profiles.scm (packages->manifest): New procedure.
* ui: Factorize user-provided Scheme file loading.David Thompson2015-05-20
| | | | | | | * 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*'.
* ftp-client: Throw when log-in fails.Ludovic Courtès2015-05-20
| | | | | * guix/ftp-client.scm (ftp-open): When '%ftp-listen' returns something different from 220, throw instead of writing an error message.
* guix package: Add optional argument to --search-paths.Ludovic Courtès2015-05-20
| | | | | | | | | | | | * 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.
* guix package: --search-paths mentions $PATH.Ludovic Courtès2015-05-20
| | | | | * guix/scripts/package.scm (search-path-environment-variables): Add $PATH to SEARCH-PATHS.
* guix gc: Add '--optimize'.Ludovic Courtès2015-05-19
| | | | | * guix/scripts/gc.scm (show-help, %options): Add --optimize. (guix-gc): Handle it.
* store: Add 'optimize-store' RPC.Ludovic Courtès2015-05-19
| | | | | * guix/store.scm (operation-id): Add 'optimize-store'. (optimize-store): New procedure.
* profiles: Gracefully deal with packages containing an etc/ symlink.Ludovic Courtès2015-05-18
| | | | | | | | | | | | | 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.
* syscalls: Add 'set-network-interface-up'.Ludovic Courtès2015-05-17
| | | | * guix/build/syscalls.scm (set-network-interface-up): New procedure.
* publish: Add '--listen'.Ludovic Courtès2015-05-12
| | | | | | | | | | | * 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.
* publish: Add '--user' option.Ludovic Courtès2015-05-12
| | | | | | | | | | | | * 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.
* http-client: Remove monkey patching for 2.0.5.Ludovic Courtès2015-05-10
| | | | | * guix/http-client.scm (read-response-body*): Remove. (http-fetch): Remove hacks for 2.0.5.
* Remove assorted Guile 2.0.5 workarounds.Ludovic Courtès2015-05-10
| | | | | | | | * 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.
* profiles: Ensure the profile's etc/ directory is writable.Ludovic Courtès2015-05-08
| | | | | | | | | 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.
* profiles: Generate an 'etc/profile' file.Ludovic Courtès2015-05-06
| | | | | | | | | | | | | | 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.
* profiles: Move build code to (guix build profiles).Ludovic Courtès2015-05-06
| | | | | | | | * 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.
* search-paths: Export 'string-tokenize*'.Ludovic Courtès2015-05-06
| | | | | * guix/search-paths.scm (string-tokenize*): Export. * tests/utils.scm ("string-tokenize*"): Adjust accordingly.
* download: Work around Guile small-receive-buffer bug.Ludovic Courtès2015-05-06
| | | | | | | | | | | | | | | | 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.