summaryrefslogtreecommitdiff
path: root/guix
Commit message (Collapse)AuthorAge
* guix: import: parametrized importing of dev dependenciesseries-2798Martin Becze2020-02-04
| | | | | | | | | This changes the behavoir of the recusive crate importer so that it will include the importing of development dependencies for the top level package but will not inculded the development dependencies for any other imported package. * guix/import/crate.scm (crate->guix-package, make-crate-sexp) <guix import crate>: added new parameter
* guix: import: utils: trim patch version from namesMartin Becze2020-02-04
| | | | | * guix/import/utils.scm (package->definition): trim patch version from names * tests/crate.scm: updated the tests
* guix: import: crate: memorize crate->guix-packageMartin Becze2020-02-04
| | | | | | | | | | This adds memorization to procedures that involve network lookups. (mem-lookup-crate) is used on every dependency of a package to find it's versions. (mem-crate->guix-package) is needed becuase (topological-sort) depduplicates after dependencies have been turned into dependencies. * guix/import/crate.scm (mem-crate->guix-package, mem-lookup-crate)
* guix: import: crate: deduplicate dependenciesMartin Becze2020-02-04
| | | | * guix/import/crate.scm (crate-version-dependencies): deduplicate dependencies
* guix: import: utils: allow generation of inputs to be version awareMartin Becze2020-02-04
| | | | | | * guix/import/utils.scm (package-names->package-inputs): Added the ability to handle (name version) pairs * guix/import/crate.scm (make-crate-sexp): cleaned up input field generation
* guix: import: crate: Use semver to resovle module versionsMartin Becze2020-02-04
| | | | | | | | * guix/import/crate.scm (make-crate-sexp): formatting, added '#:skip-build?' to build system args; added package definition geneation * guix/import/crate.scm (crate->guix-package): Use semver to resolve the correct module versions * tests/crate.scm: added version data to (recursuve-import) test
* guix: import: (recursive-import) Allow for version numbersMartin Becze2020-02-04
| | | | | | | | | | | | | | | | | | | | | This adds a key VERSION to (recursive-import) and move the paramter REPO to a key. This also changes all the things that rely on (recursive-import) * guix/import/utils.scm (package->definition): added optional `append-version?` * guix/import/utils.scm (recursive-import): added key `version` and moved `repo` to be a key * guix/import/cran.scm (cran->guix-package): change `repo` to a key * guix/import/cran.scm (cran-recursive-import): change `repo` to a key * guix/scripts/import/cran.scm: change `repo` to a key * guix/import/elpa.scm (elpa->guix-pakcage): change `repo` to a key * guix/import/elpa.scm (elpa-recursive-import): change `repo` to a key * guix/scripts/import/elpa.scm: change `repo` to a key * guix/import/gem.scm (gem->guix-package): change `repo` to a key * guix/import/gem.scm (recursive-import): change `repo` to a key * guix/import/opam.scm (opam-recurive-import): change `repo` to a key * guix/import/pypi.scm (pypi-recursive-import): change `repo` to a key * guix/import/stackage.scm (stackage-recursive-import): change `repo` to a key
* licenses: Add Unicode license.Leo Prikler2020-02-03
| | | | | | * guix/licenses.scm (unicode): New variable. Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
* Use HTTPS for liballeg.org.Tobias Geerinckx-Rice2020-01-28
| | | | | | * gnu/packages/game-development.scm (allegro-4, allegro)[home-page]: Use HTTPS. * guix/licenses.scm (giftware): Likewise.
* build: cargo-build-system: Add pkg-config environment variables.Efraim Flashner2020-01-27
| | | | | | | | | * 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.
* build: cargo-build-system: Allow patched crates.Efraim Flashner2020-01-27
| | | | | * guix/build/cargo-build-system.scm (crate-src?): Don't check for a gzipped tarball, just make sure it's not a directory.
* guix: ocaml: Also replace dune when relevant in package-with-explicit-ocaml.Julien Lepiller2020-01-27
| | | | | * guix/build-system/ocaml.scm (package-with-explicit-ocaml): Take a dune argument and add it to transformed packages when relevant.
* serialization: 'read-byte-string' makes a single read(2) call.Ludovic Courtès2020-01-24
| | | | | | | | | 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'.
* guix build, archive, graph: Disable absolute file port name canonicalization.Ludovic Courtès2020-01-24
| | | | | | | | | | | | | | | 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.
* ui: Do not display error messages with bare format strings.Ludovic Courtès2020-01-24
| | | | | | | | | | 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.
* self: Build with Guile 3.0.Ludovic Courtès2020-01-23
| | | | | | | * guix/self.scm (specification->package): Return the "guile3.0-" variants. (guix-derivation): Change 'guile' to (specification->package "guile"). Pass "3.0" as #:guile-version.
* derivations: Inline 'find' in 'coalesce-duplicate-inputs'.Ludovic Courtès2020-01-23
| | | | | | | | | 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.
* compile: Remove incorrect exports.Ludovic Courtès2020-01-23
| | | | | | | | 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.
* guix: ocaml: Reuse package-with-ocaml4.01 with ocaml-4.07.Julien Lepiller2020-01-22
| | | | | | | * 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.
* guix package: Create profiles/per-user/$USER upfront.Ludovic Courtès2020-01-19
| | | | | | | | | 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.
* syscalls: Pass the right 'throw' arguments in 'call-with-file-lock/no-wait'.Ludovic Courtès2020-01-19
| | | | | | | | 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.
* repl: Avoid dependency on high-level package modules.Ludovic Courtès2020-01-19
| | | | | | * guix/scripts/repl.scm: Remove imports of (guix scripts build), (gnu packages), (guix utils), and (guix packages). (%options): Define "--load-path" option right here.
* repl: Adjust "--listen" help message.Ludovic Courtès2020-01-19
| | | | * guix/scripts/repl.scm (show-help): Adjust "--listen" string.
* repl: Add "-q".Ludovic Courtès2020-01-19
| | | | | * guix/scripts/repl.scm (%options, show-help): Add "-q". (guix-repl): Add 'user-config' and use it. Honor 'ignore-dot-guile?'.
* refresh: Fix internal variable name.zimoun2020-01-18
| | | | * guix/scripts/refresh.scm (%option): Fix internal variable name.
* ui: Ignore 'raise-exception' frames when reporting exceptions.Ludovic Courtès2020-01-17
| | | | | * guix/ui.scm (last-frame-with-source): Check whether FRAME corresponds to 'raise-exception' and skip it if it does.
* import: texlive: Avoid uses of '@@' in tests.Ludovic Courtès2020-01-17
| | | | | | | | * 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 '@@'.
* import: opam: Avoid uses of '@@' in tests.Ludovic Courtès2020-01-17
| | | | | | | | | | | | | * 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.
* lint: vulnerabilities: Avoid 'mock' in test.Ludovic Courtès2020-01-17
| | | | | | * guix/lint.scm (check-vulnerabilities): Add 'package-vulnerabilities' optional parameter. * tests/lint.scm ("cve: one vulnerability"): Use it instead of 'mock'.
* lint: derivation: Adjust exception handling for Guile 3.Ludovic Courtès2020-01-17
| | | | | | | | | 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.
* import: elpa: Rewrite test to use an HTTP server instead of mocking.Ludovic Courtès2020-01-16
| | | | | | | | | | | * 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.
* import: cran: Avoid uses of '@@' in the tests.Ludovic Courtès2020-01-16
| | | | | | | * 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.
* import: crate: Export 'string->license'.Ludovic Courtès2020-01-16
| | | | | * guix/import/crate.scm (string->license): Export. * tests/crate.scm (string->license): Remove.
* lzlib: Define 'dictionary-size+match-length-limit'.Ludovic Courtès2020-01-16
| | | | | | | | * 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'.
* records: Improve reporting of "invalid field specifier" errors.Ludovic Courtès2020-01-16
| | | | | | | | | | | | | | | | | | | 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.
* guix package: Export 'transaction-upgrade-entry'.Ludovic Courtès2020-01-16
| | | | | | | | * 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.
* publish: Export 'signed-string'.Ludovic Courtès2020-01-16
| | | | | | * guix/scripts/publish.scm (signed-string): Export and improve docstring. * tests/publish.scm ("/*.narinfo") ("/*.narinfo with properly encoded '+' sign"): Adjust accordingly.
* repl: Fix '--help' message.zimoun2020-01-16
| | | | * guix/scripts/repl.scm: (show-help): Add '--listen' option message.
* repl: Add '--load-path' option.zimoun2020-01-16
| | | | | * guix/scripts/repl.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it.
* edit: Add '--load-path' option.zimoun2020-01-16
| | | | | * guix/scripts/edit.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it.
* refresh: Add '--load-path' option.zimoun2020-01-16
| | | | | * guix/scripts/refresh.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it.
* size: Add '--load-path' option.zimoun2020-01-16
| | | | | * guix/scripts/size.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it.
* graph: Add '--load-path' option.Pierre Neidhardt2020-01-16
| | | | | | * guix/scripts/graph.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it. * tests/guix-graph.sh: Test it.
* clojure-utils: Avoid use of '@@'.Ludovic Courtès2020-01-15
| | | | | | * guix/build/clojure-utils.scm (%doc-regex): Avoid @@, which doesn't work on Guile 3. (file-sans-extension): Likewise.
* serialize: Export 'dump-port*'.Ludovic Courtès2020-01-15
| | | | | * guix/serialization.scm (dump): Export as 'dump-port*'. * guix/scripts/challenge.scm (dump-port*): Remove.
* import: cpan: Rewrite tests to use an HTTP server instead of mocking.Ludovic Courtès2020-01-15
| | | | | | | * 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'.
* import: cpan: Rewrite to use 'define-json-mapping'.Ludovic Courtès2020-01-15
| | | | | | | | | | | | | | | | | | | | * 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.
* More module autoload adjustments.Ludovic Courtès2020-01-15
| | | | | | | | 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.
* Avoid warnings for the 'delete' binding of (guix build utils).Ludovic Courtès2020-01-15
| | | | | | | | | 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).
* substitute: 'http-multiple-get' processes each request only once.Ludovic Courtès2020-01-15
| | | | | | | | | | | | | | | | 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