]> git.pld-linux.org Git - packages/cvs-nserver.git/blobdiff - cvs-nserver.spec
- use %useradd/%groupadd macros
[packages/cvs-nserver.git] / cvs-nserver.spec
index 55ae980904c9803b220ef22a0a4eb79e08a7a4d1..bc0d0c2a6f7de98680bcd252ff937ddbcbfbf4da 100644 (file)
@@ -1,23 +1,50 @@
-Summary:       Concurrent Versions System
-Summary(de):    Concurrent-Versioning-System
-Summary(fr):    Un système pour maintenir à jour des fichiers
-Summary(pl):    Concurrent Versions System
-Summary(tr):    Sürüm denetim sistemi
+#
+# 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.2
-Release:       1
+Version:       1.11.1.52
+Release:       16
 License:       GPL
 Group:         Development/Version Control
-Group(pl):     Programowanie/Zarz±dzanie wersjami
-Source0:       http://alexm.here.ru/cvs-nserver/download/%{name}-%{version}.tar.gz
+Source0:       http://dl.sourceforge.net/cvs-nserver/%{name}-%{version}.tar.gz
+# Source0-md5: 357fb5f37cc556977dad79175e9c2d97
 Source1:       %{name}.inetd
 Source2:       cvs-pserver.inetd
 Patch0:                %{name}-cvspasswd.patch
-# outdated, but maybe will be needed for checkpasswd (outside programs):
-#Patch0:               cvs-nserver-PAM_fix.patch
+Patch1:                %{name}-info.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
+Patch11:       %{name}-posix.patch
+Patch12:       %{name}-CAN-2002-0844.patch
+Patch13:       %{name}-CAN-2003-0015.patch
+Patch14:       %{name}-CAN-2003-0977-and-CAN-2004-0180.patch
+Patch15:       %{name}-CAN-2004-0396.patch
+Patch16:       %{name}-CAN-2004-0414.patch
+Patch17:       %{name}-CAN-2004-0416-0417-0418.patch
+Patch18:       %{name}-dblshutdown.patch
+URL:           http://cvs-nserver.sourceforge.net/
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: rpmbuild(macros) >= 1.202
+BuildRequires: texinfo
+BuildRequires: zlib-devel
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                _cvsroot        /home/cvsroot
+%define                _cvsroot        /var/lib/cvs
 
 %description
 CVS is a version control system, which allows you to keep old versions
@@ -62,9 +89,9 @@ syst
 CVS jest nak³adk± na rcs (Revision Control System, czyli w wolnym
 t³umaczeniu system kontroli wersji zasobów), który rozszerza
 mo¿liwo¶ci rcs'a z narzêdzia do kontroli zbioru plików w pojedynczym
-katalogu o mo¿liwo¶æ kontroli zbioru hierarchicznie u³o¿onych katalogów
-z plikami. Z pomoc± CVS w ³atwy sposób mo¿na zarz±dzaæ kodem ¼ród³owym
-opracowywanym przez nawet bardzo du¿e zespó³y programistów
+katalogu o mo¿liwo¶æ kontroli zbioru hierarchicznie u³o¿onych
+katalogów z plikami. Z pomoc± CVS w ³atwy sposób mo¿na zarz±dzaæ kodem
+¼ród³owym opracowywanym przez nawet bardzo du¿e zespo³y programistów
 umo¿liwiaj±c ¶ledzenie i kontrolê wszystkich zmian w trakcie pracy nad
 projektami i wypuszczaniem pe³nych wersji oprogramowania (release).
 
@@ -78,202 +105,236 @@ dosyalar
 eþzamanlý olarak yapýlmasýný kontrol etmek için gereken iþlevleri
 saðlar.
 
-%package -n cvs-common
-Summary:        Concurrent Versions System - common
-Summary(pl):    Concurrent Versions System
-Group:          Development/Version Control
-
-%description -n cvs-common
-Client and some common files.
-
-%description -l pl -n cvs-common
-Klient CVS i trochê wspólnych plików.
-
-%package -n cvs-nserver-common
-Summary:        Concurrent Versions System - common
-Summary(pl):    Concurrent Versions System
-Group:          Development/Version Control
-
-%description -n cvs-nserver-common
-Client and some common files.
+%package client
+Summary:       Concurrent Versions System - client
+Summary(pl):   Concurrent Versions System - klient
+Group:         Development/Version Control
+Provides:      cvs = %{version}
+Obsoletes:     cvs
+Obsoletes:     cvs-npclient
 
