aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/crates-io.scm44
-rw-r--r--gnu/packages/patches/rust-nettle-disable-vendor.patch13
3 files changed, 58 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 3d9f418133..2c05360bae 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1433,6 +1433,7 @@ dist_patch_DATA = \
%D%/packages/patches/rust-1.25-accept-more-detailed-gdb-lines.patch \
%D%/packages/patches/rust-bootstrap-stage0-test.patch \
%D%/packages/patches/rust-coresimd-doctest.patch \
+ %D%/packages/patches/rust-nettle-disable-vendor.patch \
%D%/packages/patches/rust-nettle-sys-disable-vendor.patch \
%D%/packages/patches/rust-reproducible-builds.patch \
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 5980282399..9237a282b7 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -38,6 +38,7 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages llvm)
+ #:use-module (gnu packages multiprecision)
#:use-module (gnu packages nettle)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
@@ -13185,6 +13186,49 @@ types as proposed in RFC 1158.")
(license (list license:asl2.0
license:expat))))
+(define-public rust-nettle-7
+ (package
+ (name "rust-nettle")
+ (version "7.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "nettle" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1n6dwy9zba8853bmxzhwaashd3np0wxpx0pj43brm0hb8n2sxbxi"))
+ (patches (search-patches "rust-nettle-disable-vendor.patch"))))
+ (build-system cargo-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("clang" ,clang)
+ ("gmp" ,gmp)
+ ("nettle" ,nettle)))
+ (arguments
+ `(#:skip-build? #t ;; provides nothing, has no tests
+ #:cargo-inputs
+ (("rust-getrandom" ,rust-getrandom-0.1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-nettle-sys" ,rust-nettle-sys-2)
+ ("rust-thiserror" ,rust-thiserror-1.0))
+ #:cargo-development-inputs
+ (("rust-bindgen" ,rust-bindgen-0.51)
+ ("rust-pkg-config" ,rust-pkg-config-0.3))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-missing-env-vars
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; FIXME: why do we need to set this?
+ (setenv "LIBCLANG_PATH"
+ (string-append (assoc-ref inputs "clang") "/lib"))
+ #t)))))
+ (home-page "https://gitlab.com/sequoia-pgp/nettle-rs")
+ (synopsis "Rust bindings for the Nettle cryptographic library")
+ (description "This package provides Rust bindings for the Nettle
+cryptographic library.")
+ (license (list license:lgpl3 license:gpl2 license:gpl3))))
+
(define-public rust-nettle-sys-2
(package
(name "rust-nettle-sys")
diff --git a/gnu/packages/patches/rust-nettle-disable-vendor.patch b/gnu/packages/patches/rust-nettle-disable-vendor.patch
new file mode 100644
index 0000000000..5b52821cdb
--- /dev/null
+++ b/gnu/packages/patches/rust-nettle-disable-vendor.patch
@@ -0,0 +1,13 @@
+Subject: nettle: clear out "vendored" feature cruft from build.rs
+From: Daniel Kahn Gillmor's avatarDaniel Kahn Gillmor <dkg@fifthhorseman.net>
+
+https://salsa.debian.org/rust-team/debcargo-conf/-/commit/b608e6beaa1d38c14fc16ad53780d94954a91900
+https://sources.debian.org/src/rust-nettle/7.0.0-1/debian/patches/disable-vendor.diff/
+--- a/Cargo.toml 1969-12-31 19:00:00.000000000 -0500
++++ b/Cargo.toml 2019-10-23 19:12:01.076181971 -0400
+@@ -35,4 +35,4 @@
+ version = "1"
+
+ [features]
+-vendored = ["nettle-sys/vendored"]
++vendored = []