net-im/fractal: unbreak with LibreSSL 2.9.1+

PR:		238536
Submitted by:	Charlie Li <ml+freebsd@vishwin.info>
Approved by:	maintainer timeout (greg@unrelenting.technology, >2 weeks)
This commit is contained in:
Steve Wills 2019-06-30 20:03:06 +00:00
parent 899a8b435a
commit 374d1a69a2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=505465
7 changed files with 140 additions and 0 deletions

View file

@ -0,0 +1,22 @@
--- vendor/openssl-sys/build/cfgs.rs.orig 2018-12-22 10:43:42 UTC
+++ vendor/openssl-sys/build/cfgs.rs
@@ -13,6 +13,9 @@ pub fn get(openssl_version: Option<u64>, libressl_vers
if libressl_version >= 0x2_07_00_00_0 {
cfgs.push("libressl270");
}
+ if libressl_version >= 0x2_07_01_00_0 {
+ cfgs.push("libressl271");
+ }
if libressl_version >= 0x2_07_03_00_0 {
cfgs.push("libressl273");
}
@@ -21,6 +24,9 @@ pub fn get(openssl_version: Option<u64>, libressl_vers
}
if libressl_version >= 0x2_08_01_00_0 {
cfgs.push("libressl281");
+ }
+ if libressl_version >= 0x2_09_01_00_0 {
+ cfgs.push("libressl291");
}
} else {
let openssl_version = openssl_version.unwrap();

View file

@ -0,0 +1,19 @@
--- vendor/openssl-sys/build/main.rs.orig 2018-12-22 10:43:42 UTC
+++ vendor/openssl-sys/build/main.rs
@@ -505,6 +505,7 @@ See rust-openssl README for more information:
(8, 1) => ('8', '1'),
(8, _) => ('8', 'x'),
(9, 0) => ('9', '0'),
+ (9, _) => ('9', 'x'),
_ => version_error(),
};
@@ -545,7 +546,7 @@ fn version_error() -> ! {
"
This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5
-through 2.9.0, but a different version of OpenSSL was found. The build is now aborting
+through 2.9.x, but a different version of OpenSSL was found. The build is now aborting
due to this version mismatch.
"

View file

@ -0,0 +1,26 @@
--- vendor/openssl-sys/src/crypto.rs.orig 2018-12-22 10:43:42 UTC
+++ vendor/openssl-sys/src/crypto.rs
@@ -15,7 +15,13 @@ cfg_if! {
if #[cfg(ossl110)] {
pub const CRYPTO_EX_INDEX_SSL: c_int = 0;
pub const CRYPTO_EX_INDEX_SSL_CTX: c_int = 1;
-
+ } else if #[cfg(libressl)] {
+ pub const CRYPTO_EX_INDEX_SSL: c_int = 1;
+ pub const CRYPTO_EX_INDEX_SSL_CTX: c_int = 2;
+ }
+}
+cfg_if! {
+ if #[cfg(any(ossl110, libressl271))] {
extern "C" {
pub fn OpenSSL_version_num() -> c_ulong;
pub fn OpenSSL_version(key: c_int) -> *const c_char;
@@ -64,7 +70,7 @@ pub type CRYPTO_EX_free = unsafe extern "C" fn(
argp: *mut c_void,
);
extern "C" {
- #[cfg(ossl110)]
+ #[cfg(any(ossl110, libressl))]
pub fn CRYPTO_get_ex_new_index(
class_index: c_int,
argl: c_long,

View file

@ -0,0 +1,11 @@
--- vendor/openssl-sys/src/ssl.rs.orig 2018-12-22 10:43:42 UTC
+++ vendor/openssl-sys/src/ssl.rs
@@ -1032,7 +1032,7 @@ extern "C" {
}
cfg_if! {
- if #[cfg(ossl110)] {
+ if #[cfg(any(ossl110, libressl291))] {
extern "C" {
pub fn TLS_method() -> *const SSL_METHOD;

View file

@ -0,0 +1,23 @@
--- vendor/openssl/build.rs.orig 2018-12-22 10:43:42 UTC
+++ vendor/openssl/build.rs
@@ -46,12 +46,20 @@ fn main() {
println!("cargo:rustc-cfg=libressl270");
}
+ if version >= 0x2_07_01_00_0 {
+ println!("cargo:rustc-cfg=libressl271");
+ }
+
if version >= 0x2_07_03_00_0 {
println!("cargo:rustc-cfg=libressl273");
}
if version >= 0x2_08_00_00_0 {
println!("cargo:rustc-cfg=libressl280");
+ }
+
+ if version >= 0x2_09_01_00_0 {
+ println!("cargo:rustc-cfg=libressl291");
}
}
}

View file

@ -0,0 +1,28 @@
--- vendor/openssl/src/ssl/mod.rs.orig 2018-12-22 10:43:42 UTC
+++ vendor/openssl/src/ssl/mod.rs
@@ -3690,9 +3690,14 @@ cfg_if! {
}
cfg_if! {
- if #[cfg(ossl110)] {
+ if #[cfg(any(ossl110, libressl291))] {
use ffi::{TLS_method, DTLS_method};
-
+ } else {
+ use ffi::{SSLv23_method as TLS_method, DTLSv1_method as DTLS_method};
+ }
+}
+cfg_if! {
+ if #[cfg(ossl110)] {
unsafe fn get_new_idx(f: ffi::CRYPTO_EX_free) -> c_int {
ffi::CRYPTO_get_ex_new_index(
ffi::CRYPTO_EX_INDEX_SSL_CTX,
@@ -3715,8 +3720,6 @@ cfg_if! {
)
}
} else {
- use ffi::{SSLv23_method as TLS_method, DTLSv1_method as DTLS_method};
-
unsafe fn get_new_idx(f: ffi::CRYPTO_EX_free) -> c_int {
ffi::SSL_CTX_get_ex_new_index(0, ptr::null_mut(), None, None, Some(f))
}

View file

@ -0,0 +1,11 @@
--- vendor/openssl/src/version.rs.orig 2018-12-22 10:43:42 UTC
+++ vendor/openssl/src/version.rs
@@ -14,7 +14,7 @@
use std::ffi::CStr;
cfg_if! {
- if #[cfg(ossl110)] {
+ if #[cfg(any(ossl110, libressl271))] {
use ffi::{
OPENSSL_VERSION, OPENSSL_CFLAGS, OPENSSL_BUILT_ON, OPENSSL_PLATFORM, OPENSSL_DIR,
OpenSSL_version_num, OpenSSL_version,