-%description -l pl -n cvs-nserver-common
-Klient CVS i trochê wspólnych plików.
+%description client
+CVS client.
 
+%description client -l pl
+Klient CVS.
 
-%package -n cvs-npserver
+%package common
+Summary:       Concurrent Versions System - common files
+Summary(pl):   Concurrent Versions System - wspólne pliki
+Group:         Development/Version Control
+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/groupdel
+Requires(postun):      /usr/sbin/userdel
+Requires:      %{name}-client = %{version}-%{release}
+Provides:      group(cvs)
+Provides:      group(cvsadmin)
+Provides:      user(cvs)
+Provides:      user(cvsadmin)
+Obsoletes:     cvs-nserver
+
+%description common
+CVS - common server files.
+
+%description common -l pl
+Wspólne pliki serwerów CVS.
+
+%package pserver
 Summary:       Concurrent Versions System - pserver
-Summary(pl):    Concurrent Versions System - pserver
+Summary(pl):   Concurrent Versions System - pserver
 Group:         Development/Version Control
-Obsoletes:     cvs-nserver,cvs
+PreReq:                rc-inetd
+Requires:      %{name}-common = %{version}-%{release}
+Obsoletes:     cvs-npserver
+Obsoletes:     cvs-pserver
 
-%description -n cvs-npserver
-Server - pserver
+%description pserver
+CVS server - pserver files.
 
-%description -l pl -n cvs-npserver
-Server - pserver
+%description pserver -l pl
+Serwer CVS - pliki pservera.
 
-%package -n cvs-nserver-experimental
+%package nserver
 Summary:       Concurrent Versions System - nserver
-Summary(pl):    Concurrent Versions System - nserver
+Summary(pl):   Concurrent Versions System - nserver
 Group:         Development/Version Control
-Obsoletes:     cvs-npserver,cvs
+PreReq:                rc-inetd
+Requires:      %{name}-common = %{version}-%{release}
+Obsoletes:     cvs-nserver
 
-%description -n cvs-nserver-experimental
-Server - nserver
+%description nserver
+CVS server - nserver files.
 
-%description -l pl -n cvs-nserver-experimental
-Server - nserver
+%description nserver -l pl
+Serwer CVS - pliki nservera.
 
 %prep
-%setup -q 
+%setup -q
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
 
 %build
-autoconf
+%{__aclocal}
+%{__autoconf}
+%{__automake}
 %configure \
        --enable-encryption \
        --enable-client \
        --enable-server \
-       --enable-setuid
+       --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/cvs ]; 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/cvs ]; 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.
+# Default is "%{_cvsroot}".
+#REPOSITORY="%{_cvsroot}"
+# According to FHS 2.3 you can use some subdirectory in /srv, e.g.:
+#REPOSITORY="/srv/cvs"
+EOF
 
