# TODO:
-# - remove net_client_only and add db bcond (then without apache and
-# without db => net_client_only - spec will be more simpler, I think)
# - finish ruby
# - http://subversion.tigris.org/issues/show_bug.cgi?id=2753
#
# Conditional build:
%bcond_with net_client_only # build only net client
%bcond_without neon # use serf instead of neon
-%bcond_without python # build without python bindings (broken)
-%bcond_without perl # build without perl bindings
-%bcond_without ruby # build without ruby bindings
-%bcond_without apache # build without apache support (webdav, etc)
+%bcond_without swig # disable bindings generation with Swig
+%bcond_without python # build without Python bindings (broken)
+%bcond_without csvn # build Python csvn bindings
+%bcond_without perl # build without Perl bindings
+%bcond_without ruby # build without Ruby bindings
+%bcond_without apache # build without Apache support (webdav, etc)
%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 gnome # build without gnome keyring support
-#
-%{!?with_net_client_only:%include /usr/lib/rpm/macros.perl}
+%bcond_without db # disable Subversion Berkeley DB based filesystem library
+
+%if %{with net_client_only}
+%undefine with_apache
+%undefine with_db
+%undefine with_swig
+%undefine with_javahl
+%endif
+
+%if %{without swig}
+%undefine with_perl
+%undefine with_python
+%undefine with_ruby
+%endif
+
+%if %{without kde}
+%undefine with_kwallet
+%endif
+
+%if %{without python} && %{without perl} && %{without ruby}
+%define without_swig 1
+%endif
+
%define apxs /usr/sbin/apxs
%define pdir SVN
%define pnam _Core
-#
+
%if %{with neon}
%define webdavlib neon
%else
%define webdavlib serf
%endif
-#
+%{!?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.13
-Release: 2
+Version: 1.6.16
+Release: 1
License: Apache/BSD-like
Group: Development/Version Control
Source0: http://subversion.tigris.org/downloads/%{name}-%{version}.tar.bz2
-# Source0-md5: 7ae1c827689f21cf975804005be30aeb
+# Source0-md5: 32f25a6724559fe8691d1f57a63f636e
Source1: %{name}-dav_svn.conf
Source2: %{name}-authz_svn.conf
Source3: %{name}-svnserve.init
Patch0: %{name}-home_etc.patch
Patch1: %{name}-DESTDIR.patch
Patch2: %{name}-ruby-datadir-path.patch
+Patch3: %{name}-tests.patch
URL: http://subversion.apache.org/
-%if %{with net_client_only}
-%global apache_modules_api 0
-%else
%{?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 python}
+%if %{with csvn}
BuildRequires: python-ctypesgen
-BuildRequires: python-devel >= 2.2
+%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
-%endif
-BuildRequires: cyrus-sasl-devel
+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: bison
+BuildRequires: cyrus-sasl-devel
BuildRequires: expat-devel
BuildRequires: gettext-devel
-%{?with_gnome:BuildRequires: libgnome-keyring-devel}
%{?with_kwallet:BuildRequires: kde4-kdelibs-devel}
+%{?with_gnome:BuildRequires: libgnome-keyring-devel}
BuildRequires: libtool >= 1.4-9
BuildRequires: pkgconfig
+BuildRequires: rpm-pythonprov
BuildRequires: sed >= 4.0
BuildRequires: sqlite3-devel >= 3.6.11
BuildRequires: texinfo
%else
BuildRequires: serf-devel
%endif
-BuildRequires: python >= 2.2
-BuildRequires: python-modules >= 2.2
Requires: %{name}-libs = %{version}-%{release}
%requires_ge sqlite3
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Moduł apache: autoryzacja na podstawie ścieżki dla serwera Subversion.
%package -n gnome-keyring-subversion
-Summary: Subversion module for Gnome Keyring
-Summary(pl.UTF-8): Moduł subversion dla zarządcy kluczy Gnome
+Summary: GNOME Keyring authentication provider for Subversion
+Summary(pl.UTF-8): Moduł uwierzytelniający GNOME Keyring dla Subversion
Group: X11/Applications
%description -n gnome-keyring-subversion
-Subversion module for Gnome Keyring.
+Authentication provider module for Subversion which allows SVN client
+to authenticate using GNOME Keyring.
%description -n gnome-keyring-subversion -l pl.UTF-8
-Moduł subversion dla zarządcy kluczy Gnome.
+Moduł uwierzytelniający dla Subversion pozwalający klientom SVN
+uwierzytelniać się przy użyciu mechanizmu GNOME Keyring.
%package -n kde4-kwallet-subversion
-Summary: Subversion module for KDE Wallet
-Summary(pl.UTF-8): Moduł subversion dla Portfela KDE
+Summary: KDE Wallet authentication provider for Subversion
+Summary(pl.UTF-8): Moduł uwierzytelniający dla Subversion wykorzystujący Portfel KDE
Group: X11/Applications
%description -n kde4-kwallet-subversion
-Subversion module for KDE Wallet.
+Authentication provider module for Subversion which allows SVN client
+to authenticate using KDE Wallet.
%description -n kde4-kwallet-subversion -l pl.UTF-8
-Moduł subversion dla Portfela KDE.
+Moduł uwierzytelniający dla Subversion pozwalający klientom SVN
+uwierzytelniać się przy użyciu Portfela KDE.
%prep
%setup -q
-rm -rf apr apr-util neon
%patch0 -p0
%patch1 -p1
%patch2 -p0
+%patch3 -p1
sed -i -e 's#serf_prefix/lib#serf_prefix/%{_lib}#g' build/ac-macros/serf.m4
%{?with_neon:sed -i -e 's#serf_found="yes"#serf_found="no"#g' build/ac-macros/serf.m4}
%build
-rm subversion/bindings/swig/proxy/*.swg
-cd subversion/bindings/swig && python "%{SOURCE5}" && cd ../../..
-cp -f /usr/share/automake/config.sub ac-helpers
+# disabled regeneration - subversion 1.6.13 is not ready for swig 2.0.x
+#%{__rm} subversion/bindings/swig/proxy/*.swg
+#cd subversion/bindings/swig && python "%{SOURCE5}" && cd ../../..
chmod +x ./autogen.sh && ./autogen.sh
-
+%{__libtoolize}
%configure \
--with-editor=vi \
--with-zlib=%{_libdir} \
-%if %{with net_client_only}
- --without-apache \
- --without-swig \
- --without-apxs \
- --without-berkeley-db \
-%else
--disable-runtime-module-search \
--disable-mod-activation \
+%if %{with db}
--with-berkeley-db="db.h:%{_includedir}:%{_libdir}:db" \
+%else
+ --without-berkeley-db \
+%endif
%if %{with apache}
--with-apxs=%{_sbindir}/apxs \
%else
--without-apache \
--without-apxs \
%endif
-%if !%{with python} && !%{with perl} && !%{with ruby}
+%if %{without swig}
--without-swig \
%endif
- %{?with_python:--with-ctypesgen=%{_bindir}/ctypesgen.py} \
- --%{?with_javahl:en}%{!?with_javahl:dis}able-javahl \
+%if %{without ruby}
+ ac_cv_path_RUBY=none \
%endif
+ %{?with_csvn:--with-ctypesgen=%{_bindir}/ctypesgen.py} \
+ --%{?with_javahl:en}%{!?with_javahl:dis}able-javahl \
--with-jdk="%{java_home}" \
--without-jikes \
%if %{with neon}
%{__make} -j1
-%if !%{with net_client_only}
# python
%if %{with python}
+%if %{with csvn}
# ctypes bindings
%{__make} ctypes-python
+%endif
# swig bindings
%{__make} swig-py \
swig_pydir=%{py_sitedir}/libsvn \
%if %{with ruby}
%{__make} swig-rb
%endif
-%endif
%if %{with tests}
%{__make} check
%if %{with python}
+%if %{with csvn}
%{__make} check-ctypes-python
+%endif
%{__make} check-swig-py
%endif
%if %{with perl}
%{__make} check-swig-pl
%endif
%if %{with ruby}
-%{__make} check-swig-rb
+# disabled, see https://bugs.launchpad.net/pld-linux/+bug/734340
+#%{__make} check-swig-rb
%endif
%endif
install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,bash_completion.d} \
$RPM_BUILD_ROOT{%{apacheconfdir},%{apachelibdir},%{_infodir}} \
$RPM_BUILD_ROOT%{_examplesdir}/{%{name}-%{version},python-%{name}-%{version}} \
+ $RPM_BUILD_ROOT%{_sysconfdir}/%{name} \
$RPM_BUILD_ROOT/home/services/subversion{,/repos}
%{__make} install -j1 \
install-javahl \
javahl_javadir="%{_javadir}" \
%endif
-%if !%{with net_client_only}
%if %{with python}
install-swig-py \
+%if %{with csvn}
install-ctypes-python \
%endif
+%endif
%if %{with ruby}
install-swig-rb install-swig-rb-doc \
-%endif
%endif
APACHE_LIBEXECDIR="$(%{_sbindir}/apxs -q LIBEXECDIR)" \
DESTDIR=$RPM_BUILD_ROOT \
swig_pydir=%{py_sitedir}/libsvn \
swig_pydir_extra=%{py_sitedir}/svn
-%if !%{with net_client_only} && %{with perl}
+%if %{with perl}
%{__make} install-swig-pl-lib \
DESTDIR=$RPM_BUILD_ROOT
%{__make} -C subversion/bindings/swig/perl/native install \
%endif
%if %{with apache}
-install %{SOURCE1} $RPM_BUILD_ROOT%{apacheconfdir}/65_mod_dav_svn.conf
-install %{SOURCE2} $RPM_BUILD_ROOT%{apacheconfdir}/66_mod_authz_svn.conf
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/svnserve
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/svnserve
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{apacheconfdir}/65_mod_dav_svn.conf
+cp -p %{SOURCE2} $RPM_BUILD_ROOT%{apacheconfdir}/66_mod_authz_svn.conf
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/svnserve
+install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/svnserve
%endif
-%if !%{with net_client_only}
-install tools/backup/hot-backup.py $RPM_BUILD_ROOT%{_bindir}/svn-hot-backup
+%if %{without net_client_only}
+install -p tools/backup/hot-backup.py $RPM_BUILD_ROOT%{_bindir}/svn-hot-backup
+%endif
%if %{with python}
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
-find $RPM_BUILD_ROOT%{py_sitedir} -name "*.py" -o -name "*.a" -o -name "*.la" | xargs rm -f
+%py_postclean
+%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/libsvn/*.la
install tools/examples/*.py $RPM_BUILD_ROOT%{_examplesdir}/python-%{name}-%{version}
%endif
-%endif
-install tools/client-side/bash_completion $RPM_BUILD_ROOT/etc/bash_completion.d/%{name}
-install tools/examples/*.c $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -p tools/client-side/bash_completion $RPM_BUILD_ROOT/etc/bash_completion.d/%{name}
+cp -p tools/examples/*.c $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-%find_lang %{name}
+%{?with_javahl:%{__rm} $RPM_BUILD_ROOT%{_libdir}/libsvnjavahl*.{la,a}}
+%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
+%endif
+%endif
+%if %{with gnome} || %{with kwallet}
+# dlopened by soname (libsvn_auth_*-1.so.0)
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libsvn_auth_*-1.{so,la,a}
+%endif
-%{?with_javahl:rm $RPM_BUILD_ROOT%{_libdir}/libsvnjavahl*.{la,a}}
-rm -f $RPM_BUILD_ROOT%{_libdir}/libsvn_swig*.{la,a}
-rm -f $RPM_BUILD_ROOT%{_libdir}/ruby/site_ruby/*/*/svn/ext/*.la
+%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
%postun devel -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
+%post -n java-subversion -p /sbin/ldconfig
+%postun -n java-subversion -p /sbin/ldconfig
+
%post -n perl-subversion -p /sbin/ldconfig
%postun -n perl-subversion -p /sbin/ldconfig
%post -n python-subversion -p /sbin/ldconfig
%postun -n python-subversion -p /sbin/ldconfig
+%post -n ruby-subversion -p /sbin/ldconfig
+%postun -n ruby-subversion -p /sbin/ldconfig
+
+%post -n gnome-keyring-subversion -p /sbin/ldconfig
+%postun -n gnome-keyring-subversion -p /sbin/ldconfig
+
+%post -n kde4-kwallet-subversion -p /sbin/ldconfig
+%postun -n kde4-kwallet-subversion -p /sbin/ldconfig
+
%post svnserve
/sbin/chkconfig --add svnserve
%service svnserve restart "svnserve daemon"
%postun svnserve
if [ "$1" = "0" ]; then
- %userremove svn
- %groupremove svn
+ %userremove svn
+ %groupremove svn
fi
%post -n apache-mod_dav_svn
%files libs -f %{name}.lang
%defattr(644,root,root,755)
+%dir %{_sysconfdir}/%{name}
%attr(755,root,root) %{_libdir}/libsvn_client-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libsvn_client-1.so.0
%attr(755,root,root) %{_libdir}/libsvn_delta-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libsvn_diff-1.so.0
%attr(755,root,root) %{_libdir}/libsvn_fs-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libsvn_fs-1.so.0
+%if %{without net_client_only}
%attr(755,root,root) %{_libdir}/libsvn_fs_base-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libsvn_fs_base-1.so.0
+%endif
%attr(755,root,root) %{_libdir}/libsvn_fs_fs-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libsvn_fs_fs-1.so.0
%attr(755,root,root) %{_libdir}/libsvn_fs_util-1.so.*.*.*
%attr(755,root,root) %{_libdir}/libsvn_delta-1.so
%attr(755,root,root) %{_libdir}/libsvn_diff-1.so
%attr(755,root,root) %{_libdir}/libsvn_fs-1.so
+%if %{without net_client_only}
%attr(755,root,root) %{_libdir}/libsvn_fs_base-1.so
+%endif
%attr(755,root,root) %{_libdir}/libsvn_fs_fs-1.so
%attr(755,root,root) %{_libdir}/libsvn_fs_util-1.so
%attr(755,root,root) %{_libdir}/libsvn_ra-1.so
%{_libdir}/libsvn_delta-1.la
%{_libdir}/libsvn_diff-1.la
%{_libdir}/libsvn_fs-1.la
+%if %{without net_client_only}
%{_libdir}/libsvn_fs_base-1.la
+%endif
%{_libdir}/libsvn_fs_fs-1.la
%{_libdir}/libsvn_fs_util-1.la
%{_libdir}/libsvn_ra-1.la
%{_libdir}/libsvn_delta-1.a
%{_libdir}/libsvn_diff-1.a
%{_libdir}/libsvn_fs-1.a
+%if %{without net_client_only}
%{_libdir}/libsvn_fs_base-1.a
+%endif
%{_libdir}/libsvn_fs_fs-1.a
%{_libdir}/libsvn_fs_util-1.a
%{_libdir}/libsvn_ra-1.a
%attr(755,root,root) %ghost %{_libdir}/libsvn_auth_kwallet-1.so.0
%endif
-%if !%{with net_client_only}
+%if %{without net_client_only}
%files svnserve
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/svnserve
%if %{with python}
%files -n python-subversion
%defattr(644,root,root,755)
-%doc tools/backup/*.py tools/examples/*.py
+%doc tools/backup/*.py
%attr(755,root,root) %{_libdir}/libsvn_swig_py-1.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libsvn_swig_py-1.so.0
%attr(755,root,root) %{_libdir}/libsvn_swig_py-1.so
%dir %{py_sitedir}/libsvn
+%attr(755,root,root) %{py_sitedir}/libsvn/_*.so
%{py_sitedir}/libsvn/*.py[co]
%dir %{py_sitedir}/svn
%{py_sitedir}/svn/*.py[co]
-%attr(755,root,root) %{py_sitedir}/libsvn/*.so
%{_examplesdir}/python-%{name}-%{version}
+%if %{with csvn}
%files -n python-csvn
%defattr(644,root,root,755)
%doc subversion/bindings/ctypes-python/{README,TODO}
%{py_sitescriptdir}/csvn/core/*.py[co]
%dir %{py_sitescriptdir}/csvn/ext
%{py_sitescriptdir}/csvn/ext/*.py[co]
-%{py_sitescriptdir}/*.egg-info
+%{py_sitescriptdir}/svn_ctypes_python_bindings-0.1-py*.egg-info
+%endif
%endif
%if %{with perl}