summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2015-05-21ui: 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-20package: 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-20profiles: Add 'packages->manifest' procedure....* guix/profiles.scm (packages->manifest): New procedure. David Thompson
2015-05-20ui: 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-20ftp-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-20guix 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-20guix package: --search-paths mentions $PATH....* guix/scripts/package.scm (search-path-environment-variables): Add $PATH to SEARCH-PATHS. Ludovic Courtès
2015-05-19guix gc: Add '--optimize'....* guix/scripts/gc.scm (show-help, %options): Add --optimize. (guix-gc): Handle it. Ludovic Courtès
2015-05-19store: Add 'optimize-store' RPC....* guix/store.scm (operation-id): Add 'optimize-store'. (optimize-store): New procedure. Ludovic Courtès
2015-05-18profiles: 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-17syscalls: Add 'set-network-interface-up'....* guix/build/syscalls.scm (set-network-interface-up): New procedure. Ludovic Courtès
2015-05-12publish: 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-12publish: 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-10http-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-10Remove 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-08profiles: 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-06profiles: 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-06profiles: 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-06search-paths: Export 'string-tokenize*'....* guix/search-paths.scm (string-tokenize*): Export. * tests/utils.scm ("string-tokenize*"): Adjust accordingly. Ludovic Courtès
2015-05-06download: 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-06download: 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-05environment: 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-05environment: 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-05search-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-05search-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-05gnu-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-05environment: Use (guix search-paths)....* guix/scripts/environment.scm: Use (guix search-paths). Fixes a regression introduced in e89431b. Ludovic Courtès
2015-05-04records: Make 'make-syntactic-constructor' available at load/eval/expand....* guix/records.scm (make-syntactic-constructor): Wrap in 'eval-when'. Ludovic Courtès
2015-05-04profiles: Use a &message error condition instead of 'error'....* guix/profiles.scm (sexp->manifest): Use 'raise' instead of 'error'. Ludovic Courtès
2015-05-04search-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-04search-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-04search-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-04Move 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-04substitute: Increase TTL from 24h to 36h....* guix/scripts/substitute.scm (%narinfo-ttl): Increase to 36h. Ludovic Courtès
2015-05-04guix: build: Fix indentation for --sources in help output....* guix/scripts/build.scm (show-help)[--sources]: Make indentation consistent with other long options. Eric Bavier
2015-05-04guix package: Introduce 'evaluate-search-paths'....* guix/scripts/package.scm (evaluate-search-paths): New procedure, with most of the code formerly in 'search-path-environment-variables'. (search-path-environment-variables): Use it. Ludovic Courtès
2015-05-04guix package: Move profile cleaning out of 'search-path-environment-variables'....* guix/scripts/package.scm (user-friendly-profile): New procedure. (search-path-environment-variables): Remove 'profile' local variable. (display-search-paths): Explicitly call 'user-friendly-profile' for the argument to 'search-path-environment-variables'. (guix-package)[process-query]: Likewise. Ludovic Courtès
2015-05-02guix: build: Add transitive source building....* guix/scripts/build.scm (%options, options->derivations): Add --sources option. * doc/guix.texi (Invoking guix build): Document --sources option. * tests/guix-build.sh: Add tests. Eric Bavier
2015-05-02guix: packages: Add package-direct-sources and package-transitive-sources....* guix/tests.scm (dummy-origin): New syntax. * guix/packages.scm (package-direct-sources) (package-transitive-sources): New procedures. * tests/packages.scm ("package-direct-sources, no source") ("package-direct-sources, #f source") ("package-direct-sources, not input source", "package-direct-sources") ("package-transitive-sources"): Test them. Eric Bavier
2015-05-02profiles: Store search paths in manifests....Discussed in <http://bugs.gnu.org/20255>. * guix/packages.scm (sexp->search-path-specification): New variable. * guix/profiles.scm (<manifest-entry>)[search-paths]: New field. (package->manifest-entry): Initialize it. (manifest->gexp): Match it. Wrap #$deps in (propagated-inputs ...). Emit (search-paths ...). Increment version. (find-package): New procedure. (sexp->manifest)[infer-search-paths]: New procedure. Use it to initialize the 'search-paths' field for versions 0 and 1. Add case for version 2. * guix/scripts/package.scm (search-path-environment-variables)[manifest-entry->package]: Remove. Use 'manifest-entry-search-paths' instead of 'manifest-entry->package' plus 'package-native-search-paths'. * tests/profiles.scm ("profile-manifest, search-paths"): New test. Ludovic Courtès
2015-05-02Merge branch 'core-updates'Ludovic Courtès
2015-05-02build-system/gnu: 'dist-package' preserves the package's native inputs....* guix/build-system/gnu.scm (dist-package)[native-inputs]: Preserve P's native-inputs. Ludovic Courtès
2015-05-02build-system/gnu: Adjust to removal of a "bin" output for Libtool....* guix/build-system/gnu.scm (dist-package): Change libtool:bin input to just libtool. Ludovic Courtès
2015-05-01packages: Add '%hydra-supported-systems'....* build-aux/hydra/gnu-system.scm (%hydra-supported-systems): Remove. * guix/packages.scm (%hydra-supported-systems): New variable. Ludovic Courtès
2015-05-01Merge branch 'master' into core-updatesLudovic Courtès
2015-05-01serialization: Adjust the permissive UTF-8 decoder to Guile 2.0.12ish....* guix/serialization.scm (read-maybe-utf8-string): Use 'set-port-encoding!' and 'set-port-conversion-strategy!' instead of setting '%default-port-encoding' and '%default-port-conversion-strategy'. This accounts for Guile commit d574d96, which changes bytevector input ports to use ISO-8859-1. Ludovic Courtès
2015-05-01substitute: Fix file descriptor leak in 'http-multiple-get'....In practice we would not leak much since we reconnect after ~100 requests (with nginx running on hydra.gnu.org.) * guix/scripts/substitute.scm (http-multiple-get): Call 'close-port' before 'connect'. Ludovic Courtès
2015-05-01download: Honor the 'http_proxy' and 'https_proxy' env. vars....Fixes <http://bugs.gnu.org/20402>. Reported by Joshua Randall <jcrandall@alum.mit.edu>. * guix/download.scm (url-fetch): Pass #:leaked-env-vars to 'gexp->derivation'. Ludovic Courtès
2015-05-01derivations: Add #:leaked-env-vars parameter....Suggested by Joshua Randall <jcrandall@alum.mit.edu> in <http://bugs.gnu.org/20402>. * guix/derivations.scm (derivation): Add #:leaked-env-vars parameter. [user+system-env-vars]: Honor it. * guix/gexp.scm (gexp->derivation): Add #:leaked-env-vars and pass it to 'raw-derivation'. * doc/guix.texi (Derivations, G-Expressions): Adjust accordingly. Ludovic Courtès
2015-05-01download: Simplify 'open-connection-for-uri' to support HTTP proxies....Partly fixes <http://bugs.gnu.org/20402>. Reported by Joshua Randall <jcrandall@alum.mit.edu>. * guix/build/download.scm (open-connection-for-uri): Rewrite to be a small wrapper around 'open-socket-for-uri'. This procedure was initially introduced in d14ecda to work around the lack of NSS modules during bootstrap but that has become unnecessary since 0621349, which introduced a bootstrap Guile that uses static NSS modules (from commit d3b5972.) On Guile >= 2.0.10, this allows the 'http_proxy' environment variable to be used. Ludovic Courtès