[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor-browser-build/master] Bug 31844: Fix unquoted paths in OpenSSL Windows build



commit 7bab743e199ea3d3ba8ca3f5ba5289609035f37c
Author: Nicolas Vigier <boklm@xxxxxxxxxxxxxx>
Date:   Wed Sep 25 14:10:12 2019 +0200

    Bug 31844: Fix unquoted paths in OpenSSL Windows build
    
    The default OPENSSLDIR on Windows builds contain spaces and parenthesis,
    which break the build as the unquoted path is used in several places. We
    fix this by escaping the spaces and parenthesis.
    
    This is fixing part of the issues mentioned in:
    https://github.com/openssl/openssl/issues/9520
---
 projects/openssl/build                   |  3 +++
 projects/openssl/config                  |  2 ++
 projects/openssl/escape-openssldir.patch | 28 ++++++++++++++++++++++++++++
 3 files changed, 33 insertions(+)

diff --git a/projects/openssl/build b/projects/openssl/build
index d53185e..3ee3571 100644
--- a/projects/openssl/build
+++ b/projects/openssl/build
@@ -13,6 +13,9 @@ export CC='gcc -m32'
   ln -s $clangdir/bin/clang $clangdir/bin/x86_64-apple-darwin11-cc
   export CC="cc [% c("var/FLAGS") %]"
 [% END -%]
+[% IF c("var/windows") -%]
+  patch -p1 < $rootdir/escape-openssldir.patch
+[% END -%]
 export SOURCE_DATE_EPOCH='[% c("timestamp") %]'
 ./Configure [% c('var/configure_opts') %]
 make
diff --git a/projects/openssl/config b/projects/openssl/config
index f648598..2fc46ea 100644
--- a/projects/openssl/config
+++ b/projects/openssl/config
@@ -29,3 +29,5 @@ input_files:
     project: '[% c("var/compiler") %]'
   - URL: 'https://www.openssl.org/source/openssl-[% c("version") %].tar.gz'
     sha256sum: 1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2
+  - filename: escape-openssldir.patch
+    enable: '[% c("var/windows") %]'
diff --git a/projects/openssl/escape-openssldir.patch b/projects/openssl/escape-openssldir.patch
new file mode 100644
index 0000000..684a179
--- /dev/null
+++ b/projects/openssl/escape-openssldir.patch
@@ -0,0 +1,28 @@
+diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
+index 7db7578a4b..e5ba20b589 100644
+--- a/Configurations/unix-Makefile.tmpl
++++ b/Configurations/unix-Makefile.tmpl
+@@ -215,6 +215,7 @@ INSTALLTOP_dev={- # $prefix is used in the OPENSSLDIR perl snippet
+                   $prefix_dev -}
+ INSTALLTOP_dir={- my $x = File::Spec::Win32->canonpath($prefix_dir);
+                   $x =~ s|\\|/|g;
++                  $x =~ s/([ \(\)])/\\$1/g;
+                   $x -}
+ OPENSSLDIR_dev={- #
+                   # The logic here is that if no --openssldir was given,
+@@ -239,6 +240,7 @@ OPENSSLDIR_dev={- #
+                   $openssldir_dev -}
+ OPENSSLDIR_dir={- my $x = File::Spec::Win32->canonpath($openssldir_dir);
+                   $x =~ s|\\|/|g;
++                  $x =~ s/([ \(\)])/\\$1/g;
+                   $x -}
+ LIBDIR={- our $libdir = $config{libdir} || "lib";
+           File::Spec::Win32->file_name_is_absolute($libdir) ? "" : $libdir -}
+@@ -253,6 +255,7 @@ ENGINESDIR_dev={- use File::Spec::Win32;
+                   $enginesdir_dev -}
+ ENGINESDIR_dir={- my $x = File::Spec::Win32->canonpath($enginesdir_dir);
+                   $x =~ s|\\|/|g;
++                  $x =~ s/([ \(\)])/\\$1/g;
+                   $x -}
+ # In a Windows environment, $(DESTDIR) is harder to contatenate with other
+ # directory variables, because both may contain devices.  What we do here is



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits