summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2015-06-11packages: Make 'location' field innate.Ludovic Courtès
* guix/packages.scm (<package>)[location]: Add 'innate' property. * guix/build-system/gnu.scm (static-package): Remove 'loc' parameter and 'location' field. * gnu/packages/autotools.scm (autoconf-wrapper): Remove 'location' field. * gnu/packages/commencement.scm (gnu-make-boot0, diffutils-boot0, gcc-final): Likewise. * gnu/packages/cross-base.scm (cross): Likewise. * gnu/packages/emacs.scm (emacs-no-x, emacs-no-x-toolkit): Likewise. * gnu/packages/make-bootstrap.scm (tarball-package): Likewise. * gnu/packages/maths.scm (petsc-complex): Likewise.
2015-06-11records: Add support for 'innate' fields.Ludovic Courtès
* guix/records.scm (make-syntactic-constructor): Add #:innate parameter. [record-inheritance]: Honor it. [innate-field?]: New procedure. (define-record-type*)[innate-field?]: New procedure. Pass #:innate to 'make-syntactic-constructor'. * tests/records.scm ("define-record-type* & inherit & innate", "define-record-type* & thunked & innate"): New tests.
2015-06-11records: "options" → "properties".Ludovic Courtès
* guix/records.scm (define-record-type*): Change "options" to "properties".
2015-06-11records: Factorize field property predicates.Ludovic Courtès
* guix/records.scm (define-field-property-predicate): New macro. (define-record-type*)[thunked-field?, delayed-field?]: Use it.
2015-06-11records: Separate default-value handling.Ludovic Courtès
* guix/records.scm (make-syntactic-constructor)[default-values]: New variable. [field-default-value]: New procedure. Use them.
2015-06-11records: Replace 'eval-when' with a proper 'define-syntax'.Ludovic Courtès
* guix/records.scm (make-syntactic-constructor): Remove enclosing 'eval-when'. Turn into a 'syntax-rules' macro.
2015-06-11guix build: Allow directories to be passed to --with-source.Ludovic Courtès
* guix/scripts/build.scm (package-with-source)[tarball-base-name]: Gracefully handle file names that lack an extension. Pass #:recursive? #t to 'download-to-store'. * guix/download.scm (download-to-store): Add #:recursive? parameter and pass it to 'add-to-store'. * doc/guix.texi (Invoking guix build): Add an example of --with-source with a directory.
2015-06-11environment: Connect to the store after the command line has been parsed.Ludovic Courtès
* guix/scripts/environment.scm (guix-environment): Call 'parse-command-line' outside of 'with-store'. This allows things like --help to run even if the daemon is not running.
2015-06-10guix system: init: Overwrite the items in the target store.Ludovic Courtès
Fixes <http://bugs.gnu.org/20722>. Reported by Eric Bavier <ericbavier@openmailbox.org>. * guix/scripts/system.scm (copy-item): Check whether DEST exists and remove it if it does.
2015-06-10ui: Replace the global 'symlink' binding.Ludovic Courtès
* guix/ui.scm (symlink): Set! the global symlink.
2015-06-09import: hackage: Refactor parsing code and add new options.Federico Beffa
* guix/import/cabal.scm: New file. * guix/import/hackage.scm: Update to use the new Cabal parsing module. * tests/hackage.scm: Update tests. * guix/scripts/import/hackage.scm: Add new '--cabal-environment' and '--stdin' options. * doc/guix.texi: ... and document them. * Makefile.am (MODULES): Add 'guix/import/cabal.scm', 'guix/import/hackage.scm' and 'guix/scripts/import/hackage.scm'. (SCM_TESTS): Add 'tests/hackage.scm'.
2015-06-08monads: Allow n-ary '>>=' expressions.Ludovic Courtès
Suggested by Federico Beffa <beffa@fbengineering.ch>. * guix/monads.scm (bind-syntax): New macro. (with-monad): Use it instead of 'identifier-syntax'. * tests/monads.scm (">>= with more than two arguments"): New test. * doc/guix.texi (The Store Monad): Explain that there can be several MPROC. Add an example.
2015-06-08guix: Clean up --help messages.Alex Kost
* guix/scripts/import.scm (show-help): Add newline before a list of importers. * guix/scripts/lint.scm (show-help): Split a long description line. * guix/scripts/package.scm (show-help): Improve docstrings for --install and --remove options. * guix/scripts/system.scm (show-help): Format actions the same way as guix commands and importers are formatted.
2015-06-06guix gc: Add '--verify'.Ludovic Courtès
* guix/scripts/gc.scm (show-help, %options): Add --verify. (guix-gc): Handle it. * doc/guix.texi (Invoking guix gc): Document --verify, and move --optimize description right below it.
2015-06-06store: Add 'verify-store' RPC.Ludovic Courtès
* guix/store.scm (operation-id): Add 'verify-store'. (verify-store): New procedure. (set-build-options): Adjust comment. * tests/store.scm ("verify-store", "verify-store + check-contents"): New tests.
2015-06-06guix package: Fix typo in --help message.Alex Kost
* guix/scripts/package.scm (show-help): Align '--show' option properly.
2015-06-05licenses: Add the Open Publication License 1.0.Mark H Weaver
* guix/licenses.scm (opl1.0+): New variable.
2015-06-03gexp: Add 'plain-file'.Ludovic Courtès
* 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'.
2015-06-03gexp: Export <local-file> accessors.Ludovic Courtès
* guix/gexp.scm (local-file-file, local-file-name, local-file-recursive?): Export.
2015-06-02gnu-maintenance: latest-release: Honor releases that are not in subdirs.Ludovic Courtès
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'.
2015-05-31lint: source: Warn only when all the URIs are unreachable.Ludovic Courtès
* 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.
2015-05-31lint: 'validate-uri' really returns #f on failure.Ludovic Courtès
* guix/scripts/lint.scm (validate-uri): Always return #f on failure.
2015-05-31base32: Use a custom error condition instead of 'misc-error'.Ludovic Courtès
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.
2015-05-31ui: Do not call 'display-error' for SRFI-34 exceptions.Ludovic Courtès
* guix/ui.scm (report-load-error, warn-about-load-error, read/eval): Add clause for SRFI-34 exceptions.
2015-05-29emacs: Report about "search paths" after operation.Alex Kost
* guix/scripts/package.scm: Export 'display-search-paths'. * emacs/guix-main.scm (process-package-actions): Use it.
2015-05-28guix environment: Add --ad-hoc option.David Thompson
* 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.
2015-05-28profiles: Deal with non-directory items in share/icons.Ludovic Courtès
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'.
2015-05-27profiles: Export 'ensure-writable-directory' and use it.Ludovic Courtès
* guix/build/profiles.scm (ensure-writable-directory): Export. * guix/profiles.scm (gtk-icon-themes)[build]: Remove '@@' form and use (guix build profiles).
2015-05-27profiles: Don't assume all the inputs are of a package are packages.Ludovic Courtès
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.
2015-05-27profiles: Use 'derivation?' to filter hooks.宋文武
Fixes a regression introduced in 07eaecfa. * guix/profiles.scm (profile-derivation): Use 'derivation?' instead of 'gexp?' to filter hooks.
2015-05-27profiles: Add gtk-icon-themes hook.宋文武
* guix/profiles.scm (gtk-icon-themes): New function. (%default-profile-hooks): Add it.
2015-05-27monads: 'foldm', 'mapm', and 'anym' now take a list of regular values.Ludovic Courtès
* guix/monads.scm (foldm, mapm, anym): Change to take a list of regular values as is customary. * tests/monads.scm ("mapm", "anym"): Adjust accordingly.
2015-05-26profiles: Hooks always return a monadic value.Ludovic Courtès
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.
2015-05-26ui: Improve error reporting for 'read/eval'.Ludovic Courtès
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.
2015-05-26gc: ignore trailing slash or subdirectories for `guix gc -d'Cyrill Schenkel
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>
2015-05-25guix system: Add '--on-error'.Ludovic Courtès
* 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.
2015-05-25guix package: --manifest DTRT when combined with --dry-run.Ludovic Courtès
* 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.
2015-05-25ui: Auto-compile user code, and improve error reporting.Ludovic Courtès
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.
2015-05-24ui: Make 'symlink' replacement more future-proof.Ludovic Courtès
* guix/ui.scm (symlink): Change next-to-last 'throw' argument to explicitly ignore ARGS; change last argument to (list errno).
2015-05-24ui: Add 'copy-file' replacement with better error reporting.Ludovic Courtès
* guix/ui.scm (copy-file): New procedure.
2015-05-24guix system: init: Copy the closure of 'grub.cfg', not that of the system.Ludovic Courtès
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.
2015-05-24guix system: Always add zero previous entries in grub.cfg for 'init'.Ludovic Courtès
* 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.
2015-05-24guix system: init: Make sure the target is root-owned.Ludovic Courtès
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.
2015-05-22services: swap: Use 'restart-on-EINTR'.Ludovic Courtès
* gnu/services/base.scm (swap-service)[start, stop]: Use 'restart-on-EINTR'. * guix/build/syscalls.scm (swapoff): Fix typo in 'throw' arguments.
2015-05-22syscalls: Add 'restart-on-EINTR'.Ludovic Courtès
* guix/build/syscalls.scm (call-with-restart-on-EINTR): New procedure. (restart-on-EINTR): New macro.
2015-05-21guix package: Adjust --help message.Ludovic Courtès
* guix/scripts/package.scm (show-help): Add KIND parameter for --search-paths as a followup to dbc31ab.
2015-05-21scripts: Move 'set-build-options-from-command-line*' to (guix scripts build) ↵David Thompson
module. * guix/scripts/build.scm (set-build-options-from-command-line*): New procedure. * guix/scripts/environment.scm (set-build-options-from-command-line*): Delete.
2015-05-21ui: Deduplicate 'show-what-to-build*'.David Thompson
* 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.
2015-05-20package: Add --manifest option.David Thompson
* 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.
2015-05-20profiles: Add 'packages->manifest' procedure.David Thompson
* guix/profiles.scm (packages->manifest): New procedure.