subversion/subversion.spec
Andreas Stieger 4a909ebc2a Accepting request 209129 from home:AndreasStieger:branches:devel:tools:scm:svn
- fix performance problems when dynamically linking against 
  SQLite 3.8. While this does not create a new working copy format
  version, working copies that were created with a 1.8 client 
  linked against SQLite 3.7 need to have "svn upgrade" run once
  to enjoy the benefits, while otherwise maintaining compatibility.
  The step is optional and not required for new working copies.
  Adds subversion-1.8.x-SQLite-3.8.patch based on upstream commits.
- dynamically link against SQLite as per the above in 13.1 and up.

OBS-URL: https://build.opensuse.org/request/show/209129
OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm:svn/subversion?expand=0&rev=158
2013-12-02 07:58:22 +00:00

831 lines
24 KiB
RPMSpec

#
# spec file for package subversion
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2013 Andreas Stieger <andreas.stieger@gmx.de>
# Copyright (c) 2009-2010 Pascal Bleser <pascal.bleser@opensuse.org>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# svn 1.8 supports ruby 1.8 >= 1.8.2 or 1.9.3 specifically. openSUSE 13.2
# has ruby 2.0 - Ruby bindings to be re-enabled when svn is ported to ruby 2.0
%define with_ruby 0%{?suse_version} > 1110 && 0%{?suse_version} <= 1310
%define with_intree_swig 0%{?suse_version} != 1110
%define with_intree_sqlite 0%{?suse_version} < 1310
%define with_python_ctypes 0
%define with_kde4_kwallet 0%{?suse_version} > 1100
%define with_gnome_keyring 0%{?suse_version} > 1100
# run build --with=regression_tests to run test suite
%bcond_with regression_tests
%if 0%{?sles_version} > 10 && 0%{?sles_version} < 12
%define with_bashcomp 0
%else
%define with_bashcomp 1
%endif
%define svngroup svn
%define svnuser svn
Name: subversion
Version: 1.8.5
Release: 0
# in-tree SWIG version to use for the build:
%define swig_version 1.3.36
%define sqlite_version 3.7.15.1
%define sqlite_pkg_version 3071501
BuildRequires: apache2-devel
BuildRequires: db-devel
BuildRequires: file-devel
BuildRequires: gcc-c++
BuildRequires: krb5-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: python-devel
BuildRequires: python-xml
BuildRequires: update-alternatives
BuildRequires: zlib-devel
Requires(pre): pwdutils
#
%if 0%{?suse_version} > 1140
BuildRequires: pkgconfig(systemd)
%{?systemd_requires}
%define has_systemd 1
%endif
#
%if %with_bashcomp
BuildRequires: bash-completion
%endif #with_bashcomp
%if %with_python_ctypes
BuildRequires: ctypesgen
%endif
%if %with_ruby
# Only 1.8.x releases are fully supported, 1.9.3 support is new
# configure script disallows versions between 1.8.7 and 1.9.3
BuildConflicts: ruby-devel = 1.9.0
BuildConflicts: ruby-devel = 1.9.1
BuildConflicts: ruby-devel = 1.9.2
%if 0%{?suse_version} >= 1310
# 13.1 and later have a ruby19 package, pkgconfig and a different versioning scheme
BuildRequires: pkgconfig(ruby-1.9)
%else
BuildRequires: ruby-devel >= 1.8.2
%endif
%endif # with_ruby
BuildRequires: apache2-prefork
BuildRequires: cyrus-sasl-devel
%if %with_gnome_keyring
BuildRequires: dbus-1-devel
BuildRequires: glib2-devel
%if 0%{?suse_version} >= 1130
BuildRequires: libgnome-keyring-devel
%else
BuildRequires: gnome-keyring-devel
%endif
%endif # with_gnome_keyring
BuildRequires: libserf-devel >= 1.2.1
%if %with_kde4_kwallet
BuildRequires: dbus-1-devel
BuildRequires: kdelibs4-core
BuildRequires: libkde4-devel
BuildRequires: libqt4-devel
%endif # with_kde4_kwallet
%if 0%{?suse_version} >= 1130
%define with_java 1
BuildRequires: java-devel >= 1.6.0
BuildRequires: junit
%else
%define with_java 0
%endif
%if %{with regression_tests}
# svnserveautocheck.sh davautocheck.sh requirements
BuildRequires: net-tools
BuildRequires: python-sqlite
BuildRequires: util-linux
BuildRequires: wget
%if 0%{?suse_version} > 1230
BuildRequires: time
%endif
%endif # with regression_tests
#
%define _fwdefdir /etc/sysconfig/SuSEfirewall2.d/services
#
%define apxs /usr/sbin/apxs2
%define apache_libexecdir %(%{apxs} -q LIBEXECDIR)
%define apache_sysconfdir %(%{apxs} -q SYSCONFDIR)
%define apache_mmn %(MMN="$(%{apxs} -q LIBEXECDIR)_MMN"; test -x "$MMN" && "$MMN")
%if %{!?site_python:1}0
%define site_python %(%__python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()")
%endif
#
PreReq: %insserv_prereq %fillup_prereq
#
Summary: Subversion version control system
License: Apache-2.0
Group: Development/Tools/Version Control
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Url: https://subversion.apache.org
Source0: https://www.apache.org/dist/subversion/%{name}-%{version}.tar.bz2
Source1: subversion.conf
Source2: subversion.README.SuSE
Source4: contrib-1485350.tar.bz2
Source9: subversion.rcsvnserve
Source10: subversion.sysconfig.svnserve
Source12: subversion.sysconfig.svnserve.remoteaccess
Source13: subversion.xinetd.svnserve
Source14: svnserve.service
Source15: svnserve.tmpfiles
Source42: subversion.svngrep.sh
Source43: subversion.svndiff.sh
# https://people.apache.org/keys/group/subversion-pmc.asc
Source50: subversion.keyring
Source51: https://www.apache.org/dist/subversion/%{name}-%{version}.tar.bz2.asc
%if 0%{?suse_version} >= 1230
BuildRequires: gpg-offline
%endif
%if %with_intree_swig
Source90: http://sourceforge.net/projects/swig/files/swig/swig-%{swig_version}/swig-%{swig_version}.tar.gz
%else
BuildRequires: swig
%endif
%if %with_intree_sqlite
Source91: http://www.sqlite.org/sqlite-amalgamation-%{sqlite_pkg_version}.zip
BuildRequires: unzip
BuildConflicts: sqlite3-devel
%else
BuildRequires: sqlite3-devel >= %{sqlite_version}
%requires_ge libsqlite3-0
%endif # with_intree_sqlite
Source92: %{name}.rpmlintrc
#
Patch11: subversion.libtool-verbose.patch
# build fixes
Patch20: subversion-swig-perl-install_vendor.patch
Patch23: subversion.libtool-pie-flags.patch
Patch31: subversion.perl.LD_RUN_PATH.patch
Patch37: subversion-no-build-date.patch
Patch38: subversion-1.8.x-fix-ppc-tests.patch
Patch39: subversion-1.8.x-SQLite-3.8.patch
#
%if %with_ruby
%define rb_arch %(echo "%{_host_cpu}-%{_os}" | sed -e "s/i686/i586/" -e "s/armv5tel/armv4l/" -e "s/hppa2.0/hppa/")
%define site_ruby %(ruby -rrbconfig -e 'print RbConfig::CONFIG["sitelibdir"]')
%endif # with_ruby
#
%if %with_java
Provides: subversion-javahl = %{version}-%{release}
%endif # with_java
%description
Subversion exists to be universally recognized and adopted as an open-source,
centralized version control system characterized by its reliability as a safe
haven for valuable data; the simplicity of its model and usage; and its ability
to support the needs of a wide variety of users and projects, from individuals
to large-scale enterprise operations.
%package devel
Summary: Development package for Subversion developers
Group: Development/Libraries/C and C++
Requires: subversion = %{version}
# this pulls in libapr1-devel and libexpat-devel
Requires: libapr-util1-devel
%description devel
The subversion-devel package includes the static libraries and include
files for developers interacting with the subversion package.
%package tools
Summary: Tools for Subversion
Group: Development/Tools/Version Control
%description tools
This package contains some tools for subversion server and
repository admins.
%package perl
Summary: Allows Perl scripts to directly use Subversion repositories
Group: Development/Tools/Version Control
Requires: perl = %{perl_version}
Requires: perl >= 5.8
Requires: subversion = %{version}
%description perl
Provides Perl (SWIG) support for Subversion.
%package python
Summary: Allows Python scripts to directly use Subversion repositories
Group: Development/Tools/Version Control
Requires: subversion = %{version}
%description python
Provides Python (SWIG) support for Subversion.
%if %with_python_ctypes
%package python-ctypes
Summary: High-Level Python Bindings for Subversion
Group: Development/Tools/Version Control
Requires: subversion = %{version}
%description python-ctypes
Provides high-level Python support for Subversion, based on ctypes.
%endif # with_python_ctypes
%if %with_ruby
%package ruby
Summary: Allows Ruby scripts to directly use Subversion repositories
Group: Development/Tools/Version Control
Requires: subversion = %{version}
%description ruby
Provides Ruby (SWIG) support for Subversion.
%endif # with_ruby
%package server
Summary: Apache server module for Subversion server
Group: Development/Tools/Version Control
Requires: %{apache_mmn}
Requires: apache2
Requires: subversion = %{version}
%description server
The subversion-server package adds the Subversion server Apache module
to the Apache directories and configuration.
http://subversion.apache.org
%if %with_kde4_kwallet
%package -n libsvn_auth_kwallet-1-0
Summary: A Concurrent Versioning system similar to but better than CVS
Group: Development/Tools/Version Control
%description -n libsvn_auth_kwallet-1-0
Provides KWallet integration for Subversion.
%endif # with_kde4_kwallet
%if %with_gnome_keyring
%package -n libsvn_auth_gnome_keyring-1-0
Summary: A Concurrent Versioning system similar to but better than CVS
Group: Development/Tools/Version Control
%description -n libsvn_auth_gnome_keyring-1-0
Subversion does the same thing cvs (CVS (Concurrent Versioning System))
but has major enhancements compared to CVS. The name of the cmdline
client is svn.
%endif # with_gnome_keyring
%if %with_bashcomp
%package bash-completion
Summary: Bash Completion for %{name}
Group: Development/Tools/Version Control
Requires: %{name} = %{version}
Requires: bash-completion
%if %{?suse_version} >= 1130
BuildArch: noarch
%endif
%description bash-completion
Bash command line completion support for %{name} - completion of subcommands,
parameters and keywords for the svn command and other tools.
%endif # with_bashcomp
%prep
%{?gpg_verify: %gpg_verify %{S:51}}
%if %with_intree_swig
%setup -q -n subversion-%{version} -a 4 -b 90
%else
%setup -q -n subversion-%{version} -a 4
%endif
#
%if %with_intree_sqlite
%__install -d ./sqlite-amalgamation
pushd ./sqlite-amalgamation
unzip -ej "%{SOURCE91}"
popd #./sqlite-amalgamation
%endif # with_intree_sqlite
#
%patch11 -p1
%patch20 -p1
%patch23 -p1
%patch31 -p1
%patch37 -p1
%patch38 -p1
%patch39 -p1
SQLITE_RECOMMENDED_VER=$(grep -E '^SQLITE_RECOMMENDED_VER=' configure.ac|cut -f2 -d=|cut -f2 -d\")
#"
[ "$SQLITE_RECOMMENDED_VER" = "%{sqlite_version}" ] || {
echo "ERROR: recommended sqlite version is $SQLITE_RECOMMENDED_VER, but we're using %{sqlite_version}" >&2;
exit 1;
}
%build
# Re-boot strap, needed for patch37
./autogen.sh
# This package failed when testing with -Wl,-as-needed being default.
# So we disable it here, if you want to retest, just delete this comment and the line below.
export SUSE_ASNEEDED=0
%if 0%{?sles_version} == 9
mkdir BUILDPATH
%__ln_s "%{_usr}/bin/python2.5" "BUILDPATH/python"
export PATH="$PWD/BUILDPATH:$PATH"
export PYTHON="%{_usr}/bin/python2.5"
%endif
%if %with_intree_swig
SWIG_ROOT=`cd ..; pwd`/intree-swig
pushd "../swig-%{swig_version}"
%ifarch aarch64
cp ../subversion-%{version}/build/config.* Tools/config/
%endif
CFLAGS="%{optflags}" \
CXXFLAGS="%{optflags}" \
./configure \
--prefix="$SWIG_ROOT" \
--libdir="$SWIG_ROOT/%{_lib}" \
--without-tcl \
--without-java \
--without-gcj \
--without-guile \
--without-mzscheme \
--without-ocaml \
--without-pike \
--without-chicken \
--without-csharp \
--without-lua \
--without-allegrocl \
--without-clisp \
--without-r \
--with-swiglibdir="$SWIG_ROOT/share/swig"
%__make %{?jobs:-j%{jobs}}
%__make install
popd #swig
%endif
with_jdk=none
%if %with_java
for i in \
/usr/%{_lib}/jvm/java-openjdk \
/usr/%{_lib}/jvm/java \
/usr/%{_lib}/jvm/java-1.5.0-ibm \
/usr/%{_lib}/jvm/java-1.4.2-gcj \
/usr/%{_lib}/BEAJava2-1.4.2 \
/usr/%{_lib}/SunJava2-1.4.2 \
/usr/%{_lib}/jvm/java-1.4.2-sun \
/usr/lib/jvm/java-1.4.2-sun \
/usr/%{_lib}/jvm/java-1.5.0-ibm \
/usr/%{_lib}/jvm/java-1.5.0-sun \
/usr/lib/jvm/java-1.5.0-sun \
/usr/%{_lib}/jvm/java-1.4.2-ibm \
/usr/%{_lib}/jvm/IBMJava2-1.4.2 \
/usr/lib/BEAJava2-1.4.2 \
/usr/lib/SunJava2-1.4.2 \
/usr/lib/jvm/java-1.4.2-sun \
/usr/lib/IBMJava2-1.4 \
; do
if [ -d "$i" ] ; then
with_jdk="$i"
break
fi
done
%endif # with_java
if [ "$with_jdk" != "none" ] ; then
with_jdk="--with-jdk=$with_jdk --enable-javahl"
echo with_jdk > with_jdk
cat > with_jdk.files <<EOF-JAVA
%{_libdir}/libsvnjavahl*.so.*
%{_libdir}/libsvnjavahl*.so
%dir %{_libdir}/svn-javahl
%{_libdir}/svn-javahl/svn-javahl.jar
%{_datadir}/java/svn-javahl.jar
EOF-JAVA
else
with_jdk=""
rm -f with_jdk
echo -n '' > with_jdk.files
fi
%if !%with_java
with_jdk=""
rm -f with_jdk
echo -n '' > with_jdk.files
%endif # !with_java
cat with_jdk.files
# ### these possibly need further discussion
# swig_pydir = @libdir@/svn-python/libsvn
# swig_pydir_extra = @libdir@/svn-python/svn
sed --in-place=~ "
s@^swig_pydir = .*@swig_pydir = %{site_python}/libsvn@
s@^swig_pydir_extra = .*@swig_pydir_extra = %{site_python}/svn@
" Makefile.in
diff -u Makefile.in~ Makefile.in || true
sh -x autogen.sh
for i in subversion/bindings/javahl/native/*.cpp
do
d=$(sed -n '/^#include "..\/include/{s@^[^/]\+\([^"]\+\).*@subversion/bindings/javahl\1@;H};${x;s@\n@ @gp}' $i)
echo
echo "# $i"
if ! test -z "$d"
then
echo ${i%.cpp}.lo: $d
fi
echo
done >> build-outputs.mK
export CFLAGS="$(%{apxs} -q CFLAGS) %{optflags} -fpie -fstack-protector"
%if 0%{?suse_version} >= 1230
export CFLAGS="$CFLAGS -std=gnu99"
%endif
export CXXFLAGS="$CFLAGS"
export LDFLAGS=-pie
export PATH="${SWIG_ROOT}/bin:${PATH}"
%configure \
--with-editor="vim -c 'set tw=72 et' " \
--with-serf=%{_prefix} \
--with-apr=%{_prefix} \
--with-apr-util=%{_prefix} \
--with-apxs=%{apxs} \
--with-zlib=%{_prefix} \
--with-berkeley-db=db.h:db.h:%{_prefix}:db \
--with-apache-libexecdir=%{apache_libexecdir} \
$with_jdk \
%if %with_java
--with-junit="%{_usr}/share/java/junit.jar" \
%endif
--with-jikes=no \
%if %with_intree_swig
--with-swig="$SWIG_ROOT" \
%endif
%if %with_intree_sqlite
--with-sqlite="./sqlite-amalgamation/sqlite3.c" \
%else
--with-sqlite="%{_usr}" \
%endif
%if %with_gnome_keyring
--with-gnome-keyring \
%endif
%if %with_kde4_kwallet
--with-kwallet \
%endif
--disable-mod-activation \
--with-libmagic \
--disable-static
%__make %{?jobs:-j%jobs} SWIG_LDFLAGS=
#
if [ "$with_jdk" != "" ] ; then
with_jdk=javahl
fi
%if %with_ruby
ruby_target=swig-rb
%else
ruby_target=
%endif # with_ruby
%if %with_python_ctypes
python_ctypes_target=ctypes-python
%else
python_ctypes_target=
%endif # with_python_ctypes
%__make extraclean-bindings
%__make swig-py $python_ctypes_target swig-pl $ruby_target SWIG_LDFLAGS= $with_jdk
%install
if [ -f with_jdk ] ; then
with_jdk=install-javahl
else
with_jdk=
fi
%if %with_ruby
ruby_target=install-swig-rb
%else
ruby_target=
%endif # with_ruby
%if %with_python_ctypes
python_ctypes_target=install-ctypes-python
%else
python_ctypes_target=
%endif # with_python_ctypes
%__make DESTDIR="$RPM_BUILD_ROOT" install install-swig-pl install-swig-py $python_ctypes_target $ruby_target $with_jdk
%if %with_python_ctypes
# remove csvn .pyc files and recompile them because they contain the $RPM_BUILD_ROOT path:
find "%{buildroot}%{py_prefix}/lib/python%{py_ver}/site-packages/csvn/" -name "*.pyc" | xargs %__rm -f
%__python "%{py_libdir}/compileall.py" -f -d "%{py_prefix}/lib/python%{py_ver}/site-packages/csvn" "%{buildroot}/%{py_prefix}/lib/python%{py_ver}/csvn"
%endif # with_python_ctypes
%perl_process_packlist
%find_lang %name
#
cp -Lav %{S:42} $RPM_BUILD_ROOT%{_bindir}/svngrep
cp -Lav %{S:43} $RPM_BUILD_ROOT%{_bindir}/svndiff
#
mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/
cp -avL contrib/client-side/emacs/*.el $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/
rm -f $RPM_BUILD_ROOT/usr/share/emacs/site-lisp/vc-svn.el
#
cp -avL contrib/client-side/svn_apply_autoprops.py $RPM_BUILD_ROOT/usr/bin
#
mkdir -p $RPM_BUILD_ROOT/%{apache_sysconfdir}/conf.d
cp -av %{S:1} $RPM_BUILD_ROOT/%{apache_sysconfdir}/conf.d/subversion.conf
#
cp -avL %{S:2} README.SuSE
cp -avL subversion/mod_authz_svn/INSTALL README.mod_authz_svn
cat %name.lang > files.subversion
cat with_jdk.files >> files.subversion
#
# tools
%__make DESTDIR="$RPM_BUILD_ROOT" install-tools
%__mv $RPM_BUILD_ROOT%{_bindir}/svn-tools/{svn-populate-node-origins-index,svn-rep-sharing-stats,svnauthz-validate,svn-bench,fsfs-stats} $RPM_BUILD_ROOT%{_bindir}
# discard all other tools
%__rm -rf $RPM_BUILD_ROOT%{_bindir}/svn-tools
#
#
#
mkdir -p $RPM_BUILD_ROOT/usr/sbin
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
install -m 644 -D %{S:13} $RPM_BUILD_ROOT/etc/xinetd.d/svnserve
install -m 755 -D %{S:9} $RPM_BUILD_ROOT/etc/init.d/svnserve
ln -sv /etc/init.d/svnserve $RPM_BUILD_ROOT/usr/sbin/rcsvnserve
install -m 644 -D %{S:10} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.svnserve
install -m 644 -D %{S:12} $RPM_BUILD_ROOT/%{_fwdefdir}/svnserve
%{__install} -d -m 0755 %{buildroot}/srv/svn
%if 0%{?has_systemd}
install -m 644 -D %{S:14} $RPM_BUILD_ROOT/%{_unitdir}/svnserve.service
%{__install} -d -m 0755 %{buildroot}/var/run/svnserve/
%{__install} -d -m 0755 %{buildroot}/usr/lib/tmpfiles.d/
%{__install} -m 0644 %{SOURCE15} %{buildroot}/usr/lib/tmpfiles.d/svnserve.conf
%endif
#useless libtool stuff
rm -f %{buildroot}%{_libdir}/*.la
if [ "$with_jdk" != "" ] ; then
install -d -m 0755 $RPM_BUILD_ROOT/%{_datadir}/java
ln -sv %{_libdir}/svn-javahl/svn-javahl.jar $RPM_BUILD_ROOT/%{_datadir}/java/svn-javahl.jar
fi
rm -f %{buildroot}/var/adm/perl-modules/subversion
%if %with_bashcomp
%__install -D -m0644 tools/client-side/bash_completion "%{buildroot}/etc/bash_completion.d/%{name}"
%endif #with_bashcomp
# clean tools for doc
%__rm -rf tools/*/*.in
%check
#
# double check that the essential repository access schemes have been compiled in
#
schemes=$(LD_LIBRARY_PATH="${RPM_BUILD_ROOT}%{_libdir}" "${RPM_BUILD_ROOT}%{_bindir}/svn" --version | %__grep "'" | cut -d\' -f2 | sort -u)
# reset vim syntax: '
test "$schemes" = "file
http
https
svn"
#
# check that when building with in-tree SQLite, it is statically linked and of exactly that version
sqlite_info=$(LD_LIBRARY_PATH="${RPM_BUILD_ROOT}%{_libdir}" "${RPM_BUILD_ROOT}%{_bindir}/svn" --version -v | %__grep "SQLite" | cut -d\- -f2)
%if %with_intree_sqlite
test "$sqlite_info" = " SQLite %{sqlite_version} (static)"
%endif
#
%if %{with regression_tests}
# run tests over ra_local (file://) using fsfs backend
%__make check CLEANUP=true FS_TYPE=fsfs || (cat fails.log; exit 1)
# run tests over ra_local (file://) using bdb backend
%__make check CLEANUP=true FS_TYPE=bdb || (cat fails.log; exit 1)
# run tests over ra_svn (svn://) using fsfs backend
%__make svnserveautocheck CLEANUP=true FS_TYPE=fsfs || (cat fails.log; exit 1)
# run tests over ra_svn (svn://) using bdb backend
%__make svnserveautocheck CLEANUP=true FS_TYPE=bdb || (cat fails.log; exit 1)
# run tests over ra_serf (http://) using fsfs backend
%__make davautocheck CLEANUP=true FS_TYPE=fsfs || (cat fails.log; exit 1)
# run tests over ra_serf (http://) using bdb backend
%__make davautocheck CLEANUP=true FS_TYPE=bdb || (cat fails.log; exit 1)
%if %with_java
%__make check-javahl || (cat fails.log; exit 1)
%endif # with_java
%__make check-swig-pl || (cat fails.log; exit 1)
%if 0%{?suse_version} > 1140
# python bindings fail testsuite on 11.4
%__make check-swig-py || (cat fails.log; exit 1)
%endif
%if %with_ruby
%__make check-swig-rb || (cat fails.log; exit 1)
%endif # with_ruby
%endif # with regression_tests
%clean
%__rm -rf "%{buildroot}"
%pre
getent group %{svngroup} >/dev/null || groupadd -r %{svngroup}
getent passwd %{svnuser} >/dev/null || useradd -r -g %{svngroup} -d /srv/svn -s /sbin/nologin -c "user for Apache Subversion svnserve" %{svnuser}
%if 0%{?has_systemd}
%service_add_pre svnserve.service
%endif
%preun
%stop_on_removal svnserve
%if 0%{?has_systemd}
%service_del_preun svnserve.service
%endif
%post
%{fillup_and_insserv -n svnserve svnserve}
%if 0%{?has_systemd}
%service_add_post svnserve.service
systemd-tmpfiles --create /usr/lib/tmpfiles.d/svnserve.conf
%endif
/sbin/ldconfig
%postun
%restart_on_update svnserve
%{insserv_cleanup}
%if 0%{?has_systemd}
%service_del_postun svnserve.service
%endif
/sbin/ldconfig
%post -n subversion-python -p /sbin/ldconfig
%postun -n subversion-python -p /sbin/ldconfig
%post -n subversion-perl -p /sbin/ldconfig
%postun -n subversion-perl -p /sbin/ldconfig
%if %with_ruby
%post -n subversion-ruby -p /sbin/ldconfig
%postun -n subversion-ruby -p /sbin/ldconfig
%endif # with_ruby
%if %with_gnome_keyring
%post -n libsvn_auth_gnome_keyring-1-0 -p /sbin/ldconfig
%postun -n libsvn_auth_gnome_keyring-1-0 -p /sbin/ldconfig
%endif # with_gnome_keyring
%if %with_kde4_kwallet
%post -n libsvn_auth_kwallet-1-0 -p /sbin/ldconfig
%postun -n libsvn_auth_kwallet-1-0 -p /sbin/ldconfig
%endif # with_kde4_kwallet
%files -f files.subversion
%defattr(-,root,root)
%doc README.SuSE BUGS CHANGES LICENSE README.mod_authz_svn
%doc tools/hook-scripts tools/backup tools/bdb tools/examples tools/xslt
#
%config(noreplace) /etc/xinetd.d/svnserve
%attr(754,root,root) /etc/init.d/svnserve
%attr(754,root,root) /usr/sbin/rcsvnserve
/var/adm/fillup-templates/sysconfig.svnserve
%dir %attr(755,%{svnuser},%{svngroup}) /srv/svn
%config %{_fwdefdir}/*
%if 0%{?has_systemd}
%{_unitdir}/svnserve.service
%ghost %dir %attr(755,%{svnuser},%{svngroup}) /var/run/svnserve
/usr/lib/tmpfiles.d/svnserve.conf
%endif
#
%attr(755,root,root) /usr/bin/svn
%attr(755,root,root) /usr/bin/svnadmin
%attr(755,root,root) /usr/bin/svndumpfilter
%attr(755,root,root) /usr/bin/svnlook
%attr(755,root,root) /usr/bin/svnserve
%attr(755,root,root) /usr/bin/svnversion
%attr(755,root,root) /usr/bin/svndiff
%attr(755,root,root) /usr/bin/svngrep
%attr(755,root,root) /usr/bin/svnsync
%attr(755,root,root) /usr/bin/svnrdump
%attr(755,root,root) /usr/bin/svnmucc
%{_libdir}/libsvn_client*.so.*
%{_libdir}/libsvn_delta*.so.*
%{_libdir}/libsvn_diff*.so.*
%{_libdir}/libsvn_fs*.so.*
%{_libdir}/libsvn_ra*.so.*
%{_libdir}/libsvn_repos*.so.*
%{_libdir}/libsvn_subr*.so.*
%{_libdir}/libsvn_wc*.so.*
%{_mandir}/man?/svn*
#
/usr/share/emacs
%files perl
%defattr(-,root,root)
%doc %{_mandir}/man?/SVN::*
%{_libdir}/libsvn_swig_perl-1.so.*
%perl_vendorarch/SVN
%perl_vendorarch/auto/SVN
%files python
%defattr(-,root,root)
%dir %{site_python}
%dir %{site_python}/svn
%dir %{site_python}/libsvn
%{_libdir}/libsvn_swig_py-1.so.*
%{site_python}/libsvn/*
%{site_python}/svn/*
%if %with_python_ctypes
%files python-ctypes
%defattr(-,root,root)
%doc subversion/bindings/ctypes-python/examples
%dir %{site_python}
%{site_python}/csvn
%if %suse_version >= 1020
%{site_python}/svn_ctypes_python_bindings-*-py%{py_ver}.egg-info
%endif # suse_version >= 1020
%endif # with_python_ctypes
%if %with_ruby
%files ruby
%defattr(-,root,root)
%dir %{site_ruby}
%{site_ruby}/svn
%{site_ruby}/%{rb_arch}/svn
%{_libdir}/libsvn_swig_ruby-1.so.*
%endif # with_ruby
%files devel
%defattr(-,root,root)
%dir %{_includedir}/subversion-1
%{_libdir}/libsvn_*.so
%{_includedir}/subversion-1/*
%files tools
%defattr(-,root,root)
%attr(755,root,root) %{_bindir}/svn_apply_autoprops.py
%{_bindir}/svn-populate-node-origins-index
%{_bindir}/svnauthz-validate
%{_bindir}/svn-rep-sharing-stats
%{_bindir}/svn-bench
%{_bindir}/fsfs-stats
%files server
%defattr(-,root,root)
%dir %{apache_sysconfdir}/conf.d
%config (noreplace) %{apache_sysconfdir}/conf.d/subversion.conf
%dir %{apache_libexecdir}
%{apache_libexecdir}/mod_dav_svn.*
%{apache_libexecdir}/mod_authz_svn.*
%{apache_libexecdir}/mod_dontdothat.*
%if %with_gnome_keyring
%files -n libsvn_auth_gnome_keyring-1-0
%defattr(-,root,root)
%{_libdir}/libsvn_auth_gnome_keyring-1.so.0
%{_libdir}/libsvn_auth_gnome_keyring-1.so.0.*
%endif # with_gnome_keyring
%if %with_kde4_kwallet
%files -n libsvn_auth_kwallet-1-0
%defattr(-,root,root)
%{_libdir}/libsvn_auth_kwallet-1.so.0
%{_libdir}/libsvn_auth_kwallet-1.so.0.*
%endif # with_kde4_kwallet
%if %with_bashcomp
%files bash-completion
%defattr(-,root,root)
%config %{_sysconfdir}/bash_completion.d/%{name}
%endif #with_bashcomp
%changelog