-%pre -n cvs-nserver-common
-if [ -n "`getgid cvs`" ]; then
-       if [ "`getgid cvs`" != "52" ]; then
-               echo "Warning: group cvs haven't gid=52. Correct this before installing cvs-nserver" 1>&2
-               exit 1
-       fi
-else
-       echo "Making group cvs GID=52"
-       /usr/sbin/groupadd -g 52 -r -f cvs
-fi
-if [ -n "`getgid cvsadmin`" ]; then
-       if [ "`getgid cvsadmin`" != "53" ]; then
-               echo "Warning: group cvsadmin haven't gid=53. Correct this before installing cvs-nserver" 1>&2
-               exit 1
-       fi
-else
-       echo "Making group cvsadmin GID=53"
-       /usr/sbin/groupadd -g 53 -r -f cvsadmin
-fi
-if [ -n "`id -u cvs 2>/dev/null`" ]; then
-       if [ "`id -u cvs`" != "52" ]; then
-               echo "Warning: user cvs haven't uid=52. Correct this before installing cvs-nserver" 1>&2
-               exit 1
-       fi
-else
-       echo "Making user cvs UID=52"
-       /usr/sbin/useradd -u 52 -r -d %{_cvsroot} -s /bin/false -c "CVS user" -g cvs cvs 1>&2
-fi
-if [ -n "`id -u cvsadmin 2>/dev/null`" ]; then
-       if [ "`id -u cvsadmin`" != "53" ]; then
-               echo "Warning: user cvsadmin haven't uid=53. Correct this before installing cvs-nserver" 1>&2
-               exit 1
-       fi
-else
-       echo "Making user cvsadmin UID=53"
-       /usr/sbin/useradd -u 53 -r -d %{_cvsroot} -s /bin/false -c "CVS user" -g cvsadmin -G cvs cvsadmin 1>&2
-fi
+mv -f  $RPM_BUILD_ROOT%{_datadir}/cvs-nserver/contrib/rcs2log \
+       $RPM_BUILD_ROOT%{_bindir}
 
-%post -n cvs-common
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post client
 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
 
+%postun client
+[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
 
-%post -n cvs-nserver-experimental 
-if [ "$1" = 1 ]; then
-       echo "Initialise repository"
-       %{_bindir}/cvs -d :local:%{_cvsroot} init
-       chown -R cvsadmin.cvsadmin %{_cvsroot}/CVSROOT
-fi
-if [ -f /var/lock/subsys/rc-inetd ]; then
-        /etc/rc.d/init.d/rc-inetd reload
-fi
+%pre common
+%groupadd -P %{name}-common -g 52 -r cvs
+%groupadd -P %{name}-common -g 53 -r cvsadmin
+%useradd -P %{name}-common -u 52 -r -d %{_cvsroot} -s /bin/false -c "CVS user" -g cvs cvs
+%useradd -P %{name}-common -u 53 -r -d %{_cvsroot} -s /bin/false -c "CVS user" -g cvsadmin -G cvs cvsadmin
 
-%post -n cvs-npserver
 if [ "$1" = 1 ]; then
-       echo "Initialise repository"
+       echo "Initializing repository..."
        %{_bindir}/cvs -d :local:%{_cvsroot} init
-       chown -R cvsadmin.cvsadmin %{_cvsroot}/CVSROOT
-fi
-if [ -f /var/lock/subsys/rc-inetd ]; then
-        /etc/rc.d/init.d/rc-inetd reload
+       chown -R cvsadmin:cvsadmin %{_cvsroot}/CVSROOT
 fi
 
-%postun -n cvs-nserver-common
+%postun common
 if [ "$1" = "0" ]; then
-       /usr/sbin/userdel cvs
-       /usr/sbin/userdel cvsadmin
-       /usr/sbin/groupdel cvs
-       /usr/sbin/groupdel cvsadmin
+       %userremove cvs
+       %userremove cvsadmin
+       %groupremove cvs
+       %groupremove cvsadmin
 fi
 
-%postun -n cvs-nserver-experimental
+%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-npserver
+%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
 
-%postun -n cvs-common
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+%post nserver
+if [ -f /var/lock/subsys/rc-inetd ]; then
+       /etc/rc.d/init.d/rc-inetd reload
+fi
 
+%postun nserver
+if [ -f /var/lock/subsys/rc-inetd ]; then
+       /etc/rc.d/init.d/rc-inetd reload
+fi
 
-%files -n cvs-common
+%files client
 %defattr(644,root,root,755)
+%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(4750,cvsadmin,cvs) %{_bindir}/cvspasswd
+%attr(640,root,cvs) %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 /usr/share/cvs-nserver/*
-%{_mandir}/man8/cvs-server.8*
+%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-experimental
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/cvs-nserver*
-/etc/sysconfig/rc-inetd/cvs-nserver
-%{_mandir}/man8/cvs-nserver.8*
-
-%files -n cvs-npserver
+%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 nserver
+%defattr(644,root,root,755)
+%doc NEWS.nserver FAQ.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*
This page took 0.116054 seconds and 4 git commands to generate.