update to 1.9.0 (#1207835)

Resolves: rhbz#1207835
This commit is contained in:
Joe Orton 2015-08-24 14:14:04 +01:00
parent 081fa7e906
commit 9c77a54c51
10 changed files with 169 additions and 171 deletions

1
.gitignore vendored
View File

@ -32,3 +32,4 @@ subversion-1.6.12.tar.bz2
/subversion-1.8.10.tar.bz2
/subversion-1.8.11.tar.bz2
/subversion-1.8.13.tar.bz2
/subversion-1.9.0.tar.bz2

View File

@ -1 +1 @@
4413417b529d7bdf82f74e50df02e88b subversion-1.8.13.tar.bz2
20ae7b0d4ef07eeaf73eb4e23317b495 subversion-1.9.0.tar.bz2

View File

@ -1,32 +0,0 @@
--- subversion/libsvn_wc/wc-metadata.sql 2015/04/09 11:21:12 1672294
+++ subversion/libsvn_wc/wc-metadata.sql 2015/04/09 11:31:12 1672295
@@ -619,6 +619,11 @@
INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
('WC_LOCK', 'sqlite_autoindex_WC_LOCK_1', '100 100 1');
+INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+ ('EXTERNALS','sqlite_autoindex_EXTERNALS_1', '100 100 1');
+INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
+ ('EXTERNALS','I_EXTERNALS_DEFINED', '100 100 3 1');
+
/* sqlite_autoindex_WORK_QUEUE_1 doesn't exist because WORK_QUEUE is
a INTEGER PRIMARY KEY AUTOINCREMENT table */
--- subversion/tests/libsvn_wc/wc-queries-test.c 2015/04/09 11:21:12 1672294
+++ subversion/tests/libsvn_wc/wc-queries-test.c 2015/04/09 11:31:12 1672295
@@ -927,6 +927,15 @@
"VALUES (1, '', '')",
NULL, NULL, NULL));
+ SQLITE_ERR(
+ sqlite3_exec(sdb,
+ "INSERT INTO EXTERNALS (wc_id, local_relpath,"
+ " parent_relpath, repos_id,"
+ " presence, kind, def_local_relpath,"
+ " def_repos_relpath) "
+ "VALUES (1, 'subdir', '', 1, 'normal', 'dir', '', '')",
+ NULL, NULL, NULL));
+
/* These are currently not necessary for query optimization, but it's better
to tell Sqlite how we intend to use this table anyway */
SQLITE_ERR(

View File

@ -1,26 +0,0 @@
The first half of this is certainly upstream-worthy, but the second half is presumably
some Fedora-specific KDE packaging thing. It's not obvious how to get
kde4-config to report the directory which contains the .so files.
--- subversion-1.8.0/build/ac-macros/kwallet.m4.kwallet
+++ subversion-1.8.0/build/ac-macros/kwallet.m4
@@ -63,15 +63,15 @@ AC_DEFUN(SVN_LIB_KWALLET,
fi
done
qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
- kde_dir="`$KDE4_CONFIG --prefix`"
- SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_dir/include"
+ kde_include_dirs="-I`$KDE4_CONFIG --path include`"
+ SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs $kde_include_dirs"
qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
LIBS="$LIBS $SVN_KWALLET_LIBS"
qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
kde_lib_suffix="`$KDE4_CONFIG --libsuffix`"
- LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs -L$kde_dir/lib$kde_lib_suffix)`"
+ LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs)` -L$libdir/kde4/devel"
AC_LANG(C++)
AC_LINK_IFELSE([AC_LANG_SOURCE([[
#include <kwallet.h>

View File

@ -1,56 +0,0 @@
diff -uap subversion-1.7.0/build/generator/gen_base.py.pie subversion-1.7.0/build/generator/gen_base.py
--- subversion-1.8.0/build/generator/gen_base.py.pie
+++ subversion-1.8.0/build/generator/gen_base.py
@@ -409,7 +409,7 @@ class TargetLinked(Target):
self.install = options.get('install')
self.compile_cmd = options.get('compile-cmd')
self.sources = options.get('sources', '*.c *.cpp')
- self.link_cmd = options.get('link-cmd', '$(LINK)')
+ self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
self.external_lib = options.get('external-lib')
self.external_project = options.get('external-project')
@@ -465,6 +465,11 @@ class TargetExe(TargetLinked):
self.manpages = options.get('manpages', '')
self.testing = options.get('testing')
+ if self.install == 'test' or self.install == 'bdb-test':
+ self.link_cmd = '$(LINK_TEST)'
+ else:
+ self.link_cmd = '$(LINK_EXE)'
+
def add_dependencies(self):
TargetLinked.add_dependencies(self)
@@ -515,8 +520,8 @@ class TargetLib(TargetLinked):
self.msvc_export = options.get('msvc-export', '').split()
### hmm. this is Makefile-specific
- if self.link_cmd == '$(LINK)':
- self.link_cmd = '$(LINK_LIB)'
+ if self.install == 'test':
+ self.link_cmd = '$(LINK_TEST_LIB)'
class TargetApacheMod(TargetLib):
--- subversion-1.8.0/Makefile.in.pie
+++ subversion-1.8.0/Makefile.in
@@ -203,6 +203,9 @@ COMPILE_CXXHL_CXX = $(LIBTOOL) $(LTCXXFL
LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
+LINK_TEST = $(LINK) -no-install
+LINK_TEST_LIB = $(LINK) -avoid-version
+LINK_EXE = $(LINK) -pie
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
@@ -676,7 +679,7 @@ schema-clean:
$(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
.c.o:
- $(COMPILE) -o $@ -c $<
+ $(COMPILE) -fpie -o $@ -c $<
.cpp.o:
$(COMPILE_CXX) -o $@ -c $<

View File

@ -1,38 +0,0 @@
# ./pullrev.sh 1655262 1658347
http://svn.apache.org/viewvc?view=revision&revision=1655262
http://svn.apache.org/viewvc?view=revision&revision=1658347
--- subversion-1.8.13/subversion/bindings/swig/core.i
+++ subversion-1.8.13/subversion/bindings/swig/core.i
@@ -800,10 +800,11 @@
#endif
#ifdef SWIGPYTHON
-# The auth baton depends on the providers, so we preserve a
-# reference to them inside the wrapper. This way, if all external
-# references to the providers are gone, they will still be alive,
-# keeping the baton valid.
+/* The auth baton depends on the providers, so we preserve a
+ reference to them inside the wrapper. This way, if all external
+ references to the providers are gone, they will still be alive,
+ keeping the baton valid.
+ */
%feature("pythonappend") svn_auth_open %{
val.__dict__["_deps"] = list(args[0])
%}
--- subversion-1.8.13/subversion/bindings/swig/svn_delta.i
+++ subversion-1.8.13/subversion/bindings/swig/svn_delta.i
@@ -205,11 +205,11 @@
%include svn_delta_h.swg
#ifdef SWIGPYTHON
-%pythoncode {
+%pythoncode %{
# This function is for backwards compatibility only.
# Use svn_txdelta_window_t.ops instead.
svn_txdelta_window_t_ops_get = svn_txdelta_window_t._ops_get
-}
+%}
#endif
#ifdef SWIGRUBY

View File

@ -0,0 +1,24 @@
Fix linking/includes for KDE - Fedora-specific hack.
--- subversion-1.9.0/build/ac-macros/kwallet.m4.kwallet
+++ subversion-1.9.0/build/ac-macros/kwallet.m4
@@ -68,15 +68,15 @@ AC_DEFUN(SVN_LIB_KWALLET,
fi
done
qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
- kde_dir="`$KDE4_CONFIG --prefix`"
- SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_dir/include"
+ kde_include_dirs="`$KDE4_CONFIG --path include`"
+ SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_include_dirs"
qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
LIBS="$LIBS $SVN_KWALLET_LIBS"
qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
kde_lib_suffix="`$KDE4_CONFIG --libsuffix`"
- LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs -L$kde_dir/lib$kde_lib_suffix)`"
+ LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs -L$libdir/kde4/devel)`"
AC_LANG(C++)
AC_LINK_IFELSE([AC_LANG_SOURCE([[
#include <kwallet.h>

View File

@ -0,0 +1,89 @@
Link executables using -pie, link test executables using -no-install.
diff -uap subversion-1.9.0/build.conf.pie subversion-1.9.0/build.conf
diff -uap subversion-1.9.0/build.conf.pie subversion-1.9.0/build.conf
diff -uap subversion-1.9.0/build.conf.pie subversion-1.9.0/build.conf
--- subversion-1.9.0/build.conf.pie
+++ subversion-1.9.0/build.conf
@@ -743,7 +743,7 @@ libs = libsvncxxhl libgmock libsvn_subr
sources = tests/*.cpp
install = tests
compile-cmd = $(COMPILE_CXXHL_GMOCK_CXX)
-link-cmd = $(LINK_CXX)
+link-cmd = $(LINK_TEST_CXX)
# ----------------------------------------------------------------------------
@@ -760,7 +760,7 @@ sources = gmock-gtest-all.cc
install = tests
msvc-static = yes
compile-cmd = $(COMPILE_GMOCK_CXX)
-link-cmd = $(LINK_CXX_LIB)
+link-cmd = $(LINK_TEST_CXX_LIB)
# ----------------------------------------------------------------------------
#
@@ -775,6 +775,7 @@ install = test
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr aprutil apriconv apr
msvc-static = yes
undefined-lib-symbols = yes
+link-cmd = $(LINK_TEST_LIB)
# ----------------------------------------------------------------------------
# Tests for libsvn_fs_base
diff -uap subversion-1.9.0/build/generator/gen_base.py.pie subversion-1.9.0/build/generator/gen_base.py
--- subversion-1.9.0/build/generator/gen_base.py.pie
+++ subversion-1.9.0/build/generator/gen_base.py
@@ -585,7 +585,7 @@ class TargetLinked(Target):
self.install = options.get('install')
self.compile_cmd = options.get('compile-cmd')
self.sources = options.get('sources', '*.c *.cpp')
- self.link_cmd = options.get('link-cmd', '$(LINK)')
+ self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
self.external_lib = options.get('external-lib')
self.external_project = options.get('external-project')
@@ -644,6 +644,14 @@ class TargetExe(TargetLinked):
self.msvc_force_static = options.get('msvc-force-static') == 'yes'
+ if self.install in ['test', 'bdb-test', 'sub-test', ]:
+ self.link_cmd = '$(LINK_TEST)'
+ elif self.link_cmd == '$(LINK_LIB)':
+ # Over-ride the default for TargetLinked.
+ self.link_cmd = '$(LINK_EXE)'
+ elif self.link_cmd not in ['$(LINK_TEST_CXX)', ]:
+ raise GenError('ERROR: Unknown executable link type for ' + self.name + ': ' + self.link_cmd)
+
def add_dependencies(self):
TargetLinked.add_dependencies(self)
diff -uap subversion-1.9.0/Makefile.in.pie subversion-1.9.0/Makefile.in
--- subversion-1.9.0/Makefile.in.pie
+++ subversion-1.9.0/Makefile.in
@@ -259,6 +259,11 @@ LINK = $(LIBTOOL) $(LTFLAGS) --mode=link
LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS)
LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION) -rpath $(libdir)
+LINK_TEST = $(LINK) -no-install
+LINK_TEST_LIB = $(LINK) -avoid-version
+LINK_TEST_CXX_LIB = $(LINK_CXX) -avoid-version
+LINK_EXE = $(LINK) -pie
+LINK_CXX_EXE = $(LINK) -pie
# special link rule for mod_dav_svn
LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS)
@@ -753,10 +758,10 @@ schema-clean:
$(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
.c.o:
- $(COMPILE) -o $@ -c $<
+ $(COMPILE) -fPIE -o $@ -c $<
.cpp.o:
- $(COMPILE_CXX) -o $@ -c $<
+ $(COMPILE_CXX) -fPIE -o $@ -c $<
.c.lo:
$(LT_COMPILE) -o $@ -c $<

View File

@ -0,0 +1,41 @@
Only link libraries using -rpath, to avoid unnecessary RPATH tags in executables.
--- subversion-1.9.0/build.conf.rpath
+++ subversion-1.9.0/build.conf
@@ -561,7 +561,7 @@ lang = python
path = subversion/bindings/swig/python/libsvn_swig_py
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr
apriconv apr python swig
-link-cmd = $(LINK)
+link-cmd = $(LINK_LIB)
install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
compile-cmd = $(COMPILE_SWIG_PY)
@@ -586,7 +586,7 @@ type = swig_lib
lang = ruby
path = subversion/bindings/swig/ruby/libsvn_swig_ruby
libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr ruby swig
-link-cmd = $(LINK) $(SWIG_RB_LIBS)
+link-cmd = $(LINK_LIB) $(SWIG_RB_LIBS)
install = swig-rb-lib
# need special build rule to include
compile-cmd = $(COMPILE_SWIG_RB)
diff -uap subversion-1.9.0/Makefile.in.rpath subversion-1.9.0/Makefile.in
--- subversion-1.9.0/Makefile.in.rpath
+++ subversion-1.9.0/Makefile.in
@@ -255,10 +255,10 @@ COMPILE_CXXHL_CXX = $(LT_COMPILE_CXX) $(
COMPILE_GMOCK_CXX = $(LT_COMPILE_CXX_NOWARN) $(GMOCK_INCLUDES) -o $@ -c
COMPILE_CXXHL_GMOCK_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) $(GMOCK_INCLUDES) -o $@ -c
-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
-LINK_LIB = $(LINK) $(LT_SO_VERSION)
-LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
-LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
+LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
+LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS)
+LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION) -rpath $(libdir)
# special link rule for mod_dav_svn
LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS)

View File

@ -19,8 +19,8 @@
Summary: A Modern Concurrent Version Control System
Name: subversion
Version: 1.8.13
Release: 7%{?dist}
Version: 1.9.0
Release: 1%{?dist}
License: ASL 2.0
Group: Development/Tools
URL: http://subversion.apache.org/
@ -32,15 +32,13 @@ Source5: psvn-init.el
Source6: svnserve.service
Source7: svnserve.tmpfiles
Source8: svnserve.sysconf
Patch1: subversion-1.8.0-rpath.patch
Patch2: subversion-1.8.0-pie.patch
Patch3: subversion-1.8.0-kwallet.patch
Patch1: subversion-1.9.0-rpath.patch
Patch2: subversion-1.9.0-pie.patch
Patch3: subversion-1.9.0-kwallet.patch
Patch4: subversion-1.8.0-rubybind.patch
Patch8: subversion-1.8.5-swigplWall.patch
Patch9: subversion-1.8.13-r1655262+.patch
Patch10: subversion-1.8.13-swigpython.patch
Patch11: subversion-1.8.11-ruby22-fixes.rb
Patch12: subversion-1.8-sqlite-r1672295.patch
BuildRequires: autoconf, libtool, python, python-devel, texinfo, which
BuildRequires: libdb-devel >= 4.1.25, swig >= 1.3.24, gettext
BuildRequires: apr-devel >= 1.3.0, apr-util-devel >= 1.3.0
@ -183,10 +181,8 @@ This package includes supplementary tools for use with Subversion.
%patch3 -p1 -b .kwallet
%patch4 -p1 -b .rubybind
%patch8 -p1 -b .swigplWall
%patch9 -p1 -b .r1655262+
%patch10 -p1 -b .swigpython
%patch11 -p0 -b .ruby22-fixes
%patch12 -p0 -b .sqlite
%build
# Regenerate the buildsystem, so that:
@ -195,6 +191,7 @@ This package includes supplementary tools for use with Subversion.
# (2) is not ideal since typically upstream test with a different
# swig version
# This PATH order makes the fugly test for libtoolize work...
mv build-outputs.mk build-outputs.mk.old
PATH=/usr/bin:$PATH ./autogen.sh --release
# fix shebang lines, #111498
@ -205,10 +202,6 @@ export svn_cv_ruby_link="%{__cc} -shared"
export svn_cv_ruby_sitedir_libsuffix=""
export svn_cv_ruby_sitedir_archsuffix=""
%ifarch sparc64
sed -i 's/-fpie/-fPIE/' Makefile.in
%endif
export EXTRA_CFLAGS="$RPM_OPT_FLAGS -DSVN_SQLITE_MIN_VERSION_NUMBER=3007012 \
-DSVN_SQLITE_MIN_VERSION=\\\"3.7.12\\\""
export APACHE_LDFLAGS="-Wl,-z,relro,-z,now"
@ -332,17 +325,16 @@ install -p -m 644 $RPM_SOURCE_DIR/svnserve.tmpfiles \
install -p -m 644 $RPM_SOURCE_DIR/svnserve.sysconf \
%{buildroot}%{_sysconfdir}/sysconfig/svnserve
# Install tools ex diff*
# Install tools ex diff*, x509-parser
make install-tools DESTDIR=$RPM_BUILD_ROOT toolsdir=%{_bindir}
rm -f $RPM_BUILD_ROOT%{_bindir}/diff*
rm -f $RPM_BUILD_ROOT%{_bindir}/diff* $RPM_BUILD_ROOT%{_bindir}/x509-parser
# Make svnauthz-validate a symlink
rm $RPM_BUILD_ROOT%{_bindir}/svnauthz-validate
ln -s svnauthz $RPM_BUILD_ROOT%{_bindir}/svnauthz-validate
for f in svn-populate-node-origins-index svn-rep-sharing-stats \
svnauthz svnauthz-validate svnmucc svnraisetreeconflict svn-bench \
fsfs-reorg fsfs-access-map fsfs-stats; do
for f in svn-populate-node-origins-index fsfs-access-map \
svnauthz svnauthz-validate svnmucc svnraisetreeconflict svnbench; do
echo %{_bindir}/$f
if test -f %{_mandir}/man?/${f}.*; then
echo %{_mandir}/man?/${f}.*
@ -473,6 +465,9 @@ make check-javahl
%endif
%changelog
* Mon Aug 24 2015 Joe Orton <jorton@redhat.com> - 1.9.0-1
- update to 1.9.0 (#1207835)
* Tue Jul 14 2015 Joe Orton <jorton@redhat.com> - 1.8.13-7
- move svnauthz to -tools; make svnauthz-validate a symlink
- move svnmucc man page to -tools