Commit graph

69932 commits

Author SHA1 Message Date
Hartmut Goebel 054e308f5d
import: crate: Use existing package satisfying semver requirement.
If a package satisfying the dependency's semver requirement already exists,
use it. Prior to this change the highest version matching the semver
requirement was used (and imported in case it was not defined as package
already).

When resolving a dependency (now done in `sort-map-dependencies`), first
search for a package matching the semver requirement and only if this fails
reach out for a crate.

* guix/import/crate.scm (crate->guix-package)[find-package-version]: New
  function. [dependency-name+version]: New function.
  [sort-map-dependencies]: Use it instead of lambda function.

* tests/crate.scm (test-doctool-crate, test-doctool-dependencies): New
  variables.
  ("self-test …", "cargo-recursive-import-hoors-existing-packages"): New
  tests.
2020-12-02 22:09:23 +01:00
Hartmut Goebel 45584061a9
import: crate: Trim version for names after left-most non-zero part.
This complies to how versions are matched for caret requirements in crates:
An update is allowed if the new version number does not modify the left-most
non-zero digit in the major, minor, patch grouping.

* guix/import/crate.scm (version->semver-prefix): New function.
  (make-crate-sexp)[format-inputs]: Use it.
  (make-crate-sexp): Use it to pass shorter version to package->definition.
* guix/import/utils.scm (package->definition): Change optional parameter
  APPEND-VERSION? into APPEND-VERSION?/STRING. If it is a string, append its
  value to name.
* tests/crate.scm: Adjust tests accordingly.
2020-12-02 22:09:23 +01:00
Hartmut Goebel 9a48e35be8
import: utils: Trim patch version from names.
This remove the patch version from generated package names. For example
'rust-my-crate-1.1.2' now becomes 'rust-my-crate-1.1'.

* guix/import/utils.scm (package->definition): Trim patch version from
  generated package names.
* tests/crate.scm: (cargo>guix-package, cargo-recursive-import): Likewise.
2020-12-02 22:09:23 +01:00
Martin Becze 50fbb3f032
import: crate: Parameterized importing of dev dependencies.
The recursive crate importer will now include development dependencies only
for the top level package, but not for any of the recursively imported
packages.  Also #:skip-build will be false for the top-most package.

* guix/import/crate.scm (make-crate-sexp): Add the key BUILD?.
  (crate->guix-package): Add the key INCLUDE-DEV-DEPS?.
  (crate-recursive-import): Likewise.
* guix/scripts/import/crate.scm (guix-import-crate): Likewise.
* tests/crate.scm (cargo-recursive-import): Likewise.
2020-12-02 22:09:23 +01:00
Martin Becze d9feb23e10
import: crate: Memorize crate->guix-package.
This adds memorization to procedures that involve network lookups.
'lookup-crate*' is used on every dependency of a package to get its version
list. It is also used to lookup a package's metadata. 'crate-recursive-import'
is also memorized since creating the same package twice will trigger a lookup
on its dependencies.

* guix/import/crate.scm (lookup-crate*): New procedure.
  (crate->guix-package): Memorize package metadata lookups.
  (crate-recursive-import): Memorize package creation.
2020-12-02 22:09:23 +01:00
Martin Becze 269c1db41b
import: crate: Use guile-semver to resolve module versions.
* guix/import/crate.scm: Add guile-semver as a soft dependency.
  (make-crate-sexp): Don't allow other keys. Add '#:skip-build?' to build
  system args. Pass a VERSION argument to 'cargo-inputs'.
  (crate->guix-package): Use guile-semver to resolve the correct module
  versions. Treat "build" dependencies as normal dependencies.
  (crate-name->package-name): Reuse the procedure 'guix-name' instead of
  duplicating its logic.
* guix/import/utils.scm (package-names->package-inputs): Implement
  handling of (name version) pairs.
* guix/scripts/import/crate.scm (guix-import-crate): Use
  crate-recursive-import instead of duplicate code.
* tests/crate.scm (recursive-import): Change test packages versions to be
  distinguishable. Add version data to the test. Check created symbols, too.

Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com>
2020-12-02 22:09:23 +01:00
Martin Becze bea3b17739
import: utils: 'recursive-import' accepts an optional version parameter.
This adds a key VERSION to 'recursive-import' and moves the parameter REPO to
a key. This also changes all the places that rely on 'recursive-import'.

