]> git.pld-linux.org Git - packages/cvs.git/blobdiff - cvs.spec
- updated cvs-acl.patch
[packages/cvs.git] / cvs.spec
index 8feeb10be7d9edcfbd7ff99670979a56c0766a9d..098fb9a9813e453a9c6d3632078a183923e1050b 100644 (file)
--- a/cvs.spec
+++ b/cvs.spec
@@ -1,3 +1,8 @@
+#
+# Conditional build:
+%bcond_without kerberos5       # disable kerberos5 support
+%bcond_without acl             # disable ACL support
+#
 Summary:       Concurrent Versioning System
 Summary(de):   Concurrent-Versioning-System
 Summary(es):   Control de versiones en modo concurrente
@@ -9,37 +14,46 @@ Summary(tr): S
 Summary(uk):   óÉÓÔÅÍÁ ËÅÒÕ×ÁÎÎÑ ×ÅÒÓ¦ÑÍÉ
 Summary(zh_CN):        ²¢·¢µÄ°æ±¾¹ÜÀíϵͳCVS
 Name:          cvs
-Version:       1.11.4
-Release:       0.9
+Version:       1.11.19
+Release:       2
 License:       GPL
 Group:         Development/Version Control
-# active ftp only(?)
-Source0:       ftp://ftp.cvshome.org/pub/%{name}-%{version}/%{name}-%{version}.tar.bz2
+# new feature release: https://www.cvshome.org/files/documents/19/610/cvs-1.12.11.tar.bz2
+Source0:       https://www.cvshome.org/files/documents/19/742/%{name}-%{version}.tar.bz2
+# Source0-md5: ac3f9459d0bb5ed9acd6091902267594
 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}-home_etc.patch
-Patch7:                %{name}-newnline.patch
-Patch8:                %{name}-no_libnsl.patch
-URL:           http://www.cyclic.com/
-BuildRequires: autoconf
-BuildRequires: automake
+# 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
+Patch8:                %{name}-ssh.patch
+Patch9:                %{name}-posix.patch
+# Access Control List Extension: http://cvsacl.sourceforge.net/
+Patch10:       %{name}-acl.patch
+URL:           http://www.cvshome.org/
+BuildRequires: autoconf >= 2.58
+BuildRequires: automake >= 1:1.7.9
+%{?with_kerberos5:BuildRequires:       heimdal-devel}
+BuildRequires: rpmbuild(macros) >= 1.159
+BuildRequires: texinfo
 BuildRequires: zlib-devel
+Obsoletes:     cvs-nserver-client
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define _cvs_root /home/services/cvsroot
+%define                _cvs_root       /var/lib/cvs
 
 %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
@@ -57,17 +71,24 @@ aus revisionskontrollierten Dateien. Diese Verzeichnisse und Dateien
 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
@@ -148,15 +169,32 @@ CVS 
 
 %package pserver
 Summary:       rc-inetd config files to run CVS pserver
-Summary(pl):   Pliki konfiguracyjne rc-ineta do postawienia pservera CVS
+Summary(es):   Ficheros de configuración de rc-inetd para un servidor CVS pserver
+Summary(pl):   Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
 Group:         Development/Version Control
-PreReq:                %{name} = %{version}
-Requires:      rc-inetd
+PreReq:                %{name} = %{version}-%{release}
+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
+Provides:      group(cvs)
+Provides:      user(cvs)
+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 rc-inetd 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.
@@ -172,16 +210,22 @@ pserver.
 %patch6 -p1
 %patch7 -p1
 %patch8 -p1
+%patch9 -p1
+%{?with_acl:%patch10 -p1}
 
 %build
-rm -f missing
 %{__aclocal}
 %{__autoheader}
 %{__autoconf}
 %{__automake}
 %configure \
        --enable-server \
-       --enable-client
+       --enable-client \
+       --enable-rootcommit \
+       --with%{!?with_kerberos5:out}-gssapi \
+       --with-tmpdir=/tmp \
+       --with-editor=/bin/vi
+
 %{__make}
 
 %install
@@ -206,17 +250,28 @@ rm -rf $RPM_BUILD_ROOT
 [ ! -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
@@ -224,17 +279,21 @@ fi
 
 %postun pserver
 if [ "$1" = "0" ]; then
-       # Remove user and group
-       %{_sbindir}/userdel cvs 2>/dev/null
-       %{_sbindir}/groupdel cvs 2>/dev/null
+       %userremove cvs
+       %groupremove cvs
        if [ -f /var/lock/subsys/rc-inetd ]; then
                /etc/rc.d/init.d/rc-inetd reload
        fi
 fi
 
+%triggerpostun -- cvs-pserver < 1.1.13-1
+echo "Warning: default cvsroot moved to %{_cvs_root}."
+echo "Check your configration."
+
 %files
 %defattr(644,root,root,755)
-%doc BUGS FAQ MINOR-BUGS NEWS PROJECTS TODO README ChangeLog doc/*.ps contrib
+%doc BUGS FAQ MINOR-BUGS NEWS PROJECTS TODO README %{?with_acl:README.cvsacl}
+%doc ChangeLog doc/*.ps contrib
 %attr(755,root,root) %{_bindir}/*
 %{_mandir}/man[158]/*
 %{_infodir}/cvs*
This page took 0.235899 seconds and 4 git commands to generate.