+#
+# 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(ru): óÉÓÔÅÍÁ ÕÐÒÁ×ÌÅÎÉÑ ×ÅÒÓÉÑÍÉ
Summary(tr): Sürüm denetim sistemi
Summary(uk): óÉÓÔÅÍÁ ËÅÒÕ×ÁÎÎÑ ×ÅÒÓ¦ÑÍÉ
-Summary(zh_CN): ²¢·¢µÄ°æ±¾¹ÜÀíϵͳCVS
+Summary(zh_CN): ²¢·¢µÄ°æ±¾¹ÜÀíϵͳCVS
Name: cvs
-Version: 1.11.2
-Release: 6
+Version: 1.11.11
+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.5/cvs-1.12.5.tar.bz2
+Source0: http://ftp.cvshome.org/release/stable/%{name}-%{version}/%{name}-%{version}.tar.bz2
+# Source0-md5: e2ceb57c06dc532d0156bdba687073c9
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: autoconf >= 2.58
+BuildRequires: automake >= 1.7.9
+%{?with_kerberos5:BuildRequires: heimdal-devel}
BuildRequires: zlib-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
which can record the history of your files (usually, but not always,
source code). CVS only stores the differences between versions,
instead of every version of every file you've ever created. CVS also
-keeps a log of who, when and why changes occurred, among other
-aspects.
+keeps a log of who and when made some changes and why they occurred,
+among other aspects.
CVS is very helpful for managing releases and controlling the
concurrent editing of source files among multiple authors. Instead of
lassen sich zu einer Software-Release kombinieren. CVS bietet die
Funktionen, die zur Verwaltung von Software-Releases und zur
Überwachung der gleichzeitigen Bearbeitung von Quelldateien durch
-mehrere Software- Entwickler notwendig sind.
+mehrere Software-Entwickler notwendig sind.
%description -l es
-CVS es un front end para el rcs(1) - revisión control system - que
-extiende la noción de control de revisión de una colectánea de archivo
-en un único directorio para una colección jerárquica de directorios
-que contiene archivos controlados por revisión. Estos directorios y
-archivos pueden ser combinados juntos para crear una release de
-software. CVS nos ofrece las funciones necesarias para administrar
-esta release de software y para controlar la edición concurrente de
-archivos fuente por múltiples programadores.
+CVS significa "Concurrent Version System" (sistema concurrente de
+control de versiones). Puede guardar la historia de sus ficheros
+(normalmente, pero no necesariamente, código fuente). CVS sólo guarda
+las diferencias entre las versiones, en vez de guardar cada una de las
+versiones de cada fichero que haya creado. CVS también mantiene un
+registro de quién y cuándo realizó un cambio, el porqué del cambio,
+etc.
+
+CVS es muy útil para manejar los releases y controlar la edición
+concurrente de los ficheros fuente entre varios autores. En vez de
+proveer control de versiones para una colección de ficheros en un solo
+directorio, CVS la provee para una colección jerárquica de directorios
+que consistan de ficheros de revisiones controladas. Esos directorios
+y ficheros pueden luego ser reunidos para formar un release de
+software.
%description -l fr
"CVS" signifie "Concurrent Version System". C'est un système de
%package pserver
Summary: rc-inetd config files to run CVS pserver
+Summary(es): Ficheros de configuración de rc-inetd para un servidor 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
mode.
+%description pserver -l es
+Los ficheros de configuración necesarios para ejecutar CVS en el modo
+de pserver.
+
%description pserver -l pl
Pliki konfiguracyjne rc-inetd niezbêdne do uruchomienia CVSa w trybie
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_kerberos5:--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