summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Expand)Author
2017-12-17man-db: Autoload (gdbm)....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. Ludovic Courtès
2017-12-17gnu-maintenance: 'latest-ftp-release' ignores "unstable" directories....* guix/gnu-maintenance.scm (latest-ftp-release): Filter out "unstable" directories. Ludovic Courtès
2017-12-17profiles: Use (guix man-db) to create the manual database....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). Ludovic Courtès
2017-12-16guix: offload: Add "status" sub-command....* 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. Ricardo Wurmus
2017-12-15scripts: system: Add --expression option....* 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. Mathieu Othacehe
2017-12-15progress: Rename 'erase-in-line' to 'erase-current-line'....Suggested by Danny Milosavljevic <dannym@scratchpost.org>. * guix/progress.scm (erase-in-line): Rename to... (erase-current-line): ... this. Adjust callers. Ludovic Courtès
2017-12-15bootloader: Factorize write-file-on-device....* 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. Mathieu Othacehe
2017-12-15guix: ant-build-system: Do not compress jars....Fixes <https://bugs.gnu.org/29700>. * guix/build/ant-build-system.scm (strip-jar-timestamps): Do not compress jar when repacking. Ricardo Wurmus
2017-12-13hydra: Invalidate derivation caches after each architecture evaluation....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. Ludovic Courtès
2017-12-13memoization: Add 'invalidate-memoization!....* guix/memoization.scm (%make-hash-table*): When not profiling, add the new table to %MEMOIZATION-TABLES. (invalidate-memoization!): New procedure. Ludovic Courtès
2017-12-13derivations: Don't memoize 'derivation-hash'....This has little or no run-time impact and slightly reduces the memory footprint. * guix/derivations.scm (derivation-hash): Replace 'mlambda' with 'lambda'. Ludovic Courtès
2017-12-13derivations: Split 'derivation-hash' in two procedures....* guix/derivations.scm (derivation/masked-inputs): New procedure. (derivation-hash): Use it instead of the inline code. Ludovic Courtès
2017-12-13Revert "derivations: 'derivation-hash' assumes inputs are coalesced."...This reverts commit 1d008d9f8c44dfdb808235d451b72f255e72f103. Reported by Rutger Helling <rhelling@mykolab.com>. Fixes <https://bugs.gnu.org/29689>. Ludovic Courtès
2017-12-12derivations: 'derivation-hash' assumes inputs are coalesced....* guix/derivations.scm (derivation-hash): Remove redundant 'coalesce-duplicate-inputs' call. Ludovic Courtès
2017-12-12derivations: Use 'define-immutable-record-type' as appropriate....This is a followup to dc673fa1131fb5d1e5ca29acb4a693cfb906986f. * guix/derivations.scm (<derivation-output>, <derivation-input>): Use 'define-immutable-record-type'. Ludovic Courtès
2017-12-12memoization: Profiling support keeps track of lookups and hits....* 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. Ludovic Courtès
2017-12-12memoization: Add profiling support....* 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. Ludovic Courtès
2017-12-12Add (guix profiling)....* guix/profiling.scm: New file. * Makefile.am (MODULES): Add it. * guix/store.scm (record-operation): Use 'profiled?' and 'register-profiling-hook!'. Ludovic Courtès
2017-12-11guix: utils: Add version-major....* guix/utils.scm (version-major): New procedure. nee
2017-12-10utils: Fix cond-expand for Guile 2.0....* guix/build/download.scm (tls-wrap): Use 'guile-2.2' feature instead. Eric Bavier
2017-12-10ui: Display hints to resolve profile collisions....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'. Ludovic Courtès
2017-12-10build-system/asdf: Use 'mlambda'....* guix/build-system/asdf.scm (package-with-build-system): Use 'mlambda' instead of 'memoize'. Ludovic Courtès
2017-12-10lint: 'check-vulnerabilities' also checks package properties....* 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. Efraim Flashner
2017-12-08licenses: Add wxWindows 3.1 license....* guix/licenses.scm (wxwindows3.1+): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Rutger Helling
2017-12-07scripts: All commands enable build hooks by default....* 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. Ludovic Courtès
2017-12-07Merge branch 'version-0.14.0'Ludovic Courtès
2017-12-06Revert "packages: 'package-grafts' trims native inputs."...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>. Ludovic Courtès
2017-12-06syscalls: Define 'input-flags' for 'tcgetattr' and friends....* guix/build/syscalls.scm (input-flags): New macro. Ludovic Courtès
2017-12-05packages: 'package-grafts' trims native inputs....'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. Ludovic Courtès
2017-12-05packages: 'fold-bag-dependencies' honors nativeness in recursive calls....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. Ludovic Courtès
2017-12-04bootloader: extlinux: Stop using dd binary....* 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. Mathieu Othacehe
2017-12-03ui: Tweak conflicting profile entry error message....* guix/ui.scm (call-with-error-handling): Use 'manifest-entry-output*' when reporting conflicting profile entries. Ludovic Courtès
2017-12-03profiles: Really disable deprecation warnings for 'profile-derivation'....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'. Ludovic Courtès
2017-12-03scripts: Default to Guile 2.2 as the guile-for-build....* 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. Ludovic Courtès
2017-12-03profile: Use _IO* but disable deprecation warning....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. Ludovic Courtès
2017-12-03profiles: Avoid _IO* in profile builder....* guix/profiles.scm (profile-derivation)[builder]: Avoid the deprecated _IO* constants. Ludovic Courtès
2017-12-03profiles: Do not import the host's srfi-{19,26}.scm files....Previously the "manual-database" derivation would always import the host's srfi-{19,26}.scm files in the build side. In practice this means that different users could get different manual-database.drv depending on the Guile version they're using in the host. For example, the (gnu tests install) tests would fail if the host was running Guile 2.2.3 because the guest is running 2.2.2, and thus has different srfi-{19,26}.scm files. The manual-database.drv would need to be built from source, which would fail because prerequisites were missing. Reported by Mathieu Othacehe <m.othacehe@gmail.com> at <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29409#96>. * guix/profiles.scm (manual-database): Do not pass #:modules to 'gexp->derivation'. Wrap 'build' gexp in 'with-imported-modules' form. Ludovic Courtès
2017-12-01Do not set '%fresh-auto-compile'....* guix/scripts/offload.scm (build-machines): Comment out '(set! %fresh-auto-compile #t)' since with Guile 2.2.3 it could lead to an actual rebuild of everything that gets loaded from there on. See <https://bugs.gnu.org/29226>. * guix/ui.scm (load*): Likewise. Ludovic Courtès
2017-12-01records: Use 'make-struct/no-tail'....* guix/records.scm (make-syntactic-constructor): Use 'make-struct/no-tail' as 'make-struct' is deprecated as of 2.2.3. Ludovic Courtès
2017-12-01guix system: 'init' displays a progress bar while copying....Until now it would print the name of each store item being copied, which was verbose and unhelpful. * guix/scripts/system.scm (copy-closure): Use 'progress-reporter/bar' and 'call-with-progress-reporter'. (guix-system): Parameterize 'current-terminal-columns'. Ludovic Courtès
2017-12-01guix system: Simplify closure copy....* guix/scripts/system.scm (copy-item): Add 'references' argument and remove 'references*' call. Turn into a non-monadic procedure. (copy-closure): Remove initial call to 'references*'. Only pass ITEM to 'topologically-sorted*' since that's equivalent. Compute the list of references corresponding to TO-COPY and pass it to 'copy-item'. Ludovic Courtès
2017-12-01weather: Use (guix progress) for progress report....* guix/progress.scm (start-progress-reporter!, stop-progress-reporter!) (progress-reporter-report!): New procedures. * guix/scripts/weather.scm (call-with-progress-reporter): New procedure. (package-outputs)[update-progress!]: Remove. Use 'call-with-progress-reporter' instead. (guix-weather): Parameterize 'current-terminal-columns'. Ludovic Courtès
2017-12-01progress: Add 'progress-reporter/bar'....* guix/progress.scm (progress-reporter/bar): New procedure. Ludovic Courtès
2017-12-01progress: 'progress-bar' accounts for brackets....* guix/progress.scm (progress-bar): Subtract 2 to BAR-WIDTH to account for brackets. Ludovic Courtès
2017-12-01progress: Factorize erase-in-line....* guix/progress.scm (erase-in-line): New procedure. (progress-reporter/file): Use it. Ludovic Courtès
2017-12-01utils: Add target-arm32? procedure....* guix/utils.scm (target-arm32?): New exported procedure. Mathieu Othacehe
2017-11-30ui: Present 'use-modules' hints with a question mark....Suggested by myglc2 <myglc2@gmail.com>. * guix/ui.scm (report-load-error): Write "Did you forget" rather than "Try adding." Ludovic Courtès
2017-11-30build-system: Add scons-build-system....* guix/build-system/scons.scm: New file. * guix/build/scons-build-system.scm: New file. * Makefile.am (MODULES): Register them. * doc/guix.texi (Build Systems): Add scons-build-system. Arun Isaac
2017-11-29gexp: Default to 'guile-2.2' for 'program-file'....Previously things returned by 'program-file', such as %MODPROBE-WRAPPER in (gnu services), would refer to 'guile-final'. This would introduce 'guile-final' in the system closure, which is otherwise absent. By referring to 'guile-2.2' we remove that extra Guile. * guix/gexp.scm (default-guile): Refer to GUILE-2.2 instead of GUILE-FINAL. Ludovic Courtès
2017-11-29gexp: 'compiled-modules' disables deprecation warnings by default....This avoids repeated deprecation messages, particularly while running 'guix system build' or similar. * guix/gexp.scm (gexp->derivation): Add #:deprecation-warnings. Pass it to 'compiled-modules'. (compiled-modules): Add #:deprecation-warnings and honor it. * doc/guix.texi (G-Expressions): Update 'gexp->derivation' documentation. * guix/packages.scm (patch-and-repack): Pass #:deprecation-warnings #t. Ludovic Courtès