aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Expand)AuthorAge
* derivations: Introduce 'read-derivation-from-file'.•••This avoids the open/fstat/close syscalls upon a cache hit that we had with the previous idiom: (call-with-input-file file read-derivation) where caching happened in 'read-derivation' itself. * guix/derivations.scm (%read-derivation): Rename to... (read-derivation): ... this. (read-derivation-from-file): New procedure. (derivation-prerequisites, substitution-oracle) (derivation-prerequisites-to-build): (derivation-path->output-path, derivation-path->output-paths): (derivation-path->base16-hash, map-derivation): Use 'read-derivation-from-file' instead of (call-with-input-file … read-derivation). * guix/grafts.scm (item->deriver): Likewise. * guix/scripts/build.scm (log-url, options->things-to-build): Likewise. * guix/scripts/graph.scm (file->derivation): Remove. (derivation-dependencies, %derivation-node-type): Use 'read-derivation-from-file' instead. * guix/scripts/offload.scm (guix-offload): Likewise. * guix/scripts/perform-download.scm (guix-perform-download): Likewise. * guix/scripts/publish.scm (load-derivation): Remove. (narinfo-string): Use 'read-derivation-from-file'. Ludovic Courtès2017-06-12
* store: Speed up 'add-to-store'.•••* guix/store.scm (add-to-store): Remove 'lstat' call. Ludovic Courtès2017-06-12
* bootloader: Rename boot-name to bootloader-name.•••* gnu/system (<boot-parameters>)[boot-name]: Rename field to... [bootloader-name]: ... this. Adjust users. * gnu/scripts/system.scm: Adjust accordingly. Mathieu Othacehe2017-06-10
* guix: git: Add new module.•••* guix/git.scm: New file. * configure.ac: Check for (guile git). * Makefile.am: Build guix/git.scm if (guile git) is available. Mathieu Othacehe2017-06-09
* build-system: emacs: Factorize include/exclude default arguments.•••The `install' phase of the emacs-build-system contained default arguments duplicated from the host side `emacs-build' procedure. This change factorizes them so that: 1. They are not duplicated. 2. They can be reused and extended easily when defining emacs packages. * guix/build/emacs-build-system.scm (%default-include, %default-exclude): New variables. (install): Use %default-include and %default-exclude as default arguments. * guix/build-system/emacs.scm: Use and re-export %default-include, %default-exclude from (guix build emacs-build-system). (emacs-build): Use %default-include and %default-exclude as default arguments. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net> Maxim Cournoyer2017-06-08
* import: cpan: Update CPAN importer to use MetaCPAN v1 API.•••* guix/import/cpan.scm (module->dist-name, cpan-fetch): Use metacpan.org URLs. * tests/cpan.scm ("cpan->guix-package"): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org> James Richardson2017-06-07
* ssh: Improve error reporting when 'send-files' fails.•••Fixes <http://bugs.gnu.org/26972>. * guix/ssh.scm (store-import-channel)[import]: Add 'consume-input' procedure. Wrap body in 'catch' and 'guard'. Use 'open-remote-pipe' with OPEN_BOTH instead of 'open-remote-output-pipe'. (send-files): After the 'channel-send-eof' call, do (read port). Interpret the result sexp and raise an error condition if needed. Ludovic Courtès2017-06-04
* scripts: refresh: Add -m manifest option.•••* guix/scripts/refresh.scm (%options): Add -m option, (show-help): document it, (packages-from-manifest): new procedure, (guix-refresh): use packages from manifest if specified, otherwise keep the previous behaviour. * doc/guix.texi (Invoking guix refresh): document new option. Mathieu Othacehe2017-06-04
* licenses: Add CC-BY 4.0.•••* guix/licenses.scm (cc-by4.0): New variable. Marius Bakke2017-06-03
* substitute: Do not display the installed size.•••* guix/scripts/substitute.scm (process-substitution): Do not show the installed size in the "Downloading" message. Ludovic Courtès2017-06-02
* ui: 'show-what-to-build' warns when we don't have enough disk space.•••* guix/ui.scm (check-available-space): New procedure. (show-what-to-build): Compute 'installed-size' and call 'check-available-space'. Ludovic Courtès2017-06-02
* syscalls: Provide 'free-disk-space'.•••* guix/build/syscalls.scm (free-disk-space): New procedure. * guix/scripts/gc.scm (guix-gc)[ensure-free-space]: Use it instead of 'statfs'. Ludovic Courtès2017-06-02
* ui: 'show-what-to-build' displays how much will be downloaded.•••* guix/ui.scm (show-what-to-build)[download-size] [display-download-size?]: New variables. Add cases for when DISPLAY-DOWNLOAD-SIZE? is true. Ludovic Courtès2017-06-02
* derivations: 'derivation-prerequisites-to-build' returns <substitutable>.•••* guix/derivations.scm (derivation-prerequisites-to-build): Rename #:substitutable? to #:substitutable-info. [derivation-substitutable?]: Rename to... [derivation-substitutable-info]: ... this. Return a list of <substitutable>. Second return value is now a list of <substitutable> instead of a list of strings. * guix/ui.scm (show-what-to-build)[substitutable?]: Rename to... [substitutable-info]: ... this. Adjust to new 'derivation-prerequisites-to-build' return value type. * tests/derivations.scm ("derivation-prerequisites-to-build and substitutes"): Adjust. ("derivation-prerequisites-to-build and substitutes, local build"): Likewise. Ludovic Courtès2017-06-02
* derivations: 'substitution-oracle' returns a <substitutable>.•••* guix/derivations.scm (substitution-oracle): Use 'substitution-path-info' instead of 'substitution-paths'. Turn SUBST into a vhash from path to <substitutable>. Change the returned procedure to provide a <substitutable> instead of a Boolean. * tests/derivations.scm ("substitution-oracle and #:substitute? #f"): Mock 'substitutable-path-info' instead of 'substitutable-paths'. Ludovic Courtès2017-06-02
* build: font: Support font collection files.•••* guix/build/font-build-system.scm (install): Support TrueType Collection (TTC) and OpenType Collection (OTC) files. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Alex Griffin2017-05-31
* git-download: Fix 'git-predicate' to use absolute paths.•••git ls-files will return paths relative to the repository directory. This commit prepends the repository directory to those paths when calling lstat, such that 'git-predicate' works if the current working directory is not the repository directory. * guix/git-download.scm (git-predicate): Prepend repository directory to the file path when calling lstat. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Christopher Baines2017-05-30
* download: Work around GnuTLS bug with UTF-8 certificate file names.•••Reported by Mark H Weaver <mhw@netris.org> at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26948#17>. * guix/build/download.scm (set-certificate-credentials-x509-trust-file!*): New procedure. (make-credendials-with-ca-trust-files): Use it instead of 'set-certificate-credentials-x509-trust-file!'. Ludovic Courtès2017-05-30
* scripts: Set thread names.•••This allows 'guix publish' threads as well as 'guix substitute' and 'guix offload' processes to be properly labeled in 'top', 'pstree', etc. * guix/workers.scm (worker-thunk): Add #:thread-name parameter and honor it. (make-pool): Likewise. * guix/scripts/publish.scm (http-write): Add calls to 'set-thread-name' in bodies of 'call-with-new-thread'. (guix-publish): Call 'set-thread-name'. Pass #:thread-name to 'make-pool'. * guix/scripts/offload.scm (guix-offload): Call 'set-thread-name'. * guix/scripts/substitute.scm (guix-substitute): Likewise. Ludovic Courtès2017-05-28
* syscalls: Add 'thread-name' and 'set-thread-name'.•••* guix/build/syscalls.scm (PR_SET_NAME, PR_GET_NAME) (%max-thread-name-length): New variables. (%prctl, set-thread-name, thread-name): New procedures. * tests/syscalls.scm ("set-thread-name"): New test. Ludovic Courtès2017-05-28
* build-system: Add 'font-build-system'.•••* Makefile.am (MODULES): Add 'guix/build-system/font.scm' and 'guix/build/font-build-system.scm'. * guix/build-system/font.scm: New file. * guix/build/font-build-system.scm: New file. * doc/guix.texi (Build Systems): Add 'font-build-system'. Arun Isaac2017-05-28
* build-system: gnu: Fix cross-gcc call.•••This is a follow-up to 7b3318e34f4e2743254a88b908859901db960e9a. * guix/build-system/gnu.scm (standard-cross-packages): Use keyword arguments in cross-gcc call. Ricardo Wurmus2017-05-25
* pull: Catch '&missing-dependency-error' raised by 'source-module-closure'.•••Fixes <http://bugs.gnu.org/26987>. Reported by Mathieu Othacehe <m.othacehe@gmail.com>. * guix/build/pull.scm (depends-on-guile-ssh?): Remove. (has-all-its-dependencies?): New procedure. (build-guix): Use it to filter source files. Ludovic Courtès2017-05-25
* modules: Raise an error when a dependency could not be found.•••* guix/modules.scm (&missing-dependency-error): New error condition. (source-module-dependencies): Raise it when 'search-path' returns #f. * tests/modules.scm ("&missing-dependency-error"): New test. Ludovic Courtès2017-05-25
* base64: Turn into a regular Guile module.•••* guix/base64.scm: Replace 'library' form with 'define-module'. Ludovic Courtès2017-05-25
* publish: Do not bake the same item several times.•••Before this patch, there was a possibility that we'd queue several baking tasks for the same item. The first one would bake the item but subsequent tasks wouldn't check whether the item had been baked in the meantime and would re-bake it. * guix/scripts/publish.scm (render-narinfo/cached): Don't call 'bake-narinfo+nar' when (file-exists? cached). Ludovic Courtès2017-05-24
* guix package: Swallow EPIPE upon 'guix package --list-generations'.•••Fixes <http://bugs.gnu.org/27017>. Reported by Alex Vong <alexvong1995@gmail.com>. * guix/scripts/package.scm (process-query) <'list-generations>: Wrap body in 'leave-on-EPIPE'. Ludovic Courtès2017-05-23
* packages: Add aarch64-linux to %supported-systems.•••* guix/packages.scm (%supported-systems): Add aarch64-linux. (%hydra-supported-systems): Remove aarch64-linux. Efraim Flashner2017-05-23
* build-system: emacs: Install only a subset of files.•••* guix/build/emacs-build-system.scm (install): Install files matching #:include while excluding files matching #:exclude. * guix/build-system/emacs.scm (emacs-build): Add keyword arguments #:include and #:exclude. Arun Isaac2017-05-23
* build: emacs: Fix `store-file->elisp-source-file'.•••This prevents a ".el.el" extension for source files with no version number in their file name. * guix/build/emacs-build-system.scm (store-file->elisp-source-file): Remove ".el" extension from file name before splitting to name and version. Arun Isaac2017-05-23
* guix: lint: Slightly simplify `check-source-file-name'.•••* guix/scripts/lint.scm (check-source-file-name): Implement file name matching with regular expression. Arun Isaac2017-05-23
* gnu: lint: Fix typo.•••* guix/scripts/lint.scm (check-source-file-name): Fix wrong return value in docstring. Arun Isaac2017-05-23
* Merge branch 'version-0.13.0'Marius Bakke2017-05-22
|\
| * guix system: Don't warn about old distros for "guix system init".•••* guix/scripts/system.scm (process-action): Don't call 'warn-about-old-distro' when ACTION is 'init' or 'build'. Ludovic Courtès2017-05-21
| * guix system: Increase image size for 'guix system vm'.•••This is a followup to 9a1bfe764859365b6726f168da95b88a2d22403b. * guix/scripts/system.scm (system-derivation-for-action): Add 40MiB to the default size for 'vm'. Ludovic Courtès2017-05-21
| * pack: Use 'guile2.0-json' when building with Guile 2.0.•••Fixes <http://bugs.gnu.org/27005>. Reported by Pjotr Prins <pjotr.public12@thebird.nl>. Fixes a regression introduced in commit 2252f087d4bd450ab41a71379320467887edfc0f. * guix/scripts/pack.scm (docker-image)[json]: New variable. [build]: Use it. Ludovic Courtès2017-05-20
| * modules: Add more source-less modules.•••* guix/modules.scm (%source-less-modules): New variable. (source-module-dependencies): Use it. Ludovic Courtès2017-05-20
| * publish: Fix narinfo rendering for already-compressed items.•••Fixes <http://bugs.gnu.org/26975>. Reported by Mark H Weaver <mhw@netris.org>. * guix/scripts/publish.scm (bake-narinfo+nar): Pass #f as the 2nd argument to 'stat' and properly handle #f. * tests/publish.scm (wait-for-file): New procedure. ("with cache"): Remove 'wait-for-file' procedure. ("with cache, uncompressed"): New test. Ludovic Courtès2017-05-20
| * union: Gracefully handle dangling symlinks in the input.•••Fixes <http://bugs.gnu.org/26949>. Reported by Pjotr Prins <pjotr.public12@thebird.nl>. * guix/build/union.scm (file-is-directory?): Return #f when FILE does not exist or is a dangling symlink. (file=?): Pass #f as a second argument to 'stat'; return #f when both ST1 or ST2 is #f. * tests/profiles.scm (test-equalm): New macro. ("union vs. dangling symlink"): New test. Ludovic Courtès2017-05-20
| * profiles: Add elapsed time to manual-database hook to output message.•••* guix/profiles.scm (manual-database): Add elapsed time to manual-database hook to output message. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer2017-05-20
* | download: Prune the ImageMagick mirror list.•••These sites' TLS certificates are invalid. * guix/download.scm (%mirrors) <imagemagick>: Remove mirrors-{au,ru,uk}.go-parts.com. Leo Famulari2017-05-20
* | pack: Use 'guile2.0-json' when building with Guile 2.0.•••Fixes <http://bugs.gnu.org/27005>. Reported by Pjotr Prins <pjotr.public12@thebird.nl>. Fixes a regression introduced in commit 2252f087d4bd450ab41a71379320467887edfc0f. * guix/scripts/pack.scm (docker-image)[json]: New variable. [build]: Use it. Ludovic Courtès2017-05-20
* | modules: Add more source-less modules.•••* guix/modules.scm (%source-less-modules): New variable. (source-module-dependencies): Use it. Ludovic Courtès2017-05-19
* | publish: Fix narinfo rendering for already-compressed items.•••Fixes <http://bugs.gnu.org/26975>. Reported by Mark H Weaver <mhw@netris.org>. * guix/scripts/publish.scm (bake-narinfo+nar): Pass #f as the 2nd argument to 'stat' and properly handle #f. * tests/publish.scm (wait-for-file): New procedure. ("with cache"): Remove 'wait-for-file' procedure. ("with cache, uncompressed"): New test. Ludovic Courtès2017-05-18
* | lint: inputs-should-be-native: Add "cmake".•••Suggested by Nicolas Goaziou <mail@nicolasgoaziou.fr>. * guix/scripts/lint.scm (check-inputs-should-be-native)[input-names]: Add "cmake". Ludovic Courtès2017-05-18
* | union: Gracefully handle dangling symlinks in the input.•••Fixes <http://bugs.gnu.org/26949>. Reported by Pjotr Prins <pjotr.public12@thebird.nl>. * guix/build/union.scm (file-is-directory?): Return #f when FILE does not exist or is a dangling symlink. (file=?): Pass #f as a second argument to 'stat'; return #f when both ST1 or ST2 is #f. * tests/profiles.scm (test-equalm): New macro. ("union vs. dangling symlink"): New test. Ludovic Courtès2017-05-18
* | profiles: Add elapsed time to manual-database hook to output message.•••* guix/profiles.scm (manual-database): Add elapsed time to manual-database hook to output message. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxim Cournoyer2017-05-16
* | import cran: Check if pkg-config is needed.•••* guix/import/cran.scm (needs-pkg-config?): New procedure. (description->package): Use it. Ricardo Wurmus2017-05-16
* | import cran: Refactor "needs-zlib?".•••* guix/import/cran.scm (tarball-files-match-pattern?): New procedure. (needs-zlib?): Implement in terms of "tarball-files-match-pattern?". Ricardo Wurmus2017-05-16
* | import cran: Export package predicates.•••* guix/import/cran.scm (cran-package?, bioconductor-package?, bioconductor-data-package?, bioconductor-experiment-package?): Export procedures. Ricardo Wurmus2017-05-16