summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* 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.
* ui: It's 2018 now!Ludovic Courtès2018-01-01
| | | | * guix/ui.scm (show-version-and-exit): Change year to 2018.
* 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.
* 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.
* 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.
* Add (guix profiling).Ludovic Courtès2017-12-12
| | | | | | | * guix/profiling.scm: New file. * Makefile.am (MODULES): Add it. * guix/store.scm (record-operation): Use 'profiled?' and 'register-profiling-hook!'.
* guix: utils: Add version-major.nee2017-12-11
| | | | * guix/utils.scm (version-major): New procedure.
* utils: Fix cond-expand for Guile 2.0.Eric Bavier2017-12-10
| | | | * guix/build/download.scm (tls-wrap): Use 'guile-2.2' feature instead.
* ui: Display hints to resolve profile collisions.Ludovic Courtès2017-12-10
| | | | | | | | Fixes <https://bugs.gnu.org/29255>. Reported by Ben Sturmfels <ben@sturm.com.au>. * guix/ui.scm (display-collision-resolution-hint): New procedure. (call-with-error-handling): Call it upon '&profile-collistion-error'.
* build-system/asdf: Use 'mlambda'.Ludovic Courtès2017-12-10
| | | | | * guix/build-system/asdf.scm (package-with-build-system): Use 'mlambda' instead of 'memoize'.
* lint: 'check-vulnerabilities' also checks package properties.Efraim Flashner2017-12-10
| | | | | | * guix/scripts/lint.scm (check-vulnerabilities): Also check for CVEs listed as mitigated in the package properties. * tests/lint.scm ("cve: known safe from vulnerability"): New test.
* licenses: Add wxWindows 3.1 license.Rutger Helling2017-12-08
| | | | | | * guix/licenses.scm (wxwindows3.1+): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* scripts: All commands enable build hooks by default.Ludovic Courtès2017-12-07
| | | | | | | | | * guix/scripts/archive.scm (%default-options): Add 'build-hook?'. * guix/scripts/copy.scm (%default-options): Likewise. * guix/scripts/environment.scm (%default-options): Likewise. * guix/scripts/pack.scm (%default-options): Likewise. * guix/scripts/package.scm (%default-options): Likewise. * guix/scripts/pull.scm (%default-options): Likewise.
* Merge branch 'version-0.14.0'Ludovic Courtès2017-12-07
|\
| * Revert "packages: 'package-grafts' trims native inputs."Ludovic Courtès2017-12-06
| | | | | | | | | | | | This reverts commit 91c9b5d016ac8bed127557d378c70fbc56cec0e5 following the concerns raised by Mark, Ben, and Tobias: <https://lists.gnu.org/archive/html/guix-devel/2017-12/msg00081.html>.
| * syscalls: Define 'input-flags' for 'tcgetattr' and friends.Ludovic Courtès2017-12-06
| | | | | | | | * guix/build/syscalls.scm (input-flags): New macro.
| * packages: 'package-grafts' trims native inputs.Ludovic Courtès2017-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'package-grafts' returns a list of potentially applicable grafts, which 'cumulative-grafts' then narrows by looking at store item references and determining the subset of the grafts that's actually applicable. Until now, 'package-grafts' would traverse native inputs and would thus return a large superset of the applicable grafts, since native inputs are not in the reference graph by definition. This patch fixes that by having 'package-grafts' ignore entirely native inputs from the dependency graph. * guix/packages.scm (fold-bag-dependencies)[bag-direct-inputs*]: Add special case for libc. * guix/packages.scm (bag-grafts)[native-grafts, target-grafts]: Remove. [grafts]: New procedure. Use it. * tests/packages.scm ("package-grafts, grafts of native inputs ignored"): New test.
| * packages: 'fold-bag-dependencies' honors nativeness in recursive calls.Ludovic Courtès2017-12-05
| | | | | | | | | | | | | | | | Previously recursive calls to 'loop' would always consider all the bag inputs rather than those corresponding to NATIVE?. * guix/packages.scm (fold-bag-dependencies)[bag-direct-inputs*]: New procedure. Use it both in the 'match' expression and in its body.
* | bootloader: extlinux: Stop using dd binary.Mathieu Othacehe2017-12-04
|/ | | | | | | | * gnu/bootloader/extlinux.scm (dd): Remove it, (install-extlinux): replace dd call by Guile I/O procedures. * gnu/system/vm.scm (qemu-image): Add (ice-9 binary-ports) to used-modules list to provide "get-bytevector-n" and "put-bytevector". * guix/scripts/system.scm (bootloader-installer-derivation): Ditto.
* ui: Tweak conflicting profile entry error message.Ludovic Courtès2017-12-03
| | | | | * guix/ui.scm (call-with-error-handling): Use 'manifest-entry-output*' when reporting conflicting profile entries.
* profiles: Really disable deprecation warnings for 'profile-derivation'.Ludovic Courtès2017-12-03
| | | | | | | | This is a followup to 2815fca1423cf72e6f3d0e774f1058bcbf8dfdbf. * guix/profiles.scm (profile-derivation)[builder]: Remove 'debug-disable' call, which was ineffective. Pass #:env-vars to 'gexp->derivation'.
* scripts: Default to Guile 2.2 as the guile-for-build.Ludovic Courtès2017-12-03
| | | | | | | * guix/scripts/environment.scm (guix-environment): '%guile-for-build' now defaults to GUILE-2.2 instead of GUILE-2.0. * guix/scripts/package.scm (guix-package): Likewise. * guix/scripts/pull.scm (guix-pull): Likewise.
* profile: Use _IO* but disable deprecation warning.Ludovic Courtès2017-12-03
| | | | | | | | | | | | This fixes a regression introduced in 2f60084f77815f454d1521396c2a383390ea2865, whereby the profile derivation would fail to run on Guile 2.0 (as is the case with "guix package --bootstrap"). Reported by Christopher Baines. * guix/profiles.scm (profile-derivation)[builder]: Use _IO* but add 'debug-disable' call.