aboutsummaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* 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.
* profiles: Avoid _IO* in profile builder.Ludovic Courtès2017-12-03
| | | | | * guix/profiles.scm (profile-derivation)[builder]: Avoid the deprecated _IO* constants.
* profiles: Do not import the host's srfi-{19,26}.scm files.Ludovic Courtès2017-12-03
| | | | | | | | | | | | | | | | | | | 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.
* Do not set '%fresh-auto-compile'.Ludovic Courtès2017-12-01
| | | | | | | | * 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.
* records: Use 'make-struct/no-tail'.Ludovic Courtès2017-12-01
| | | | | * guix/records.scm (make-syntactic-constructor): Use 'make-struct/no-tail' as 'make-struct' is deprecated as of 2.2.3.
* guix system: 'init' displays a progress bar while copying.Ludovic Courtès2017-12-01
| | | | | | | | | 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'.
* guix system: Simplify closure copy.Ludovic Courtès2017-12-01
| | | | | | | | * 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'.
* weather: Use (guix progress) for progress report.Ludovic Courtès2017-12-01
| | | | | | | | | * 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'.
* progress: Add 'progress-reporter/bar'.Ludovic Courtès2017-12-01
| | | | * guix/progress.scm (progress-reporter/bar): New procedure.