From 6fd03a9bee69648bbec2d942bf4cfbc1da653bbb Mon Sep 17 00:00:00 2001 From: Harsha Raghu Date: Mon, 31 Oct 2022 01:35:59 +0530 Subject: [PATCH 1/2] impl OPENSSL_SRC_PREFIX_SANTIZE env var - Sanitize path forcefully based on env var - Dump some helpful build info when build fails --- src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index b50247de..da1eab04 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -119,6 +119,8 @@ impl Build { let build_dir = out_dir.join("build"); let install_dir = out_dir.join("install"); + println!("\nopenssl-src::Build\ntarget = {}\nhost = {}\nout_dir = {}\nbuild_dir = {}\ninstall_dir = {}\nis cfg Windows = {}\n", target, host, out_dir.display(), build_dir.display(), install_dir.display(), !cfg!(windows)); + if build_dir.exists() { fs::remove_dir_all(&build_dir).unwrap(); } @@ -136,7 +138,9 @@ impl Build { configure.arg("./Configure"); // Change the install directory to happen inside of the build directory. - if host.contains("pc-windows-gnu") { + // Sanitize also if env var is set + let sanitize = env::var("OPENSSL_SRC_PREFIX_SANITIZE_SH").unwrap_or("false".to_string()); + if host.contains("pc-windows-gnu") || sanitize.contains("true") { configure.arg(&format!("--prefix={}", sanitize_sh(&install_dir))); } else { configure.arg(&format!("--prefix={}", install_dir.display())); From 428720f39122be285fe054a002a349d9d0a12f01 Mon Sep 17 00:00:00 2001 From: Harsha Raghu Date: Mon, 31 Oct 2022 02:27:31 +0530 Subject: [PATCH 2/2] typo --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index da1eab04..68357322 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -119,7 +119,7 @@ impl Build { let build_dir = out_dir.join("build"); let install_dir = out_dir.join("install"); - println!("\nopenssl-src::Build\ntarget = {}\nhost = {}\nout_dir = {}\nbuild_dir = {}\ninstall_dir = {}\nis cfg Windows = {}\n", target, host, out_dir.display(), build_dir.display(), install_dir.display(), !cfg!(windows)); + println!("\nopenssl-src::Build\ntarget = {}\nhost = {}\nout_dir = {}\nbuild_dir = {}\ninstall_dir = {}\nis cfg Windows = {}\n", target, host, out_dir.display(), build_dir.display(), install_dir.display(), cfg!(windows)); if build_dir.exists() { fs::remove_dir_all(&build_dir).unwrap();