summaryrefslogtreecommitdiff
path: root/guix
AgeCommit message (Collapse)Author
2020-02-06git: Remove leftover pk call.Mathieu Othacehe
* guix/git.scm (update-cached-checkout): Remove leftover pk call.
2020-02-06git: Add ssh authentication support.Mathieu Othacehe
If Guile-Git revision is >= 0.3.0, use SSH agent authentication method for both clone and fetch calls. * guix/git.scm (auth-supported?): New variable, (clone*): set auth-method to ssh-agent if the variable above is true, (update-cached-checkout): ditto.
2020-02-05import: pypi: Support exporting packages with .zip source.Jakub Kądziołka
* guix/import/pypi.scm (make-pypi-sexp): Rename test-inputs to native-inputs. Restructure the way pypi-uri parameters are generated. Use pypi-uri's extension parameter when required. Add "unzip" to native inputs when the package source is a zip file. Signed-off-by: Marius Bakke <mbakke@fastmail.com>
2020-02-05import: gem: Deal with unavailable licensing info.Ludovic Courtès
Fixes <https://bugs.gnu.org/39404>. Reported by Seth <lee.seth@tuta.io>. * guix/import/gem.scm (<gem>)[licenses]: Adjust for non-vector licenses. * tests/gem.scm (test-bar-json): Change "licenses" to 'null'. ("gem-recursive-import"): Adjust accordingly.
2020-02-05import: gem: Rewrite to use a JSON mapping to records.Ludovic Courtès
* guix/import/gem.scm (<gem>, <gem-dependencies>, <gem-dependency>): New record types with JSON mapping. (json->gem-dependencies): New procedures. (rubygems-fetch): Use it. (hex-string->bytevector): Remove. (make-gem-sexp): Expect HASH to be a bytevector. (gem->guix-package): Adjust to use the new <gem> data type instead of an alist. (latest-release): Likewise.
2020-02-03licenses: Add Unicode license.Leo Prikler
* guix/licenses.scm (unicode): New variable. Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
2020-01-28Use HTTPS for liballeg.org.Tobias Geerinckx-Rice
* gnu/packages/game-development.scm (allegro-4, allegro)[home-page]: Use HTTPS. * guix/licenses.scm (giftware): Likewise.
2020-01-27build: cargo-build-system: Add pkg-config environment variables.Efraim Flashner
* guix/build/cargo-build-system.scm (configure): Add environment variables to use system libgit2 and libssh2. * gnu/packages/crates-io.scm (rust-libgit2-sys-0.10, rust-libssh2-sys-0.2)[arguments]: Remove LIBGIT2 and LIBSSH2 environment variable settings. * gnu/packages/rust-apps.scm (tokei)[arguments]: Same.
2020-01-27build: cargo-build-system: Allow patched crates.Efraim Flashner
* guix/build/cargo-build-system.scm (crate-src?): Don't check for a gzipped tarball, just make sure it's not a directory.
2020-01-27guix: ocaml: Also replace dune when relevant in package-with-explicit-ocaml.Julien Lepiller
* guix/build-system/ocaml.scm (package-with-explicit-ocaml): Take a dune argument and add it to transformed packages when relevant.
2020-01-24serialization: 'read-byte-string' makes a single read(2) call.Ludovic Courtès
On "guix build libreoffice -nd", this reduces the number of read(2) system calls from 10,434 to 8092. * guix/serialization.scm (sub-bytevector): New procedure. (read-byte-string): Make a single 'get-bytevector-n*' call and use 'sub-bytevector'.
2020-01-24guix build, archive, graph: Disable absolute file port name canonicalization.Ludovic Courtès
This avoids an 'lstat' storm. Specifically: ./pre-inst-env strace -c guix build -nd libreoffice goes from 1,711 to 214 'lstat' calls. * guix/scripts/build.scm (options->things-to-build): When SPEC matches 'derivation-path?', call 'canonicalize-path'. (guix-build): Remove 'with-fluids' for %FILE-PORT-NAME-CANONICALIZATION. * guix/scripts/archive.scm (guix-archive): Remove 'with-fluids' for %FILE-PORT-NAME-CANONICALIZATION. * guix/scripts/graph.scm (guix-graph): Likewise.
2020-01-24ui: Do not display error messages with bare format strings.Ludovic Courtès
On Guile 3, with, say, an error in ~/.guile, we'd get: $ guix repl guix repl: error: Unbound variable: ~S * guix/ui.scm (call-with-error-handling): Add '&exception-with-kind-and-args' case.
2020-01-23self: Build with Guile 3.0.Ludovic Courtès
* guix/self.scm (specification->package): Return the "guile3.0-" variants. (guix-derivation): Change 'guile' to (specification->package "guile"). Pass "3.0" as #:guile-version.
2020-01-23derivations: Inline 'find' in 'coalesce-duplicate-inputs'.Ludovic Courtès
Previously the first argument to 'find' would show up high in profiles of 'package-derivation'. This speeds things up a big, especially on Guile 3. * guix/derivations.scm (coalesce-duplicate-inputs)[find]: New procedure.
2020-01-23compile: Remove incorrect exports.Ludovic Courtès
This is a followup to fed36328129def5f10b1d1f3e4ea8886916fd22a. * guix/build/compile.scm: Remove exports of '%lightweight-optimizations' and '%default-optimizations'. * guix/self.scm: Remove unused (guix build compile) module.
2020-01-22guix: ocaml: Reuse package-with-ocaml4.01 with ocaml-4.07.Julien Lepiller
* guix/build-system/guix.scm (package-with-ocaml4.01) (strip-ocaml4.01-variant): Rename to... (package-with-ocaml4.07, strip-ocaml4.07-variant): ... this and rename internal implementation.
2020-01-19guix package: Create profiles/per-user/$USER upfront.Ludovic Courtès
Fixes <https://bugs.gnu.org/39194>. Reported by Matt Wette <matt.wette@gmail.com>. * guix/scripts/package.scm (build-and-use-profile): Move 'ensure-default-profile' call to... (process-actions): ... here.
2020-01-19syscalls: Pass the right 'throw' arguments in 'call-with-file-lock/no-wait'.Ludovic Courtès
Reported by Matt Wette <matt.wette@gmail.com> in <https://bugs.gnu.org/39194>. * guix/build/syscalls.scm (call-with-file-lock/no-wait): When re-throwing, pass KEY in addition to ARGS.
2020-01-19repl: Avoid dependency on high-level package modules.Ludovic Courtès
* guix/scripts/repl.scm: Remove imports of (guix scripts build), (gnu packages), (guix utils), and (guix packages). (%options): Define "--load-path" option right here.
2020-01-19repl: Adjust "--listen" help message.Ludovic Courtès
* guix/scripts/repl.scm (show-help): Adjust "--listen" string.
2020-01-19repl: Add "-q".Ludovic Courtès
* guix/scripts/repl.scm (%options, show-help): Add "-q". (guix-repl): Add 'user-config' and use it. Honor 'ignore-dot-guile?'.
2020-01-18refresh: Fix internal variable name.zimoun
* guix/scripts/refresh.scm (%option): Fix internal variable name.
2020-01-17ui: Ignore 'raise-exception' frames when reporting exceptions.Ludovic Courtès
* guix/ui.scm (last-frame-with-source): Check whether FRAME corresponds to 'raise-exception' and skip it if it does.
2020-01-17import: texlive: Avoid uses of '@@' in tests.Ludovic Courtès
* guix/import/texlive.scm (fetch-sxml, sxml->package): Export. * tests/texlive.scm <top level>: Call '%http-server-port'. ("fetch-sxml: returns SXML for valid XML"): Use 'with-http-server' and set 'current-http-proxy' instead of using 'mock'. ("sxml->package"): Remove use of '@@'.
2020-01-17import: opam: Avoid uses of '@@' in tests.Ludovic Courtès
* guix/import/opam.scm (string-pat, multiline-string, list-pat) (dict, condition): Export. (opam-fetch): Add optional 'repository' parameter. (opam->guix-package): Add #:repository parameter and pass it to 'opam-fetch'. * tests/opam.scm ("opam->guix-package"): Remove use of 'mock' and pass TEST-REPO to 'opam->guix-package' instead. ("parse-strings", "parse-multiline-strings") ("parse-lists", "parse-dicts", "parse-conditions"): Remove uses of '@@', which are no longer needed.
2020-01-17lint: vulnerabilities: Avoid 'mock' in test.Ludovic Courtès
* guix/lint.scm (check-vulnerabilities): Add 'package-vulnerabilities' optional parameter. * tests/lint.scm ("cve: one vulnerability"): Use it instead of 'mock'.
2020-01-17lint: derivation: Adjust exception handling for Guile 3.Ludovic Courtès
This makes sure the "derivation: invalid arguments" test passes on Guile 3.0.0. Without this change, the lint warning would only include the format string instead of the key and arguments. * guix/lint.scm (exception-with-kind-and-args?): New procedure. (check-derivation): Use it.
2020-01-16import: elpa: Rewrite test to use an HTTP server instead of mocking.Ludovic Courtès
* guix/import/elpa.scm (elpa-url): Add 'gnu/http'. (elpa->guix-package): Handle it. * tests/elpa.scm (elpa-package-info-mock, auctex-readme-mock) (elpa-version->string, package-source-url, ensure-list) (package-home-page, make-elpa-package): Remove. <top level>: Call '%http-server-port'. (eval-test-with-elpa): Remove uses of 'mock'. Use 'with-http-server' and parameterize 'current-http-proxy' instead.
2020-01-16import: cran: Avoid uses of '@@' in the tests.Ludovic Courtès
* guix/import/cran.scm (description->alist, description->package): Export. <top level>: Set! 'listify'. * tests/cran.scm (description-alist, "description->package"): Remove use of '@@' to access the relevant bindings.
2020-01-16import: crate: Export 'string->license'.Ludovic Courtès
* guix/import/crate.scm (string->license): Export. * tests/crate.scm (string->license): Remove.
2020-01-16lzlib: Define 'dictionary-size+match-length-limit'.Ludovic Courtès
* guix/lzlib.scm (%compression-levels): Splice the rest of each element. (dictionary-size+match-length-limit): New procedure. (make-lzip-output-port, make-lzip-input-port/compressed): Use it. * tests/lzlib.scm ("Bytevector of size relative to Lzip internal buffers (2 * dictionary)"): Use 'dictionary-size+match-length-limit' instead of 'assoc-ref'.
2020-01-16records: Improve reporting of "invalid field specifier" errors.Ludovic Courtès
Previously users would just see: error: invalid field specifier without source location or hints. * guix/records.scm (expand): Add optional 'parent-form' parameter and pass it to 'syntax-violation' when it is true. (make-syntactic-constructor): Pass S as a third argument to 'report-invalid-field-specifier'. * guix/ui.scm (report-load-error): For 'syntax-error', show SUBFORM or FORM in the message. * tests/records.scm ("define-record-type* & wrong field specifier"): Add a 'subform' parameter and adjust test accordingly. ("define-record-type* & wrong field specifier, identifier"): New test. * tests/guix-system.sh: Add test.
2020-01-16guix package: Export 'transaction-upgrade-entry'.Ludovic Courtès
* guix/scripts/package.scm (transaction-upgrade-entry): Add 'store' parameter and use it instead of (%store). Export. * tests/packages.scm ("transaction-upgrade-entry, zero upgrades") ("transaction-upgrade-entry, one upgrade") ("transaction-upgrade-entry, superseded package"): Adjust accordingly.
2020-01-16publish: Export 'signed-string'.Ludovic Courtès
* guix/scripts/publish.scm (signed-string): Export and improve docstring. * tests/publish.scm ("/*.narinfo") ("/*.narinfo with properly encoded '+' sign"): Adjust accordingly.
2020-01-16repl: Fix '--help' message.zimoun
* guix/scripts/repl.scm: (show-help): Add '--listen' option message.
2020-01-16repl: Add '--load-path' option.zimoun
* guix/scripts/repl.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it.
2020-01-16edit: Add '--load-path' option.zimoun
* guix/scripts/edit.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it.
2020-01-16refresh: Add '--load-path' option.zimoun
* guix/scripts/refresh.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it.
2020-01-16size: Add '--load-path' option.zimoun
* guix/scripts/size.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it.
2020-01-16graph: Add '--load-path' option.Pierre Neidhardt
* guix/scripts/graph.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it. * tests/guix-graph.sh: Test it.
2020-01-15clojure-utils: Avoid use of '@@'.Ludovic Courtès
* guix/build/clojure-utils.scm (%doc-regex): Avoid @@, which doesn't work on Guile 3. (file-sans-extension): Likewise.
2020-01-15serialize: Export 'dump-port*'.Ludovic Courtès
* guix/serialization.scm (dump): Export as 'dump-port*'. * guix/scripts/challenge.scm (dump-port*): Remove.
2020-01-15import: cpan: Rewrite tests to use an HTTP server instead of mocking.Ludovic Courtès
* guix/import/cpan.scm (%metacpan-base-url): New variable. (module->dist-name, cpan-fetch): Refer to it instead of the hard-coded URL. * tests/cpan.scm ("cpan->guix-package"): Use 'with-http-server' instead of 'mock'.
2020-01-15import: cpan: Rewrite to use 'define-json-mapping'.Ludovic Courtès
* guix/import/cpan.scm (<cpan-dependency>, <cpan-release>): New JSON-mapped record types. (metacpan-url->mirror-url): New procedure. (cpan-source-url): Rewrite in terms of it. (cpan-version): Remove. (cpan-module->sexp): Rewrite to take a <cpan-release> instead of an alist, and rename 'meta' to 'release'. [convert-inputs]: Rewrite to use 'cpan-release-dependencies'. Update calls to 'convert-inputs' to pass a list of symbols. Replace 'assoc-ref' calls with the appropriate field accessors. (cpan->guix-package): Rename 'module-meta' to 'release'. (latest-release): Likewise, and use the appropriate accessors. * tests/cpan.scm (test-json): Remove "prereqs" record; add "dependency" list. ("source-url-http", "source-url-https"): Remove. ("metacpan-url->mirror-url, http") ("metacpan-url->mirror-url, https"): New tests.
2020-01-15More module autoload adjustments.Ludovic Courtès
This is a followup to 7a0836cffdfe3ab9ee899602f218277646959144. * guix/scripts/package.scm: Adjust binding list of the (guix store roots) autoload. * guix/inferior.scm: Adjust binding list of the (guix cache) autoload.
2020-01-15Avoid warnings for the 'delete' binding of (guix build utils).Ludovic Courtès
On Guile 3, importing (guix build utils) leads to warnings such as: WARNING: (gnu packages embedded): imported module (guix build utils) overrides core binding `delete' * gnu/packages/embedded.scm: Select 'alist-replace' from (guix build utils). * guix/ui.scm: Hide 'delete' from (guix build utils).
2020-01-15substitute: 'http-multiple-get' processes each request only once.Ludovic Courtès
Fixes <https://bugs.gnu.org/39090>. Reported by Gábor Boskovits <boskovits@gmail.com>. Fixes a regression introduced in 9e3f9ac3c00906f5bc647ea8398e4ed5a370614e. * guix/scripts/substitute.scm (http-multiple-get): In the "Connection: close" case, pass (drop requests (+ 1 processed)) to 'loop' as the remaining REQUESTS value. Previously, we would pass a list containing duplicates, and thus the final result would also contain duplicates. When sent to the daemon, that list would lead to a daemon error: got unexpected path `/gnu/store/…' from substituter
2020-01-12lint: Check for more packages which should be native.Danny Milosavljevic
* guix/lint.scm (check-inputs-should-be-native): Add gtk-doc.
2020-01-12build: asdf-build-system: Improve reproducibility.Guillaume Le Vaillant
* guix/build/asdf-build-system.scm (copy-files-to-output): Reset timestamps of source files before compiling.