From acbe4f196280dda3197875f79d0b6bcdea1b3f81 Mon Sep 17 00:00:00 2001 From: Eric Semeniuc <3838856+esemeniuc@users.noreply.github.com> Date: Thu, 30 May 2024 15:56:00 -0700 Subject: [PATCH] patch --- Cargo.toml | 2 +- zmq-sys/Cargo.toml | 4 +++- zmq-sys/build/main.rs | 12 +++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 02e6c23c..e90bcb2b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ zmq_has = [] [dependencies] bitflags = "1.0" libc = "0.2.15" -zmq-sys = { version = "0.12.0", path = "zmq-sys" } +zmq-sys = { version = "0.12.0", path = "zmq-sys", features = ["libsodium"] } [dev-dependencies] trybuild = { version = "1" } diff --git a/zmq-sys/Cargo.toml b/zmq-sys/Cargo.toml index 14507b86..efc5e924 100644 --- a/zmq-sys/Cargo.toml +++ b/zmq-sys/Cargo.toml @@ -14,13 +14,15 @@ build = "build/main.rs" links = "zmq" [features] +libsodium = ["libsodium-sys-stable"] [dependencies] +libsodium-sys-stable = { version = "1.0", optional = true } libc = "0.2.15" [build-dependencies] system-deps = "6" -zeromq-src = { version = "0.2.1" } +zeromq-src = "0.3.2+4.3.5" [package.metadata.system-deps] libzmq = "4.1" diff --git a/zmq-sys/build/main.rs b/zmq-sys/build/main.rs index d6c229bc..099dafad 100644 --- a/zmq-sys/build/main.rs +++ b/zmq-sys/build/main.rs @@ -1,13 +1,23 @@ +extern crate zeromq_src; + +use std::env; +use zeromq_src::LibLocation; + pub fn configure() { println!("cargo:rerun-if-changed=build/main.rs"); println!("cargo:rerun-if-env-changed=PROFILE"); + // get sodium lib and include paths from environment + let sodium_paths = env::var("DEP_SODIUM_LIB") + .and_then(|lib| env::var("DEP_SODIUM_INCLUDE").map(|inc| LibLocation::new(lib, inc))) + .ok(); + // Note that by default `libzmq` builds without `libsodium` by instead // relying on `tweetnacl`. However since this `tweetnacl` [has never been // audited nor is ready for production](https://github.com/zeromq/libzmq/issues/3006), // we link against `libsodium` to enable `ZMQ_CURVE`. zeromq_src::Build::new() - .with_libsodium(None) + .with_libsodium(sodium_paths) .build(); }