Age | Commit message (Expand) | Author |
2017-12-12 | derivations: 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-12 | memoization: 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-12 | memoization: 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-12 | Add (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-11 | guix: utils: Add version-major....* guix/utils.scm (version-major): New procedure.
| nee |
2017-12-10 | utils: Fix cond-expand for Guile 2.0....* guix/build/download.scm (tls-wrap): Use 'guile-2.2' feature instead.
| Eric Bavier |
2017-12-10 | ui: 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-10 | build-system/asdf: Use 'mlambda'....* guix/build-system/asdf.scm (package-with-build-system): Use 'mlambda'
instead of 'memoize'.
| Ludovic Courtès |
2017-12-10 | lint: '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-08 | licenses: 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-07 | scripts: 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-07 | Merge branch 'version-0.14.0' | Ludovic Courtès |
2017-12-06 | Revert "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-06 | syscalls: Define 'input-flags' for 'tcgetattr' and friends....* guix/build/syscalls.scm (input-flags): New macro.
| Ludovic Courtès |
2017-12-05 | packages: '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-05 | packages: '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-04 | bootloader: 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-03 | ui: 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-03 | profiles: 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-03 | scripts: 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-03 | profile: 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-03 | profiles: Avoid _IO* in profile builder....* guix/profiles.scm (profile-derivation)[builder]: Avoid the deprecated
_IO* constants.
| Ludovic Courtès |
2017-12-03 | profiles: 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-01 | Do 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-01 | records: 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-01 | guix 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-01 | guix 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-01 | weather: 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-01 | progress: Add 'progress-reporter/bar'....* guix/progress.scm (progress-reporter/bar): New procedure.
| Ludovic Courtès |
2017-12-01 | progress: 'progress-bar' accounts for brackets....* guix/progress.scm (progress-bar): Subtract 2 to BAR-WIDTH to account
for brackets.
| Ludovic Courtès |
2017-12-01 | progress: Factorize erase-in-line....* guix/progress.scm (erase-in-line): New procedure.
(progress-reporter/file): Use it.
| Ludovic Courtès |
2017-12-01 | utils: Add target-arm32? procedure....* guix/utils.scm (target-arm32?): New exported procedure.
| Mathieu Othacehe |
2017-11-30 | ui: 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-30 | build-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-29 | gexp: 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-29 | gexp: '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 |
2017-11-28 | lint: Adjust file-name length test for out-of-tree file names....* guix/scripts/lint.scm (check-patch-file-names): Adjust
file-name-length calculation.
| Ludovic Courtès |
2017-11-28 | lint: 'patch-file-names' checks for file name length....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.
| Ludovic Courtès |
2017-11-28 | ui: Avoid "pkg:out" syntax when reporting collisions....* guix/ui.scm (call-with-error-handling)[manifest-entry-output*]: New
procedure. Use it when reporting collisions.
| Ludovic Courtès |
2017-11-24 | gnu-maintenance: Relax recursion cutoff in 'latest-ftp-release'....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.
| Ludovic Courtès |
2017-11-24 | ui: 'known-variable-definition' protects against module cycles....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.
| Ludovic Courtès |
2017-11-21 | Revert "Add (guix self) and use it when pulling."...This reverts commit 5f93d97005897c2d859f0be1bdff34c88467ec61.
'guix pull' would fail because (guix self) needs 'scheme-files'
from (guix discovery), which was not exported until now.
| Ludovic Courtès |
2017-11-21 | Add (guix self) and use it when pulling....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'.
| Ludovic Courtès |
2017-11-21 | git: Do not add '.git' to the store....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'.
| Ludovic Courtès |
2017-11-21 | pull: Trim import list....* guix/scripts/pull.scm: Remove useless imports.
| Ludovic Courtès |
2017-11-21 | gexp: 'directory-union' has a #:quiet? parameter....* guix/gexp.scm (directory-union): Add #:quiet? and honor it.
| Ludovic Courtès |
2017-11-21 | union: Parametrize the symlink procedure ....* guix/gexp.scm (directory-union): Add #:hard-links and honor it.
* guix/build/union.scm (union-build): Add #:symlink parameter.
| Ludovic Courtès |
2017-11-20 | compile: Put an upper bound on the number of workers....* guix/build/compile.scm (compile-files): Don't use more than 8 workers.
| Ludovic Courtès |
2017-11-20 | Add semicolon in commands that set GUIX_PROFILE....Fixes <https://bugs.gnu.org/28223>.
Reported by Rosebud Uplink <Uplink.Introversion@outlook.com>.
* doc/guix.texi (Binary Installation): Add missing semicolon after
'GUIX_PROFILE=' line.
(Invoking guix package): Likewise.
* gnu/system.scm (operating-system-etc-service)[profile]: Likewise.
* guix/build/profiles.scm (build-etc/profile): Likewise.
| Ludovic Courtès |
2017-11-19 | zlib: Fix race condition when closing gzip ports....Fixes <https://bugs.gnu.org/29335>.
* guix/zlib.scm (close-procedure): Remove.
(make-gzip-input-port): Do (dup (fileno port)) to get a file descriptor
for 'gzdopen'. Close PORT before returning. Use 'gzclose' as the
'close' procedure of the returned port.
(make-gzip-output-port): Likewise.
| Ludovic Courtès |