* guix/import/utils.scm (recursive-import): Add the VERSION key. Make REPO a
  key.
  (package->definition): Add optional 'append-version?'.
* guix/scripts/import/crate.scm (guix-import-crate): Add the VERSION key.
* guix/import/crate.scm (crate->guix-package): Add the VERSION key.
  (crate-recursive-import): Pass VERSION to recursive-import, remove now
  unnecessary code.
* guix/import/cran.scm (cran->guix-package, cran-recursive-import): Change the
  REPO parameter to a key.
* guix/import/elpa.scm (elpa->guix-package, elpa-recursive-import): Likewise.
* guix/import/gem.scm (gem->guix-package, recursive-import): Likewise.
* guix/import/opam.scm (opam-recurive-import): Likewise.
* guix/import/pypi.scm (pypi-recursive-import): Likewise.
* guix/import/stackage.scm (stackage-recursive-import): Likewise.
* guix/scripts/import/cran.scm (guix-import-cran): Likewise.
* guix/scripts/import/elpa.scm (guix-import-elpa): Likewise.
* tests/elpa.scm (eval-test-with-elpa): Likewise.
* tests/import-utils.scm (recursive-import): Likewise.

Co-authored-by: Hartmut Goebel <h.goebel@crazy-compilers.com>
2020-12-02 22:09:23 +01:00
Martin Becze 23e2cd156f
guix: self: Add guile-semver as a depenedency.
* guix/self.scm (compiled-guix): Add guile-semver as a depenedency.
2020-12-02 22:09:23 +01:00
Nicolas Goaziou 9a1b1124c0
gnu: snap: Update to 6.3.7.
* gnu/packages/education.scm (snap): Update to 6.3.7.
2020-12-02 22:03:40 +01:00
Nicolas Goaziou b12bf263db
gnu: rust-base64-0.13: Fix code typo.
* gnu/packages/crates-io.scm (rust-base64-0.13): Fix code typo.
2020-12-02 22:03:39 +01:00
Hartmut Goebel 6f9edf40b8
gnu: sequoia: Update to 0.20.0.
* gnu/packages/sequoia.scm (sequoia): Update to 0.20.0. [cargo-inputs,
  cargo-development-inputs] Update dependencies. [phases]{unpin-deps}: Adjust
  path of file to substitute.  {adjust-prefix} Rename to {fix-environment} and
  set another envormnet variable. {keep-SOURCE_DATE_EPOCH}: New phase.
2020-12-02 21:53:44 +01:00
Hartmut Goebel a1b9f68152
gnu: rust-rusqlite: Update to 0.24.
* gnu/packages/crates-io.scm (rust-rusqlite): Update to 0.24.
2020-12-02 21:53:44 +01:00
Hartmut Goebel e02822ede5
gnu: Add rust-libsqlite3-sys-0.20.
* gnu/packages/crates-io.scm (rust-libsqlite3-sys-0.20): New variable,
  skipping build.
  (rust-libsqlite3-sys-0.15): Inherit from rust-libsqlite3-sys-0.20.
2020-12-02 21:53:44 +01:00
Hartmut Goebel 8076a18e32
gnu: Add rust-hashbrown-0.9.
* gnu/packages/crates-io.scm (rust-hashbrown-0.9): New variable, skipping
  build.  (rust-hashbrown-0.8): Inherit from rust-hashbrown-0.9.
2020-12-02 21:53:44 +01:00
Hartmut Goebel 472a74bf6f
gnu: Add rust-hashlink-0.6.
* gnu/packages/crates-io.scm (rust-hashlink-0.6): New variable.
2020-12-02 21:53:44 +01:00
Hartmut Goebel 5e3e43c672
gnu: Add rust-base64-0.13.
* gnu/packages/crates-io.scm (rust-base64-0.13): New variable, skipping
  build.  (rust-base64-0.12): Inherit from rust-base64-0.13.
