# 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 javahl # build without javahl support (Java high-level bindings)
+%bcond_without swig # disable bindings generation with Swig
+%bcond_without python # build without Python bindings (broken)
+%bcond_without perl # build without Perl bindings
+%bcond_without apache # build without Apache support (webdav, etc)
%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 db # disable Subversion Berkeley DB based filesystem library
+
+%if "%{pld_release}" == "ac"
+%bcond_with csvn # build Python csvn bindings
+%bcond_with gnome # build without gnome keyring support
+%bcond_with javahl # build without javahl support (Java high-level bindings)
+%bcond_with kde # build without kde4 support (alias for kwallet)
+%bcond_with ruby # build without Ruby bindings
+%else
+%bcond_without csvn # build Python csvn bindings
%bcond_without gnome # build without gnome keyring support
+%bcond_without javahl # build without javahl support (Java high-level bindings)
+%bcond_without kde # build without kde4 support (alias for kwallet)
+%bcond_without ruby # build without Ruby bindings
+%endif
-%{!?with_net_client_only:%include /usr/lib/rpm/macros.perl}
-%define apxs /usr/sbin/apxs
-%define pdir SVN
-%define pnam _Core
+%if %{with net_client_only}
+%undefine with_apache
+%undefine with_db
+%undefine with_swig
+%undefine with_javahl
+%undefine with_csvn
+%undefine with_gnome
+%undefine with_kde
+%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}
+%undefine with_swig
+%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.16
+Version: 1.6.23
Release: 1
License: Apache/BSD-like
Group: Development/Version Control
-Source0: http://subversion.tigris.org/downloads/%{name}-%{version}.tar.bz2
-# Source0-md5: 32f25a6724559fe8691d1f57a63f636e
+Source0: http://archive.apache.org/dist/subversion/%{name}-%{version}.tar.bz2
+# Source0-md5: 5d621281ce9d3448e1437cb006331f57
Source1: %{name}-dav_svn.conf
Source2: %{name}-authz_svn.conf
Source3: %{name}-svnserve.init
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.4}
%{?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
+BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpmbuild(macros) >= 1.656
%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 >= 1:2.5
+%endif
+%if %{with python}
+BuildRequires: python-devel >= 1:2.4
BuildRequires: swig-python >= 1.3.24
%endif
%if %{with ruby}
%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_kwallet:BuildRequires: kde4-kdelibs-devel}
%define apacheconfdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)/conf.d
%define apachelibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
-%define skip_post_check_so libsvn_swig_py-1.so.* libsvn_swig_perl-1.so.*
+%define skip_post_check_so libsvn_swig_py-1.so.* libsvn_swig_perl-1.so.* libsvn_fs-1.so.0.0.0
+# libsvn_fs-1.so.0.0.0 - "apr_uuid_parse" symbol
+
+%define filterout_ld -Werror=format-security
%description
The goal of the Subversion project is to build a version control
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.
%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 %{without python} && %{without perl} && %{without ruby}
+%if %{without swig}
--without-swig \
%endif
- %{?with_python:--with-ctypesgen=%{_bindir}/ctypesgen.py} \
- --%{?with_javahl:en}%{!?with_javahl:dis}able-javahl \
+%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}
+ --with-ctypesgen=%{_bindir}/ctypesgen.py \
+%endif
+%if %{with javahl}
+ --enable-javahl \
--with-jdk="%{java_home}" \
--without-jikes \
+%else
+ --disable-javahl \
+%endif
%if %{with neon}
--without-serf \
--with-neon=%{_prefix} \
%{__make} -j1
-%if %{without net_client_only}
-# python
-%if %{with python}
-# ctypes bindings
+%if %{with csvn}
+# Python ctypes bindings
%{__make} ctypes-python
-# swig bindings
+%endif
+%if %{with python}
+# Python swig bindings
%{__make} swig-py \
swig_pydir=%{py_sitedir}/libsvn \
swig_pydir_extra=%{py_sitedir}/svn
%endif
-# perl
%if %{with perl}
+# Perl swig bindings
%{__make} -j1 swig-pl-lib
-odir=$(pwd)
cd subversion/bindings/swig/perl/native
%{__perl} Makefile.PL INSTALLDIRS=vendor
%{__make} -j1
-cd $odir
+cd -
%endif
%if %{with javahl}
%{__make} -j1 javahl \
%if %{with ruby}
%{__make} swig-rb
%endif
-%endif
%if %{with tests}
%{__make} check
-%if %{with python}
+%if %{with csvn}
%{__make} check-ctypes-python
+%endif
+%if %{with python}
%{__make} check-swig-py
%endif
%if %{with perl}
$RPM_BUILD_ROOT/home/services/subversion{,/repos}
%{__make} install -j1 \
+ DESTDIR=$RPM_BUILD_ROOT \
+ APACHE_LIBEXECDIR="$(%{_sbindir}/apxs -q LIBEXECDIR)" \
%if %{with javahl}
install-javahl \
javahl_javadir="%{_javadir}" \
%endif
-%if %{without net_client_only}
%if %{with python}
install-swig-py \
+ swig_pydir=%{py_sitedir}/libsvn \
+ swig_pydir_extra=%{py_sitedir}/svn \
+%endif
+%if %{with csvn}
install-ctypes-python \
%endif
+
%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}/Kernel
+%{__rm} -r $RPM_BUILD_ROOT%{ruby_ridir}/OptionParser
+%{__rm} -r $RPM_BUILD_ROOT%{ruby_ridir}/Time
+%{__rm} -r $RPM_BUILD_ROOT%{ruby_ridir}/Uconv
+%{__rm} $RPM_BUILD_ROOT%{ruby_ridir}/cache.ri
+%{__rm} $RPM_BUILD_ROOT%{ruby_ridir}/created.rid
%endif
-%endif
- APACHE_LIBEXECDIR="$(%{_sbindir}/apxs -q LIBEXECDIR)" \
- DESTDIR=$RPM_BUILD_ROOT \
- swig_pydir=%{py_sitedir}/libsvn \
- swig_pydir_extra=%{py_sitedir}/svn
-%if %{without 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 \
%if %{without net_client_only}
install -p tools/backup/hot-backup.py $RPM_BUILD_ROOT%{_bindir}/svn-hot-backup
-%if %{with python}
+%endif
+%if %{with python} || %{with csvn}
%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%py_postclean
-%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/libsvn/*.la
-install tools/examples/*.py $RPM_BUILD_ROOT%{_examplesdir}/python-%{name}-%{version}
%endif
+%if %{with python}
+%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/libsvn/*.la
+# .a created on ac only
+%{__rm} -f $RPM_BUILD_ROOT%{py_sitedir}/libsvn/*.a
+cp -p tools/examples/*.py $RPM_BUILD_ROOT%{_examplesdir}/python-%{name}-%{version}
%endif
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}
-%{?with_javahl:%{__rm} $RPM_BUILD_ROOT%{_libdir}/libsvnjavahl*.{la,a}}
-%if %{without net_client_only}
+%if %{with javahl}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libsvnjavahl*.{la,a}
+%endif
+%if %{with swig}
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libsvn_swig*.{la,a}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/ruby/site_ruby/*/*/svn/ext/*.la
+%if %{with ruby}
+%{__rm} $RPM_BUILD_ROOT%{ruby_vendorarchdir}/svn/ext/*.la
+%endif
%endif
%if %{with gnome} || %{with kwallet}
# dlopened by soname (libsvn_auth_*-1.so.0)
%defattr(644,root,root,755)
/etc/bash_completion.d/%{name}
+%endif # net_client_only
+
%if %{with javahl}
%files -n java-subversion
%defattr(644,root,root,755)
%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}/svn
%{py_sitedir}/svn/*.py[co]
%{_examplesdir}/python-%{name}-%{version}
+%endif
+%if %{with csvn}
%files -n python-csvn
%defattr(644,root,root,755)
%doc subversion/bindings/ctypes-python/{README,TODO}
%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
%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
%endif
-
-%endif # net_client_only