summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2016-06-15store: Add #:select? parameter to 'add-to-store'.Ludovic Courtès
* guix/store.scm (write-arg): Remove 'file' case. (true): New procedure. (add-to-store): Add #:select? parameter and honor it. Use hand-coded stub instead of 'operation'. (interned-file): Add #:select? parameter and honor it. * doc/guix.texi (The Store Monad): Adjust 'interned-file' documentation accordingly.
2016-06-15packages: The 'source' can be any lowerable object.Ludovic Courtès
* guix/packages.scm (expand-input): Use 'struct?' instead of 'origin?' when matching SOURCE. (package-source-derivation): Use 'lower-object' instead of 'origin->derivation'. * tests/packages.scm ("package-source-derivation, local-file"): New test. * doc/guix.texi (package Reference): Update 'source' documentation accordingly.
2016-06-15packages: 'origin->derivation' expects an origin and nothing else.Ludovic Courtès
* guix/packages.scm (origin->derivation): Rename 'source' parameter to 'origin'. Move cases where SOURCE is a string to... (package-source-derivation): ... here.
2016-06-15packages: Recognize the '.Z' extension.Ludovic Courtès
Reported by thomasd on #guix. * guix/packages.scm (patch-and-repack)[decompression-type]: Add "Z".
2016-06-14import: pypi: read requirements from wheels.Cyril Roelandt
* doc/guix.tex (Invoking guix import): Mention that the pypi importer works better with "unzip". * guix/import/pypi.scm (latest-wheel-release, wheel-url->extracted-directory): New procedures. * tests/pypi.scm (("pypi->guix-package, wheels"): New test.
2016-06-13utils: 'with-atomic-file-output' closes the port upon exception.Ludovic Courtès
Previously it could have left the file descriptor open. * guix/utils.scm (with-atomic-file-output): Call 'close-port' in handler.
2016-06-13syscalls: Use 'syscall->procedure' everywhere.Ludovic Courtès
* guix/build/syscalls.scm (mkdtemp!, setns, %ioctl, network-interfaces): (free-ifaddrs): Use 'syscall->procedure'.
2016-06-13utils: 'with-atomic-file-output' calls 'fdatasync'.Ludovic Courtès
Suggested by Danny Milosavljevic <dannym@scratchpost.org> at <https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00456.html>. * guix/build/syscalls.scm (fdatasync): New procedure. * guix/utils.scm (with-atomic-file-output): Use it. Use 'close-port' instead of 'close'.
2016-06-12serialization: Add #:select? parameter to 'write-file'.Ludovic Courtès
* guix/serialization.scm (write-file): Add #:select? parameter and honor it. * tests/nar.scm ("write-file #:select? + restore-file"): New test.
2016-06-12profiles: Make sure hook derivations fail upon error.Ludovic Courtès
Reported at <https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00368.html>. * guix/profiles.scm (info-dir-file)[build]: Add explicit call to 'exit'. * guix/profiles.scm (ghc-package-cache-file)[build]: Likewise. * guix/profiles.scm (xdg-desktop-database)[build]: Likewise. * guix/profiles.scm (xdg-mime-database)[build]: Likewise.
2016-06-11profiles: manifest-lookup-package: Correctly handle package entries.宋文武
* guix/profiles.scm (manifest-lookup-package): Consider the package entry in addition to its 'package-transitive-inputs'.
2016-06-11profiles: xdg-mime-database: Union the "share/mime/packages" directory.宋文武
* guix/profiles.scm (xdg-mime-database): Call 'union-build' for the "share/mime/packages" directory of inputs.
2016-06-09publish: Add '--ttl'.Ludovic Courtès
* guix/scripts/publish.scm (show-help, %options): Add --ttl. (render-narinfo): Add #:ttl and honor it. (make-request-handler): Add #:narinfo-ttl and honor it. (run-publish-server): Likewise. (guix-publish): Honor --ttl, pass it to 'run-publish-server'.
2016-06-09ui: 'string->duration' supports hours and seconds.Ludovic Courtès
* guix/ui.scm (string->duration): Add seconds and hours. * tests/ui.scm ("duration, 1 second"): New test.
2016-06-08publish: Encore URIs that appear in narinfos.Ludovic Courtès
Fixes <http://bugs.gnu.org/21888>. Reported by iyzsong@member.fsf.org (宋文武). * guix/scripts/publish.scm (narinfo-string): Use 'encode-and-join-uri-path' instead of 'string-append' to compute URL. * tests/publish.scm ("/*.narinfo with properly encoded '+' sign"): ("/nar/ with properly encoded '+' sign"): New tests.
2016-06-08gnu-maintenance: Replace 'find-packages' with 'find-package' (singular).Ludovic Courtès
Fixes <http://bugs.gnu.org/23718>. Reported by Efraim Flashner <efraim@flashner.co.il>. * guix/gnu-maintenance.scm (find-packages): Remove. (find-package): New procedure. * guix/import/gnu.scm (gnu->guix-package): Use 'find-package' instead of 'find-packages' and adjust accordingly.
2016-06-06bournish: Allow compilation of multiple expressions.Ludovic Courtès
* guix/build/bournish.scm (%bournish-language): Add a joiner to SCHEME. Compile only to Scheme. * tests/bournish.scm: New file. * Makefile.am (SCM_TESTS): Add it.
2016-06-06bournish: Handle EOF in the reader.Ludovic Courtès
* guix/build/bournish.scm (read-bournish): Add case for EOF.
2016-06-05profiles: 'profile-derivation' now honors #:system.Ludovic Courtès
Fixes <http://bugs.gnu.org/23682>. Reported by Ander GM <anthk@openmailbox.org>. * guix/profiles.scm (profile-derivation): Pass #:system to 'gexp->derivation'. * tests/guix-environment.sh: Add 'guix environment -s' test.
2016-05-31import: github: Tiny cosmetic change.Ludovic Courtès
* guix/import/github.scm (find-extension): Use a one-argument lambda.
2016-05-31import github: Add to extension list.Efraim Flashner
* guix/import/github.scm (find-extension): Add '.tgz' extension.
2016-05-31offload: Use (guix build syscalls).Ludovic Courtès
This is a followup to 4e0ea3eb288c2143b44bf324c64047762c72d3b3. * guix/scripts/offload.scm: Use (guix build syscalls).
2016-05-31download: Update CPAN mirrors.Efraim Flashner
* guix/download.scm (mirrors)[cpan]: Add to mirror list.
2016-05-30build: emacs: Handle sources that are a single elisp file.David Thompson
* guix/build/emacs-build-system.scm (gnu:unpack) (store-file->elisp-source-file, unpack): New procedures. (%standard-phases): Use the new unpack procedure.
2016-05-30download: Update Sourceforge mirrors.Efraim Flashner
* guix/download.scm (mirrors)[sourceforge]: Update mirror list.
2016-05-28cve: Use a more compact format for the list of package/versions.Ludovic Courtès
On a warm cache, "guix lint -c cve vorbis-tools" goes down from 6.5s to 2.4s. * guix/cve.scm (cpe->package-name): Change to return two values instead of a pair. (cpe->product-alist): New procedure. (%parse-vulnerability-feed): Use it instead of 'filter-map'. (fetch-vulnerabilities): Bump sexp format version to 1. (vulnerabilities->lookup-proc): Adjust accordingly. When #:version is omitted, return a list of vulnerabilities instead of a list of version/vulnerability pairs. * tests/cve.scm (%expected-vulnerabilities) ("vulnerabilities->lookup-proc): Adjust accordingly.
2016-05-27guix package: Inherit the transformed version number.Ludovic Courtès
Previously, 'guix package -i emacs --with-source=./emacs-42.tar.gz' would fail to use "42" as the version number in the manifest entry. Reported by piyo on #guix. * guix/scripts/package.scm (process-actions)[transform-entry]: Inherit the version number from the result of TRANSFORM when it's a package. * tests/guix-package.sh: Test it.
2016-05-27download: Default to a 10s connection establishment timeout.Ludovic Courtès
* guix/build/download.scm (ftp-fetch): Add #:timeout and pass it to 'ftp-open'. (http-fetch): Add #:timeout and pass it to 'open-connection-for-uri' and in recursive calls. (url-fetch): Add #:timeout and pass it to 'http-fetch' and 'ftp-fetch'.
2016-05-27download: Use URI objects for content-addressed mirrors.Ludovic Courtès
This fixes a bug whereby 'http-fetch' would be passed a string instead of a URI object. * guix/build/download.scm (url-fetch): Rename 'content-addressed-urls' to 'content-addressed-uris', and call 'string->uri'.
2016-05-26cve: Include the 3 previous years of vulnerabilities.Ludovic Courtès
* guix/cve.scm (fetch-vulnerabilities): Add 'format' call. (current-vulnerabilities): Include the 3 previous years.
2016-05-26substitute: Internationalize the "Downloading" message.Ludovic Courtès
* guix/scripts/substitute.scm (process-substitution): I18n "Downloading" message.
2016-05-25grafts: Create only one grafted variant of each derivation.Ludovic Courtès
Currently, with several grafts applicable to Inkscape, this makes: guix gc -R $(guix build inkscape -d) | wc -l go from 2376 to 2266 (4.6%). * guix/grafts.scm (cumulative-grafts): Pass 'graft-derivation/shallow' the subset of GRAFTS that applies to DRV.
2016-05-25guix: ruby-build-system: Extract gemspec during 'extract-gemspec'.Ben Woodcroft
* guix/build/ruby-build-system.scm (build): Move extraction from here ... (extract-gemspec): ... to here. New variable. (first-gemspec): New variable. (%standard-phases): Add 'extract-gemspec' phase.
2016-05-24graft: Fail when one of the threads raises an exception.Ludovic Courtès
Fixes <http://bugs.gnu.org/23581>. * guix/build/graft.scm (exit-on-exception): New procedure. (rewrite-directory): Use it to wrap REWRITE-LEAF.
2016-05-24size: Pass 'requisites' a list of items.Ludovic Courtès
* guix/scripts/size.scm (substitutable-requisites): Change 'item' to 'items' and adjust. (requisites*): Likewise. (mappend-map): Remove. (store-profile): Adjust accordingly.
2016-05-24store: 'requisites' now takes a list of store items.Ludovic Courtès
* guix/store.scm (fold-path): Change 'path' to 'paths' and adjust body accordingly. (requisites): Likewise. * guix/scripts/environment.scm (inputs->requisites): Adjust user accordingly. * guix/scripts/size.scm (requisites*): Likewise. * guix/scripts/gc.scm (guix-gc): Likewise. * tests/store.scm ("requisites"): Likewise.
2016-05-24size: Accept several arguments.Ludovic Courtès
* guix/scripts/size.scm (display-profile): Display WHOLE at then end. (guix-size): Accept several FILES. * doc/guix.texi (Invoking guix size): Add example with several items.
2016-05-24size: 'store-profile' takes a list of store items.Ludovic Courtès
* guix/scripts/size.scm (mappend-map): New procedure. (store-profile): Change 'item' to 'items' and adjust code accordingly. (guix-size): Update caller. * tests/size.scm ("store-profile"): Likewise.
2016-05-24ui: Let users report translation bugs.Mathieu Lirzin
* guix/ui.scm (show-bug-report-information): Add a comment for translators.
2016-05-24build-system/emacs: Use 'emacs-minimal' by default.Alex Kost
* guix/build-system/emacs.scm (default-emacs): Use 'emacs-minimal'. * gnu/packages/emacs.scm (emacs-auctex): Use 'emacs'.
2016-05-24graph: Add 'node-reachable-count'.Ludovic Courtès
* guix/graph.scm (node-reachable-count): New procedure. * tests/graph.scm ("node-reachable-count"): New test.
2016-05-24graph: Expose 'traverse/depth-first'.Ludovic Courtès
* guix/graph.scm (traverse/depth-first): New procedure, based on code formerly in 'node-transitive-edges'. (node-transitive-edges): Rewrite in terms of it.
2016-05-24refresh: Make 'list-dependents' a monadic procedure.Ludovic Courtès
* guix/scripts/refresh.scm (list-dependents): Remove use of 'with-store' and 'run-with-store'. (guix-refresh): Wrap body in with-store/run-with-store.
2016-05-23union: Compare inode numbers in 'file=?'.Ludovic Courtès
* guix/build/union.scm (file=?): Compare the inode of ST1 and ST2.
2016-05-23cve: Remove now unnecessary HTTP caching.Ludovic Courtès
* guix/cve.scm (call-with-cve-port): Use 'http-fetch' instead of 'http-fetch/cached'.
2016-05-23cve: Keep a summarized sexp in cache instead of the full XML.Ludovic Courtès
This avoids ~20s of XML parsing when running 'guix lint -c cve'. * guix/cve.scm (vulnerability->sexp, sexp->vulnerability) (fetch-vulnerabilities): New procedures. (current-vulnerabilities): Use 'fetch-vulnerabilities'.
2016-05-21grafts: Rename files whose name matches a graft.Ludovic Courtès
Fixes <http://bugs.gnu.org/23132>. Reported by Mark H Weaver <mhw@netris.org>. * guix/build/graft.scm (rename-matching-files): New procedure. (rewrite-directory): Use it. * tests/grafts.scm ("graft-derivation, renaming"): New test.
2016-05-21grafts: Preserve empty directories when grafting.Ludovic Courtès
* guix/build/graft.scm (rewrite-directory)[rewrite-leaf]: Add case for 'directory. Pass #:directories? #t to 'find-files'.
2016-05-21substitute: Gracefully handle invalid store file names.Ludovic Courtès
Before, something like: echo have /gnu/foo | ./test-env guix substitute --query would lead to an ugly backtrace. * guix/scripts/substitute.scm (narinfo-cache-file): Call 'leave' when 'store-hash-part' returns #f.
2016-05-21graph: Allow store file names for 'derivation' and 'references' graphs.Ludovic Courtès
* guix/scripts/graph.scm (%derivation-node-type)[convert]: Add 'derivation-path?' and catch-all clauses. (%reference-node-type)[convert]: Add 'store-path?' and catch-all clauses. (assert-package, nodes-from-package): New procedures. (%package-node-type, %bag-node-type,%bag-with-origins-node-type) (%bag-emerged-node-type): Add 'convert' field (guix-graph): Rename 'packages' to 'items' and allow 'store-path?' arguments. * guix/graph.scm (<node-type>)[convert]: Adjust comment. * doc/guix.texi (Invoking guix graph): Document it.