2020-12-02 21:53:44 +01:00
Hartmut Goebel d81dee205c
gnu: Add rust-bzip2-0.4.
* gnu/packages/crates-io.scm(rust-bzip2-0.4): New variable, skipping
  build.  (rust-bzip2-0.3): Inherit from rust-bzip2-0.4.
2020-12-02 21:53:44 +01:00
Hartmut Goebel 325b4c83db
gnu: Add rust-dyn-clone-1.
* gnu/packages/crates-io.scm (rust-dyn-clone-1): New variable.
2020-12-02 21:53:44 +01:00
Hartmut Goebel 5979d01cbb
gnu: Add rust-ed25519-dalek-1.
* gnu/packages/crates-io.scm (rust-ed25519-dalek-1): New variable.
2020-12-02 21:53:43 +01:00
Hartmut Goebel c2b5feeb52
gnu: Add rust-curve25519-dalek-3.
* gnu/packages/crates-io.scm (rust-curve25519-dalek-3): New variable.
2020-12-02 21:53:43 +01:00
Hartmut Goebel 09f0605111
gnu: Add rust-ed25519-1.
* gnu/packages/crates-io.scm (rust-ed25519-1): New variable.
2020-12-02 21:53:43 +01:00
Hartmut Goebel 1b9ffd73ea
gnu: Add rust-signature-1.
* gnu/packages/crates-io.scm (rust-signature-1): New variable.
2020-12-02 21:53:43 +01:00
Hartmut Goebel e6ab1ab27d
gnu: Add rust-signature-derive-1.
* gnu/packages/crates-io.scm (rust-signature-derive-1): New variable.
2020-12-02 21:53:43 +01:00
Hartmut Goebel 369c3fef59
gnu: Add rust-merlin-2.
* gnu/packages/crates-io.scm (rust-merlin-2): New variable.
2020-12-02 21:53:43 +01:00
Hartmut Goebel 9e92105fc9
gnu: Add rust-keccak-0.1.
* gnu/packages/crates-io.scm (rust-keccak-0.1): New variable.
2020-12-02 21:53:43 +01:00
Hartmut Goebel d3c91e9737
gnu: Add rust-lalrpop-0.19.
* gnu/packages/crates-io.scm (rust-lalrpop-0.19): New variable, skipping
  build.  (rust-lalrpop-0.17): Inherit from rust-lalrpop-0.19.
2020-12-02 21:53:43 +01:00
Hartmut Goebel 8e111eaf96
gnu: Add rust-lalrpop-util-0.19.
* gnu/packages/crates-io.scm (rust-lalrpop-util-0.19): New variable, skipping
  build.  (rust-lalrpop-util-0.17): Inherit from rust-lalrpop-util-0.19.
2020-12-02 21:53:43 +01:00
Hartmut Goebel e33eb2dca6
gnu: Add rust-ena-0.14:
* gnu/packages/crates-io.scm (rust-ena-0.14): New variable, skipping
  build.  (rust-ena-0.13): Inherit from rust-ena-0.14.
2020-12-02 21:53:43 +01:00
Hartmut Goebel fc6bb13018
gnu: Add rust-memsec-0.6.
* gnu/packages/crates-io.scm (rust-memsec-0.6): New variable, skipping
  build.  (rust-memsec-0.5): Inherit from rust-memsec-0.6.
2020-12-02 21:53:42 +01:00
Hartmut Goebel 2545fc4369
gnu: Add rust-num-bigint-dig-0.6.
* gnu/packages/crates-io.scm (rust-num-bigint-dig-0.6): New variable.
2020-12-02 21:53:42 +01:00
Hartmut Goebel b9cdaf62ae
gnu: Add rust-win-crypto-ng-0.2.
* gnu/packages/crates-io.scm (rust-win-crypto-ng-0.2): New variable.
2020-12-02 21:53:42 +01:00
Hartmut Goebel c12601ef58
gnu: Add rust-rpassword-5.
* gnu/packages/crates-io.scm (rust-rpassword-5): New variable, skipping
  build.  (rust-rpassword-4): Inherit from rust-rpassword-5.
