+#
+# TODO:
+# - trigger for upgrade from old cvs - after that package stays without any
+# users and nserver-common is not installed...
Summary: Concurrent Versions System - nserver
Summary(de): Concurrent-Versioning-System - nserver
Summary(fr): Un système pour maintenir à jour des fichiers - nserver
Summary(pl): Concurrent Versions System - nserver
Summary(tr): Sürüm denetim sistemi - nserver
Name: cvs-nserver
-Version: 1.11.1.4
-Release: 3
+Version: 1.11.1.52
+Release: 8
License: GPL
Group: Development/Version Control
-Source0: http://unc.dl.sourceforge.net/sourceforge/cvs-nserver/%{name}-%{version}.tar.gz
+Source0: http://dl.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
+# Source0-md5: 357fb5f37cc556977dad79175e9c2d97
Source1: %{name}.inetd
Source2: cvs-pserver.inetd
Patch0: %{name}-cvspasswd.patch
Patch1: %{name}-info.patch
-# outdated, but maybe will be needed for checkpasswd (outside programs):
-Patch3: %{name}-PAM_fix.patch
-Patch4: %{name}-am_ac.patch
-Patch5: %{name}-zlib.patch
+Patch2: %{name}-am_ac.patch
+Patch3: %{name}-cvspass.patch
+Patch4: %{name}-home_etc.patch
+Patch5: %{name}-ssl-link.patch
+Patch6: %{name}-fix_doc_CVSUSER.patch
+Patch7: %{name}-segv.patch
+Patch8: %{name}-initgroups-rootonly.patch
+Patch9: %{name}-zlibfix.patch
+Patch10: %{name}-home_etc2.patch
+URL: http://cvs-nserver.sourceforge.net/
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: openssl-devel >= 0.9.7c
BuildRequires: texinfo
+BuildRequires: zlib-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _cvsroot /home/cvsroot
+%define _cvsroot /srv/cvsroot
%description
CVS is a version control system, which allows you to keep old versions
eþzamanlý olarak yapýlmasýný kontrol etmek için gereken iþlevleri
saðlar.
-%package -n cvs-nserver-client
+%package client
Summary: Concurrent Versions System - client
Summary(pl): Concurrent Versions System - klient
Group: Development/Version Control
Obsoletes: cvs-npclient
Obsoletes: cvs
+Provides: cvs = %{version}
-%description -n cvs-nserver-client
+%description client
CVS client.
-%description -n cvs-nserver-client -l pl
+%description client -l pl
Klient CVS.
-%package -n cvs-nserver-common
-Summary: Concurrent Versions System - common files.
-Summary(pl): Concurrent Versions System - wspólne pliki.
+%package common
+Summary: Concurrent Versions System - common files
+Summary(pl): Concurrent Versions System - wspólne pliki
Group: Development/Version Control
-Requires: cvs-nserver-client
-Obsoletes: cvs-nserver
-Obsoletes: cvs
-Requires(pre): /usr/bin/getgid
Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
Requires(pre): cvs-nserver-client
Requires(pre): fileutils
Requires(postun): /usr/sbin/userdel
Requires(postun): /usr/sbin/groupdel
+Requires: cvs-nserver-client
+Obsoletes: cvs-nserver
-%description -n cvs-nserver-common
+%description common
CVS - common server files.
-%description -n cvs-nserver-common -l pl
+%description common -l pl
Wspólne pliki serwerów CVS.
-%package -n cvs-nserver-pserver
+%package pserver
Summary: Concurrent Versions System - pserver
Summary(pl): Concurrent Versions System - pserver
Group: Development/Version Control
+PreReq: rc-inetd
Requires: cvs-nserver-common
Obsoletes: cvs-npserver
-PreReq: rc-inetd
+Obsoletes: cvs-pserver
-%description -n cvs-nserver-pserver
+%description pserver
CVS server - pserver files.
-%description -n cvs-nserver-pserver -l pl
+%description pserver -l pl
Serwer CVS - pliki pservera.
-%package -n cvs-nserver-nserver
+%package nserver
Summary: Concurrent Versions System - nserver
Summary(pl): Concurrent Versions System - nserver
Group: Development/Version Control
+PreReq: rc-inetd
Requires: cvs-nserver-common
Obsoletes: cvs-nserver
-PreReq: rc-inetd
-%description -n cvs-nserver-nserver
+%description nserver
CVS server - nserver files.
-%description -n cvs-nserver-nserver -l pl
+%description nserver -l pl
Serwer CVS - pliki nservera.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
%build
%{__aclocal}
--enable-client \
--enable-server \
--enable-setuid \
+ --with-openssl \
--without-gssapi
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/{etc/sysconfig/rc-inetd,%{_cvsroot}}
+install -d $RPM_BUILD_ROOT{/etc/sysconfig/rc-inetd,%{_cvsroot},/var/lock/cvs}
-%{__make} DESTDIR=$RPM_BUILD_ROOT install
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/cvs-nserver
install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/cvs-pserver
cat << EOF >$RPM_BUILD_ROOT%{_bindir}/cvs-pserver-script
#!/bin/sh
+REPOSITORY="%{_cvsroot}"
+if [ -f /etc/sysconfig/cvsroot ]; then
+ . /etc/sysconfig/cvs
+fi
+
CVSPASSWD=%{_bindir}/cvspasswd \
-exec %{_bindir}/cvs-pserver %{_cvsroot} -- \
+exec %{_bindir}/cvs-pserver $REPOSITORY -- \
%{_bindir}/cvschkpw %{_bindir}/cvs pserver
EOF
cat << EOF >$RPM_BUILD_ROOT%{_bindir}/cvs-nserver-script
#!/bin/sh
+REPOSITORY="%{_cvsroot}"
+if [ -f /etc/sysconfig/cvsroot ]; then
+ . /etc/sysconfig/cvs
+fi
+
CVSPASSWD=%{_bindir}/cvspasswd \
-exec %{_bindir}/cvs-nserver %{_cvsroot} -- \
+exec %{_bindir}/cvs-nserver $REPOSITORY -- \
%{_bindir}/cvschkpw %{_bindir}/cvs nserver
EOF
+cat << EOF >$RPM_BUILD_ROOT/etc/sysconfig/cvs
+# In this file you can specify additional repositories (separated with space)
+# or just set different location.
+#REPOSITORY="%{_cvsroot}"
+EOF
+
mv -f $RPM_BUILD_ROOT%{_datadir}/cvs-nserver/contrib/rcs2log \
$RPM_BUILD_ROOT%{_bindir}
%clean
rm -rf $RPM_BUILD_ROOT
-%post -n cvs-nserver-client
+%post client
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
-%postun -n cvs-nserver-client
+%postun client
[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
-%pre -n cvs-nserver-common
+%pre common
if [ -n "`getgid cvs`" ]; then
if [ "`getgid cvs`" != "52" ]; then
echo "Error: group cvs doesn't have gid=52. Correct this before installing cvs-nserver." 1>&2
if [ "$1" = 1 ]; then
echo "Initializing repository..."
%{_bindir}/cvs -d :local:%{_cvsroot} init
- chown -R cvsadmin.cvsadmin %{_cvsroot}/CVSROOT
+ chown -R cvsadmin:cvsadmin %{_cvsroot}/CVSROOT
fi
-%postun -n cvs-nserver-common
+%postun common
if [ "$1" = "0" ]; then
echo "Removing user cvs."
/usr/sbin/userdel cvs
/usr/sbin/groupdel cvsadmin
fi
-%post -n cvs-nserver-pserver
+%post pserver
if [ -f /var/lock/subsys/rc-inetd ]; then
- /etc/rc.d/init.d/rc-inetd reload
+ /etc/rc.d/init.d/rc-inetd reload
fi
-%postun -n cvs-nserver-pserver
+%postun pserver
if [ -f /var/lock/subsys/rc-inetd ]; then
- /etc/rc.d/init.d/rc-inetd reload
+ /etc/rc.d/init.d/rc-inetd reload
fi
-%post -n cvs-nserver-nserver
+%post nserver
if [ -f /var/lock/subsys/rc-inetd ]; then
- /etc/rc.d/init.d/rc-inetd reload
+ /etc/rc.d/init.d/rc-inetd reload
fi
-%postun -n cvs-nserver-nserver
+%postun nserver
if [ -f /var/lock/subsys/rc-inetd ]; then
- /etc/rc.d/init.d/rc-inetd reload
+ /etc/rc.d/init.d/rc-inetd reload
fi
-%files -n cvs-nserver-client
+%files client
%defattr(644,root,root,755)
-%doc AUTHORS BUGS NEWS PROJECTS TODO FAQ
+%doc AUTHORS BUGS ChangeLog FAQ FAQ.nserver NEWS NEWS.nserver PROJECTS
+%doc README README.checkpassword TODO
%attr(755,root,root) %{_bindir}/cvs
%attr(755,root,root) %{_bindir}/cvsbug
%{_infodir}/cvs*
%{_mandir}/man[15]/cvs.*
%{_mandir}/man8/cvsbug.8*
-%files -n cvs-nserver-common
+%files common
%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/cvs
%attr(4754,cvsadmin,cvs) %{_bindir}/cvspasswd
%attr(755,root,root) %{_bindir}/cvschkpw
%attr(755,root,root) %{_bindir}/rcs2log
-%dir %{_datadir}/cvs-nserver/contrib/*
+%dir %{_datadir}/cvs-nserver
+%dir %{_datadir}/cvs-nserver/contrib
+%{_datadir}/cvs-nserver/contrib/*
%attr(770,cvsadmin,cvs) %dir %{_cvsroot}
%{_mandir}/man8/cvs-server.8*
+%attr(770,cvsadmin,cvs) %dir /var/lock/cvs
-%files -n cvs-nserver-pserver
+%files pserver
%defattr(644,root,root,755)
+%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rc-inetd/cvs-pserver
%attr(755,root,root) %{_bindir}/cvs-pserver*
-/etc/sysconfig/rc-inetd/cvs-pserver
%{_mandir}/man8/cvs-pserver.8*
-%files -n cvs-nserver-nserver
+%files nserver
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/cvs-nserver*
%doc NEWS.nserver FAQ.nserver
-/etc/sysconfig/rc-inetd/cvs-nserver
+%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rc-inetd/cvs-nserver
+%attr(755,root,root) %{_bindir}/cvs-nserver*
%{_mandir}/man8/cvs-nserver.8*