summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* gnupg: Change default keyserver.Ludovic Courtès2018-09-25
| | | | | * guix/gnupg.scm (%openpgp-key-server): Change default to "pool.sks-keyservers.net".
* database: Register each store item only once.Ludovic Courtès2018-09-23
| | | | | | | | | 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.
* database: 'register-items' shows a progress bar.Ludovic Courtès2018-09-23
| | | | | | * 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'.
* store-copy: Display a progress bar when copying store items.Ludovic Courtès2018-09-23
| | | | | * guix/build/store-copy.scm (populate-store): Add #:log-port parameter. Use 'progress-reporter/bar' to report progress.
* serialization: Remove redundancy in 'write-file'.Ludovic Courtès2018-09-23
| | | | * guix/serialization.scm (write-file): Remove redundant 'member' call.
* inferior: Add 'inferior-for-channels'.Ludovic Courtès2018-09-21
| | | | | * guix/inferior.scm (%inferior-cache-directory): New variable. (inferior-for-channels): New procedure.
* channels: Add 'channel-instances->derivation'.Ludovic Courtès2018-09-21
| | | | | | * guix/channels.scm (channel-instances->derivation): New procedure. (latest-channel-derivation): Use it. (channel-instance-derivations): Make private.
* profiles: 'packages->manifest' now accepts inferior packages.Ludovic Courtès2018-09-21
| | | | | | | | | * 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.
* inferior: Add 'inferior-package->manifest-entry'.Ludovic Courtès2018-09-21
| | | | | | * guix/inferior.scm (inferior-package->manifest-entry): New procedure. * tests/inferior.scm (manifest-entry->list): New procedure. ("inferior-package->manifest-entry"): New test.
* inferior: Add 'inferior-package-search-paths' & co.Ludovic Courtès2018-09-21
| | | | | | | | * 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.
* inferior: Add 'inferior-package-inputs' & co.Ludovic Courtès2018-09-21
| | | | | | | | | | | * 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
* inferior: Add 'lookup-inferior-packages'.Ludovic Courtès2018-09-21
| | | | | | | | | | | * 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.
* inferior: Add 'inferior-package-derivation'.Ludovic Courtès2018-09-21
| | | | | | | | | * 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.
* build-system/asdf: Adopt asdf conventions.Andy Patterson2018-09-19
| | | | | | | | | | | 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>
* build-system/asdf: Use invoke.Andy Patterson2018-09-19
| | | | | | | * guix/build/lisp-utils.scm (lisp-eval-program): Replace system* and error handling with invoke. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* build-system/asdf: Log lisp system invocations.Andy Patterson2018-09-19
| | | | | | | * guix/build/lisp-system.scm: (lisp-eval-program): Log the arguments to system*. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* build-system/asdf: Handle all asdf dependency specifications.Andy Patterson2018-09-19
| | | | | | | | | | | | | | | 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>
* pull: Use /etc/ssl/certs by default if it exists and is non-empty.Ludovic Courtès2018-09-18
| | | | | | | | | | | | | | | | 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!'.
* pull: Assume 'set-tls-certificate-locations!' is available.Ludovic Courtès2018-09-18
| | | | | * guix/scripts/pull.scm (honor-lets-encrypt-certificates!): Call 'set-tls-certificate-locations!' unconditionally.
* describe: Work correctly on generation-less profiles.Ludovic Courtès2018-09-18
| | | | | | | | | | | | 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.
* store: Add another missing buffer flush.Ludovic Courtès2018-09-18
| | | | | | | This is a followup to 3809824199cdd52446176c9cd4761dd09f732542. * guix/store.scm (add-file-tree-to-store): Add 'write-buffered-output' call.
* git: Choose a saner default for '%repository-cache-directory'.Ludovic Courtès2018-09-17
| | | | | * guix/git.scm (%repository-cache-directory): Use 'cache-directory' by default unless running as root.
* store: Add missing buffer flushes.Ludovic Courtès2018-09-17
| | | | | | | | | 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'.
* gnupg: Use 'gpgv' and keybox files; adjust 'guix refresh' accordingly.Ludovic Courtès2018-09-16
| | | | | | | | | | | | * 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.
* channels: Add Guile-Git as a dependency of external channels.Ludovic Courtès2018-09-16
| | | | | | | | | | | | | 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'.
* graph: Add '--system'.Ludovic Courtès2018-09-16
| | | | | | * guix/scripts/graph.scm (%options, show-help): Add '--system'. (%default-options): Add 'system'. (guix-graph): Pass #:system to 'run-with-store'.
* git-download: 'git-predicate' returns #f on Git errors.Ludovic Courtès2018-09-14
| | | | | | | | 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'.
* git-download: Rewrite 'git-predicate' using Guile-Git.Ludovic Courtès2018-09-13
| | | | | | | | | | 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.
* guix: Do not close current-error-port.Ricardo Wurmus2018-09-11
| | | | | | | | 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.
* ui: Do not filter hash mismatch lines.Ricardo Wurmus2018-09-11
| | | | | | | 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.
* profiles: Correctly deal with etc/ being a relative symlink.Ludovic Courtès2018-09-11
| | | | | | | | | | | | 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.
* Adjust all users of (gnu packages ldc) to use (gnu packages dlang).Leo Famulari2018-09-10
| | | | | | | This is a followup to commit 98d6543f86d01486c2f6e808eedd97c601ba3e7a. * gnu/packages/bioinformatics.scm, guix/build-system/dub.scm: Adjust accordingly.
* substitute: Ignore exceptions thrown by 'set-thread-name'.Ludovic Courtès2018-09-10
| | | | | | | | 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.
* syscalls: Report lack of a libc symbol as ENOSYS.Ludovic Courtès2018-09-10
| | | | | * guix/build/syscalls.scm (syscall->procedure): Throw to 'system-error with ENOSYS when NAME cannot be found.
* ui: Add soft port for styling and filtering build output.Ricardo Wurmus2018-09-09
| | | | | | | | | * 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>
* ui: Add support for colorization.Sahithi Yarlagadda2018-09-09
| | | | | | | * guix/ui.scm (ansi-color-tables): New variable. (color, colorize-string): New procedures. Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
* gexp: 'file-union' accepts directory names.Ludovic Courtès2018-09-08
| | | | | | * guix/gexp.scm (file-union): Import (guix build utils). Make the parent directories of TARGET. * tests/gexp.scm ("file-union"): New test.
* guix describe: Display information about the current generation.Ludovic Courtès2018-09-07
| | | | | * guix/scripts/describe.scm (display-profile-info)[number]: Use the current generation number instead of the last generation number.
* guix package: Record package provenance in manifest entries.Ludovic Courtès2018-09-07
| | | | | | | | | * 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'.
* Add 'guix describe'.Ludovic Courtès2018-09-07
| | | | | | | | | | | | | | * 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.
* pull: Add '--profile'.Ludovic Courtès2018-09-07
| | | | | | | * 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.
* git: Don't require users to specifiy "origin/" for branches.Ludovic Courtès2018-09-05
| | | | | | | | | | | 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'.
* channels: Fix external channel builds.Ludovic Courtès2018-09-05
| | | | | | | | | 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'.
* channels: Add 'latest-channel-derivation' convenience procedure.Ludovic Courtès2018-09-05
| | | | | * guix/channels.scm (latest-channel-derivations): Remove. (latest-channel-instances*, latest-channel-derivation): New procedures.
* Switch to Guile-Gcrypt.Ludovic Courtès2018-09-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* inferior: Add home-page and location package accessors.Ludovic Courtès2018-09-04
| | | | | | * guix/inferior.scm (inferior-package-home-page) (inferior-package-location): New procedures. * tests/inferior.scm ("inferior-packages"): Test them.
* Add (guix channels) and use it in (guix scripts pull).Ludovic Courtès2018-09-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Add (guix describe) and use it to initialize '%package-search-path'.Ludovic Courtès2018-09-02
| | | | | | | | | * 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)).
* discovery: Add 'scheme-modules*'.Ludovic Courtès2018-09-02
| | | | | | * guix/self.scm (scheme-modules*): Move to... * guix/discovery.scm (scheme-modules*): ... here. New procedure. Make 'sub-directory' an optional parameter.
* pack: Correctly report "unknown pack format" errors.Ludovic Courtès2018-08-31
| | | | | * guix/scripts/pack.scm (guix-pack): Fix "unknown pack format" error message.