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 2014/04/24 06:00:30 UTC
svn commit: r1589565 - in /subversion/branches/1.7.x: ./ STATUS
build/generator/gen_win.py
Author: svn-role
Date: Thu Apr 24 04:00:29 2014
New Revision: 1589565
URL: http://svn.apache.org/r1589565
Log:
Merge the 1.7.x-serf-1.3.x-Windows branch:
* ^/subversion/branches/1.7.x-serf-1.3.x-Windows
Allow compiling against Serf 1.3.x
Notes:
Backport of the 1.8 fixes, plus a few more fixes in order not to
break the neon compilation which also hooks into zlib.
Justification:
(Without this patch the Windows buildbot remains broken for serf with 1.7,
as recent Subversion versions require serf 1.3.x)
Votes:
+1: rhuijben, jcorvel, stefan2
Modified:
subversion/branches/1.7.x/ (props changed)
subversion/branches/1.7.x/STATUS
subversion/branches/1.7.x/build/generator/gen_win.py
Propchange: subversion/branches/1.7.x/
------------------------------------------------------------------------------
Merged /subversion/branches/1.7.x-serf-1.3.x-Windows:r1543441-1589564
Merged /subversion/branches/1.8.x-openssl-dirs:r1535139
Merged /subversion/branches/1.8.x-serf-1.3+-windows:r1517123
Modified: subversion/branches/1.7.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1589565&r1=1589564&r2=1589565&view=diff
==============================================================================
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Thu Apr 24 04:00:29 2014
@@ -169,6 +169,3 @@ Approved changes:
"Moves should just work" or "be nice to api users, like Markus"
Votes:
+1: rhuijben, breser, stefan2
- +1 (non-binding): schabi (Fixes our use case, all our other tests pass.)
-
-
Modified: subversion/branches/1.7.x/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/build/generator/gen_win.py?rev=1589565&r1=1589564&r2=1589565&view=diff
==============================================================================
--- subversion/branches/1.7.x/build/generator/gen_win.py (original)
+++ subversion/branches/1.7.x/build/generator/gen_win.py Thu Apr 24 04:00:29 2014
@@ -382,14 +382,21 @@ class WinGeneratorBase(GeneratorBase):
install_targets = [x for x in install_targets if not (isinstance(x, gen_base.TargetExe)
and x.install == 'bdb-test')]
+ # Don't build serf when we don't have it or for 1.3+
+ if not self.serf_lib or (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+ install_targets = [x for x in install_targets if x.name != 'serf']
+
# Drop the serf target if we don't have both serf and openssl
if not self.serf_lib:
- install_targets = [x for x in install_targets if x.name != 'serf']
install_targets = [x for x in install_targets if x.name != 'libsvn_ra_serf']
if self.without_neon:
install_targets = [x for x in install_targets if x.name != 'neon']
install_targets = [x for x in install_targets if x.name != 'libsvn_ra_neon']
+ # Don't build zlib if we have an already compiled serf
+ if self.serf_lib and (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+ install_targets = [x for x in install_targets if x.name != 'zlib']
+
# Drop the swig targets if we don't have swig
if not self.swig_path and not self.swig_libdir:
install_targets = [x for x in install_targets
@@ -712,7 +719,9 @@ class WinGeneratorBase(GeneratorBase):
# Build ZLib as a dependency of Neon or Serf if we have it
if self.zlib_path and (name == 'neon' or name == 'serf'):
- depends.extend(self.sections['zlib'].get_targets())
+ # Don't add a dependency to zlib, when we don't build zlib.
+ if not self.serf_lib or (self.serf_ver_maj, self.serf_ver_min) < (1, 3):
+ depends.extend(self.sections['zlib'].get_targets())
# To set the correct build order of the JavaHL targets, the javahl-javah
# and libsvnjavahl targets are defined with extra dependencies in build.conf
@@ -942,6 +951,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)
@@ -993,7 +1005,13 @@ class WinGeneratorBase(GeneratorBase):
if self.sasl_path:
fakelibdirs.append(self.apath(self.sasl_path, "lib"))
if self.serf_lib:
- fakelibdirs.append(self.apath(msvc_path_join(self.serf_path, cfg)))
+ 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)))
fakelibdirs.append(self.apath(self.apr_path, cfg))
fakelibdirs.append(self.apath(self.apr_util_path, cfg))
@@ -1033,7 +1051,14 @@ class WinGeneratorBase(GeneratorBase):
else:
serflib = 'serf.lib'
- zlib = (cfg == 'Debug' and 'zlibstatD.lib' or 'zlibstat.lib')
+ if self.serf_lib and (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+ # We don't build zlib ourselves, so use the standard name
+ # (zdll.lib would link to zlib.dll)
+ zlib = 'zlib.lib'
+ else:
+ # We compile zlib ourselves to these explicit (non-standard) names
+ zlib = (cfg == 'Debug' and 'zlibstatD.lib' or 'zlibstat.lib')
+
sasllib = None
if self.sasl_path:
sasllib = 'libsasl.lib'
@@ -1080,6 +1105,9 @@ class WinGeneratorBase(GeneratorBase):
if self.serf_lib and dep.external_lib == '$(SVN_SERF_LIBS)':
nondeplibs.append(serflib)
+ if (self.serf_ver_maj, self.serf_ver_min) >= (1, 3):
+ nondeplibs.append('ssleay32.lib')
+ nondeplibs.append('libeay32.lib')
if dep.external_lib == '$(SVN_SASL_LIBS)':
nondeplibs.append(sasllib)
@@ -1487,6 +1515,21 @@ class WinGeneratorBase(GeneratorBase):
"Check if serf and its dependencies are available"
minimal_serf_version = (0, 3, 0)
+
+ 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')
+ 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):