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:
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
22
net-im/fractal/files/patch-vendor_openssl-sys_build_cfgs.rs
Normal file
22
net-im/fractal/files/patch-vendor_openssl-sys_build_cfgs.rs
Normal 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();
|
19
net-im/fractal/files/patch-vendor_openssl-sys_build_main.rs
Normal file
19
net-im/fractal/files/patch-vendor_openssl-sys_build_main.rs
Normal 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.
|
||||
|
||||
"
|
26
net-im/fractal/files/patch-vendor_openssl-sys_src_crypto.rs
Normal file
26
net-im/fractal/files/patch-vendor_openssl-sys_src_crypto.rs
Normal 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,
|
11
net-im/fractal/files/patch-vendor_openssl-sys_src_ssl.rs
Normal file
11
net-im/fractal/files/patch-vendor_openssl-sys_src_ssl.rs
Normal 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;
|
||||
|
23
net-im/fractal/files/patch-vendor_openssl_build.rs
Normal file
23
net-im/fractal/files/patch-vendor_openssl_build.rs
Normal 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");
|
||||
}
|
||||
}
|
||||
}
|
28
net-im/fractal/files/patch-vendor_openssl_src_ssl_mod.rs
Normal file
28
net-im/fractal/files/patch-vendor_openssl_src_ssl_mod.rs
Normal 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))
|
||||
}
|
11
net-im/fractal/files/patch-vendor_openssl_src_version.rs
Normal file
11
net-im/fractal/files/patch-vendor_openssl_src_version.rs
Normal 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,
|
Loading…
Reference in a new issue