+#
+# Conditional build:
+%bcond_without kerberos5 # disable kerberos5 support
+
Summary: Concurrent Versioning System
Summary(de): Concurrent-Versioning-System
Summary(es): Control de versiones en modo concurrente
Summary(uk): óÉÓÔÅÍÁ ËÅÒÕ×ÁÎÎÑ ×ÅÒÓ¦ÑÍÉ
Summary(zh_CN): ²¢·¢µÄ°æ±¾¹ÜÀíϵͳCVS
Name: cvs
-Version: 1.11.2
-Release: 6
+Version: 1.11.9
+Release: 1
License: GPL
Group: Development/Version Control
-Source0: ftp://ftp.cvshome.org/pub/%{name}-1.11.1/%{name}-%{version}.tar.gz
+# new feature release: http://ftp.cvshome.org/release/feature/cvs-1.12.1/cvs-1.12.1.tar.bz2
+Source0: http://ftp.cvshome.org/release/stable/%{name}-%{version}/%{name}-%{version}.tar.bz2
+# Source0-md5: 0e72f5de87f66c5fcd27d58b53fcbf43
Source1: %{name}.inetd
-Patch0: %{name}-tmprace.patch
-Patch1: %{name}-info.patch
-Patch2: http://www.t17.ds.pwr.wroc.pl/~misiek/ipv6/%{name}-1.11.2-20020513-ipv6.patch.gz
-Patch3: %{name}-zlib.patch
-Patch4: %{name}-fixed_buffer.patch
-Patch5: %{name}-cvspass.patch
-Patch6: %{name}-libobj.patch
-Patch7: %{name}-chmod.patch
-Patch8: %{name}-home_etc.patch
-Patch9: %{name}-pserver-dos.patch
-Patch10: %{name}-ac.patch
-Patch11: %{name}-newnline.patch
+# based on: http://www.t17.ds.pwr.wroc.pl/~misiek/ipv6/cvs-1.11.2-20020513-ipv6.patch.gz
+Patch0: %{name}-ipv6.patch
+Patch1: %{name}-zlib.patch
+Patch2: %{name}-fixed_buffer.patch
+Patch3: %{name}-cvspass.patch
+Patch4: %{name}-home_etc.patch
+Patch5: %{name}-newnline.patch
+Patch6: %{name}-no_libnsl.patch
+Patch7: %{name}-info.patch
URL: http://www.cyclic.com/
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: zlib-devel
+%{?with_kerberos5:BuildRequires: heimdal-devel}
+Obsoletes: cvs-nserver-client
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _cvs_root /home/cvsroot
+%define _cvs_root /home/services/cvsroot
%description
CVS means Concurrent Version System; it is a version control system
Summary: rc-inetd config files to run CVS pserver
Summary(pl): Pliki konfiguracyjne rc-ineta do postawienia pservera CVS
Group: Development/Version Control
-Requires: rc-inetd
-Prereq: cvs
+PreReq: %{name} = %{version}
+PreReq: rc-inetd
+Requires(pre): /usr/bin/getgid
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires(post): fileutils
+Requires(postun): /usr/sbin/userdel
+Requires(postun): /usr/sbin/groupdel
+Obsoletes: cvs-nserver-common
+Obsoletes: cvs-nserver-nserver
+Obsoletes: cvs-nserver-pserver
%description pserver
Config files for rc-inetd that are necessary to run CVS in pserver
%patch5 -p1
%patch6 -p1
%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p0
-%patch11 -p1
%build
-rm -f missing
%{__aclocal}
%{__autoheader}
%{__autoconf}
%{__automake}
%configure \
--enable-server \
- --enable-client
+ --enable-client \
+ --with-gssapi \
+ --with-tmpdir=/tmp
%{__make}
%install
rm -f contrib/{.cvsignore,Makefile*,*.pl,*.sh,*.csh}
mv -f $RPM_BUILD_ROOT%{_datadir}/cvs/contrib/rcs2log $RPM_BUILD_ROOT%{_bindir}
+%clean
+rm -rf $RPM_BUILD_ROOT
+
%post
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
%pre pserver
-if [ "$1" = 1 ]; then
- # Add user and group
- getgid cvs >/dev/null 2>&1 || %{_sbindir}/groupadd -f -g 52 cvs
- id -u cvs >/dev/null 2>&1 || %{_sbindir}/useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs 2>/dev/null
+if [ -n "`/usr/bin/getgid cvs`" ]; then
+ if [ "`/usr/bin/getgid cvs`" != "52" ]; then
+ echo "Error: group cvs doesn't have gid=52. Correct this before installing cvs." 1>&2
+ exit 1
+ fi
+else
+ /usr/sbin/groupadd -f -g 52 cvs 1>&2
+fi
+if [ -n "`/bin/id -u cvs 2>/dev/null`" ]; then
+ if [ "`/bin/id -u cvs`" != "52" ]; then
+ echo "Error: user cvs doesn't have uid=52. Correct this before installing cvs." 1>&2
+ exit 1
+ fi
+else
+ /usr/sbin/useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs 1>&2
fi
%post pserver
-if [ "$1" = 1 ]; then
+if [ "$1" = "1" ]; then
# Initialise repository
%{_bindir}/cvs -d :local:%{_cvs_root} init
- chown -R cvs.cvs %{_cvs_root}/CVSROOT
+ chown -R cvs:cvs %{_cvs_root}/CVSROOT
fi
if [ -f /var/lock/subsys/rc-inetd ]; then
/etc/rc.d/init.d/rc-inetd reload
%postun pserver
if [ "$1" = "0" ]; then
# Remove user and group
- %{_sbindir}/userdel cvs 2>/dev/null
- %{_sbindir}/groupdel cvs 2>/dev/null
+ /usr/sbin/userdel cvs 2>/dev/null
+ /usr/sbin/groupdel cvs 2>/dev/null
if [ -f /var/lock/subsys/rc-inetd ]; then
/etc/rc.d/init.d/rc-inetd reload
fi
fi
-%clean
-rm -rf $RPM_BUILD_ROOT
-
%files
%defattr(644,root,root,755)
%doc BUGS FAQ MINOR-BUGS NEWS PROJECTS TODO README ChangeLog doc/*.ps contrib