aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* gexp: Implement 'imported-modules' & co. using 'gexp->derivation'.Ludovic Courtès2015-02-13
| | | | | | | | | | | | | * guix/derivations.scm (imported-files): Keep private. (%imported-modules, %compiled-modules, build-expression->derivation): Mark as deprecated. (imported-modules, compiled-modules): Remove. * guix/gexp.scm (%mkdir-p-definition): New variable. (imported-files, search-path*, imported-modules, compiled-modules): New procedures. * tests/derivations.scm ("imported-files"): Remove. * tests/gexp.scm ("imported-files", "gexp->derivation #:modules"): New tests.
* store: Add optional 'references' parameter to 'text-file'.Ludovic Courtès2015-02-12
| | | | | | * guix/store.scm (text-file): Add optional 'references' parameter. Pass it to 'add-text-to-store'. * doc/guix.texi (The Store Monad): Adjust accordingly.
* gexp: Add #:allowed-references parameter to 'gexp->derivation'.Ludovic Courtès2015-02-11
| | | | | | | | * guix/gexp.scm (lower-references): New procedure. (gexp->derivation): Add #:allowed-references and honor it. * tests/gexp.scm ("gexp->derivation #:allowed-references", "gexp->derivation #:allowed-references, disallowed"): New tests. * doc/guix.texi (G-Expressions): Update 'gexp->derivation' doc.
* derivations: Make the "grafting..." message directly visible.Ludovic Courtès2015-02-11
| | | | | * guix/derivations.scm (graft-derivation)[build]: Add call to 'force-output'.
* lint: handle FTP URIs.Cyril Roelandt2015-02-10
| | | | * guix/scripts/lint.scm (probe-uri): handle FTP URIs.
* profiles: Report "pseudo-upgrades" as upgrades, not downgrades.Ludovic Courtès2015-02-09
| | | | | | | | | | Reported by Andreas Enge <andreas@enge.fr> at <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19764#19>. * guix/profiles.scm (manifest-transaction-effects): Use 'version>=?' instead of 'version>?'. * tests/profiles.scm ("manifest-transaction-effects and pseudo-upgrades"): New test.
* utils: Add 'version>=?'.Ludovic Courtès2015-02-09
| | | | | * guix/utils.scm (version>?): Clarify docstring. (version>=?): New procedure.
* build: Add 'waf-build-system'.Ricardo Wurmus2015-02-08
| | | | | | | * guix/build-system/waf.scm, guix/build/waf-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Build Systems): Document waf-build-system.
* profiles: Distinguish downgrades from upgrades.Ludovic Courtès2015-02-08
| | | | | | | | | | Fixes <http://bugs.gnu.org/19764>. * guix/profiles.scm (manifest-transaction-effects): Return downgraded packages as a fourth value. * guix/ui.scm (show-manifest-transaction): Adjust accordingly. * tests/profiles.scm ("manifest-transaction-effects and downgrades"): New test.
* ui: Properly report '&nar-error' conditions.Ludovic Courtès2015-02-08
| | | | | | This is a followup to 46b8aad. * guix/ui.scm (call-with-error-handling): Add 'nar-error?' case.
* serialization: Check for EOF and incomplete input conditions.Ludovic Courtès2015-02-07
| | | | | | | | | | | | Fixes <http://bugs.gnu.org/19756>. Reported by <sleep_walker@suse.cz>. * guix/serialization.scm (currently-restored-file): New variable. (get-bytevector-n*): New procedure. (read-int, read-long-long, read-string, read-latin1-string, read-contents): Use it instead of 'get-bytevector-n'. (restore-file): Parameterize 'currently-restored-file' and set it. * tests/nar.scm ("restore-file with incomplete input"): New test.
* guix package: Make custom profiles actual indirect roots.Ludovic Courtès2015-02-06
| | | | | | | | | | | | | Before that, any profile generation built when '-p' is used would effectively become a permanent GC root because the symlink in /var/guix/gcroots/auto would point directly to /gnu/store/...-profile. * guix/scripts/package.scm (maybe-register-gc-root): Rename to... (register-gc-root): ... this. Remove conditional, and replace call to 'canonicalize-path' with (string-append (getcwd) "/" ...). (guix-package): Call 'register-gc-root' only if PROFILE is different from %CURRENT-PROFILE. * tests/guix-package.sh: Add test case.
* pull: Always install the ~/.config/guix/latest symlink.Ludovic Courtès2015-02-06
| | | | | | | | | | Before that, if two users on the same machine ran 'guix pull', the second one would have the "Guix already up to date" message and their ~/.config/guix/latest link would be left unchanged---effectively preventing them from updating. * guix/scripts/pull.scm (build-and-install): Install the 'latest' symlink regardless of whether TO-DO? is true or false.
* offload: Better report failure to create the GC root directory.Ludovic Courtès2015-02-05
| | | | | | | | Suggested by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>. * guix/scripts/offload.scm (register-gc-root)[script]: Replace 'false-if-exception' with a finer-grain 'system-error handler. Provide the name of MACHINE in 'leave' error message.
* offload: Warn about SSH client issues.Ludovic Courtès2015-02-05
| | | | | | | | Suggested by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>. * guix/scripts/offload.scm (remote-pipe): Remove unneeded 'catch'. (machine-load): Check the exit value upon (close-pipe pipe). Call 'warning' when it is non-zero.
* Add support for 'cvs-fetch' method in origins.Mark H Weaver2015-02-04
| | | | | * guix/cvs-download.scm, guix/build/cvs.scm: New files. * Makefile.am (MODULES): Add them.
* Remove outdated comment from svn-fetch.Mark H Weaver2015-02-04
| | | | * guix/svn-download.scm (svn-fetch): Remove outdated comment.
* guix: environment: Consider all package outputs.David Thompson2015-02-03
| | | | | | * guix/scripts/environment.scm (for-each-search-path): Iterate over all derivation output paths. (packages->transitive-inputs): Process inputs that specify an output, too.
* store: Remove 'build-derivations'.Ludovic Courtès2015-02-02
| | | | | | | * guix/store.scm (build-derivations): Remove. * guix/derivations.scm (build-derivations): Write in terms of 'build-things'. * doc/guix.texi (Invoking guix build): Adjust text accordingly.
* store: Add 'build-things'.Ludovic Courtès2015-02-02
| | | | | | | | | | * guix/store.scm (operation-id): Rename 'build-derivations' to 'build-things', as per Nix commit 1aba0bf0. (build-derivations): Rename to... (build-things): ... this. Keep 'build-derivations' as an alias. (build): New procedure. * tests/store.scm ("build-things with output path", "substitute + build-things with output path"): New tests.
* tests: Add 'with-derivation-substitute' and use it.Ludovic Courtès2015-02-02
| | | | | | | | | * guix/tests.scm (%substitute-directory): New variable. (call-with-derivation-narinfo): Use it. (call-with-derivation-substitute): New procedure. (with-derivation-substitute): New macro. * tests/store.scm ("substitute"): Use 'with-derivation-substitute'. ("substitute, corrupt output hash"): Likewise.
* tests: Further factorize substitute mocks.Ludovic Courtès2015-02-02
| | | | | | | | | | | | | * guix/tests.scm (derivation-narinfo): Turn 'nar' into a keyword parameter. Add #:sha256 parameter, and honor it. (call-with-derivation-narinfo): Add #:sha256 and pass it to 'derivation-narinfo'. (with-derivation-narinfo): Extend with support for (sha256 => value). * tests/store.scm ("substitute query"): Use 'with-derivation-narinfo'. ("substitute"): Likewise. ("substitute, corrupt output hash"): Likewise. ("substitute --fallback"): Likewise. * tests/derivations.scm: Remove Emacs local variable.
* ui: Update copyright year in '--version' output.Ludovic Courtès2015-01-28
| | | | * guix/ui.scm (show-version-and-exit): Increment copyright year.
* lint: Fix argument parsing when several packages are specified.Ludovic Courtès2015-01-28
| | | | | | | | * guix/scripts/lint.scm (%options) <--checkers>: Remove 'arg-handler' parameter, and return a single value. (guix-lint)[parse-options]: Remove 'arg-handler' parameter from handlers. Remove second seed to 'args-fold*'. * tests/guix-lint.sh: Add test.
* substitute-binary: Let the user know when the cache is being updated.Ludovic Courtès2015-01-26
| | | | | * guix/scripts/substitute-binary.scm (open-cache*): New macro. (guix-substitute-binary): Use it instead of (delay (open-cache ...)).
* hash: Initialize libgcrypt before use.Ludovic Courtès2015-01-26
| | | | | | | | | Fixes <http://bugs.gnu.org/19677>. Reported by Mark H Weaver <mhw@netris.org>. * guix/hash.scm: Use (guix gcrypt). (sha256, open-sha256-md, md-write, md-close): Use 'libgcrypt-func' instead of 'dynamic-func'.
* Add (guix gcrypt).Ludovic Courtès2015-01-26
| | | | | | | * guix/gcrypt.scm: New file. * Makefile.am (MODULES): Add it. * guix/pk-crypto.scm: Use it. (libgcrypt-func, gcrypt-version): Remove.
* guix lint: Make the 'source' checker happy if at least one URI is valid.Ludovic Courtès2015-01-26
| | | | | | | | Before that it would check all the URIs of each package. * guix/scripts/lint.scm (validate-uri): Really return #f on failure and #t otherwise. (check-source): Replace 'for-each' with 'any'.
* lint: add 'source' checker.Cyril Roelandt2015-01-25
| | | | | * guix/scripts/lint.scm (validate-uri?): New procedure. (%checkers): Add 'source' checker
* derivations: Raise an error for references to non-existent outputs.Ludovic Courtès2015-01-24
| | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/19630>. Reported by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>. * guix/derivations.scm (&derivation-error, &derivation-missing-output-error): New error conditions. (derivation->output-path): Raise a '&derivation-missing-output-error' if OUTPUT is not an output of DRV. * guix/ui.scm (call-with-error-handling): Add case for 'derivation-missing-output-error?'. (show-what-to-build): Check whether (derivation-outputs drv) is empty. * tests/packages.scm ("reference to non-existent output"): Add test.
* build-system/glib-or-gtk: Add MIME directories to $XDG_DATA_DIRS.Ludovic Courtès2015-01-23
| | | | | | | Fixes an Evince regression introduced in commit 3d243e9. * guix/build/glib-or-gtk-build-system.scm (data-directories): Check the /mime sub-directory.
* guix system: Improve error messages.Ludovic Courtès2015-01-22
| | | | | | * guix/ui.scm (report-error): Export. * guix/scripts/system.scm (read-operating-system): Report syntax errors using standard GNU format. Report other errors using 'display-error'.
* store: Change 'run-with-store' to return a single value.Ludovic Courtès2015-01-21
| | | | | * guix/store.scm (run-with-store): Wrap 'run-with-state' in 'call-with-values'. Return only the first value.
* guix package: Avoid spurious warnings from 'find-files'.Ludovic Courtès2015-01-20
| | | | | | | | Reported by Andreas Enge <andreas@enge.fr>. * guix/scripts/package.scm (with-null-error-port): New macro. (search-path-environment-variables): Wrap 'search-path-as-list' call in 'with-null-error-port'.
* packages: Mark the 'patches' field as delayed.Ludovic Courtès2015-01-20
| | | | | | * guix/packages.scm (<origin>)[patches]: Mark as 'delayed'. (print-origin, origin->derivation): Add call to 'force' when accessing 'patches'.
* records: Add support for delayed fields.Ludovic Courtès2015-01-19
| | | | | | | | | | | | | | | | | * guix/records.scm (make-syntactic-constructor): Add #:delayed parameter. [delayed-field?]: New procedure. [wrap-field-value]: Use it. (define-record-type*)[delayed-field?, wrapped-field?]: New procedures. [thunked-field-accessor-name]: Rename to... [wrapped-field-accessor-name]: ... this. [field-spec->srfi-9]: Change 'thunked' to 'wrapped'. [delayed-field-accessor-definition]: New procedure. Compute delayed-field accessors and emit them. Pass #:delayed to 'make-syntactic-constructor'. * tests/records.scm ("define-record-type* & delayed", "define-record-type* & delayed & default", "define-record-type* & delayed & inherited"): New tests.
* make-syntactic-constructor kwarg defaultLudovic Courtès2015-01-19
|
* records: Factorize value wrapping in the record constructor.Ludovic Courtès2015-01-19
| | | | | | * guix/records.scm (make-syntactic-constructor)[wrap-field-value]: New procedure. [field-bindings, field-value]: Use it.
* records: Move 'make-syntactic-constructor' to the top level.Ludovic Courtès2015-01-19
| | | | | * guix/records.scm (make-syntactic-constructor): New procedure, formerly nested in 'define-record-type*'.
* records: Use keyword parameters for 'make-syntactic-constructor'.Ludovic Courtès2015-01-19
| | | | | | | * guix/records.scm (define-record-type*)[make-syntactic-constructor]: Turn THUNKED and DEFAULTS into keyword arguments. Adjust caller accordingly. Declare 'thunked' and 'defaults' local variables.
* nar: Read archive signatures as Latin-1 strings.Ludovic Courtès2015-01-18
| | | | | | | | Fixes <http://bugs.gnu.org/19610>. Reported by Mark H Weaver <mhw@netris.org>. * guix/nar.scm (restore-one-item): Use 'read-latin1-string' to read the signature.
* serialization: Read Latin-1 strings with 'get-bytevector-n'.Ludovic Courtès2015-01-18
| | | | | | * guix/serialization.scm (read-latin1-string): Use 'get-bytevector-n' instead of 'get-string-n'. Use 'list->string' etc. to convert the bytevector to a string.
* store: Change 'store-lower' to preserve the original procedure's documentation.Ludovic Courtès2015-01-18
| | | | | * guix/store.scm (preserve-documentation): New procedure. (store-lift, store-lower): Use it.
* doc: Document '%state-monad' and update '%store-monad' description.Ludovic Courtès2015-01-17
| | | | | | * doc/guix.texi (The Store Monad): Document '%state-monad' and related procedures. Describe '%store-monad' as an alias for '%state-monad'. * guix/monads.scm: Update commentary.
* store: Make '%store-monad' an alias for '%state-monad'.Ludovic Courtès2015-01-17
| | | | | | | | | | | | * guix/store.scm (define-alias): New macro. (%store-monad, store-return, store-bind): Define as aliases of the corresponding %STATE-MONAD part. (store-lift, text-file, interned-file): Return STORE as a second value. (run-with-store): Use 'run-with-state'. * guix/packages.scm (set-guile-for-build, package-file): Return STORE as a second value. * guix/monads.scm: Remove part of the module commentary.
* monads: Add the state monad.Ludovic Courtès2015-01-17
| | | | | | | | | | | * guix/monads.scm (state-return, state-bind, run-with-state, current-state, set-current-state, state-push, state-pop): New procedures. (%state-monad): New variable. * tests/monads.scm (%monads): Add %STATE-MONAD. (%monad-run): Add 'run-with-state'. (values->list): New macro. ("set-current-state", "state-push etc."): New tests.
* guix archive: Add -r/--recursive.Ludovic Courtès2015-01-17
| | | | | | | * guix/scripts/archive.scm (show-help, %options): Add -r/--recursive. (export-from-store): Pass #:recursive? to 'export-paths'. * doc/guix.texi (Invoking guix archive): Add -r in Emacs example. Add example with ~/.guix-profile. Document -r/--recursive.
* guix archive: Remove unused -r/--root option.Ludovic Courtès2015-01-17
| | | | * guix/scripts/archive.scm (%options): Remove -r/--root.
* store: Remove unused variable.Ludovic Courtès2015-01-17
| | | | * guix/store.scm (export-paths): Remove unused variable 's'.
* store: Add #:recursive? parameter to 'export-paths'.Ludovic Courtès2015-01-17
| | | | | | | * guix/store.scm (export-paths): Add #:recursive? parameter and honor it. * tests/store.scm ("export/import incomplete", "export/import recursive"): New tests.