Age | Commit message (Expand) | Author |
2015-11-26 | lint: Add "cve" checker....Fixes <http://bugs.gnu.org/21289>.
* guix/scripts/lint.scm (package-name->cpe-name, package-vulnerabilities)
(check-vulnerabilities): New procedures.
* guix/scripts/lint.scm (%checkers): Add "cve" checker.
* tests/lint.scm ("cve", "cve: one vulnerability"): New tests.
* doc/guix.texi (Invoking guix lint): Mention it.
| Ludovic Courtès |
2015-11-26 | Add (guix cve)....* guix/cve.scm, tests/cve-sample.xml, tests/cve.scm: New files.
* Makefile.am (MODULES): Add guix/cve.scm.
(SCM_TESTS): Add tests/cve.scm.
(EXTRA_DIST): Add tests/cve-sample.scm.
| Ludovic Courtès |
2015-11-26 | http-client: 'http-fetch' and 'http-fetch/cached' support HTTPS....* guix/http-client.scm (http-fetch): Use 'open-connection-for-uri', to
support HTTPS.
| Ludovic Courtès |
2015-11-26 | import: hackage: Assume current 'ghc' package version....* guix/scripts/import/hackage.scm (%default-options): Do it.
(ghc-default-version): New variable.
| Federico Beffa |
2015-11-26 | import: hackage: Handle CRLF end of line style....* guix/import/hackage.scm (hackage-fetch, hackage->guix-package): Use
'canonical-newline-port'.
| Federico Beffa |
2015-11-26 | utils: Add 'canonical-newline-port'....* guix/utils.scm (canonical-newline-port): New procedure.
* tests/utils.scm ("canonical-newline-port"): New test.
| Federico Beffa |
2015-11-26 | import: hackage: Make parsing of tests and fields more flexible....* guix/import/cabal.scm (is-test): Allow spaces between keyword and
parentheses.
(is-id): Add argument 'port'. Allow spaces between keyword and column.
(lex-word): Adjust call to 'is-id'.
| Federico Beffa |
2015-11-26 | import: hackage: Make it resilient to missing final newline....* guix/import/cabal.scm (peek-next-line-indent): Check for missing final
newline.
| Federico Beffa |
2015-11-26 | import: hackage: Imporve parsing of tests....* guix/import/cabal.scm (lex-word): Add support for tests with no spaces.
(impl): Rewrite.
| Federico Beffa |
2015-11-26 | import: hackage: Add recognition of 'true' and 'false' symbols....* guix/import/cabal.scm (is-true, is-false, lex-true, lex-false): New procedures.
(lex-word): Use them.
(make-cabal-parser): Add TRUE and FALSE tokens.
(eval): Add entries for 'true and 'false symbols.
| Federico Beffa |
2015-11-25 | gexp: Build text derivations locally....* guix/gexp.scm (gexp->file): Pass #:substitutable? #f.
(text-file*): Likewise, and #:local-build? #t.
| Ludovic Courtès |
2015-11-24 | guix package: Reduce startup time by ~50%....As measured with:
time sh -c 'for i in `seq 1 10` ; do guix package --search-paths ; done'
On my machine, when running:
strace -o ,,s guix package --search-paths
the number returned by:
grep -E '^(open|l?stat).*\.go' ,,s | wc -l
drops from 1610 to 837.
* guix/scripts/package.scm: Remove two unnecessary #:use-module forms.
Autoload (gnu packages ...) modules.
| Ludovic Courtès |
2015-11-23 | graph: Add '%bag-with-origins-node-type'....* guix/scripts/graph.scm (bag-node-edges): Remove 'filter' call. Add
case for 'origin'.
(%bag-node-type)[edges]: Add filtering here.
(%bag-with-origins-node-type): New variable.
(%node-types): Add it.
* tests/graph.scm ("bag DAG, including origins"): New test.
* tests/guix-graph.sh: Add 'bag-with-origins'.
* doc/guix.texi (Invoking guix graph): Document it.
| Ludovic Courtès |
2015-11-23 | refresh: Add '--expression'....* guix/scripts/refresh.scm (%options, show-help): Add --expression.
(guix-refresh): Honor it.
* doc/guix.texi (Invoking guix refresh): Document it.
| Ludovic Courtès |
2015-11-23 | guix download: Fail when more than one URL is passed....* guix/scripts/download.scm (guix-download)[parse-option]: Call 'leave'
when passed an extra argument.
* tests/guix-download.sh: Add test.
| Ludovic Courtès |
2015-11-23 | guix download: Gracefully handle missing arguments....Fixes <http://bugs.gnu.org/21991>.
Reported by Jan Synáček <jan.synacek@gmail.com>.
* guix/scripts/download.scm (guix-download): Call 'leave' when OPTS does
not contain an 'argument' key.
| Ludovic Courtès |
2015-11-22 | ftp-client: Default port for 'ftp-open' is now "ftp"....* guix/ftp-client.scm (ftp-open): Change default #:port to "ftp".
* guix/scripts/lint.scm (probe-uri): Remove 'port' parameter to
'ftp-open'.
| Ludovic Courtès |
2015-11-22 | ftp-client: Fix off-by-one when trying addresses in 'ftp-open'....* guix/ftp-client.scm (ftp-open): Change to use 'match' instead of
car/cdr, and fix off-by-one (was '(null? addresses)' instead of
'(null? (cdr addresses))'.)
| Ludovic Courtès |
2015-11-21 | environment: Correctly handle abnormal exits....Fixes <http://bugs.gnu.org/21958>.
* guix/scripts/environment.scm (status->exit-code): New procedure.
(exit/status, primitive-exit/status): Use it.
* tests/guix-environment-container.sh: Add test.
| Ludovic Courtès |
2015-11-21 | refresh: Rewrite '--list-dependent' in terms of (guix graph)....* guix/scripts/refresh.scm (all-packages, list-dependents): New
procedures.
(guix-refresh): Use it.
| Ludovic Courtès |
2015-11-21 | graph: Add procedures to query a node's edges....* guix/graph.scm (%node-edges, node-edges, node-back-edges)
(node-transitive-edges): New procedures.
* tests/graph.scm ("node-edges")
("node-transitive-edges + node-back-edges"): New tests.
| Ludovic Courtès |
2015-11-21 | Add (guix graph)....* guix/scripts/graph.scm (<node-type>, <graph-backend>, emit-prologue)
(emit-epilogue, emit-node, emit-edge, %graphviz-backend, export-graph):
Move to...
* guix/graph.scm: ... here. New file.
* guix/scripts/system.scm, tests/graph.scm: Use it.
* Makefile.am (MODULES): Add it.
| Ludovic Courtès |
2015-11-17 | ftp-client: Restrict to TCP/IP connections....Fixes <http://bugs.gnu.org/21925>.
Regression introduced in 279ec1d.
Reported by Chris Marusich <cmmarusich@gmail.com>.
* guix/ftp-client.scm (ftp-open): Restrict sockets to
SOCK_STREAM/IPPROTO_IP.
| Ludovic Courtès |
2015-11-16 | graft: Graft files in parallel....* guix/build/graft.scm (rewrite-directory): Use 'n-par-for-each' instead
of 'for-each'.
| Ludovic Courtès |
2015-11-16 | graft: Graft files in a deterministic order....* guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Change to take
a single parameter. Add call to 'lstat'. Factorize result of
'destination'.
Use 'find-files' instead of 'file-system-fold'.
| Ludovic Courtès |
2015-11-12 | lint: Have connections time out after 3 seconds....* guix/scripts/lint.scm (probe-uri): Add #:timeout parameter. Pass it
to 'open-connection-for-uri' and 'ftp-open'.
(validate-uri): Pass #:timeout 3 to 'probe-uri'.
| Ludovic Courtès |
2015-11-12 | download: Always use AI_ADDRCONFIG when resolving host names....* guix/build/download.scm (open-socket-for-uri): Always pass
AI_ADDRCONFIG to 'getaddrinfo' as recommended in the fine Guile
manual.
* guix/ftp-client.scm (ftp-open): Ditto.
| Ludovic Courtès |
2015-11-12 | download: Add timeout parameter for connections....* guix/build/download.scm (ensure-uri): New procedure.
(current-http-proxy): New variable.
(open-socket-for-uri): Copy from Guile commit aaea5b2, but add #:timeout
parameter and use 'connect*' instead of 'connect'.
(open-connection-for-uri): Add #:timeout parameter and pass it to
'open-socket-for-uri'.
| Ludovic Courtès |
2015-11-12 | ftp-client: Add timeout parameter to 'ftp-open'....* guix/ftp-client.scm (catch-EINPROGRESS): New macro.
(connect*): New procedure.
(ftp-open): Add #:timeout parameter. Use 'connect*' instead of
'connect' and pass it TIMEOUT.
| Ludovic Courtès |
2015-11-12 | ftp-client: Restrict to TCP connections....* guix/ftp-client.scm (ftp-open): Force SOCK_STREAM as the socket type
to avoid calling 'connect' on a datagram socket.
| Ludovic Courtès |
2015-11-11 | guix gc: Error out when extra arguments are passed....Fixes <http://bugs.gnu.org/21817>.
Reported by Petter Berntsen <petter@mykolab.ch>.
* guix/scripts/gc.scm (guix-gc)[assert-no-extra-arguments]: New
procedure.
Use it for actions 'collect-garbage', 'optimize', and 'verify'.
* tests/guix-gc.sh: Add tests.
| Ludovic Courtès |
2015-11-11 | edit: Honor $VISUAL....Suggested by Andreas Enge <andreas@enge.fr>.
* guix/scripts/edit.scm (%editor): Honor 'VISUAL' before 'EDITOR'.
(show-help): Adjust accordingly.
* doc/guix.texi (Invoking guix edit): Likewise.
| Ludovic Courtès |
2015-11-11 | refresh: Avoid non-literal format string....Reported by Mathieu Lirzin <mthl@gnu.org>.
* guix/scripts/refresh.scm (guix-refresh): Rewrite 'list-dependent?'
report to avoid nested 'N_' calls.
| Ludovic Courtès |
2015-11-11 | ui: 'guix help COMMAND' is like 'guix COMMAND --help'....* guix/ui.scm (run-guix): Add ("help" COMMAND) case.
| Ludovic Courtès |
2015-11-11 | guix package: '--search-paths' can report combined search paths....Partly fixes <http://bugs.gnu.org/20255>.
* guix/scripts/package.scm (search-path-environment-variables): Change
'profile' to 'profiles'; expect it to be a list.
(display-search-paths): Likewise.
(%default-options): Remove 'profile' entry.
(%options) <--profile>: Keep previous values associated with 'profile'
in RESULT.
(guix-package)[process-actions, process-query]: Handle the possible
lack of 'profile' pair in OPTS.
| Ludovic Courtès |
2015-11-08 | refresh: Discard PyPI updater when Guile-JSON is missing....Reported by Sleep_Walker and Mathieu Lirzin <mthl@gnu.org>.
* guix/scripts/refresh.scm (maybe-updater, list-updaters): New macros.
(%updaters): Use 'list-updaters' instead of 'list'. Make
%PYPI-UPDATER conditional.
| Ludovic Courtès |
2015-11-05 | edit: Improve error reporting when $EDITOR is not found....Reported by Benno Evers <benno@bmevers.de>
at <https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00125.html>.
* guix/scripts/edit.scm (guix-edit): Wrap 'execl' call in 'catch'.
Provide more meaningful error message.
| Ludovic Courtès |
2015-11-05 | edit: Lift helper procedure....* guix/scripts/edit.scm (package->location-specification): New
procedure, with code formerly...
(guix-edit): ... here. Use it.
| Ludovic Courtès |
2015-11-04 | import: hackage: Fix invalid use of 'leave'....Reported by Paul van der Walt <paul@denknerd.org>
in <http://bugs.gnu.org/21829>.
* guix/scripts/import/hackage.scm (guix-import-hackage): Add missing
argument in call to 'leave'.
| Ludovic Courtès |
2015-11-04 | build-system/python: 'package-with-python2' preserves source location....* guix/build-system/python.scm (package-with-explicit-python): Add
'location' field.
| Ludovic Courtès |
2015-11-04 | import: pypi: Make downloads silent....* guix/import/pypi.scm (pypi-fetch): Wrap body in
'call-with-output-file' and 'with-error-to-port'.
| Ludovic Courtès |
2015-11-04 | import: pypi: Add missing copyright line....* guix/import/pypi.scm: Add missing copyright line for bab020d.
| Ludovic Courtès |
2015-11-03 | scripts: container: Fix 'exec' command line parsing....* guix/scripts/container/exec.scm (partition-args): Reimplement such
that all args up to and including the PID are returned as the first of
the two values.
| David Thompson |
2015-11-03 | import: pypi: add updater...* guix/import/pypi.scm (guix-package->pypi-name,
latest-release): New procedures.
(%pypi-updater): New variable.
* guix/scripts/refresh.scm (%updaters): Add %PYPI-UPDATER.
* doc/guix.texi (Invoking guix refresh): Mention PyPI
| Cyril Roelandt |
2015-11-03 | import: pypi: Use "pypi-uri" instead of building the URL manually....* guix/import/pypi.scm (make-pypi-sexp): Use "pypi-uri".
* tests/pypi.scm: Update the tests accordingly.
| Cyril Roelandt |
2015-11-03 | guix: Add a "pypi-uri" helper method....* guix/download.scm (mirrors): New "pypi" mirror.
* guix/build-system/python.scm (pypi-uri): New method.
| Cyril Roelandt |
2015-11-03 | scripts: environment: Display friendly container error messages....* guix/scripts/environment.scm (assert-container-features): New
procedure.
(guix-environment): Use it.
| David Thompson |
2015-11-03 | import: gnu: Update to the (guix upstream) API....This is a followup to 0a7c5a0.
* guix/import/gnu.scm (preferred-archive-type): Use
'upstream-source-archive-types' instead of 'gnu-release-archive-types'.
(gnu-package->sexp): Use 'upstream-source-urls' et al. Update call to
'download-tarball'.
(gnu->guix-package): Use <upstream-source> instead of <gnu-release>.
* guix/upstream.scm (upstream-source-archive-types): Export.
| Ludovic Courtès |
2015-11-02 | guix system: Always build grub.cfg for 'init' and 'reconfigure'....Fixes <http://bugs.gnu.org/21068>.
Reported by Germano Gabbianelli <tyrion.mx@gmail.com>
and Mark H Weaver <mhw@netris.org>.
* guix/scripts/system.scm (perform-action): Always add GRUB.CFG to DRVS
for 'init' and 'reconfigure'.
Co-authored-by: Mark H Weaver <mhw@netris.org>
| Ludovic Courtès |
2015-11-02 | services: Add 'system-service-type'....* gnu/services.scm (system-derivation): New procedure.
(system-service-type): New variable.
(boot-script-entry): New procedure.
(boot-service-type): Extend SYSTEM-SERVICE-TYPE.
(etc-entry): New procedure.
(etc-service-type): Extend SYSTEM-SERVICE-TYPE.
(fold-services): Change default #:target-type to SYSTEM-SERVICE-TYPE.
* gnu/system.scm (operating-system-directory-base-entries): New procedure.
(essential-services): Use it. Add an instance of
SYSTEM-SERVICE-TYPE.
(operating-system-boot-script): Pass #:target-type to 'fold-services'.
(operating-system-derivation): Rewrite in terms of 'fold-services'.
* gnu/system/linux-container.scm (system-container): Remove.
(container-script): Use 'operating-system-derivation'.
* guix/scripts/system.scm (export-extension-graph): Replace
BOOT-SERVICE-TYPE by SYSTEM-SERVICE-TYPE.
* doc/images/service-graph.dot: Add 'system' node and edges.
* doc/guix.texi (Service Composition): Mention SYSTEM-SERVICE-TYPE.
(Service Reference): Document it. Update 'fold-services'
documentation.
| Ludovic Courtès |