From 5effc5bfe1f9bbe94be9ac8bd40e2f2875b08720 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Thu, 23 Apr 2020 23:10:51 +0200 Subject: [PATCH] gnu: Add rust-nettle-sys-2. * gnu/packages/crates-io.scm (rust-nettle-sys-2): New variable. * gnu/packages/patches/rust-nettle-sys-disable-vendor.patch: New file. * gnu/local.mk: Add it. --- gnu/local.mk | 1 + gnu/packages/crates-io.scm | 31 ++++++++++++ .../rust-nettle-sys-disable-vendor.patch | 48 +++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 gnu/packages/patches/rust-nettle-sys-disable-vendor.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0797efb93e..3d9f418133 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-sys-disable-vendor.patch \ %D%/packages/patches/rust-reproducible-builds.patch \ %D%/packages/patches/rust-openssl-sys-no-vendor.patch \ %D%/packages/patches/rxvt-unicode-escape-sequences.patch \ diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index a0be3575b8..5980282399 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 nettle) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -13184,6 +13185,36 @@ types as proposed in RFC 1158.") (license (list license:asl2.0 license:expat)))) +(define-public rust-nettle-sys-2 + (package + (name "rust-nettle-sys") + (version "2.0.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "nettle-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1yq1w6dlcmg89x529i7s20j29afdhgim7qnsa7978fszzwrr6qmq")) + (patches (search-patches "rust-nettle-sys-disable-vendor.patch")))) + (build-system cargo-build-system) + (native-inputs + `(("clang" ,clang) + ("pkg-config" ,pkg-config))) + (inputs + `(("nettle", nettle))) + (arguments + `(#:skip-build? #t + #:cargo-development-inputs + (("rust-bindgen" ,rust-bindgen-0.51) + ("rust-pkg-config" ,rust-pkg-config-0.3)))) + (home-page "https://gitlab.com/sequoia-pgp/nettle-sys") + (synopsis "Low-level Rust bindings for the Nettle cryptographic library") + (description "This package provides low-level Rust bindings for the Nettle +cryptographic library.") + (license ;; licensed under either of these, at your option + (list license:lgpl3 license:gpl2 license:gpl3)))) + (define-public rust-new-debug-unreachable-1.0 (package (name "rust-new-debug-unreachable") diff --git a/gnu/packages/patches/rust-nettle-sys-disable-vendor.patch b/gnu/packages/patches/rust-nettle-sys-disable-vendor.patch new file mode 100644 index 0000000000..ae5ef5ebe0 --- /dev/null +++ b/gnu/packages/patches/rust-nettle-sys-disable-vendor.patch @@ -0,0 +1,48 @@ +Subject: nettle-sys: clear out "vendored" feature cruft from build.rs +From: Daniel Kahn Gillmor's avatarDaniel Kahn Gillmor + +https://salsa.debian.org/rust-team/debcargo-conf/-/commit/0c71150ad26bb66a8396dcdab055181af232ddc5 +https://sources.debian.org/src/rust-nettle-sys/2.0.4-3/debian/patches/disable-vendor.diff/ +--- a/Cargo.toml 2019-10-23 13:08:07.000000000 -0400 ++++ b/Cargo.toml 2019-10-23 14:08:46.644064014 -0400 +@@ -29,12 +29,9 @@ + version = "0.51.1" + default-features = false + +-[build-dependencies.nettle-src] +-version = "3.5.1-0" +-optional = true +- + [build-dependencies.pkg-config] + version = "0.3" + + [features] + vendored = ["nettle-src"] ++nettle-src = [] +diff --git a/build.rs b/build.rs +index 44f7af3..ede4b2f 100644 +--- a/build.rs ++++ b/build.rs +@@ -1,7 +1,5 @@ + extern crate bindgen; + extern crate pkg_config; +-#[cfg(feature = "vendored")] +-extern crate nettle_src; + + use std::env; + use std::fs; +@@ -36,14 +34,6 @@ fn main() { + println!("cargo:rerun-if-env-changed=NETTLE_STATIC"); + println!("cargo:rerun-if-env-changed={}", NETTLE_PREGENERATED_BINDINGS); + +- #[cfg(feature = "vendored")] +- { +- let artifacts = nettle_src::Build::new().build(); +- println!("cargo:vendored=1"); +- env::set_var("PKG_CONFIG_PATH", +- artifacts.lib_dir().join("pkgconfig")); +- } +- + let nettle = pkg_config::probe_library("nettle hogweed").unwrap(); + + let mode = match env::var_os("NETTLE_STATIC") {