# without db => net_client_only - spec will be more simpler, I think)
#
# Conditional build:
-%bcond_with net_client_only # build only net client
-%bcond_without python # build without python bindings
-%bcond_without perl # build without perl bindings
-%bcond_without apache # build without apache support (webdav, etc)
+%bcond_with net_client_only # build only net client
+%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 javahl # build without javahl support (Java high-level bindings)
+%bcond_without tests # don't perform "make check"
#
%{!?with_net_client_only:%include /usr/lib/rpm/macros.perl}
%define apxs /usr/sbin/apxs
%define pdir SVN
%define pnam _Core
+#
+%define snap rc4
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.4.3
-Release: 2
-License: Apache/BSD Style
+Version: 1.5.0
+Release: 0.%{snap}.1
+License: Apache/BSD-like
Group: Development/Version Control
-Source0: http://subversion.tigris.org/downloads/%{name}-%{version}.tar.gz
-# Source0-md5: 6b991b63e3e1f69670c9e15708e40176
+# Source0: http://subversion.tigris.org/downloads/%{name}-%{version}.tar.gz
+Source0: http://orac.ece.utexas.edu/pub/svn/%{version}-%{snap}/leander-hackberry/%{name}-%{version}-%{snap}.tar.gz
+# Source0-md5: 905fc5030be179d4d387803b8397668a
Source1: %{name}-dav_svn.conf
Source2: %{name}-authz_svn.conf
Source3: %{name}-svnserve.init
Source4: %{name}-svnserve.sysconfig
+Source5: %{name}-convert-typemaps-to-ifdef.py
Patch0: %{name}-home_etc.patch
Patch1: %{name}-DESTDIR.patch
-Patch2: %{name}-neon.patch
URL: http://subversion.tigris.org/
%if %{with net_client_only}
%global apache_modules_api 0
BuildRequires: rpm-perlprov >= 4.1-13
BuildRequires: swig-perl >= 1.3.24
%endif
+%{?with_javahl:BuildRequires: jdk}
%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
BuildRequires: libtool >= 1.4-9
BuildRequires: neon-devel >= 0.26.0
-%if %{with python}
BuildRequires: python >= 2.2
-BuildRequires: python-devel >= 2.2
BuildRequires: python-modules >= 2.2
+%if %{with python}
+BuildRequires: python-devel >= 2.2
BuildRequires: sed >= 4.0
BuildRequires: swig-python >= 1.3.24
%endif
BuildRequires: texinfo
BuildRequires: which
-# update -neon patch before messing with this BC
-BuildConflicts: neon-devel > 0.26.3
Requires: %{name}-libs = %{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _apachelibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
%define _libexecdir %{_libdir}/svn
+%define apacheconfdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)/conf.d
+%define apachelibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
%description
The goal of the Subversion project is to build a version control
Cele projektu to:
- Wszystkie aktualne możliwości CVS.
-- Katalogi, zmiany nazw oraz meta-dane plików są wersjonowane.
-- Wsparcie dla linków symbolicznych itp.
+- Katalogi, zmiany nazw oraz metadane plików są wersjonowane.
+- Obsługa dowiązań symbolicznych itp.
- Commity są w pełni atomowe.
- Branchowanie oraz tagowanie są tanimi (stałymi w czasie) operacjami.
-- Powtarzające merge.
-- Wsparcie dla pluginów diff'a po stronie klienta.
+- Dobra obsługa powtarzanego łączenia (merge).
+- Obsługa wtyczek diff po stronie klienta.
- Natywny klient/serwer.
- Klient/Serwer przesyłają diffy w obu kierunkach.
- Koszty proporcjonalne do rozmiaru zmiany, a nie rozmiaru projektu.
Summary: Subversion libraries and modules
Summary(pl.UTF-8): Biblioteka subversion oraz ładowalne moduły
Group: Libraries
-Requires: neon >= 0.24.7
+Requires: neon >= 0.26.0
Obsoletes: libsubversion0
%description libs
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: apr-util-devel >= 1:1.0.0
-Requires: neon-devel >= 0.24.7
+Requires: neon-devel >= 0.26.0
Obsoletes: libsubversion0-devel
%description devel
Summary(pl.UTF-8): Subversion svnserve
Group: Networking/Daemons
Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/lib/rpm/user_group.sh
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires(pre): /usr/sbin/usermod
Requires: %{name} = %{version}-%{release}
Requires: rc-scripts
+Provides: group(svn)
+Provides: user(svn)
%description svnserve
Subversion svnserve server.
%description -n bash-completion-subversion -l pl.UTF-8
Dopełnienia basha dla subversion.
+%package -n java-subversion
+Summary: Subversion Java bindings
+Summary(pl.UTF-8): Dowiązania do Subversion dla Javy
+Group: Development/Languages/Java
+Requires: %{name}-libs = %{version}-%{release}
+
+%description -n java-subversion
+This is a set of Java classes which provide the functionality of
+subversion-libs, the Subversion libraries. It is useful if you want
+to, for example, write a Java class that manipulates a Subversion
+repository or working copy. See the 'subversion' package for more
+information.
+
+%description -n java-subversion -l pl.UTF-8
+Ten pakiet zawiera zestaw klas Javy udostępniających funkcjonalność
+subversion-libs, czyli bibliotek Subversion. Jest przydatny przy
+pisaniu klas Javy np. modyfikujących repozytorium Subversion lub
+kopię roboczą. Więcej informacji w pakiecie subversion.
+
%package -n python-subversion
-Summary: Subversion python bindings
-Summary(pl.UTF-8): Dowiązania do subversion dla pythona
-Summary(pt_BR.UTF-8): Módulos python para acessar os recursos do Subversion
+Summary: Subversion Python bindings
+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}
Obsoletes: subversion-python
%description -n python-subversion
-Subversion python bindings.
+Subversion Python bindings.
%description -n python-subversion -l pl.UTF-8
-Dowiązania do subversion dla pythona.
+Dowiązania do Subversion dla Pythona.
%description -n python-subversion -l pt_BR.UTF-8
-Módulos python para acessar os recursos do Subversion.
+Módulos Python para acessar os recursos do Subversion.
%package -n perl-subversion
-Summary: Subversion perl bindings
-Summary(pl.UTF-8): Dowiązania do subversion dla perla
-Summary(pt_BR.UTF-8): Módulos perl para acessar os recursos do Subversion
+Summary: Subversion Perl bindings
+Summary(pl.UTF-8): Dowiązania do Subversion dla Perla
+Summary(pt_BR.UTF-8): Módulos Perl para acessar os recursos do Subversion
Group: Development/Languages/Perl
Requires: %{name}-libs = %{version}-%{release}
Obsoletes: subversion-perl
%description -n perl-subversion
-Subversion perl bindings.
+Subversion Perl bindings.
%description -n perl-subversion -l pl.UTF-8
-Dowiązania do subversion dla perl.
+Dowiązania do Subversion dla Perla.
%description -n perl-subversion -l pt_BR.UTF-8
-Módulos perl para acessar os recursos do Subversion.
+Módulos Perl para acessar os recursos do Subversion.
%package -n apache-mod_dav_svn
Summary: Apache module: Subversion Server
Moduł apache: autoryzacja na podstawie ścieżki dla serwera Subversion.
%prep
-%setup -q
+%setup -q -n %{name}-%{version}-%{snap}
rm -rf apr apr-util neon
%patch0 -p0
%patch1 -p1
-%patch2 -p1
%build
+rm subversion/bindings/swig/proxy/*.swg
+cd subversion/bindings/swig && python "%{SOURCE5}" && cd ../../..
cp -f /usr/share/automake/config.sub ac-helpers
chmod +x ./autogen.sh && ./autogen.sh
# don't enable dso - currently it's broken
%configure \
--with-editor=vi \
- --with-zlib \
- --with-python=%{_bindir}/python \
- --with-perl5=%{_bindir}/perl \
+ --with-zlib=%{_libdir} \
+ --with-python=%{__python} \
+ --with-perl5=%{__perl} \
%if %{with net_client_only}
--without-apache \
--without-swig \
%if !%{with python} && !%{with perl}
--without-swig \
%endif
+ --%{?with_javahl:en}%{!?with_javahl:dis}able-javahl \
%endif
+ --with-jdk="%{java_home}" \
--with-neon=%{_prefix} \
--disable-neon-version-check \
--with-apr=%{_bindir}/apr-1-config \
%{__make}
cd $odir
%endif
+%if %{with javahl}
+%{__make} javahl \
+ javahl_javadir="%{_javadir}"
+%endif
+%endif
+
+%if %{with tests}
+%{__make} check
%endif
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,bash_completion.d} \
- $RPM_BUILD_ROOT{%{_sysconfdir}/httpd/httpd.conf,%{_apachelibdir},%{_infodir}} \
+ $RPM_BUILD_ROOT{%{apacheconfdir},%{apachelibdir},%{_infodir}} \
$RPM_BUILD_ROOT%{_examplesdir}/{%{name}-%{version},python-%{name}-%{version}} \
$RPM_BUILD_ROOT/home/services/subversion{,/repos}
%{__make} install -j1 \
+%if %{with javahl}
+ install-javahl \
+ javahl_javadir="%{_javadir}" \
+%endif
%if !%{with net_client_only} && %{with python}
install-swig-py \
%endif
%endif
%if %{with apache}
-install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/httpd.conf/65_mod_dav_svn.conf
-install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/httpd/httpd.conf/66_mod_authz_svn.conf
+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
%endif
%clean
rm -rf $RPM_BUILD_ROOT
-%post devel
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%pre svnserve
+%groupadd -g 86 svn
+%useradd -u 180 -d /home/services/subversion -c "Subversion svnserve" -g svn svn
+
+%post devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
-%postun devel
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%postun devel -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
/sbin/chkconfig --del svnserve
fi
+%postun svnserve
+if [ "$1" = "0" ]; then
+ %userremove svn
+ %groupremove svn
+fi
+
%post -n apache-mod_dav_svn
%service -q httpd restart
%if %{with perl} || %{with python}
%exclude %{_libdir}/lib*_swig_*.so.*
%endif
+%if %{with javahl}
+%exclude %{_libdir}/libsvnjavahl*.so.*.*.*
+%exclude %{_libdir}/libsvnjavahl*.so.?
+%exclude %{_libdir}/libsvnjavahl*.so
+%endif
%files devel
%defattr(644,root,root,755)
%if %{with perl} || %{with python}
%exclude %{_libdir}/lib*_swig_*.so
%endif
+%if %{with javahl}
+%exclude %{_libdir}/libsvnjavahl*.so
+%endif
%{_examplesdir}/%{name}-%{version}
%files static
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/svnserve
%{_mandir}/man?/svnserve*
-%dir /home/services/subversion
-%dir /home/services/subversion/repos
+%dir %attr(750,svn,svn) /home/services/subversion
+%dir %attr(750,svn,svn) /home/services/subversion/repos
%if %{with apache}
%attr(754,root,root) /etc/rc.d/init.d/svnserve
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/svnserve
%defattr(644,root,root,755)
/etc/bash_completion.d/%{name}
+%if %{with javahl}
+%files -n java-subversion
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libsvnjavahl*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libsvnjavahl*.so.?
+%attr(755,root,root) %{_libdir}/libsvnjavahl*.so
+%{_javadir}/svn-javahl.jar
+%endif
+
%if %{with python}
%files -n python-subversion
%defattr(644,root,root,755)
%if %{with apache}
%files -n apache-mod_dav_svn
%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd/httpd.conf/*_mod_dav_svn.conf
-%attr(755,root,root) %{_apachelibdir}/mod_dav_svn.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{apacheconfdir}/*_mod_dav_svn.conf
+%attr(755,root,root) %{apachelibdir}/mod_dav_svn.so
%files -n apache-mod_authz_svn
%defattr(644,root,root,755)
%doc subversion/mod_authz_svn/INSTALL
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/httpd/httpd.conf/*_mod_authz_svn.conf
-%attr(755,root,root) %{_apachelibdir}/mod_authz_svn.so
+%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