~ruther/guix-local

5effc5bfe1f9bbe94be9ac8bd40e2f2875b08720 — Hartmut Goebel 6 years ago cfb9bc2
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.
M gnu/local.mk => gnu/local.mk +1 -0
@@ 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	\

M gnu/packages/crates-io.scm => gnu/packages/crates-io.scm +31 -0
@@ 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")

A gnu/packages/patches/rust-nettle-sys-disable-vendor.patch => gnu/packages/patches/rust-nettle-sys-disable-vendor.patch +48 -0
@@ 0,0 1,48 @@
Subject: nettle-sys: 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/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") {