2020-12-02 21:53:42 +01:00
Nicolas Goaziou 639f64823b
gnu: emacs-slime-volleyball: Update to 1.1.7.
* gnu/packages/emacs-xyz.scm (emacs-slime-volleyball): Update to 1.1.7.
2020-12-02 21:43:13 +01:00
Efraim Flashner a31ea8588c
gnu: qemu-minimal: Fix emulation build list.
* gnu/packages/virtualization.scm (qemu-minimal)[arguments]: Adjust
configure-flags logic to match using string-prefix instead of a full
match when determining qemu targets.
2020-12-02 19:32:15 +02:00
Efraim Flashner eeb3db0aa1
gnu: nano: Update to 5.4.
* gnu/packages/nano.scm (nano): Update to 5.4.
2020-12-02 18:05:33 +02:00
Kei Kebreau 3c2cf75fb3
gnu: Add catfish.
* gnu/packages/xfce.scm (catfish): New variable.
2020-12-02 09:15:42 -05:00
Pierre Neidhardt 9fe5bb7c92
gnu: lisp-repl-core-dumper: Update to 0.2.0.
* gnu/packages/lisp.scm (lisp-repl-core-dumper): Update to 0.2.0.
2020-12-02 10:38:07 +01:00
Marius Bakke 04b8367865
Revert "gnu: python-packaging: Update to 20.4."
This reverts commit 71b15b4874.
2020-12-01 23:23:10 +01:00
Marius Bakke 0f78b5c128
Revert "gnu: yelp-xsl: Update to 3.36.0."
This reverts commit dee784f6de.
2020-12-01 23:07:12 +01:00
Marius Bakke aa4e899be3
Revert "gnu: yelp-xsl: Enable documentation."
This reverts commit ba7a7d275d.
2020-12-01 23:07:00 +01:00
Marius Bakke e183418ff5
Revert "gnu: yelp-tools: De-propagate some inputs."
This reverts commit c3c92c456b.
2020-12-01 23:06:24 +01:00
Marius Bakke 5b580c0a28
Revert "gnu: gobject-introspection: Update to 1.64.1."
This reverts commit 0382e6a4e6.
2020-12-01 23:05:31 +01:00
Marius Bakke 3187b153a5
Revert "gnu: pixman: Update to 0.40.0."
This reverts commit f6a00057f5.
2020-12-01 23:05:15 +01:00
Marius Bakke 12c3ff4a02
Revert "gnu: pixman: Enable some features."
This reverts commit acc64de45b.
2020-12-01 23:05:06 +01:00
Marius Bakke 6af3045f66
Revert "gnu: openjpeg: Enable tests."
This reverts commit 49d38b9a44.
2020-12-01 23:04:46 +01:00
Marius Bakke f4450e8ca9
gnu: xorg-server: Update to 1.20.10 [fixes CVE-2020-14360, CVE-2020-25712].
* gnu/packages/xorg.scm (xorg-server): Update to 1.20.10.
(xorg-server-for-tests): Stay on 1.20.9.
2020-12-01 22:30:52 +01:00
Marius Bakke 3cf19b83d6
services: MySQL: Fix indentation.
* gnu/services/databases.scm (mysql-upgrade-wrapper): Adjust indentation.
2020-12-01 22:30:52 +01:00
Marius Bakke 383c51ca0f
services: databases: Do not export record type descriptors.
* gnu/services/databases.scm (<postgresql-config-file>,
<postgresql-configuration>, <memcached-configuration>,
<mongodb-configuration>): Remove exports.
2020-12-01 22:30:52 +01:00
Raghav Gururajan 27866b7ce2
gnu: openjpeg: Update synopsis and description.
* gnu/packages/image.scm (openjpeg) [synopsis]: Modify.
[description]: Modify.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-12-01 22:06:03 +01:00
Raghav Gururajan 49d38b9a44
gnu: openjpeg: Enable tests.
* gnu/packages/image.scm (openjpeg) [arguments]<#:tests?>: Remove argument.
<#:configure-flags>[-DBUILD_UNIT_TESTS]: New flag.
[-DBUILD_TESTING]: New flag.
[-DOPJ_DATA_ROOT]: New flag.
<#:phases>['disable-failing-tests]: New phase.
[native-inputs]: Add openjpeg-data.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2020-12-01 22:06:03 +01:00