summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* Move 'specification->package+output' to (gnu packages).Ludovic Courtès2015-06-18
| | | | | | * guix/scripts/package.scm (specification->package+output): Move to... * gnu/packages.scm (specification->package+output): ... here * guix/scripts/archive.scm (guix): Adjust accordingly.
* offload: Fix sorting bug in 'choose-build-machine'.Mark H Weaver2015-06-17
| | | | | * guix/scripts/offload.scm (choose-build-machine)[undecorate]: Return the boolean result of pred instead of the best machine+slot.
* gnu-maintenance: Use 'home-page' as an additional hint of "GNUness".Ludovic Courtès2015-06-16
| | | | | | | | Reported by Rastus_Vernon on IRC. Fixes 'gnu-package?' for GNUcash. * guix/gnu-maintenance.scm (gnu-package?)[gnu-home-page?]: New procedure. Use it to determine whether PACKAGE is GNU.
* build-system/haskell: install config for any package that creates it.Eric Bavier2015-06-11
| | | | | | | | | A Cabal package is allowed to declare an "empty" library, in an otherwise executable-only package, for the purpose of allowing Cabal to use it as a dependency for other packages. See e.g. hspec-discover. * guix/build/haskell-build-system.scm (register): Unconditionally call setup script with "register", and install any config file generated.
* profiles: Process ghc conf files only once.Eric Bavier2015-06-11
| | | | | | | | A package may be listed in the manifest inputs multiple times. Avoid copying ghc *.conf files twice by deleting duplicates. * guix/profiles.scm (ghc-package-cache-file)[conf-files]: Delete duplicate manifest inputs before copying conf files.
* profiles: Search for ghc conf files only if package db exists.Eric Bavier2015-06-11
| | | | | | | | This avoids having 'find-files' report warnings about searching in non-existent directories. * guix/profiles.scm (ghc-package-cache-file)[conf-files]: Only search for *.conf files if the search directory exists.
* records: Remove unnecessary 'begin'.Ludovic Courtès2015-06-11
| | | | * guix/records.scm (define-record-type*): Remove unnecessary 'begin'.
* tests: Write the random seed to the error port.Ludovic Courtès2015-06-11
| | | | | * guix/tests.scm (random-seed): New procedure. (%seed): Use it, and write the random seed to the error port.
* packages: Make 'location' field innate.Ludovic Courtès2015-06-11
| | | | | | | | | | | | | * 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.
* records: Add support for 'innate' fields.Ludovic Courtès2015-06-11
| | | | | | | | | | * 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.
* records: "options" → "properties".Ludovic Courtès2015-06-11
| | | | * guix/records.scm (define-record-type*): Change "options" to "properties".
* records: Factorize field property predicates.Ludovic Courtès2015-06-11
| | | | | * guix/records.scm (define-field-property-predicate): New macro. (define-record-type*)[thunked-field?, delayed-field?]: Use it.
* records: Separate default-value handling.Ludovic Courtès2015-06-11
| | | | | | | * guix/records.scm (make-syntactic-constructor)[default-values]: New variable. [field-default-value]: New procedure. Use them.
* records: Replace 'eval-when' with a proper 'define-syntax'.Ludovic Courtès2015-06-11
| | | | | * guix/records.scm (make-syntactic-constructor): Remove enclosing 'eval-when'. Turn into a 'syntax-rules' macro.
* guix build: Allow directories to be passed to --with-source.Ludovic Courtès2015-06-11
| | | | | | | | | | * 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.
* environment: Connect to the store after the command line has been parsed.Ludovic Courtès2015-06-11
| | | | | | * 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.
* guix system: init: Overwrite the items in the target store.Ludovic Courtès2015-06-10
| | | | | | | | 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.
* ui: Replace the global 'symlink' binding.Ludovic Courtès2015-06-10
| | | | * guix/ui.scm (symlink): Set! the global symlink.
* import: hackage: Refactor parsing code and add new options.Federico Beffa2015-06-09
| | | | | | | | | | | | * 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'.
* monads: Allow n-ary '>>=' expressions.Ludovic Courtès2015-06-08
| | | | | | | | | | 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.
* guix: Clean up --help messages.Alex Kost2015-06-08
| | | | | | | | | | * 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.
* guix gc: Add '--verify'.Ludovic Courtès2015-06-06
| | | | | | | * 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.
* store: Add 'verify-store' RPC.Ludovic Courtès2015-06-06
| | | | | | | | * 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.
* guix package: Fix typo in --help message.Alex Kost2015-06-06
| | | | * guix/scripts/package.scm (show-help): Align '--show' option properly.
* licenses: Add the Open Publication License 1.0.Mark H Weaver2015-06-05
| | | | * guix/licenses.scm (opl1.0+): New variable.
* 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.