You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by sv...@apache.org on 2013/11/10 05:02:43 UTC

svn commit: r1540437 - in /subversion/branches/1.8.x: ./ STATUS build/generator/gen_win.py

Author: svn-role
Date: Sun Nov 10 04:02:42 2013
New Revision: 1540437

URL: http://svn.apache.org/r1540437
Log:
Merge the 1.8.x-openssl-dirs branch:

 * r1535139
   Make openssl lib and include directory available when using --with-openssl
   on Windows.
   Justification:
     Serf 1.2 simply included the openssl static library in its own static
     library, which made it very easy for Subversion to consume, but added the
     risk of linking to many different openssl versions (both static and
     shared builds) at once. This bug in serf was fixed for 1.3 and we
     updated Subversion to use 1.3 for Subversion 1.8.4, but without this
     patch we added the assumption that ssleay32.lib and libeay32.lib are
     within some existing referenced library directory.
     This patch fixes that assumption by adding the right libdir to our build,
     by borrowing some code from trunk.
   Branch: ^/subversion/branches/1.8.x-openssl-dirs
   Votes:
     +1: rhuijben, ivan, stefan2

Modified:
    subversion/branches/1.8.x/   (props changed)
    subversion/branches/1.8.x/STATUS
    subversion/branches/1.8.x/build/generator/gen_win.py

Propchange: subversion/branches/1.8.x/
------------------------------------------------------------------------------
  Merged /subversion/branches/1.8.x-openssl-dirs:r1535137-1540436

Modified: subversion/branches/1.8.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x/STATUS?rev=1540437&r1=1540436&r2=1540437&view=diff
==============================================================================
--- subversion/branches/1.8.x/STATUS (original)
+++ subversion/branches/1.8.x/STATUS Sun Nov 10 04:02:42 2013
@@ -188,23 +188,6 @@ Veto-blocked changes:
 Approved changes:
 =================
 
- * r1535139
-   Make openssl lib and include directory available when using --with-openssl
-   on Windows.
-   Justification:
-     Serf 1.2 simply included the openssl static library in its own static
-     library, which made it very easy for Subversion to consume, but added the
-     risk of linking to many different openssl versions (both static and
-     shared builds) at once. This bug in serf was fixed for 1.3 and we
-     updated Subversion to use 1.3 for Subversion 1.8.4, but without this
-     patch we added the assumption that ssleay32.lib and libeay32.lib are
-     within some existing referenced library directory.
-     This patch fixes that assumption by adding the right libdir to our build,
-     by borrowing some code from trunk.
-   Branch: ^/subversion/branches/1.8.x-openssl-dirs
-   Votes:
-     +1: rhuijben, ivan, stefan2
-
  * r1535161
    Make swig-rb tests run without installing on OS X.
    Justification:

Modified: subversion/branches/1.8.x/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x/build/generator/gen_win.py?rev=1540437&r1=1540436&r2=1540437&view=diff
==============================================================================
--- subversion/branches/1.8.x/build/generator/gen_win.py (original)
+++ subversion/branches/1.8.x/build/generator/gen_win.py Sun Nov 10 04:02:42 2013
@@ -947,6 +947,9 @@ class WinGeneratorBase(GeneratorBase):
 
     if self.serf_lib:
       fakeincludes.append(self.apath(self.serf_path))
+      
+      if self.openssl_path and self.openssl_inc_dir:
+        fakeincludes.append(self.apath(self.openssl_inc_dir))
 
     if self.swig_libdir \
        and (isinstance(target, gen_base.TargetSWIG)
@@ -1006,6 +1009,9 @@ class WinGeneratorBase(GeneratorBase):
     if self.serf_lib:
       if (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
         fakelibdirs.append(self.apath(self.serf_path))
+        
+        if self.openssl_path and self.openssl_lib_dir:
+          fakelibdirs.append(self.apath(self.openssl_lib_dir))
       else:
         fakelibdirs.append(self.apath(msvc_path_join(self.serf_path, cfg)))
 
@@ -1469,6 +1475,24 @@ class WinGeneratorBase(GeneratorBase):
     "Check if serf and its dependencies are available"
 
     minimal_serf_version = (1, 2, 1)
+    
+    if self.openssl_path and os.path.exists(self.openssl_path):
+      version_path = os.path.join(self.openssl_path, 'inc32/openssl/opensslv.h')
+      if os.path.isfile(version_path):
+        # We have an OpenSSL Source location (legacy handling)
+        self.openssl_inc_dir = os.path.join(self.openssl_path, 'inc32')
+        if self.static_openssl:
+          self.openssl_lib_dir = os.path.join(self.openssl_path, 'out32')
+        else:
+          self.openssl_lib_dir = os.path.join(self.openssl_path, 'out32dll')
+      elif os.path.isfile(os.path.join(self.openssl_path,
+                          'include/openssl/opensslv.h')):
+        self.openssl_inc_dir = os.path.join(self.openssl_path, 'include')
+        self.openssl_lib_dir = os.path.join(self.openssl_path, 'lib')
+      else:
+        print('WARNING: \'opensslv.h\' not found')
+        self.openssl_path = None
+    
     self.serf_lib = None
     if self.serf_path and os.path.exists(self.serf_path):
       if self.openssl_path and os.path.exists(self.openssl_path):