Dirk Mueller
3d38362547
OBS-URL: https://build.opensuse.org/request/show/49307 OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm:svn/subversion?expand=0&rev=27
847 lines
25 KiB
RPMSpec
847 lines
25 KiB
RPMSpec
#
|
|
# spec file for package subversion (Version 1.6.12)
|
|
#
|
|
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
# 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/
|
|
#
|
|
|
|
# norootforbuild
|
|
|
|
%if 0%{?sles_version} == 9
|
|
%define __python %{_usr}/bin/python2.5
|
|
%endif
|
|
%if 0%{?sles_version} == 9
|
|
%define with_ruby 0
|
|
%define with_python_ctypes 0
|
|
%else
|
|
%define with_ruby 1
|
|
%define with_python_ctypes 0
|
|
%endif
|
|
%define with_intree_sqlite 1
|
|
%if 0%{?suse_version} > 1010
|
|
%define with_gnome_keyring 1
|
|
%else
|
|
%define with_gnome_keyring 0
|
|
%endif # suse_version > 1010
|
|
%if 0%{?suse_version} > 1030
|
|
%define with_kde4_kwallet 1
|
|
%else
|
|
%define with_kde4_kwallet 0
|
|
%endif # suse_version > 1030
|
|
|
|
Name: subversion
|
|
Version: 1.6.12
|
|
Release: 1
|
|
# in-tree SWIG version to use for the build:
|
|
%define swig_version 1.3.36
|
|
%define sqlite_version 3.6.13
|
|
%if 0%{?suse_version} > 910
|
|
BuildRequires: update-alternatives
|
|
%endif # suse_version > 910
|
|
BuildRequires: apache2-devel db-devel gcc gcc-c++ glibc-devel libstdc++-devel zlib-devel
|
|
BuildRequires: pkgconfig
|
|
%if 0%{?sles_version} == 9
|
|
BuildRequires: python-xml python25 python25-devel
|
|
%else
|
|
BuildRequires: python-devel python-xml
|
|
%endif
|
|
%if %with_python_ctypes
|
|
BuildRequires: ctypesgen
|
|
%endif # with_python_ctypes
|
|
%if %with_ruby
|
|
BuildRequires: ruby-devel
|
|
%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
|
|
%if %with_kde4_kwallet
|
|
BuildRequires: dbus-1-devel
|
|
BuildRequires: kdelibs4-core libkde4-devel libqt4-devel
|
|
%endif # with_kde4_kwallet
|
|
%ifarch ppc ppc64
|
|
# no JDK on ppc
|
|
%define with_java 0
|
|
%else
|
|
%if 0%{?sles_version}
|
|
# no JDK on SLE either
|
|
%define with_java 0
|
|
%else
|
|
%if 0%{?suse_version} >= 1100
|
|
# OpenJDK is available by default on openSUSE >= 11.0
|
|
%define with_java 1
|
|
BuildRequires: java-1_6_0-openjdk-devel
|
|
%else
|
|
%if 0%{?suse_version} == 1030
|
|
BuildRequires: java-1_6_0-sun-devel
|
|
%define with_java 1
|
|
%else
|
|
# Older OpenSUSE version might still have a 1.5 JDK around
|
|
BuildRequires: java-1_5_0-sun-devel
|
|
%define with_java 1
|
|
%endif # suse_version == 1030
|
|
%endif # suse_version >= 1100
|
|
%endif # sles_version
|
|
%endif # ifarch
|
|
%if %with_java
|
|
BuildRequires: junit
|
|
%endif #with_java
|
|
%if 0%{?suse_version} > 1030
|
|
BuildRequires: libneon-devel
|
|
%else
|
|
BuildRequires: neon-devel openldap2-devel
|
|
%endif # suse_version > 1030
|
|
# for %check section, to find a free port:
|
|
BuildRequires: iproute2
|
|
#
|
|
%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: A Concurrent Versioning system similar to but better than CVS
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
License: ASLv2
|
|
Group: Development/Tools/Version Control
|
|
Url: http://subversion.tigris.org
|
|
Source0: http://subversion.tigris.org/downloads/subversion-%{version}.tar.bz2
|
|
Source1: subversion.conf
|
|
Source2: subversion.README.SuSE
|
|
Source3: svnmerge.py
|
|
Source9: subversion.rcsvnserve
|
|
Source10: subversion.sysconfig.svnserve
|
|
Source12: subversion.sysconfig.svnserve.remoteaccess
|
|
Source13: subversion.xinetd.svnserve
|
|
Source42: subversion.svngrep.sh
|
|
Source43: subversion.svndiff.sh
|
|
# http://ovh.dl.sourceforge.net/project/swig/swig/swig-%{swig_version}/swig-%{swig_version}.tar.gz
|
|
Source90: swig-%{swig_version}.tar.bz2
|
|
%if %with_intree_sqlite
|
|
# http://www.sqlite.org/sqlite-amalgamation-%{sqlite_version}.tar.gz
|
|
Source91: sqlite-amalgamation-%{sqlite_version}.tar.bz2
|
|
%else
|
|
BuildRequires: sqlite-devel >= %{sqlite_version}
|
|
%endif # with_intree_sqlite
|
|
Source92: %{name}.rpmlintrc
|
|
#
|
|
Patch11: subversion.libtool-verbose.patch
|
|
Patch12: subversion-fix_nonvoid_function_without_return.patch
|
|
# build fixes
|
|
Patch20: subversion-swig-perl-install_vendor.patch
|
|
Patch23: subversion.libtool-pie-flags.patch
|
|
Patch31: subversion.perl.LD_RUN_PATH.patch
|
|
Patch33: subversion.header_wrappers.patch
|
|
Patch35: subversion.java14.patch
|
|
Patch36: subversion-ctypes-remove_shebang.patch
|
|
Patch37: subversion-no-build-date.patch
|
|
# PATCH-FEATURE-UPSTREAM subversion-neon-systemproxy.patch dimstar@opensuse.org -- Use system proxy offered by neon, if no specific config is used (Thus, actually using libproxy in the background to use 'the right proxy' as configured in the system).
|
|
Patch38: subversion-neon-systemproxy.patch
|
|
#
|
|
%if %with_ruby
|
|
%if %{!?rb_arch:1}0
|
|
%define rb_arch %(echo "%{_host_cpu}-%{_os}" | sed -e "s/i686/i586/" -e "s/armv5tel/armv4l/" -e "s/hppa2.0/hppa/")
|
|
%endif
|
|
%if %{!?rb_major_ver:1}0
|
|
%define rb_major_ver %(/usr/bin/ruby -e 'puts VERSION'|cut -f1,2 -d.)
|
|
%endif
|
|
%if %{!?site_ruby:1}0
|
|
%define site_ruby %{_usr}/%{_lib}/ruby/site_ruby/%{rb_major_ver}
|
|
%endif
|
|
%endif # with_ruby
|
|
%if %with_java
|
|
Provides: subversion-javahl = %{version}-%{release}
|
|
%endif # with_java
|
|
|
|
%description
|
|
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.
|
|
|
|
|
|
|
|
%package devel
|
|
License: ASLv2
|
|
Group: Development/Libraries/C and C++
|
|
Summary: Development package for Subversion developers
|
|
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
|
|
License: ASLv2 ; Subversion License, http://subversion.tigris.org/license-1.html
|
|
Group: Development/Tools/Version Control
|
|
Summary: Tools for Subversion
|
|
|
|
%description tools
|
|
This package contains a lot of tools for subversion server and
|
|
repository admins: * hot-backup makes a backup of a svn repo
|
|
without stopping
|
|
|
|
* various scripts for client (bash_completion, showchange.pl,
|
|
svn-graph.pl, ...) and server (svn-backup-dumps.py, ...) site
|
|
|
|
* po file translation scripts
|
|
|
|
* hook scripts
|
|
|
|
* xslt example
|
|
|
|
* some scripts and code examples
|
|
|
|
An overview of the scripts can be found at:
|
|
http://subversion.tigris.org/tools_contrib.html
|
|
|
|
|
|
|
|
%package perl
|
|
License: ASLv.. ; Subversion License, http://subversion.tigris.org/license-1.html
|
|
Group: Development/Tools/Version Control
|
|
Summary: Allows Perl scripts to directly use Subversion repositories
|
|
Requires: subversion = %{version}
|
|
Requires: perl >= 5.8
|
|
Requires: perl = %{perl_version}
|
|
|
|
%description perl
|
|
Provides Perl (SWIG) support for Subversion.
|
|
|
|
|
|
|
|
%package python
|
|
License: ASLv.. ; Subversion License, http://subversion.tigris.org/license-1.html
|
|
Group: Development/Tools/Version Control
|
|
Summary: Allows Python scripts to directly use Subversion repositories
|
|
Requires: subversion = %{version}
|
|
%if 0%{?sles_version} == 9
|
|
Requires: python25
|
|
%endif
|
|
|
|
%description python
|
|
Provides Python (SWIG) support for Subversion.
|
|
|
|
|
|
|
|
%if %with_python_ctypes
|
|
|
|
%package python-ctypes
|
|
|
|
|
|
Group: Development/Tools/Version Control
|
|
Summary: High-Level Python Bindings for Subversion
|
|
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
|
|
License: Apache Software License .. ; Subversion License, http://subversion.tigris.org/license-1.html
|
|
Group: Development/Tools/Version Control
|
|
Summary: Allows Ruby scripts to directly use Subversion repositories
|
|
Requires: subversion = %{version}
|
|
|
|
%description ruby
|
|
Provides Ruby (SWIG) support for Subversion.
|
|
|
|
|
|
|
|
%endif # with_ruby
|
|
|
|
%package server
|
|
License: ASLv2
|
|
Group: Development/Tools/Version Control
|
|
Summary: Apache server module for Subversion server
|
|
Requires: subversion = %{version} apache2 %{apache_mmn}
|
|
|
|
%description server
|
|
The subversion-server package adds the Subversion server Apache module
|
|
to the Apache directories and configuration.
|
|
|
|
http://subversion.tigris.org
|
|
|
|
|
|
|
|
%if %with_kde4_kwallet
|
|
|
|
%package -n libsvn_auth_kwallet-1-0
|
|
License: Subversion license, http://subversion.tigris.org/license-1.html
|
|
Summary: A Concurrent Versioning system similar to but better than CVS
|
|
Group: Development/Tools/Version Control
|
|
|
|
%description -n libsvn_auth_kwallet-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_kde4_kwallet
|
|
%if %with_gnome_keyring
|
|
|
|
%package -n libsvn_auth_gnome_keyring-1-0
|
|
License: Subversion license, http://subversion.tigris.org/license-1.html
|
|
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
|
|
|
|
%prep
|
|
%setup -q -n subversion-%{version} -b 90
|
|
#
|
|
%if %with_intree_sqlite
|
|
%__install -d ./sqlite-amalgamation
|
|
pushd ./sqlite-amalgamation
|
|
%__bzip2 -d -c "%{SOURCE91}" | %__tar xf - "sqlite-%{sqlite_version}/sqlite3.c"
|
|
%__mv "sqlite-%{sqlite_version}/sqlite3.c" .
|
|
%__rm -rf "sqlite-%{sqlite_version}"
|
|
popd #./sqlite-amalgamation
|
|
%endif # with_intree_sqlite
|
|
#
|
|
%patch11 -p0
|
|
%patch12 -p0
|
|
#
|
|
%patch20
|
|
%if 0%{?suse_version} > 930
|
|
%patch23 -p0
|
|
%endif
|
|
%patch31
|
|
%patch33
|
|
%patch35
|
|
%patch36 -p0
|
|
%patch37
|
|
%patch38
|
|
%if 0%{?sles_version} == 9
|
|
%__grep -rwl '/usr/bin/python' . | xargs %__sed -i 's|/usr/bin/python|%{_usr}/bin/python2.5|g'
|
|
%__grep -rwl '/usr/bin/env python' . | xargs %__sed -i 's|/usr/bin/env python|%{_usr}/bin/python2.5|g'
|
|
%endif
|
|
|
|
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
|
|
SWIG_ROOT=`cd ..; pwd`/intree-swig
|
|
pushd "../swig-%{swig_version}"
|
|
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" \
|
|
--disable-neon-version-check
|
|
%__make %{?jobs:-j%{jobs}}
|
|
%__make install
|
|
popd #swig
|
|
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) -Wall -g"
|
|
%if 0%{?suse_version} > 930
|
|
CFLAGS="$CFLAGS -fpie"
|
|
export LDFLAGS=-pie
|
|
%endif # suse_version > 930
|
|
%if 0%{?suse_version} > 1000
|
|
CFLAGS="$CFLAGS -fstack-protector"
|
|
%endif # suse_version > 1000
|
|
export CXXFLAGS="$CFLAGS"
|
|
export PATH="${SWIG_ROOT}/bin:${PATH}"
|
|
%configure \
|
|
--with-editor="vim -c 'set tw=72 et' " \
|
|
--with-neon=%{_prefix} \
|
|
--with-apr=%{_prefix} \
|
|
--with-apr-util=%{_prefix} \
|
|
--with-apxs=%{apxs} \
|
|
--with-zlib=%{_prefix} \
|
|
--with-berkeley-db=db.h:db.h:%{_prefix}:db \
|
|
$with_jdk \
|
|
%if %with_java
|
|
--with-junit="%{_usr}/share/java/junit.jar" \
|
|
%endif
|
|
--with-jikes=no \
|
|
--with-swig="$SWIG_ROOT" \
|
|
%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 \
|
|
--disable-static
|
|
%if 0%{?suse_version} == 910
|
|
sed --in-place=~ "s,\/usr\/lib ,%{_libdir} ,g" Makefile
|
|
%endif
|
|
%__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 swig-py $python_ctypes_target swig-pl $ruby_target SWIG_LDFLAGS= $with_jdk
|
|
#
|
|
# build additional tools
|
|
TOOLS_LIBS=""
|
|
for d in subversion/libsvn_*/.libs; do
|
|
TOOLS_LIBS="$TOOLS_LIBS -L${PWD}/$d"
|
|
done
|
|
TOOLS_LIBS="$TOOLS_LIBS $(pkg-config --libs apr-1 apr-util-1)"
|
|
TOOLS_LIBS="$TOOLS_LIBS -lsvn_subr-1 -lsvn_fs-1 -lsvn_repos-1"
|
|
TOOLS_CFLAGS=$(pkg-config --cflags apr-1 apr-util-1)
|
|
TOOLS_CFLAGS="$TOOLS_CFLAGS -I$PWD/subversion/include"
|
|
pushd tools/server-side
|
|
for f in svn-populate-node-origins-index svnauthz-validate; do
|
|
%__cc %{optflags} ${TOOLS_CFLAGS} ${TOOLS_LIBS} -o "${f}" "${f}.c"
|
|
done
|
|
%if 0%{?sles_version} == 9
|
|
%__sed -i 's|^#![[:space:]]*/usr/bin/env[[:space:]]*python[[:space:]]|#!/usr/bin/python2.5|' *.py
|
|
%endif
|
|
popd #tools/server-side
|
|
|
|
%install
|
|
%if 0%{?sles_version} == 9
|
|
export PATH="$PWD/BUILDPATH:$PATH"
|
|
export PYTHON="%{_usr}/bin/python2.5"
|
|
%endif
|
|
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_sitedir}/csvn/" -name "*.pyc" | xargs %__rm -f
|
|
%__python "%{py_libdir}/compileall.py" -f -d "%{py_sitedir}/csvn" "%{buildroot}/%{py_sitedir}/csvn"
|
|
%endif # with_python_ctypes
|
|
#
|
|
# 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)
|
|
# reset vim syntax: '
|
|
test "$schemes" = "http
|
|
https
|
|
svn
|
|
file"
|
|
#
|
|
%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 %{SOURCE3} $RPM_BUILD_ROOT/usr/bin
|
|
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
|
|
mkdir -p $RPM_BUILD_ROOT/usr/share/subversion/
|
|
cp -a tools $RPM_BUILD_ROOT/usr/share/subversion/
|
|
#m -rf $RPM_BUILD_ROOT/usr/share/subversion/tools/cvs2svn
|
|
mkdir $RPM_BUILD_ROOT/usr/share/subversion/tools/svn_load_dirs
|
|
cp -aL contrib/client-side/svn_load_dirs/svn_load_dirs.README $RPM_BUILD_ROOT/usr/share/subversion/tools/svn_load_dirs/README
|
|
cp -aL contrib/client-side/svn_load_dirs/svn_load_dirs_property_table.example $RPM_BUILD_ROOT/usr/share/subversion/tools/svn_load_dirs/
|
|
sed 's:@SVN_BINDIR@:/usr/bin:' contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in > $RPM_BUILD_ROOT/usr/share/subversion/tools/svn_load_dirs/svn_load_dirs.pl
|
|
chmod 755 $RPM_BUILD_ROOT/usr/share/subversion/tools/svn_load_dirs/svn_load_dirs.pl
|
|
find $RPM_BUILD_ROOT \( -name .svn -o -name CVS -o -name tests \) -type d -print0 | xargs -0 rm -rfv
|
|
find $RPM_BUILD_ROOT \( -name "*.a" -o -name "*.c" \) -type f -print0 | xargs -0 rm -rfv
|
|
rm -rf $RPM_BUILD_ROOT/usr/share/subversion/tools/buildbot
|
|
rm -rf $RPM_BUILD_ROOT/usr/share/subversion/tools/diff
|
|
rm -rf $RPM_BUILD_ROOT/usr/share/subversion/tools/dist
|
|
rm -rf $RPM_BUILD_ROOT/usr/share/subversion/tools/hook-scripts/verify-po.py
|
|
rm -rf $RPM_BUILD_ROOT/usr/share/subversion/tools/po
|
|
rm -rf $RPM_BUILD_ROOT/usr/share/subversion/tools/server-side/*svn_dav_log_parse*
|
|
rm -rf $RPM_BUILD_ROOT/usr/share/subversion/tools/test-scripts
|
|
#
|
|
#
|
|
#
|
|
mkdir -p $RPM_BUILD_ROOT/etc/init.d
|
|
mkdir -p $RPM_BUILD_ROOT/etc/xinetd.d
|
|
mkdir -p $RPM_BUILD_ROOT/usr/sbin
|
|
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
|
|
cp -aL %{S:13} $RPM_BUILD_ROOT/etc/xinetd.d/svnserve
|
|
cp -aL %{S:9} $RPM_BUILD_ROOT/etc/init.d/svnserve
|
|
ln -sv /etc/init.d/svnserve $RPM_BUILD_ROOT/usr/sbin/rcsvnserve
|
|
cp -aL %{S:10} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.svnserve
|
|
mkdir -p $RPM_BUILD_ROOT/%{_fwdefdir}
|
|
install -m 644 %{S:12} $RPM_BUILD_ROOT/%{_fwdefdir}/svnserve
|
|
#useless libtool stuff
|
|
rm -f %{buildroot}%{_libdir}/*.la
|
|
pushd tools/server-side
|
|
%__install -m0755 \
|
|
svn-populate-node-origins-index \
|
|
svnauthz-validate \
|
|
"%{buildroot}%{_bindir}/"
|
|
# delete or the binaries will also be installed under /usr/share
|
|
%__rm "%{buildroot}%{_datadir}/subversion/tools/server-side"/{svn-populate-node-origins-index,svnauthz-validate}
|
|
popd #tools/server-side
|
|
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
|
|
|
|
%check
|
|
# Don't run regression tests on Factory, they take too long to complete.
|
|
# This check needs to be bumped with every release:
|
|
%if 0%{?suse_version} <= 1110
|
|
%if 0%{?sles_version} == 9
|
|
export PATH="$PWD/BUILDPATH:$PATH"
|
|
%endif # sles_version == 9
|
|
# During "make check", auth-test loads DSOs at runtime and can't find
|
|
# them if we don't set up LD_LIBRARY_PATH as below.
|
|
export LD_LIBRARY_PATH="$PWD/subversion/libsvn_auth_kwallet/.libs:$PWD/subversion/libsvn_auth_gnome_keyring/.libs:$LD_LIBRARY_PATH"
|
|
# run test over ra_local (file://)
|
|
for fstype in fsfs bdb; do
|
|
%__make check LOG_TO_STDOUT=true CLEANUP=true FS_TYPE="$fstype"
|
|
done
|
|
SVNSERVE_PIDFILE="$PWD/svnserve.pid"
|
|
# hook up cleanup routine
|
|
function on_exit {
|
|
if [ -e "$SVNSERVE_PIDFILE" ]; then
|
|
pid=`cat "$SVNSERVE_PIDFILE" 2>/dev/null || :`
|
|
test -n "$pid" && kill -9 "$pid" || :
|
|
fi
|
|
}
|
|
trap on_exit EXIT
|
|
# find free port
|
|
free_port=""
|
|
for p in `/usr/sbin/ss -nat|tail +2|awk '{ split($4, a, ":"); if (a[2] > 1024) { print a[2]; }}'`; do used_port[$p]="$p"; done
|
|
for p in `seq 1025 65535`; do
|
|
if [ -z "${used_port[$p]}" ]; then
|
|
free_port="$p"
|
|
break
|
|
fi
|
|
done
|
|
if [ -z "$free_port" ]; then
|
|
echo "ERROR: failed to find a free port" >&2
|
|
echo "Used TCP ports: ${used_port[*]}" >&2
|
|
exit 1
|
|
fi
|
|
# run tests over ra_svn (svn://)
|
|
"$PWD/subversion/svnserve/svnserve" --listen-host 127.0.0.1 --listen-port "$free_port" --pid-file "$SVNSERVE_PIDFILE" -d -r "$PWD/subversion/tests/cmdline"
|
|
for fstype in fsfs bdb; do
|
|
%__make check LOG_TO_STDOUT=true CLEANUP=true FS_TYPE="$fstype" BASE_URL="svn://127.0.0.1:$free_port"
|
|
done
|
|
kill -9 `cat "$SVNSERVE_PIDFILE" 2>/dev/null`
|
|
%__rm "$SVNSERVE_PIDFILE"
|
|
%if %with_java
|
|
%__make check-javahl
|
|
%endif # with_java
|
|
%__make check-swig-pl
|
|
%__make check-swig-py
|
|
%if %with_ruby
|
|
%__make check-swig-rb
|
|
%endif # with_ruby
|
|
%endif # suse_version <= 1110
|
|
|
|
%clean
|
|
%__rm -rf "%{buildroot}"
|
|
|
|
%preun
|
|
%stop_on_removal svnserve
|
|
|
|
%post
|
|
%{fillup_and_insserv -n svnserve svnserve}
|
|
/sbin/ldconfig
|
|
|
|
%postun
|
|
%restart_on_update svnserve
|
|
%{insserv_cleanup}
|
|
/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 COPYING subversion/LICENSE README.mod_authz_svn
|
|
#
|
|
%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
|
|
%config %{_fwdefdir}/*
|
|
#
|
|
%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
|
|
%{_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
|
|
/var/adm/perl-modules/subversion
|
|
|
|
%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)
|
|
%dir /usr/share/subversion
|
|
/usr/share/subversion/tools
|
|
%attr(755,root,root) %{_bindir}/svnmerge.py
|
|
%attr(755,root,root) %{_bindir}/svn_apply_autoprops.py
|
|
%{_bindir}/svn-populate-node-origins-index
|
|
%{_bindir}/svnauthz-validate
|
|
|
|
%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.*
|
|
%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
|
|
|
|
%changelog
|