# TODO:
-# - finish ruby
-# - http://subversion.tigris.org/issues/show_bug.cgi?id=2753
+# - serf as default: https://subversion.apache.org/docs/release-notes/1.7.html#serf
#
# Conditional build:
%bcond_with net_client_only # build only net client
%bcond_without javahl # build without javahl support (Java high-level bindings)
%bcond_without tests # don't perform "make check"
%bcond_without kwallet # build without kde4 wallet support
-%bcond_without kde # build without kde4 support (alias for kwallet)
+%bcond_without kde # build without kde4 support (alias for kwallet)
%bcond_without gnome # build without gnome keyring support
-%bcond_without db # disable Subversion Berkeley DB based filesystem library
+%bcond_without db # disable Subversion Berkeley DB based filesystem library
+
+# for AC: --without csvn,gnome,javahl,kde,ruby
%if %{with net_client_only}
%undefine with_apache
%endif
%if %{without python} && %{without perl} && %{without ruby}
-%define without_swig 1
+%undefine with_swig
%endif
%define apxs /usr/sbin/apxs
%else
%define webdavlib serf
%endif
-%{!?with_perl:%include /usr/lib/rpm/macros.perl}
+%{?with_perl:%include /usr/lib/rpm/macros.perl}
Summary: A Concurrent Versioning system similar to but better than CVS
Summary(pl.UTF-8): System kontroli wersji podobny, ale lepszy, niż CVS
Summary(pt_BR.UTF-8): Sistema de versionamento concorrente
Name: subversion
-Version: 1.6.16
+Version: 1.7.9
Release: 1
-License: Apache/BSD-like
+License: Apache v2.0
Group: Development/Version Control
-Source0: http://subversion.tigris.org/downloads/%{name}-%{version}.tar.bz2
-# Source0-md5: 32f25a6724559fe8691d1f57a63f636e
+Source0: http://www.idg.pl/mirrors/apache/subversion/%{name}-%{version}.tar.bz2
+# Source0-md5: 8d532025771a67c06c23f299699f056f
Source1: %{name}-dav_svn.conf
Source2: %{name}-authz_svn.conf
Source3: %{name}-svnserve.init
Patch1: %{name}-DESTDIR.patch
Patch2: %{name}-ruby-datadir-path.patch
Patch3: %{name}-tests.patch
+Patch4: subversion-1.7.2-ruby19.patch
URL: http://subversion.apache.org/
%{?with_apache:BuildRequires: apache-devel >= 2.2.0-8}
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: db-devel >= 4.1.25
-BuildRequires: libtool
-BuildRequires: rpmbuild(macros) >= 1.583
-%if %{with perl}
-BuildRequires: perl-devel >= 1:5.8.0
-BuildRequires: rpm-perlprov >= 4.1-13
-BuildRequires: swig-perl >= 1.3.24
-%endif
-%if %{with csvn}
-BuildRequires: python-ctypesgen
-%endif
-%if %{with python}
-BuildRequires: python-devel >= 1:2.4
-BuildRequires: swig-python >= 1.3.24
-%endif
-%if %{with ruby}
-BuildRequires: ruby-devel
-BuildRequires: ruby-rubygems
-BuildRequires: swig-ruby >= 1.3.24
-%endif
-%if %{with javahl}
-BuildRequires: jdk
-BuildRequires: libstdc++-devel
-%endif
BuildRequires: apr-devel >= 1:1.0.0
BuildRequires: apr-util-devel >= 1:1.2.8-3
BuildRequires: autoconf >= 2.59
+BuildRequires: automake
BuildRequires: bison
BuildRequires: cyrus-sasl-devel
+%if %{with kwallet} || %{with gnome}
+BuildRequires: dbus-devel
+%endif
+BuildRequires: db-devel >= 4.1.25
BuildRequires: expat-devel
BuildRequires: gettext-devel
%{?with_kwallet:BuildRequires: kde4-kdelibs-devel}
%{?with_gnome:BuildRequires: libgnome-keyring-devel}
+BuildRequires: libmagic-devel
BuildRequires: libtool >= 1.4-9
BuildRequires: pkgconfig
+%{?with_csvn:BuildRequires: python-ctypesgen}
BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.656
BuildRequires: sed >= 4.0
-BuildRequires: sqlite3-devel >= 3.6.11
+BuildRequires: sqlite3-devel >= 3.6.18
BuildRequires: texinfo
BuildRequires: which
%if %{with neon}
BuildRequires: neon-devel >= 0.26.0
%else
-BuildRequires: serf-devel
+BuildRequires: serf-devel >= 0.7.1
+%endif
+%if %{with javahl}
+BuildRequires: jdk >= 1.5
+BuildRequires: libstdc++-devel
+%endif
+%if %{with perl}
+BuildRequires: perl-devel >= 1:5.8.0
+BuildRequires: rpm-perlprov >= 4.1-13
+BuildRequires: swig-perl >= 1.3.24
+%endif
+%if %{with python}
+BuildRequires: python-devel >= 1:2.4
+BuildRequires: swig-python >= 1.3.24
+%endif
+%if %{with ruby}
+BuildRequires: ruby-devel >= 1:1.8.2
+BuildRequires: ruby-rubygems
+BuildRequires: swig-ruby >= 1.3.24
%endif
Requires: %{name}-libs = %{version}-%{release}
%requires_ge sqlite3
Summary: Subversion libraries and modules
Summary(pl.UTF-8): Biblioteka subversion oraz ładowalne moduły
Group: Libraries
-%{?with_neon:Requires: neon >= 0.26.0}
+%if %{with neon}
+Requires: neon >= 0.26.0
+%else
+Requires: serf >= 0.7.1
+%endif
Obsoletes: libsubversion0
%description libs
Summary(pl.UTF-8): Narzędzia oraz skrypty dla subversion
Summary(pt_BR.UTF-8): Módulos python para acessar os recursos do Subversion
Group: Applications
-%pyrequires_eq python
Requires: %{name} = %{version}-%{release}
+Requires: python
Requires: python-subversion = %{version}
%description tools
Summary(pl.UTF-8): Dowiązania do Subversion dla Pythona
Summary(pt_BR.UTF-8): Módulos Python para acessar os recursos do Subversion
Group: Development/Languages/Python
-%pyrequires_eq python
Requires: %{name}-libs = %{version}-%{release}
+Requires: python
Obsoletes: subversion-python
%description -n python-subversion
Summary(pl.UTF-8): Dowiązania do Subversion dla Pythona
Summary(pt_BR.UTF-8): Módulos Python para acessar os recursos do Subversion
Group: Development/Languages/Python
-%pyrequires_eq python
Requires: %{name}-libs = %{version}-%{release}
+Requires: python
%description -n python-csvn
Subversion CTypes Python bindings.
%package -n apache-mod_dav_svn
Summary: Apache module: Subversion Server
-Summary(pl.UTF-8): Moduł apache: Serwer Subversion
+Summary(pl.UTF-8): Moduł Apache'a: serwer Subversion
Group: Networking/Daemons
Requires: %{name} = %{version}-%{release}
Requires: apache(modules-api) = %apache_modules_api
Apache module: Subversion Server.
%description -n apache-mod_dav_svn -l pl.UTF-8
-Moduł apache: Serwer Subversion.
+Moduł Apache'a: serwer Subversion.
%package -n apache-mod_authz_svn
Summary: Apache module: Subversion Server - path-based authorization
-Summary(pl.UTF-8): Moduł apache: autoryzacja na podstawie ścieżki dla serwera Subversion
+Summary(pl.UTF-8): Moduł Apache'a: autoryzacja na podstawie ścieżki dla serwera Subversion
Group: Networking/Daemons
+Requires: %{name}-libs = %{version}-%{release}
Requires: apache(modules-api) = %apache_modules_api
Requires: apache-mod_dav_svn = %{version}-%{release}
Apache module: Subversion Server - path-based authorization.
%description -n apache-mod_authz_svn -l pl.UTF-8
-Moduł apache: autoryzacja na podstawie ścieżki dla serwera Subversion.
+Moduł Apache'a: autoryzacja na podstawie ścieżki dla serwera
+Subversion.
+
+%package -n apache-mod_dontdothat_svn
+Summary: Apache module: Allows you to block specific svn requests
+Summary(pl.UTF-8): Moduł Apache'a pozwalający na blokowanie pewnych zapytań svn
+Group: Networking/Daemons
+Requires: %{name}-libs = %{version}-%{release}
+Requires: apache(modules-api) = %apache_modules_api
+Requires: apache-mod_dav_svn = %{version}-%{release}
+
+%description -n apache-mod_dontdothat_svn
+Apache module: Allows you to block specific svn requests.
+
+%description -n apache-mod_dontdothat_svn -l pl.UTF-8
+Moduł Apache'a pozwalający na blokowanie pewnych zapytań svn.
%package -n gnome-keyring-subversion
Summary: GNOME Keyring authentication provider for Subversion
Summary(pl.UTF-8): Moduł uwierzytelniający GNOME Keyring dla Subversion
Group: X11/Applications
+Requires: %{name}-libs = %{version}-%{release}
%description -n gnome-keyring-subversion
Authentication provider module for Subversion which allows SVN client
Summary: KDE Wallet authentication provider for Subversion
Summary(pl.UTF-8): Moduł uwierzytelniający dla Subversion wykorzystujący Portfel KDE
Group: X11/Applications
+Requires: %{name}-libs = %{version}-%{release}
%description -n kde4-kwallet-subversion
Authentication provider module for Subversion which allows SVN client
%patch1 -p1
%patch2 -p0
%patch3 -p1
+%patch4 -p1
sed -i -e 's#serf_prefix/lib#serf_prefix/%{_lib}#g' build/ac-macros/serf.m4
%if %{without swig}
--without-swig \
%endif
-%if %{without ruby}
+%if %{with ruby}
+ svn_cv_ruby_sitedir_libsuffix="" \
+ svn_cv_ruby_sitedir_archsuffix="" \
+ --with-ruby-sitedir=%{ruby_vendorarchdir} \
+%else
ac_cv_path_RUBY=none \
%endif
%if %{with csvn}
%{__make} -j1
+%{__make} tools
+
%if %{with csvn}
# Python ctypes bindings
%{__make} ctypes-python
%endif
%if %{with tests}
-%{__make} check
+%{__make} -j1 check
%if %{with csvn}
-%{__make} check-ctypes-python
+%{__make} -j1 check-ctypes-python
%endif
%if %{with python}
-%{__make} check-swig-py
+%{__make} -j1 check-swig-py
%endif
%if %{with perl}
-%{__make} check-swig-pl
+%{__make} -j1 check-swig-pl
%endif
%if %{with ruby}
# disabled, see https://bugs.launchpad.net/pld-linux/+bug/734340
$RPM_BUILD_ROOT/home/services/subversion{,/repos}
%{__make} install -j1 \
+ toolsdir=%{_bindir} \
DESTDIR=$RPM_BUILD_ROOT \
APACHE_LIBEXECDIR="$(%{_sbindir}/apxs -q LIBEXECDIR)" \
%if %{with javahl}
%if %{with python}
install-swig-py \
swig_pydir=%{py_sitedir}/libsvn \
- swig_pydir_extra=%{py_sitedir}/svn
+ swig_pydir_extra=%{py_sitedir}/svn \
%endif
%if %{with csvn}
install-ctypes-python \
%endif
+ install-tools
+
%if %{with ruby}
+%{__make} install -j1 \
+ DESTDIR=$RPM_BUILD_ROOT \
install-swig-rb install-swig-rb-doc \
+
+# not our package
+%{__rm} -r $RPM_BUILD_ROOT%{ruby_ridir}/OptionParser
+%{__rm} -r $RPM_BUILD_ROOT%{ruby_ridir}/Time
+%{__rm} $RPM_BUILD_ROOT%{ruby_ridir}/cache.ri
+%{__rm} $RPM_BUILD_ROOT%{ruby_ridir}/created.rid
%endif
%if %{with perl}
%if %{without net_client_only}
install -p tools/backup/hot-backup.py $RPM_BUILD_ROOT%{_bindir}/svn-hot-backup
%endif
+
+# rename not to conflict with standard packages. (are these needed at all?)
+mv $RPM_BUILD_ROOT%{_bindir}/{,svn}diff
+mv $RPM_BUILD_ROOT%{_bindir}/{,svn}diff3
+mv $RPM_BUILD_ROOT%{_bindir}/{,svn}diff4
+
%if %{with python} || %{with csvn}
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%if %{with swig}
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libsvn_swig*.{la,a}
%if %{with ruby}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/ruby/site_ruby/*/*/svn/ext/*.la
+%{__rm} $RPM_BUILD_ROOT%{ruby_vendorarchdir}/svn/ext/*.la
%endif
%endif
%if %{with gnome} || %{with kwallet}
%service -q httpd restart
fi
+%post -n apache-mod_dontdothat_svn
+%service -q httpd restart
+
+%postun -n apache-mod_dontdothat_svn
+if [ "$1" = "0" ]; then
+ %service -q httpd restart
+fi
+
%files
%defattr(644,root,root,755)
-%doc BUGS CHANGES COPYING INSTALL README
+%doc BUGS CHANGES INSTALL README
%doc doc/*/*.html
%doc tools/hook-scripts/*.{pl,py,example}
%doc tools/hook-scripts/mailer/*.{py,example}
%attr(755,root,root) %{_bindir}/svn
%attr(755,root,root) %{_bindir}/svnadmin
%attr(755,root,root) %{_bindir}/svndumpfilter
+%attr(755,root,root) %{_bindir}/svnrdump
%attr(755,root,root) %{_bindir}/svnlook
%attr(755,root,root) %{_bindir}/svnsync
%attr(755,root,root) %{_bindir}/svnversion
%{_mandir}/man1/svn.1*
%{_mandir}/man1/svnadmin.1*
%{_mandir}/man1/svndumpfilter.1*
+%{_mandir}/man1/svnrdump.1*
%{_mandir}/man1/svnlook.1*
%{_mandir}/man1/svnsync.1*
%{_mandir}/man1/svnversion.1*
%files tools
%defattr(644,root,root,755)
+# tools/backup/hot-backup.py
%attr(755,root,root) %{_bindir}/svn-hot-backup
+# tools/diff
+%attr(755,root,root) %{_bindir}/svndiff
+%attr(755,root,root) %{_bindir}/svndiff3
+%attr(755,root,root) %{_bindir}/svndiff4
+
+# tools/server-side
+%attr(755,root,root) %{_bindir}/svn-populate-node-origins-index
+%attr(755,root,root) %{_bindir}/svn-rep-sharing-stats
+%attr(755,root,root) %{_bindir}/svnauthz-validate
+
+# tools/client-side/svnmucc
+%attr(755,root,root) %{_bindir}/svnmucc
+# tools/dev/svnraisetreeconflict
+%attr(755,root,root) %{_bindir}/svnraisetreeconflict
+
%files -n bash-completion-subversion
%defattr(644,root,root,755)
/etc/bash_completion.d/%{name}
%attr(755,root,root) %{_libdir}/libsvn_swig_ruby-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libsvn_swig_ruby-1.so.0
%attr(755,root,root) %{_libdir}/libsvn_swig_ruby-1.so
-%dir %{ruby_sitelibdir}/svn
-%{ruby_sitelibdir}/svn/*.rb
-%dir %{ruby_sitearchdir}/svn
-%dir %{ruby_sitearchdir}/svn/ext
-%attr(755,root,root) %{ruby_sitearchdir}/svn/ext/*.so
+%dir %{ruby_vendorarchdir}/svn
+%{ruby_vendorarchdir}/svn/*.rb
+%dir %{ruby_vendorarchdir}/svn/ext
+%attr(755,root,root) %{ruby_vendorarchdir}/svn/ext/*.so
%{ruby_ridir}/Svn
%endif
%doc subversion/mod_authz_svn/INSTALL
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{apacheconfdir}/*_mod_authz_svn.conf
%attr(755,root,root) %{apachelibdir}/mod_authz_svn.so
+
+%files -n apache-mod_dontdothat_svn
+%defattr(644,root,root,755)
+%doc tools/server-side/mod_dontdothat/README
+%attr(755,root,root) %{apachelibdir}/mod_dontdothat.so
%endif