summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
...
| * offload: Fix regression in file retrieval.Ludovic Courtès2018-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression in 'retrieve-files*' introduced in 896fec476f728183b331cbb6e2afb891207b4205, whereby (guix scripts offload) would not read the initial sexp now sent by the remote host via 'store-export-channel'. This would effectively prevent file retrieval entirely when offloading. * guix/ssh.scm (retrieve-files*): New procedure, like former 'retrieve-files' but with an extra #:import parameter. (retrieve-files): Rewrite in terms of 'retrieve-files*'. (file-retrieval-port): Make private. * guix/scripts/offload.scm (transfer-and-offload): Pass #:import to 'retrieve-files*'. (retrieve-files*): Remove.
* | gnu: commencement: Memoize 'linux-libre-headers-boot0'.Ludovic Courtès2018-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/30155>. The effect can be seen in the package graph produced by: guix graph -e '(@@ (gnu packages commencement) static-bash-for-glibc)' This reduces the number of "duplicate" nodes in this graph, i.e., distinct package objects that correspond to the same derivation (objects that are not 'eq?' but semantically equal.) * gnu/packages/commencement.scm (linux-libre-headers-boot0): Make an 'mlambda' instead of a 'lambda'. (hurd-core-headers-boot0): Ditto.
* | Merge branch 'master' into core-updatesLeo Famulari2018-01-11
|\|
| * derivations: Fix typo in docstring.Ludovic Courtès2018-01-11
| | | | | | | | * guix/derivations.scm (derivation-prerequisites): Fix typo in docstring.
| * ssh: Pass an empty "exceptfds" set to 'select'.Ludovic Courtès2018-01-11
| | | | | | | | | | | | | | | | | | | | Previously the redirect code could end up exiting prematurely because of an uninteresting "exceptional condition" on the socket (info "(libc) Waiting for I/O"). * guix/ssh.scm (remote-daemon-channel): Pass the empty list as the third argument to 'select'. It was a mistake to pass a non-empty list there in the first place.
| * store: Fix potential over-reads in 'import-paths'.Ludovic Courtès2018-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously 'process-stderr' would always pass a bytevector of MAX-LEN to then daemon in the %stderr-read case (i.e., 'import-paths'), instead of LEN (where LEN <= MAX-LEN). In practice the extra bytes didn't cause a protocol violation or anything because they happen at the end of the stream, which typically contains the canonical sexp of the signature, and the extra zeros were just ignored. * guix/serialization.scm (write-bytevector): Add optional 'l' parameter and honor it. * guix/store.scm (process-stderr): Pass LEN to 'write-bytevector'.
| * ssh: Work around 'get-bytevector-some' bug.Ludovic Courtès2018-01-11
| | | | | | | | | | | | | | | | | | This works around <https://bugs.gnu.org/30066> and noticeably improves performance when using GUIX_DAEMON_SOCKET=ssh://HOST (the redirect code was transferring data to guix-daemon one byte at a time!). * guix/ssh.scm (remote-daemon-channel)[redirect]: Define 'read!' and use it instead of 'get-bytevector-some'.
| * gnu: Use one spelling for ‘copyright’.Tobias Geerinckx-Rice2018-01-10
| | | | | | | | | | | | | | | | | | | | * gnu/packages/gtk.scm: Standardise on ‘copyright’ spelling in file headers. * gnu/packages/pdf.scm: Likewise. * gnu/packages/perl-check.scm: Likewise. * gnu/packages/perl.scm: Likewise. * guix/import/gem.scm: Likewise. * guix/import/hackage.scm: Likewise.
| * publish: Remove "Guix-Nar-Compression" header from responses.Ludovic Courtès2018-01-09
| | | | | | | | | | | | | | | | | | | | This was harmless but non-compliant and unnecessary. * guix/scripts/publish.scm <top level>: Rename "Guix-Nar-Compression" to "X-Nar-Compression" as should have always been. (render-nar, nar-response-port): Adjust accordingly. (strip-headers): New procedure. (sans-content-length, with-content-length): Use it.
| * import: crate: Gracefully deal with missing license info.Ludovic Courtès2018-01-08
| | | | | | | | | | | | | | | | Reported by Fis Trivial <ybbs.daans@hotmail.com>. Fixes <https://bugs.gnu.org/28987>. * guix/import/crate.scm (crate-fetch): Check whether the "license" info is present.
| * publish: Publish build logs.Ludovic Courtès2018-01-07
| | | | | | | | | | | | | | | | * guix/scripts/publish.scm (render-log-file): New procedure. (make-request-handler): Add "log" case. * tests/publish.scm ("/log/NAME") ("/log/NAME not found"): New tests. * doc/guix.texi (Invoking guix publish): Document /log URLs.
| * publish: Use 'x-raw-file' internal response header.Ludovic Courtès2018-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | This adjusts the workaround for <http://bugs.gnu.org/21093> so that it's not limited to a single content-type. * guix/scripts/publish.scm (render-nar/cached): Add the 'x-raw-file' header on the response. (render-content-addressed-file): Likewise. (with-content-length): Remove the 'x-raw-file' header. (http-write): Instead of dispatching on 'application/octet-stream', check whether 'x-raw-file' is set to determine whether to spawn a thread.
| * daemon: Add gzip log compression.Ludovic Courtès2018-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LOG_COMPRESSION): New macro. (options): Mark "disable-log-compression" as hidden and add "log-compression". (parse_opt): Handle GUIX_OPT_LOG_COMPRESSION. * nix/libstore/build.cc (DerivationGoal): Add 'gzLogFile'. (openLogFile): Initialize it when 'logCompression' is COMPRESSION_GZIP. (closeLogFile, handleChildOutput): Honor 'gzLogFile'. * nix/libstore/globals.hh (Settings)[compressLog]: Remove. [logCompression]: New field. (CompressionType): New enum. * nix/libstore/globals.cc (Settings::Settings): Initialize it. (update): Remove '_get' call for 'compressLog'. * nix/local.mk (guix_daemon_LDADD, guix_register_LDADD): Add -lz. * guix/store.scm (log-file): Handle '.gz' log files. * tests/guix-daemon.sh: Add test with '--log-compression=gzip'. * doc/guix.texi (Invoking guix-daemon): Adjust accordingly. * config-daemon.ac: Check for libz and zlib.h.
| * ssh: Improve error reporting when retrieving files.Ludovic Courtès2018-01-07
| | | | | | | | | | | | | | | | | | | | | | | | 'guix copy --from' now reports messages much more useful than "failed to retrieve files". * guix/ssh.scm (store-export-channel)[export]: Wrap 'use-modules' in 'catch' and 'with-store' in 'guard'. Check for invalid items. Write a status sexp on stdout. (raise-error): New macro. (retrieve-files): Read the initial status sexp and report errors accordingly.
| * ui: Display hints that come along with '&message' conditions.Ludovic Courtès2018-01-07
| | | | | | | | | | * guix/ui.scm (call-with-error-handling): Add case for message and fix-hint?.
| * publish: Save bandwidth on narinfo 404s.Ludovic Courtès2018-01-06
| | | | | | | | | | | | | | | | This saves 18 bytes on each 404 narinfo response. * guix/scripts/publish.scm (render-narinfo): Pass #:phrase to 'not-found'. (render-narinfo/cached): Likewise.
* | Merge branch 'master' into core-updatesLeo Famulari2018-01-03
|\|
| * ui: It's 2018 now!Ludovic Courtès2018-01-01
| | | | | | | | * guix/ui.scm (show-version-and-exit): Change year to 2018.
* | build-system/glib-or-gtk: Don't generate 'icon-theme.cache'.Danny Milosavljevic2018-01-01
| | | | | | | | | | | | | | * guix/build-system/glib-or-gtk.scm (glib-or-gtk-build): Don't generate 'icon-theme.cache'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* | Merge remote-tracking branch 'origin/master' into core-updatesEfraim Flashner2017-12-31
|\|
| * build: dub-build-system: Make builds reproducible.Danny Milosavljevic2017-12-31
| | | | | | | | | | * guix/build/dub-build-system.scm (build): Make reproducible. (check): Make reproducible.
| * guix build: Support '--with-source=PACKAGE@VERSION=URI'.Ludovic Courtès2017-12-23
| | | | | | | | | | | | | | | | | | | | | | | | | | * guix/scripts/build.scm (numeric-extension?, tarball-base-name): New procedures, formerly in 'package-with-source'. (transform-package-source)[new-sources]: Look for '=' in URI. Each element of the list of now a (PKG VERSION SOURCE) tuple. Pass VERSION to 'package-with-source'. (package-with-source): Add 'version' parameter and honor it. * tests/scripts-build.scm ("options->transformation, with-source, PKG=URI") ("options->transformation, with-source, PKG@VER=URI"): New tests. * doc/guix.texi (Package Transformation Options): Document the new forms.
| * guix system: Check mapped devices upon 'init' and 'reconfigure'.Ludovic Courtès2017-12-22
| | | | | | | | | | * guix/scripts/system.scm (check-mapped-devices): New procedure. (perform-action): Add call to 'check-mapped-devices'.
| * guix: Exclude broken symlinks from man files.Ricardo Wurmus2017-12-22
| | | | | | | | * guix/man-db.scm (man-files): Remove broken symlinks from list of man pages.
* | Merge branch 'master' into core-updatesLeo Famulari2017-12-21
|\|
| * upstream: Reject bogus archive type guesses.Ludovic Courtès2017-12-19
| | | | | | | | | | | | | | | | This would crash 'guix refresh -u' with source URLs ending in "…/v1.2.3". * guix/upstream.scm (package-update): Be stricter when determining ARCHIVE-TYPE.
* | build-system/gnu: Check whether the cross-libc has a "static" output.Ludovic Courtès2017-12-21
| | | | | | | | | | | | | | | | This is a followup to 614fffe4270cef308573a6d9cef650f3972875af, which broke cross-compilation to i686-w64-mingw32. * guix/build-system/gnu.scm (standard-cross-packages): Add "cross-libc:static" only when LIBC has a "static" output.
* | build-system/gnu: Add the "static" output of libc in cross environments.Ludovic Courtès2017-12-20
| | | | | | | | | | | | | | | | | | | | Fixes a regression whereby the host libc.a would be missing when cross-compiling. This is a followup to commit 6dff905e51202bbdebbad8811b6509584d12a796. * guix/build-system/gnu.scm (standard-cross-packages): Add the "cross-libc:static".
* | guix: cmake-build-system: Install libraries to /lib.Efraim Flashner2017-12-19
| | | | | | | | | | * guix/build/cmake-build-system.scm (configure): Add flag to always install libraries in /lib.
* | Merge branch 'master' into core-updatesMarius Bakke2017-12-19
|\|
| * guix gc: '--verify=foo' is reported as an error.Ludovic Courtès2017-12-18
| | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/29761>. Reported by Martin Castillo <castilma@uni-bremen.de>. * guix/scripts/gc.scm (argument->verify-options): New procedure. (%options) ["verify"]: Adjust to use it. * tests/guix-gc.sh: Add test.
| * gexp: 'computed-file' has a new #:guile parameter.Ludovic Courtès2017-12-18
| | | | | | | | | | | | * guix/gexp.scm (<computed-file>)[guile]: New field. (computed-file): Add #:guile. (computed-file-compiler): Honor 'guile'.
| * ui: Non-zero exit for compound '&message' and '&error-location' conditions.Ludovic Courtès2017-12-18
| | | | | | | | | | * guix/ui.scm (call-with-error-handling): When both 'message?' and 'error-location?' are true, add call to 'exit'.
| * man-db: Autoload (gdbm).Ludovic Courtès2017-12-17
| | | | | | | | | | | | | | | | Fixes 'guix pull'. Reported by ofosos on #guix. * guix/man-db.scm: Use 'module-autoload!' instead of 'module-use!'. so that (gdbm) is not loaded until we need it.
| * gnu-maintenance: 'latest-ftp-release' ignores "unstable" directories.Ludovic Courtès2017-12-17
| | | | | | | | | | * guix/gnu-maintenance.scm (latest-ftp-release): Filter out "unstable" directories.
| * profiles: Use (guix man-db) to create the manual database.Ludovic Courtès2017-12-17
| | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/29654>. Reported by Ruud van Asseldonk <dev+guix@veniogames.com>. This also speeds up database creation compared to "man-db --create" (less than half the time, on a warm cache, for 19k pages.) * guix/man-db.scm: New file. * Makefile.am (MODULES_NOT_COMPILED): Add it. * guix/profiles.scm (manual-database): Rewrite to use (guix man-db).
| * guix: offload: Add "status" sub-command.Ricardo Wurmus2017-12-16
| | | | | | | | | | | | * guix/scripts/offload.scm (check-machine-status): New procedure. (guix-offload): Call it when the argument is "status". * doc/guix.texi (Daemon Offload Setup): Document it.
| * scripts: system: Add --expression option.Mathieu Othacehe2017-12-15
| | | | | | | | | | | | | | | | | | * guix/scripts/system.scm (show-help): Add expression option. (%options): Ditto. (guix-system): Allow commands taking a file as an argument to use an expression instead. (process-action): Read operating-system from expression or file. * doc/guix.texi (Invoking guix system): Introduce the expression option.
| * progress: Rename 'erase-in-line' to 'erase-current-line'.Ludovic Courtès2017-12-15
| | | | | | | | | | | | | | Suggested by Danny Milosavljevic <dannym@scratchpost.org>. * guix/progress.scm (erase-in-line): Rename to... (erase-current-line): ... this. Adjust callers.
| * bootloader: Factorize write-file-on-device.Mathieu Othacehe2017-12-15
| | | | | | | | | | | | | | | | | | | | | | * gnu/bootloader/extlinux.scm (install-extlinux): Factorize bootloader writing in a new procedure write-file-on-device defined in (gnu build bootloader). * gnu/build/bootloader.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add new file. * gnu/system/vm.scm (qemu-img): Adapt to import and use (gnu build bootloader) module during derivation building. * gnu/scripts/system.scm (bootloader-installer-derivation): Ditto.
| * guix: ant-build-system: Do not compress jars.Ricardo Wurmus2017-12-15
| | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/29700>. * guix/build/ant-build-system.scm (strip-jar-timestamps): Do not compress jar when repacking.
| * hydra: Invalidate derivation caches after each architecture evaluation.Ludovic Courtès2017-12-13
| | | | | | | | | | | | | | | | This reduces max RSS from 1.3G to 1.0G. * guix/derivations.scm (invalidate-derivation-caches!): New procedure. * build-aux/hydra/gnu-system.scm (hydra-jobs): Use it. Add 'format' call.
| * memoization: Add 'invalidate-memoization!.Ludovic Courtès2017-12-13
| | | | | | | | | | | | * guix/memoization.scm (%make-hash-table*): When not profiling, add the new table to %MEMOIZATION-TABLES. (invalidate-memoization!): New procedure.
| * derivations: Don't memoize 'derivation-hash'.Ludovic Courtès2017-12-13
| | | | | | | | | | | | | | | | This has little or no run-time impact and slightly reduces the memory footprint. * guix/derivations.scm (derivation-hash): Replace 'mlambda' with 'lambda'.
| * derivations: Split 'derivation-hash' in two procedures.Ludovic Courtès2017-12-13
| | | | | | | | | | * guix/derivations.scm (derivation/masked-inputs): New procedure. (derivation-hash): Use it instead of the inline code.
| * Revert "derivations: 'derivation-hash' assumes inputs are coalesced."Ludovic Courtès2017-12-13
| | | | | | | | | | | | This reverts commit 1d008d9f8c44dfdb808235d451b72f255e72f103. Reported by Rutger Helling <rhelling@mykolab.com>. Fixes <https://bugs.gnu.org/29689>.
| * derivations: 'derivation-hash' assumes inputs are coalesced.Ludovic Courtès2017-12-12
| | | | | | | | | | * guix/derivations.scm (derivation-hash): Remove redundant 'coalesce-duplicate-inputs' call.
| * derivations: Use 'define-immutable-record-type' as appropriate.Ludovic Courtès2017-12-12
| | | | | | | | | | | | | | This is a followup to dc673fa1131fb5d1e5ca29acb4a693cfb906986f. * guix/derivations.scm (<derivation-output>, <derivation-input>): Use 'define-immutable-record-type'.
| * memoization: Profiling support keeps track of lookups and hits.Ludovic Courtès2017-12-12
| | | | | | | | | | | | | | | | | | | | | | * guix/memoization.scm (<cache>): New record type. (define-lookup-procedure, define-update-procedure): New macros. (cache-ref, cacheq-ref, cache-set!, cacheq-set!): New procedures. (cached/mv, cachedq/mv, cached, cachedq): Use them instead of 'hash-ref' and 'hash-set!'. (%make-hash-table*): When 'profiled?' returns true, return a <cache> object. (define-cache-procedure): Adjust to show cache lookups and hits.
| * memoization: Add profiling support.Ludovic Courtès2017-12-12
| | | | | | | | | | | | | | | | | | | | * guix/memoization.scm (%memoization-tables): New variable. (%make-hash-table*, show-memoization-tables): New procedures. (make-hash-table*): New macro. Add top-level call to 'register-profiling-hook!'. (memoize): Adjust to pass the resulting procedure to 'make-hash-table*'. (%mlambda): Likewise.