summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2016-04-02graph: Edges are colored based on their source node.Ludovic Courtès
* guix/graph.scm (%colors): New variable. (pop-color): New procedure. (emit-edge): Use it.
2016-04-01cvs: Disable compression.Ludovic Courtès
Reported by Jan Nieuwenhuizen <janneke@gnu.org>. * guix/build/cvs.scm (cvs-fetch): Use -z0.
2016-04-01cvs: Allow checkouts when /tmp is a different device.Jan Nieuwenhuizen
* guix/build/cvs.scm (cvs-fetch): Use 'copy-recursively' instead of 'rename-file'. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2016-04-01profiles: Use the right 'package-name->name+version'.Ludovic Courtès
* guix/profiles.scm: Use 'package-name->name+version' from (guix build utils). Fixes 'find-among-store-items' in 'gtk-icon-themes'.
2016-03-31ant-build-system: Keep jar manifest.Ricardo Wurmus
* guix/build/ant-build-system.scm (default-build.xml): Generate default manifest. (strip-jar-timestamps): Repack jar archive with zip.
2016-03-31build-system/ant: Add zip.Ricardo Wurmus
* guix/build-system/ant.scm (default-zip): New variable. (lower): Add zip to native inputs.
2016-03-31build-system/r: Support "substitutable?" flag.Ricardo Wurmus
* guix/build-system/r.scm (r-build): Support the "substitutable?" flag.
2016-03-31licenses: Add the nmap license.Leo Famulari
* guix/licenses.scm (nmap): New variable.
2016-03-30import: Add Hackage updater.Eric Bavier
* guix/import/hackage.scm (guix-package->hackage-name, hackage-package?) (latest-release): New procedures. (%hackage-updater): New variable. * guix/scripts/refresh.scm (%updaters): Add it. * doc/guix.texi (Invoking guix refresh): Mention it.
2016-03-30import: hackage: Silence download output.Eric Bavier
* guix/import/hackage.scm (hackage-fetch): Use http-fetch to avoid progress output from url-fetch.
2016-03-30import: hackage: Factorize url synthesis.Eric Bavier
* guix/import/hackage.scm (hackage-source-url, hackage-cabal-url): New procedures. (hackage-fetch, hackage-module->sexp): Use them.
2016-03-30ui: Add comment on the translation of "current".Ludovic Courtès
* guix/ui.scm (display-generation): Add "TRANSLATORS" comment.
2016-03-30environment: Set a default value for PS1.David Thompson
* guix/scripts/environment.scm (launch-environment/container): Set PS1 during container initialization.
2016-03-28guix system: Warn against missing 'guix pull'.Ludovic Courtès
Suggested by Leo Famulari and others. * guix/scripts/system.scm (maybe-suggest-running-guix-pull): New procedure. (perform-action): Call it when ACTION is 'reconfigure.
2016-03-28store: Prepend mirror.hydra.gnu.org to %DEFAULT-SUBSTITUTE-URLS.Ludovic Courtès
This allows GuixSD to default to the right list of URLs, with mirror.hydra.gnu.org coming first. Reported by Chris Marusich <cmmarusich@gmail.com>. * guix/store.scm (%default-substitute-urls): Prepend "mirror.hydra.gnu.org."
2016-03-27environment: Properly handle SIGINT.David Thompson
Switching to execlp means that the process spawned in a container is PID 1, which obsoleted one of the 'guix environment --container' tests because the init process can't be killed in the usual manner. * guix/scripts/environment.scm (launch-environment/fork): New procedure. (launch-environment): Switch from system* to execlp. Add handler for SIGINT. (guix-environment): Use launch-environment/fork. * tests/guix-environment-container.sh: Replace abnormal exit test with one that works now that the spawned process is PID 1.
2016-03-26environment: container: Create dummy home directory and /etc/passwd.David Thompson
* guix/scripts/environment.scm (launch-environment/container): Change $HOME to the current user's home directory instead of /homeless-shelter. Create a dummy /etc/passwd with a single entry for the current user. * doc/guix.texi ("invoking guix environment"): Add a note about the dummy home directory and /etc/passwd.
2016-03-25syscalls: <interface> printer correctly handles lack of sockaddr.Ludovic Courtès
Reported by Danny Milosavljevic <dannym@scratchpost.org> in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22612#16>. * guix/build/syscalls.scm (write-interface): Check whether ADDRESS is true.
2016-03-23guix build: '--with-source' correctly matches versioned file names.Ludovic Courtès
* guix/scripts/build.scm: Use the right 'package-name->name+version' procedure. Fixes a regression introduced in 1b846da8c372bee78851439fd9e72b2499115e5a. * tests/scripts-build.scm ("options->transformation, with-source, with version"): New test.
2016-03-23derivations: Raise an error when a module file is not found.Ludovic Courtès
Suggested by Jookia. * guix/derivations.scm (&file-search-error): New error condition. (search-path*): Raise it when 'search-path' returns #f. * guix/gexp.scm (search-path*): Remove. * guix/ui.scm (call-with-error-handling): Add case for 'file-search-error?'. * tests/derivations.scm ("build-expression->derivation and invalid module name"): New test.
2016-03-23derivations: Add 'module->source-file-name'.Ludovic Courtès
* guix/derivations.scm (module->source-file-name): New procedure. (%imported-modules): Use it. * guix/gexp.scm (imported-modules): Likewise.
2016-03-23substitute: Gracefully handle TLS errors.Ludovic Courtès
* guix/scripts/substitute.scm (with-networking): Use 'match-lambda*' and add case for 'gnutls-error'.
2016-03-22import: cran: Accept single URL in addition to single URL.Ricardo Wurmus
* guix/import/cran.scm (package->upstream-name): Match single URL in addition to list of URLs.
2016-03-20build-system/gnu: Add #:disallowed-references.Ludovic Courtès
* guix/build-system/gnu.scm (gnu-build): Add #:disallowed-references and honor it. (gnu-cross-build): Likewise.
2016-03-20gexp: Add #:disallowed-references.Ludovic Courtès
* guix/gexp.scm (gexp->derivation): Add #:disallowed-references and honor it. * tests/gexp.scm ("gexp->derivation #:disallowed-references, allowed") ("gexp->derivation #:disallowed-references"): New tests. * doc/guix.texi (G-Expressions): Adjust accordingly.
2016-03-20derivations: Add #:disallowed-references.Ludovic Courtès
* guix/derivations.scm (derivation): Add #:disallowed-references. [user+system-env-vars]: Honor it. (build-expression->derivation): Likewise. * tests/derivations.scm ("derivation #:disallowed-references, ok") ("derivation #:disallowed-references, not ok"): New tests. * doc/guix.texi (Derivations): Adjust accordingly.
2016-03-19import: pypi: Emit 'pypi-uri' only when it yields the right URL.Ludovic Courtès
Fixes <http://bugs.gnu.org/23062>. Reported by Danny Milosavljevic <dannym@scratchpost.org>. * guix/import/pypi.scm (make-pypi-sexp): Check whether 'pypi-uri' returns SOURCE-URL and fall back to the full URL otherwise. * tests/pypi.scm ("pypi->guix-package"): Adjust expected URI accordingly. Co-authored-by: Danny Milosavljevic <dannym@scratchpost.org>
2016-03-17substitute: Do not leak file descriptors for TLS connections.Ludovic Courtès
Partially fixes <http://bugs.gnu.org/20145>. * guix/scripts/substitute.scm (fetch, download-cache-info): (http-multiple-get, fetch-narinfos, progress-report-port): Use 'close-connection' instead of 'close-port'.
2016-03-17substitute: Cache transient HTTP errors for 10mn.Ludovic Courtès
* guix/scripts/substitute.scm (fetch-narinfos)[handle-narinfo-response]: Cache transient errors for 10mn. (%narinfo-transient-error-ttl): New variable.
2016-03-17lint: Do not leak file descriptors for TLS connections.Ludovic Courtès
Partially fixes <http://bugs.gnu.org/20145>. * guix/scripts/lint.scm (probe-uri): Use 'close-connection' instead of 'close-port'.
2016-03-17download: Add 'close-connection'.Ludovic Courtès
Partially fixes <http://bugs.gnu.org/20145>. * guix/build/download.scm (add-weak-reference): Remove. (%tls-ports): New variable. (register-tls-record-port): New procedure. (tls-wrap): Use it instead of 'add-weak-reference'. (close-connection): New procedure.
2016-03-17substitute: Update progress for responses different from 200/404.Ludovic Courtès
* guix/scripts/substitute.scm (fetch-narinfos)[handle-narinfo-response]: Add missing call to 'update-progress!'.
2016-03-17licenses: Add Apache Software License 1.1.Roel Janssen
* guix/licenses.scm (asl1.1): New variables. Signed-off-by: Leo Famulari <leo@famulari.name>
2016-03-16substitute: Honor client-provided empty URL list.Ludovic Courtès
Before that, 'guix build --substitute-urls=""' would lead to using the daemon's own URL list instead of the empty list. The 'or*' hack, which is to blame, had become unnecessary since commit fb4bf72be3fbc23bca35ba4b842b7e1517ef0e3a. Reported by Mark H Weaver <mhw@netris.org>. * guix/scripts/substitute.scm (or*): Remove. (%cache-urls): Use 'or' instead of 'or*'. * tests/store.scm ("substitute query, alternating URLs"): Add test with empty URL list. * doc/guix.texi (Common Build Options): Mention the empty string.
2016-03-16substitute: Honor the 'max-age' of 'Cache-Control' headers.Ludovic Courtès
This allows substitute servers to tell 'guix substitute' how long they can cache narinfo lookups. * guix/scripts/substitute.scm (cache-narinfo!): Add 'ttl' parameter. [cache-entry]: Honor it. (fetch-narinfos)[handle-narinfo-response]: Check the 'Cache-Control' header of RESPONSE and pass its 'max-age' value to 'cache-narinfo!'.
2016-03-16substitute: Make room for a 'ttl' field in cached entries.Ludovic Courtès
* guix/scripts/substitute.scm (cached-narinfo): Expect 'narinfo' sexp version 2 with a 'ttl' field. (cache-narinfo!)[cache-entry]: Produce 'narinfo' sexp version 2 with a 'ttl' field. (remove-expired-cached-narinfos)[expired?]: Read 'narinfo' sexp version 2.
2016-03-16build: Default to "https://mirror.hydra.gnu.org/" for substitutes.Ludovic Courtès
* config-daemon.ac: Check for (gnutls) and define 'GUIX_SUBSTITUTE_URLS'. * nix/nix-daemon/guix-daemon.cc (main): Use GUIX_SUBSTITUTE_URLS. * guix/store.scm (%default-substitute-urls): Use 'https' when (gnutls) is available. * doc/guix.texi (Binary Installation): Mention mirrors (Invoking guix-daemon): Mention mirror.hydra.gnu.org. (Substitutes): Mention mirrors. (Invoking guix archive): Show https URLs.
2016-03-16http-client: No 'setvbuf' for non-file ports.Ludovic Courtès
* guix/http-client.scm (http-fetch): Do not call 'setvbuf' on non-file ports.
2016-03-14grafts: Update the narinfo cache before building a derivation.Ludovic Courtès
* guix/grafts.scm (references-oracle)[references*]: Add call to 'substitution-oracle'.
2016-03-14substitute: Keep the initial connection alive.Ludovic Courtès
The connection used to fetch /nix-cache-info is now reused for the subsequent narinfo requests. * guix/scripts/substitute.scm (download-cache-info)[download]: Remove. [uri, read-cache-info]: New variables. Rewrite in terms of 'http-fetch' instead of 'fetch'. Return an open port in addition to a <cache-info>. * guix/scripts/substitute.scm (http-multiple-get): Add #:port parameter and honor it. (fetch-narinfos)[do-fetch]: Add 'port' parameter. Adjust to new 'download-cache-info' and 'do-fetch' signatures.
2016-03-14http-client: Add #:keep-alive? parameter.Ludovic Courtès
* guix/http-client.scm (http-fetch): Add #:keep-alive? parameter and pass it to 'http-get' or 'http-get*'.
2016-03-14substitute: Remove dead code.Ludovic Courtès
This parameter became unused with the switch to HTTP pipelining in commit d3a652037ef879f9279bc056c43d15ba7afcbb25. * guix/scripts/substitute.scm (fetch): Remove #:quiet-404? and adjust accordingly.
2016-03-14store: 'references/substitutes' caches its results.Ludovic Courtès
* guix/store.scm (%reference-cache): New variable. (references/substitutes): Use it.
2016-03-14size: Disable grafts.Ludovic Courtès
* guix/scripts/size.scm (guix-size): Parametrize '%graft?'.
2016-03-14build: Add Ant build system.Ricardo Wurmus
* guix/build-system/ant.scm: New file. * guix/build/ant-build-system: New file. * Makefile.am (MODULES): Add new files. * doc/guix.texi (Build Systems): Document ant-build-system.
2016-03-11cve: Read entire CVE databases for the current year and the past year.Ludovic Courtès
The "Modified" database that we were reading is much smaller, but it only shows CVEs modified over the past week. * guix/cve.scm (%now, %current-year, %past-year): New variables. (yearly-feed-uri): New procedure. (%cve-feed-uri, %ttl): Remove. (%current-year-ttl, %past-year-ttl): New variables. (call-with-cve-port): Add 'uri' and 'ttl' parameters and honor them. Add 'setvbuf' call. (current-vulnerabilities)[read-vulnerabilities]: New procedure. Read from both %LAST-YEAR and %CURRENT-YEAR.
2016-03-11cve: Make CPE patch level part of the version string.Ludovic Courtès
* guix/cve.scm (%cpe-package-rx): Adjust to account for :PATCH-LEVEL. (cpe->package-name): Likewise.
2016-03-10substitute: Optimize HTTP pipelining over TLS.Ludovic Courtès
* guix/scripts/substitute.scm (http-multiple-get): Write the requests to a bytevector output port before sending them.
2016-03-10substitute: Add HTTPS support.Ludovic Courtès
Fixes <http://bugs.gnu.org/22937>. Reported by Chris Marusich <cmmarusich@gmail.com>. * guix/scripts/substitute.scm (fetch): Add 'https' alongside 'http'. Use 'open-connection-for-uri' instead of 'open-socket-for-uri'. Call 'setvbuf' only when PORT matches 'file-port?'. (http-multiple-get): Likewise. Change 'base-url' parameter to 'base-uri'. (fetch-narinfos)[do-fetch]: Add 'https' case alongside 'http'. Pass URI instead of URL to 'http-multiple-get'. * doc/guix.texi (Requirements): Move GnuTLS one level higher and mention HTTPS substitutes. (Substitutes): Mention HTTPS and recommend it. Explain why servers are not authenticated. Add "On Trusting Binaries" subsection.
2016-03-09substitute: Error out on unsupported URL schemes.Ludovic Courtès
Reported in <http://bugs.gnu.org/22937> by Chris Marusich <cmmarusich@gmail.com>. * guix/scripts/substitute.scm (fetch): Add 'else' case and call 'leave'.