summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2017-04-20derivations: Avoid string-to-bytevector conversions.Ludovic Courtès
On Guile 2.2.1, this yields a 5% speedup on: guix build libreoffice xmonad certbot -n --no-substitutes --no-build-hook * guix/derivations.scm (derivation->string): Rename to... (derivation->bytevector): ... this. Use 'open-bytevector-output-port' instead of 'call-with-output-string'. (derivation-hash): Remove string-to-bytevector conversion before 'sha256' call. (build-expression->derivation): Use 'add-data-to-store' and an bytevector port instead of a string port for the expression.
2017-04-19publish: Add a handler for / and /index.html.Ludovic Courtès
Suggested by Quiliro <quiliro@riseup.net> in <https://bugs.gnu.org/26567>. * guix/scripts/publish.scm (render-home-page): New procedure. (make-request-handler): Handle it.
2017-04-19gexp: 'gexp-modules' accepts plain Scheme objects.Ludovic Courtès
* guix/gexp.scm (gexp-modules): Return '() when not (gexp? GEXP). * tests/gexp.scm ("gexp-modules and literal Scheme object"): New test.
2017-04-18publish: Remove expired cache entries when '--ttl' is used.Ludovic Courtès
* guix/scripts/publish.scm (narinfo-files): New procedure. (render-narinfo/cached)[delete-file]: New procedure. Add call to 'maybe-remove-expired-cache-entries'. * doc/guix.texi (Invoking guix publish): Document the interation between --cache and --ttl.
2017-04-18Add (guix cache) and use it in (guix scripts substitute).Ludovic Courtès
* guix/cache.scm, tests/cache.scm: New files. * Makefile.am (MODULES, SCM_TESTS): Add them. * guix/scripts/substitute.scm (obsolete?): Remove. (remove-expired-cached-narinfos): Rename to... (cached-narinfo-expiration-time): ... this. Remove the removal part and only keep the expiration time part. (narinfo-cache-directories): Add optional 'directory' parameter and honor it. (maybe-remove-expired-cached-narinfo): Remove. (cached-narinfo-files): New procedure. (guix-substitute): Use 'maybe-remove-expired-cache-entries' instead of 'maybe-remove-expired-cached-narinfo'.
2017-04-18publish: Add '--cache' and '--workers'.Ludovic Courtès
Fixes <http://bugs.gnu.org/26201>. Reported by <dian_cecht@zoho.com>. These options allow nars to be "baked" off-line and cached instead of being compressed on the fly. As a side-effect, this allows us to provide a 'Content-Length' header for nars. * guix/scripts/publish.scm (show-help, %options): Add '--cache' and '--workers'. (%default-options): Add 'workers'. (nar-cache-file, narinfo-cache-file, run-single-baker): New procedures. (single-baker): New macro. (render-narinfo/cached, bake-narinfo+nar) (render-nar/cached): New procedures. (make-request-handler): Add #:cache and #:pool parameters and honor them. (run-publish-server): Likewise. (guix-publish): Honor '--cache' and '--workers'. * tests/publish.scm ("with cache"): New test. * doc/guix.texi (Invoking guix publish): Document it.
2017-04-18publish: Use 'sendfile' when possible.Ludovic Courtès
* guix/scripts/publish.scm (http-write): In the 'application/octet-stream' case, use 'sendfile' when OUTPUT is a file port.
2017-04-18publish: Introduce 'actual-compression'.Ludovic Courtès
* guix/scripts/publish.scm (actual-compression): New procedure. (narinfo-string): Use it.
2017-04-18Add (guix workers).Ludovic Courtès
* guix/workers.scm, tests/workers.scm: New files. * Makefile.am (MODULES, SCM_TESTS): Add them. * .dir-locals.el: Add rule for 'eventually'.
2017-04-17serialization: Remove Guile < 2.0.9 workaround.Ludovic Courtès
* guix/serialization.scm (write-contents): Assume 'sendfile' is always defined.
2017-04-17records: Slight simplification.Ludovic Courtès
* guix/records.scm (make-syntactic-constructor): Simplify 'find' expression.
2017-04-17download: Add netfilter mirror.Marius Bakke
* guix/download.scm (%mirrors): Add mirrors for www.netfilter.org.
2017-04-17scripts: system: Rename --no-grub option to --no-bootloader.Mathieu Othacehe
* guix/scripts/system.scm (%options, show-help): Adjust accordingly. Keep "--no-grub" for compatibility reasons, but do not mention it in the help. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2017-04-16lint: Avoid non-literal format strings.Ludovic Courtès
Reported by Mathieu Othacehe <m.othacehe@gmail.com> at <http://bugs.gnu.org/26498>. * guix/scripts/lint.scm (warn-if-package-has-input): Rename to... (package-input-intersection): ... this. Remove 'linted' and 'message' parameters. Return a list of inputs. (check-inputs-should-be-native): Adjust accordingly. (check-inputs-should-not-be-an-input-at-all): Likewise.
2017-04-16ui: Gracefully report '&message' conditions.Ludovic Courtès
* guix/ui.scm (report-load-error, warn-about-load-error) (read/eval): Add special-case for SRFI-35 &message conditions.
2017-04-16services: 'service-parameters' becomes 'service-value'.Ludovic Courtès
* gnu/services.scm (<service>)[parameters]: Rename to... [value]: ... this. Change calls to 'service-parameters' to 'service-value'. * gnu/system.scm, gnu/tests/base.scm, guix/scripts/system.scm, tests/services.scm: Likewise. * doc/guix.texi (Service Reference): Adjust accordingly.
2017-04-15system: Make grub use <menu-entry> instead of <boot-parameters> again.Danny Milosavljevic
* gnu/system/grub.scm: Remove boot-parameters->menu-entry. (grub-configuration): Don't use boot-parameters->menu-entry. * gnu/system.scm (operating-system-bootcfg): Use menu-entry. * guix/scripts/system.scm (reinstall-grub): Use profile-grub-entries. (perform-action): Use profile-grub-entries.
2017-04-15scripts: system: Introduce profile-boot-parameters.Danny Milosavljevic
* guix/scripts/system.scm (profile-boot-parameters): New variable. (reinstall-grub): Use profile-boot-parameters. (perform-action): Use profile-boot-parameters. Follow-up to 2e58e05bb68d4b747882cfa2b460b132d456f54a.
2017-04-15scripts: system: Rename grub? and install-grub? to bootloader? and ↵Mathieu Othacehe
install-bootloader?. * guix/scripts/system.scm (perform-action): Rename grub? to bootloader, (%options): rename install-grub? to install-bootloader?, (%default-options): ditto, (process-action): reindent and rename grub? to bootloader?.
2017-04-15system: Rename operating-system-grub.cfg to operating-system-bootcfg.Mathieu Othacehe
* gnu/system.scm (operating-system-grub.cfg): Rename to... (operating-system-bootcfg): ... this. * gnu/system/vm.scm (system-disk-image): Use operating-system-bootcfg. (system-qemu-image): Use operating-system-bootcfg. (system-qemu-image/shared-store): Use operating-system-bootcfg. * guix/scripts/system.scm (perform-action): Use operating-system-bootcfg. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2017-04-15scripts: system: Back out operating-system-bootcfg change.Danny Milosavljevic
Follow-up to 475e2ce211ac05a814c1f1bc2b9648baa17ad369. * guix/scripts/system.scm (perform-action): Back out operating-system-bootcfg change.
2017-04-15scripts: system: Move save-load-path-excursion and ↵Danny Milosavljevic
save-environment-excursion macros to the top. * guix/scripts/system.scm (save-load-path-excursion, save-environment-excursion): Move definitions to the top of the file. It allows to use them in the whole file. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2017-04-15scripts: system: Move save-load-path-excursion and ↵Mathieu Othacehe
save-environment-excursion macros to the top. * guix/scripts/system.scm (save-load-path-excursion, save-environment-excursion): Move definitions to the top of the file. It allows to use them in the whole file. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2017-04-14build-system/cargo: Remove store reference.Mathieu Othacehe
* guix/build/cargo-build-system.scm (generate-checksums): Remove store reference from comment. This comment was matching assert-no-store-file-names regexp in Makefile.am. Also, edit procedure docstring to precise that DIR-NAME is a store directory. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-11syscalls: Add load-linux-module.Mathieu Othacehe
* guix/build/syscalls.scm (load-linux-module): New procedure. Reimplemented from guile-linux-syscalls.patch. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-11syscalls: Use define-as-needed for network-interface syscalls.Mathieu Othacehe
* guix/build/syscalls.scm (network-interface-flags): Use define-as-needed macro and remove from export list. (set-network-interface-flags): Ditto. (set-network-interface-address): Ditto. (IFF_UP, IFF_BROADCAST and IFF_LOOPBACK): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-11syscalls: Use define-as-needed for mount and umount.Mathieu Othacehe
* guix/build/syscalls.scm (mount): Use define-as-needed macro and remove from export list. (umount): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-11syscalls: Add reboot.Mathieu Othacehe
* guix/build/syscalls.scm (define-as-needed): New macro. (reboot): New procedure. Reimplemented from guile-linux-syscalls.patch. (RB_AUTOBOOT, ..., RB_KEXEC): New flags copied from static Guile patch. Co-Authored-By: Ludovic Courtès <ludo@gnu.org> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-08monads: Improve mlet, mlet*, and mbegin documentation.Chris Marusich
* doc/guix.texi (The Store Monad) <mlet, mlet*, mbegin>: Clarify their intended usage. * guix/monads.scm (mbegin): Update docstring accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-08monads, doc: Improve mwhen and munless documentation.Chris Marusich
* doc/guix.texi (The Store Monad) <mwhen, munless>: Document them. * guix/monads.scm (mwhen, munless): Clarify their intended use. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-08monads: Use intent-revealing parameter names.Chris Marusich
* guix/monads.scm (mwhen, munless): Rename parameters from 'exp0' and 'exp' to 'mexp0' and 'mexp', respectively. This makes it more obvious that these expressions must be monadic expressions. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-07syscalls: Allow mount and umount use from static Guile.Mathieu Othacehe
* guix/build/syscalls.scm (mount): Use Guile core mount if called from static Guile, otherwise use FFI based mount implementation. (umount): Ditto. This allows to use (guix build syscalls) from a module independently of calling context. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-07profiles: Slightly improve the instructions in 'etc/profile'.Ludovic Courtès
* guix/build/profiles.scm (build-etc/profile): Fix typo in comment. Add backslash in the generated shell comment.
2017-04-07pack: Add '--expression'.Ludovic Courtès
* guix/scripts/pack.scm (%options, show-help): Add '--expression'. (guix-pack)[maybe-package-argument]: New procedure. Use it, and remove variable 'specs'. * doc/guix.texi (Invoking guix pack): Document '--expression'.
2017-04-07size: Avoid '_' as a pattern variable in 'match'.Ludovic Courtès
* guix/scripts/size.scm (display-profile, profile->page-map): Don't use '_' as a 'match' pattern variable.
2017-04-06system: Support the --root option in 'guix system'.Chris Marusich
Fixes <https://bugs.gnu.org/26271>. * guix/scripts/system.scm (perform-action): Add #:gc-root parameter and honor it. (show-help): Document the --root option. (%options): Add 'root'. (process-action): Pass 'root' option to perform-action as #:gc-root. * doc/guix.texi (Invoking guix system): Document '--root'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-06build: Add and export procedure 'register-root*'.Chris Marusich
* guix/scripts/build.scm (register-root*): Add and export it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-05environment: Deal with single-entry search paths.Ludovic Courtès
This is a followup to fcd75bdbfa99d14363b905afbf914eec20e69df8. * guix/scripts/environment.scm (create-environment): Check whether SEPARATOR is #f.
2017-04-05profiles: Generate database file for man pages.Maxim Cournoyer
The mandb database file (index.db) is used by the "apropos" (whatis) or "man -k" commands. This change introduces a profile hook to generate such database file. * guix/profiles.scm (manual-database): New procedure. (%default-profile-hooks): Add it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2017-04-05build-system/python: 'package-with-explicit-python' uses 'package-mapping'.Ludovic Courtès
* guix/build-system/python.scm (package-with-explicit-python) [package-variant, cut?]: New procedures. [transform]: Remove 'mlambdaq' form and input tuple handling. Use 'package-mapping'.
2017-04-05packages: Add 'package-mapping' and base 'package-input-rewriting' on it.Ludovic Courtès
* guix/packages.scm (package-mapping): New procedure. (package-input-rewriting): Rewrite in terms of 'package-mapping'. * tests/packages.scm ("package-mapping"): New test. * doc/guix.texi (Defining Packages): Document it.
2017-04-05import cran: Distinguish Bioconductor data packages.Ricardo Wurmus
* guix/import/cran.scm (bioconductor-package?): Exclude Bioconductor data packages. (bioconductor-data-package?): New procedure.
2017-04-05download: Update the GnuPG mirror list.Leo Famulari
* guix/download.scm (%mirrors) <gnupg>: Use HTTP for TU Wien mirror.
2017-04-05build: Export register-root procedure.Chris Marusich
* guix/scripts/build.scm: Export register-root procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-04-03utils: Fix handling of shell arguments for xz compression.Leo Famulari
Fixes test failures related to xz compression in tests/utils.scm. This is a followup to commit 63102406f22412bb922de5549deb89d3594a38c0. * guix/utils.scm (decompressed-port, compressed-port, compressed-output-port): Split each shell argument into its own list element.
2017-04-04packages: Catch invalid input errors for structs.Ludovic Courtès
Reported by Thomas Sigurdsen <thomas.sigurdsen@gmail.com> at <https://lists.gnu.org/archive/html/help-guix/2017-04/msg00007.html>. * guix/packages.scm (expand-input): Add 'guard' form around call to 'package-source-derivation'. * tests/packages.scm (dummy): New test.
2017-04-04gexp: 'lower-object' raises an exception when passed an invalid object.Ludovic Courtès
* guix/gexp.scm (&gexp-error, &gexp-input-error): New error conditions. (lower-object): Raise &gexp-input-error when 'lookup-compiler' returns #f. * tests/gexp.scm ("lower-object & gexp-input-error?"): New test. * guix/ui.scm (call-with-error-handling): Add case for 'gexp-input-error?'.
2017-04-03Merge branch 'core-updates'Ludovic Courtès
2017-04-02guix: Compress and decompress xz archives in parallel.Efraim Flashner
* guix/scripts/pack.scm (%compressors): Add flag '-T0' when calling "xz". * guix/utils.scm (decompressed-port, compressed-port, compressed-output-port): Same.
2017-03-31substitute: Send ‘User-Agent’ header.Tobias Geerinckx-Rice
* guix/scripts/substitute.scm (narinfo-request): Pass ‘User-Agent’ #:headers to ‘build-request’.