Age | Commit message (Expand) | Author |
2018-09-23 | database: Register each store item only once....Fixes <https://bugs.gnu.org/32600>.
Reported by Leo Famulari.
* guix/store/database.scm (register-items): Check whether TO-REGISTER is
in DB by calling 'path-id', and skip the reset-timestamps,
registration, and deduplication phases when it is.
| Ludovic Courtès |
2018-09-23 | database: 'register-items' shows a progress bar....* guix/store/database.scm (register-items): Add #:log-port. Use
'progress-reporter/bar' to show a progress report.
(register-path): Pass #:log-port to 'register-items'.
| Ludovic Courtès |
2018-09-23 | store-copy: Display a progress bar when copying store items....* guix/build/store-copy.scm (populate-store): Add #:log-port parameter.
Use 'progress-reporter/bar' to report progress.
| Ludovic Courtès |
2018-09-23 | serialization: Remove redundancy in 'write-file'....* guix/serialization.scm (write-file): Remove redundant 'member' call.
| Ludovic Courtès |
2018-09-21 | inferior: Add 'inferior-for-channels'....* guix/inferior.scm (%inferior-cache-directory): New variable.
(inferior-for-channels): New procedure.
| Ludovic Courtès |
2018-09-21 | channels: Add 'channel-instances->derivation'....* guix/channels.scm (channel-instances->derivation): New procedure.
(latest-channel-derivation): Use it.
(channel-instance-derivations): Make private.
| Ludovic Courtès |
2018-09-21 | profiles: 'packages->manifest' now accepts inferior packages....* guix/profiles.scm (packages->manifest)[inferiors-loaded?]: New
variable.
[inferior->entry]: New procedure.
Accept inferior packages when INFERIORS-LOADED? is true.
* tests/guix-package.sh: Add test using a manifest with an inferior.
* tests/inferior.scm ("packages->manifest"): New test.
| Ludovic Courtès |
2018-09-21 | inferior: Add 'inferior-package->manifest-entry'....* guix/inferior.scm (inferior-package->manifest-entry): New procedure.
* tests/inferior.scm (manifest-entry->list): New procedure.
("inferior-package->manifest-entry"): New test.
| Ludovic Courtès |
2018-09-21 | inferior: Add 'inferior-package-search-paths' & co....* guix/inferior.scm (%inferior-package-search-paths)
(inferior-package-native-search-paths)
(inferior-package-search-paths)
(inferior-package-transitive-native-search-paths): New procedures.
* tests/inferior.scm ("inferior-package-search-paths"): New test.
| Ludovic Courtès |
2018-09-21 | inferior: Add 'inferior-package-inputs' & co....* guix/inferior.scm (open-inferior): Use (ice-9 match).
(inferior-package-input-field, inferior-package-inputs):
(inferior-package-native-inputs)
(inferior-package-propagated-inputs)
(inferior-package-transitive-propagated-inputs): New procedures.
* tests/inferior.scm ("inferior-package-inputs"): New test.
inputs fixlet
| Ludovic Courtès |
2018-09-21 | inferior: Add 'lookup-inferior-packages'....* guix/inferior.scm (<inferior>)[packages, table]: New fields.
(open-inferior): Initialize these new fields.
(inferior-packages): Rename to...
(%inferior-packages): ... this.
(inferior-packages): New procedure; force the promise.
(%inferior-package-table, lookup-inferior-packages): New procedures.
* tests/inferior.scm ("lookup-inferior-packages")
("lookup-inferior-packages and eq?-ness"): New tests.
| Ludovic Courtès |
2018-09-21 | inferior: Add 'inferior-package-derivation'....* guix/inferior.scm (read-inferior-response)
(send-inferior-request): New procedures.
(inferior-eval): Rewrite in terms of these.
(proxy, inferior-package-derivation, inferior-package->derivation)
(package-compiler): New procedures.
* tests/inferior.scm ("inferior-package-derivation"): New test.
| Ludovic Courtès |
2018-09-19 | build-system/asdf: Adopt asdf conventions....The asdf documentation specifies that asdf:load-asd should be preferred to
calling load on a system definition file.
* guix/build/lisp-utils.scm (compile-system): Replace load with asdf:load-asd.
(system-dependencies): Likewise.
(test-system): Likewise.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Andy Patterson |
2018-09-19 | build-system/asdf: Use invoke....* guix/build/lisp-utils.scm (lisp-eval-program): Replace system* and error
handling with invoke.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Andy Patterson |
2018-09-19 | build-system/asdf: Log lisp system invocations....* guix/build/lisp-system.scm: (lisp-eval-program): Log the arguments to
system*.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Andy Patterson |
2018-09-19 | build-system/asdf: Handle all asdf dependency specifications....Add support for dependencies of the form (:version <name> <version>),
(:feature <feature> <dependency-specification>) and (:require <module-name>),
as defined by
<https://common-lisp.net/project/asdf/asdf.html#The-defsystem-grammar>.
* guix/build/lisp-utils.scm (normalize-dependency): New variable.
(make-asd-file)[dependencies]: Use it to generate dependencies with normalized
names.
[dependency-name]: New variable.
[registry]: Use it to flatten the normalized dependencies.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| Andy Patterson |
2018-09-18 | pull: Use /etc/ssl/certs by default if it exists and is non-empty....Previously, on machines where /etc/ssl/certs did exist, we'd have this:
$ unset SSL_CERT_DIR
$ unset SSL_CERT_FILE
$ guix pull
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
guix pull: error: Git error: the SSL certificate is invalid
This is because we'd let OpenSSL look for certificates in its default
location, which is an empty directory in its own prefix.
* guix/scripts/pull.scm (honor-x509-certificates): New procedure.
(guix-pull): Use it instead of calling 'honor-lets-encrypt-certificates!'.
| Ludovic Courtès |
2018-09-18 | pull: Assume 'set-tls-certificate-locations!' is available....* guix/scripts/pull.scm (honor-lets-encrypt-certificates!): Call
'set-tls-certificate-locations!' unconditionally.
| Ludovic Courtès |
2018-09-18 | describe: Work correctly on generation-less profiles....Previously a command like:
$(readlink -f ~/.config/guix/current)/bin/guix describe
would succeed without printing anything.
* guix/scripts/describe.scm (display-profile-info): Don't call
'generation-file-name' when NUMBER is zero.
* guix/scripts/pull.scm (display-profile-content): Likewise.
| Ludovic Courtès |
2018-09-18 | store: Add another missing buffer flush....This is a followup to 3809824199cdd52446176c9cd4761dd09f732542.
* guix/store.scm (add-file-tree-to-store): Add 'write-buffered-output'
call.
| Ludovic Courtès |
2018-09-17 | git: Choose a saner default for '%repository-cache-directory'....* guix/git.scm (%repository-cache-directory): Use 'cache-directory'
by default unless running as root.
| Ludovic Courtès |
2018-09-17 | store: Add missing buffer flushes....This could result in deadlock in unusual situations, whereby we'd start
waiting for a reply while the query hasn't been flushed to the socket.
* guix/store.scm (buffering-output-port)[flush]: Add call to
'force-output'.
(add-to-store): Add call to 'write-buffered-output'.
| Ludovic Courtès |
2018-09-16 | gnupg: Use 'gpgv' and keybox files; adjust 'guix refresh' accordingly....* guix/gnupg.scm (%gpgv-command, current-keyring): New variables
(gnupg-verify): Add optional 'keyring' parameter. Use 'gpgv' instead of
'gpg' and pass it '--keyring'.
(gnupg-receive-keys): Add optional 'keyring' parameter and honor it.
(gnupg-verify*): Add #:keyring and honor it.
* guix/scripts/refresh.scm (%options, show-help): Add '--keyring'.
(guix-refresh): Parameterize CURRENT-KEYRING.
* doc/guix.texi (Invoking guix refresh): Document '--keyring' and the
keybox format.
| Ludovic Courtès |
2018-09-16 | channels: Add Guile-Git as a dependency of external channels....Fixes a regression introduced in
aed0a594058a59bc3bb1d2686391dc0e8a181b1f whereby external channels would
fail to build due to the lack of a (git) module.
Reported by Alex ter Weele on #guix.
* guix/channels.scm (channel-instance-derivations)[guile-gcrypt]:
Remove.
[dependencies]: New variable.
Use it in the 2nd argument to 'build-channel-instance'.
| Ludovic Courtès |
2018-09-16 | graph: Add '--system'....* guix/scripts/graph.scm (%options, show-help): Add '--system'.
(%default-options): Add 'system'.
(guix-graph): Pass #:system to 'run-with-store'.
| Ludovic Courtès |
2018-09-14 | git-download: 'git-predicate' returns #f on Git errors....Fixes a regression introduced in
aed0a594058a59bc3bb1d2686391dc0e8a181b1f whereby 'git-predicate' would
throw to 'git-error instead of returning #f as the docstring says.
* guix/git-download.scm (git-predicate): Return #f upon 'git-error'.
| Ludovic Courtès |
2018-09-13 | git-download: Rewrite 'git-predicate' using Guile-Git....Fixes <https://bugs.gnu.org/27925>.
* guix/git-download.scm (files->directory-tree)
(directory-in-tree?): Remove.
(git-file-list): New procedures.
(git-predicate): Use it instead of opening a pipe to 'git'. Remove
directory tree hack and rely exclusively on inode/device numbers.
| Ludovic Courtès |
2018-09-11 | guix: Do not close current-error-port....Reported-by: Ludovic Courtès <ludo@gnu.org>.
* guix/scripts/build.scm (guix-build),
guix/scripts/package.scm (guix-package): Duplicate port before handing it to
build-output-port.
| Ricardo Wurmus |
2018-09-11 | ui: Do not filter hash mismatch lines....Reported by Pjotr Prins <pjotr.public12@thebird.nl>.
* guix/ui.scm (build-output-port): Add pattern for hash mismatch error; be
more careful with error messages in verbose mode.
| Ricardo Wurmus |
2018-09-11 | profiles: Correctly deal with etc/ being a relative symlink....Fixes <https://bugs.gnu.org/32686>.
Reported by Oleg Pykhalov <go.wigust@gmail.com>.
* guix/build/profiles.scm (ensure-writable-directory): Add #:symlink.
[absolute?]: New procedure.
[unsymlink]: Use it to determine how to resolve readlink's result.
(build-profile): Pass SYMLINK to 'ensure-writable-directory'.
* tests/profiles.scm ("profile-derivation when etc/ is a relative symlink"):
New test.
| Ludovic Courtès |
2018-09-10 | Adjust all users of (gnu packages ldc) to use (gnu packages dlang)....This is a followup to commit 98d6543f86d01486c2f6e808eedd97c601ba3e7a.
* gnu/packages/bioinformatics.scm, guix/build-system/dub.scm: Adjust
accordingly.
| Leo Famulari |
2018-09-10 | substitute: Ignore exceptions thrown by 'set-thread-name'....Fixes <https://bugs.gnu.org/32669>.
Reported by Ricardo Wurmus <rekado@elephly.net>.
* guix/scripts/substitute.scm (guix-substitute): Swallow 'system-error'
exceptions around 'set-thread-name' call.
| Ludovic Courtès |
2018-09-10 | syscalls: Report lack of a libc symbol as ENOSYS....* guix/build/syscalls.scm (syscall->procedure): Throw to 'system-error
with ENOSYS when NAME cannot be found.
| Ludovic Courtès |
2018-09-09 | ui: Add soft port for styling and filtering build output....* guix/ui.scm (build-output-port): New procedure.
* guix/scripts/package.scm (%default-options): Print build trace.
(guix-package): Use build-output-port.
* guix/scripts/build.scm (guix-build): Use build-output-port.
Co-authored-by: Sahithi Yarlagadda <sahi@swecha.net>
| Ricardo Wurmus |
2018-09-09 | ui: Add support for colorization....* guix/ui.scm (ansi-color-tables): New variable.
(color, colorize-string): New procedures.
Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
| Sahithi Yarlagadda |
2018-09-08 | gexp: 'file-union' accepts directory names....* guix/gexp.scm (file-union): Import (guix build utils). Make the
parent directories of TARGET.
* tests/gexp.scm ("file-union"): New test.
| Ludovic Courtès |
2018-09-07 | guix describe: Display information about the current generation....* guix/scripts/describe.scm (display-profile-info)[number]: Use the
current generation number instead of the last generation number.
| Ludovic Courtès |
2018-09-07 | guix package: Record package provenance in manifest entries....* guix/profiles.scm (package->manifest-entry): Add #:properties and
honor it.
* guix/scripts/package.scm (package-provenance)
(package->manifest-entry*): New procedures.
(transaction-upgrade-entry, options->installable): Use
'package->manifest-entry*' instead of 'package->manifest-entry'.
| Ludovic Courtès |
2018-09-07 | Add 'guix describe'....* guix/scripts/describe.scm: New file.
* Makefile.am (MODULES): Add it.
(SH_TESTS): Add tests/guix-describe.sh.
* po/guix/POTFILES.in: Add it.
* guix/scripts/pull.scm (display-profile-content): Export.
* guix/describe.scm (current-profile, current-profile-entries): Export.
* tests/guix-describe.sh: New file.
* doc/guix.texi (Features): Mention 'guix pull' and provenance tracking.
(Invoking guix pull): Link to 'guix describe'.
(Channels): Likewise.
(Invoking guix describe): New node.
| Ludovic Courtès |
2018-09-07 | pull: Add '--profile'....* guix/scripts/pull.scm (show-help, %options): Add '--profile'.
(build-and-install): Change 'config-dir' argument to 'profile'.
(guix-pull): Honor '--profile'.
* doc/guix.texi (Invoking guix pull): Document it.
| Ludovic Courtès |
2018-09-05 | git: Don't require users to specifiy "origin/" for branches....Fixes <https://bugs.gnu.org/32618>.
Reported by Eric Brown <brown@fastmail.com>.
* guix/git.scm (update-cached-checkout): Remove "origin/" from default
REF. Define CANONICAL-REF and use it instead of REF.
(latest-repository-commit): Remove "origin/" from default REF.
* guix/channels.scm (%default-channels): Remove "origin/" from
'branch'.
| Ludovic Courtès |
2018-09-05 | channels: Fix external channel builds....This fixes a regression introduced in
ca719424455465fca4b872c371daf2a46de88b33 whereby external channels would
fail to build due to the lack of (gcrypt …) modules.
* guix/channels.scm (channel-instance-derivations): Add 'guile-gcrypt'.
Pass it along CORE to 'build-channel-instance'.
| Ludovic Courtès |
2018-09-05 | channels: Add 'latest-channel-derivation' convenience procedure....* guix/channels.scm (latest-channel-derivations): Remove.
(latest-channel-instances*, latest-channel-derivation): New procedures.
| Ludovic Courtès |
2018-09-04 | Switch to Guile-Gcrypt....This removes (guix hash) and (guix pk-crypto), which now live as part of
Guile-Gcrypt (version 0.1.0.)
* guix/gcrypt.scm, guix/hash.scm, guix/pk-crypto.scm,
tests/hash.scm, tests/pk-crypto.scm: Remove.
* configure.ac: Test for Guile-Gcrypt. Remove LIBGCRYPT and
LIBGCRYPT_LIBDIR assignments.
* m4/guix.m4 (GUIX_ASSERT_LIBGCRYPT_USABLE): Remove.
* README: Add Guile-Gcrypt to the dependencies; move libgcrypt as
"required unless --disable-daemon".
* doc/guix.texi (Requirements): Likewise.
* gnu/packages/bash.scm, guix/derivations.scm, guix/docker.scm,
guix/git.scm, guix/http-client.scm, guix/import/cpan.scm,
guix/import/cran.scm, guix/import/crate.scm, guix/import/elpa.scm,
guix/import/gnu.scm, guix/import/hackage.scm,
guix/import/texlive.scm, guix/import/utils.scm, guix/nar.scm,
guix/pki.scm, guix/scripts/archive.scm,
guix/scripts/authenticate.scm, guix/scripts/download.scm,
guix/scripts/hash.scm, guix/scripts/pack.scm,
guix/scripts/publish.scm, guix/scripts/refresh.scm,
guix/scripts/substitute.scm, guix/store.scm,
guix/store/deduplication.scm, guix/tests.scm, tests/base32.scm,
tests/builders.scm, tests/challenge.scm, tests/cpan.scm,
tests/crate.scm, tests/derivations.scm, tests/gem.scm,
tests/nar.scm, tests/opam.scm, tests/pki.scm,
tests/publish.scm, tests/pypi.scm, tests/store-deduplication.scm,
tests/store.scm, tests/substitute.scm: Adjust imports.
* gnu/system/vm.scm: Likewise.
(guile-sqlite3&co): Rename to...
(gcrypt-sqlite3&co): ... this. Add GUILE-GCRYPT.
(expression->derivation-in-linux-vm)[config]: Remove.
(iso9660-image)[config]: Remove.
(qemu-image)[config]: Remove.
(system-docker-image)[config]: Remove.
* guix/scripts/pack.scm: Adjust imports.
(guile-sqlite3&co): Rename to...
(gcrypt-sqlite3&co): ... this. Add GUILE-GCRYPT.
(self-contained-tarball)[build]: Call 'make-config.scm' without
#:libgcrypt argument.
(squashfs-image)[libgcrypt]: Remove.
[build]: Call 'make-config.scm' without #:libgcrypt.
(docker-image)[config, json]: Remove.
[build]: Add GUILE-GCRYPT to the extensions Remove (guix config) from
the imported modules.
* guix/self.scm (specification->package): Remove "libgcrypt", add
"guile-gcrypt".
(compiled-guix): Remove #:libgcrypt.
[guile-gcrypt]: New variable.
[dependencies]: Add it.
[*core-modules*]: Remove #:libgcrypt from 'make-config.scm' call.
Add #:extensions.
[*config*]: Remove #:libgcrypt from 'make-config.scm' call.
(%dependency-variables): Remove %libgcrypt.
(make-config.scm): Remove #:libgcrypt.
* build-aux/build-self.scm (guile-gcrypt): New variable.
(make-config.scm): Remove #:libgcrypt.
(build-program)[fake-gcrypt-hash]: New variable.
Add (gcrypt hash) to the imported modules. Adjust load path
assignments.
* gnu/packages/package-management.scm (guix)[propagated-inputs]: Add
GUILE-GCRYPT.
[arguments]: In 'wrap-program' phase, add GUILE-GCRYPT to the search
path.
| Ludovic Courtès |
2018-09-04 | inferior: Add home-page and location package accessors....* guix/inferior.scm (inferior-package-home-page)
(inferior-package-location): New procedures.
* tests/inferior.scm ("inferior-packages"): Test them.
| Ludovic Courtès |
2018-09-02 | Add (guix channels) and use it in (guix scripts pull)....* guix/channels.scm: New file.
* Makefile.am (MODULES): Add it.
* guix/scripts/pull.scm: Use it.
(%default-options): Remove 'repository-url' and 'ref'.
(show-help, %options): Add '--channels'.
(%self-build-file, %pull-version, build-from-source)
(whole-package-for-legacy, derivation->manifest-entry): Remove. These
now exist in a similar form in (guix channels).
(build-and-install): Change 'source' to 'instances'. Remove #:url,
#:branch, and #:commit. Rewrite using 'channel-instances->manifest'.
(channel-list): New procedure.
(guix-pull): Parameterize %REPOSITORY-CACHE-DIRECTORY. Call
'honor-lets-encrypt-certificates!' unconditionally. Load
~/.config/guix/channels.scm. Rewrite to use (guix channels).
[use-le-certs?]: Remove.
* po/guix/POTFILES.in: Add (guix channels).
* doc/guix.texi (Invoking guix pull): Group the description of '--url',
'--commit', and '--branch'. Remove mention of 'GUIX_PULL_URL'. Add
references to "Channels". Document '--channels'.
(Channels): New node.
(Defining Packages): Link to "Channels" instead of "Package Modules".
(Invoking guix edit): Link to "Package Modules" instead of "Defining
Packages".
(Package Modules): Document both GUIX_PACKAGE_PATH and channels.
| Ludovic Courtès |
2018-09-02 | Add (guix describe) and use it to initialize '%package-search-path'....* guix/describe.scm: New file.
* Makefile.am (MODULES): Add it.
* gnu/packages.scm (%default-package-module-path): New variable.
(%package-module-path): Honor 'package-path-entries'.
* build-aux/update-NEWS.scm (main): Use %DEFAULT-PACKAGE-MODULE-PATH
instead of (last (%package-module-path)).
| Ludovic Courtès |
2018-09-02 | discovery: Add 'scheme-modules*'....* guix/self.scm (scheme-modules*): Move to...
* guix/discovery.scm (scheme-modules*): ... here. New procedure. Make
'sub-directory' an optional parameter.
| Ludovic Courtès |
2018-08-31 | pack: Correctly report "unknown pack format" errors....* guix/scripts/pack.scm (guix-pack): Fix "unknown pack format" error
message.
| Ludovic Courtès |
2018-08-31 | records: Adjust to test changes in 'record-abi-mismatch-error'....Fixes a test failure introduced in
de5cbd4a38a33e0412f1c481fe8e01a871dc13e5.
* guix/records.scm (abi-check): Refer to TYPE in an unquoted context so
we get at the RTD.
* tests/records.scm ("ABI checks"): Adjust 'catch' handler to changes
in the 'record-abi-mismatch-error' arguments.
| Ludovic Courtès |