summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2017-12-13derivations: Split 'derivation-hash' in two procedures.Ludovic Courtès
* guix/derivations.scm (derivation/masked-inputs): New procedure. (derivation-hash): Use it instead of the inline code.
2017-12-13Revert "derivations: 'derivation-hash' assumes inputs are coalesced."Ludovic Courtès
This reverts commit 1d008d9f8c44dfdb808235d451b72f255e72f103. Reported by Rutger Helling <rhelling@mykolab.com>. Fixes <https://bugs.gnu.org/29689>.
2017-12-12derivations: 'derivation-hash' assumes inputs are coalesced.Ludovic Courtès
* guix/derivations.scm (derivation-hash): Remove redundant 'coalesce-duplicate-inputs' call.
2017-12-12derivations: Use 'define-immutable-record-type' as appropriate.Ludovic Courtès
This is a followup to dc673fa1131fb5d1e5ca29acb4a693cfb906986f. * guix/derivations.scm (<derivation-output>, <derivation-input>): Use 'define-immutable-record-type'.
2017-12-12memoization: Profiling support keeps track of lookups and hits.Ludovic Courtès
* 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.
2017-12-12memoization: Add profiling support.Ludovic Courtès
* 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.
2017-12-12Add (guix profiling).Ludovic Courtès
* guix/profiling.scm: New file. * Makefile.am (MODULES): Add it. * guix/store.scm (record-operation): Use 'profiled?' and 'register-profiling-hook!'.
2017-12-11guix: utils: Add version-major.nee
* guix/utils.scm (version-major): New procedure.
2017-12-10utils: Fix cond-expand for Guile 2.0.Eric Bavier
* guix/build/download.scm (tls-wrap): Use 'guile-2.2' feature instead.
2017-12-10ui: Display hints to resolve profile collisions.Ludovic Courtès
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'.
2017-12-10build-system/asdf: Use 'mlambda'.Ludovic Courtès
* guix/build-system/asdf.scm (package-with-build-system): Use 'mlambda' instead of 'memoize'.
2017-12-10lint: 'check-vulnerabilities' also checks package properties.Efraim Flashner
* 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.
2017-12-08licenses: Add wxWindows 3.1 license.Rutger Helling
* guix/licenses.scm (wxwindows3.1+): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2017-12-07scripts: All commands enable build hooks by default.Ludovic Courtès
* 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.
2017-12-07Merge branch 'master' into core-updatesMarius Bakke
2017-12-07Merge branch 'version-0.14.0'Ludovic Courtès
2017-12-06Revert "packages: 'package-grafts' trims native inputs."Ludovic Courtès
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>.
2017-12-06syscalls: Define 'input-flags' for 'tcgetattr' and friends.Ludovic Courtès
* guix/build/syscalls.scm (input-flags): New macro.
2017-12-05Merge branch 'master' into core-updatesMarius Bakke
2017-12-05packages: 'package-grafts' trims native inputs.Ludovic Courtès
'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.
2017-12-05packages: 'fold-bag-dependencies' honors nativeness in recursive calls.Ludovic Courtès
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.
2017-12-04bootloader: extlinux: Stop using dd binary.Mathieu Othacehe
* 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.
2017-12-03ui: Tweak conflicting profile entry error message.Ludovic Courtès
* guix/ui.scm (call-with-error-handling): Use 'manifest-entry-output*' when reporting conflicting profile entries.
2017-12-03profiles: Really disable deprecation warnings for 'profile-derivation'.Ludovic Courtès
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'.
2017-12-03scripts: Default to Guile 2.2 as the guile-for-build.Ludovic Courtès
* 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.
2017-12-03profile: Use _IO* but disable deprecation warning.Ludovic Courtès
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.
2017-12-03profiles: Avoid _IO* in profile builder.Ludovic Courtès
* guix/profiles.scm (profile-derivation)[builder]: Avoid the deprecated _IO* constants.
2017-12-03profiles: Do not import the host's srfi-{19,26}.scm files.Ludovic Courtès
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.
2017-12-03gnu: glibc: Don't use full version string in locale path.Marius Bakke
This is a follow-up to commit ee3ebf1a357bd4eb36a2fa1790a7b549cffb305a. Fixes <https://bugs.gnu.org/29537>. * gnu/packages/base.scm (glibc/linux)[version]: Change to 2.26.91-gaaa2eb83b8. [source](uri): Adjust accordingly. [arguments]: Use VERSION-MAJOR+MINOR for locales path. (glibc-locales, glibc-utf8-locales): Likewise. * guix/packages.scm (patch-and-repack): Likewise. * guix/profiles.scm (ca-certificate-bundle, profile-derivation): Likewise.
2017-12-01Do not set '%fresh-auto-compile'.Ludovic Courtès
* 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.
2017-12-01records: Use 'make-struct/no-tail'.Ludovic Courtès
* guix/records.scm (make-syntactic-constructor): Use 'make-struct/no-tail' as 'make-struct' is deprecated as of 2.2.3.
2017-12-01guix system: 'init' displays a progress bar while copying.Ludovic Courtès
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'.
2017-12-01guix system: Simplify closure copy.Ludovic Courtès
* 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'.
2017-12-01weather: Use (guix progress) for progress report.Ludovic Courtès
* 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'.
2017-12-01progress: Add 'progress-reporter/bar'.Ludovic Courtès
* guix/progress.scm (progress-reporter/bar): New procedure.
2017-12-01progress: 'progress-bar' accounts for brackets.Ludovic Courtès
* guix/progress.scm (progress-bar): Subtract 2 to BAR-WIDTH to account for brackets.
2017-12-01progress: Factorize erase-in-line.Ludovic Courtès
* guix/progress.scm (erase-in-line): New procedure. (progress-reporter/file): Use it.
2017-12-01utils: Add target-arm32? procedure.Mathieu Othacehe
* guix/utils.scm (target-arm32?): New exported procedure.
2017-11-30ui: Present 'use-modules' hints with a question mark.Ludovic Courtès
Suggested by myglc2 <myglc2@gmail.com>. * guix/ui.scm (report-load-error): Write "Did you forget" rather than "Try adding."
2017-11-30build-system: Add scons-build-system.Arun Isaac
* 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.
2017-11-29gexp: Default to 'guile-2.2' for 'program-file'.Ludovic Courtès
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.
2017-11-29gexp: 'compiled-modules' disables deprecation warnings by default.Ludovic Courtès
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.
2017-11-28lint: Adjust file-name length test for out-of-tree file names.Ludovic Courtès
* guix/scripts/lint.scm (check-patch-file-names): Adjust file-name-length calculation.
2017-11-28lint: 'patch-file-names' checks for file name length.Ludovic Courtès
Reported at <https://bugs.gnu.org/27943> by Danny Milosavljevic <dannym@scratchpost.org>. * guix/scripts/lint.scm (%distro-directory): New variable. (check-patch-file-names): Add check for the file name length. * tests/lint.scm ("patches: file name too long"): New test.
2017-11-28ui: Avoid "pkg:out" syntax when reporting collisions.Ludovic Courtès
* guix/ui.scm (call-with-error-handling)[manifest-entry-output*]: New procedure. Use it when reporting collisions.
2017-11-24gnu-maintenance: Relax recursion cutoff in 'latest-ftp-release'.Ludovic Courtès
Fixes <https://bugs.gnu.org/25020>. Reported by Hartmut Goebel <h.goebel@crazy-compilers.com>. * guix/gnu-maintenance.scm (latest-ftp-release)[contains-digit?]: Remove. Relax test as to whether to recurse into subdirectories.
2017-11-24ui: 'known-variable-definition' protects against module cycles.Ludovic Courtès
Fixes <https://bugs.gnu.org/29358>. Reported by Marius Bakke <mbakke@fastmail.com>. * guix/ui.scm (known-variable-definition): Add 'visited' set to guard against cycles on 2.0.
2017-11-21Revert "Add (guix self) and use it when pulling."Ludovic Courtès
This reverts commit 5f93d97005897c2d859f0be1bdff34c88467ec61. 'guix pull' would fail because (guix self) needs 'scheme-files' from (guix discovery), which was not exported until now.
2017-11-21Add (guix self) and use it when pulling.Ludovic Courtès
This mitigates <https://bugs.gnu.org/27284>. * guix/self.scm: New file. * Makefile.am (MODULES): Add it. * build-aux/build-self.scm (libgcrypt, zlib, gzip, bzip2, xz) (false-if-wrong-guile, package-for-current-guile, guile-json) (guile-ssh, guile-git, guile-bytestructures): Remove. (build): Rewrite to simply delegate to 'compiled-guix'. * gnu/packages.scm (%distro-root-directory): Rewrite to try different directories. * guix/discovery.scm (guix): Export 'scheme-files'. * guix/scripts/pull.scm (build-and-install): Split into... (install-latest): ... this. New procedure. And... (build-and-install): ... this, which now takes a monadic value argument. (indirect-root-added): Remove. (guix-pull): Call 'add-indirect-root'. Call 'build-from-source' and pass the result to 'build-and-install'.
2017-11-21git: Do not add '.git' to the store.Ludovic Courtès
This makes 'latest-repository-commit' significantly more efficient and reduces disk usage in the store. * guix/git.scm (copy-to-store)[dot-git?]: New procedure. Pass it as the #:select? argument to 'add-to-store'.