Commit graph

70182 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