]> git.pld-linux.org Git - packages/cvs-nserver.git/blob - cvs-nserver.spec
ea38a6bd1c2a77f4b0b9db5a29c35966ee151fd0
[packages/cvs-nserver.git] / cvs-nserver.spec
1 #
2 # TODO:
3 # - trigger for upgrade from old cvs - after that package stays without any 
4 #   users and nserver-common is not installed...
5 Summary:        Concurrent Versions System - nserver
6 Summary(de):    Concurrent-Versioning-System - nserver
7 Summary(fr):    Un système pour maintenir à jour des fichiers - nserver
8 Summary(pl):    Concurrent Versions System - nserver
9 Summary(tr):    Sürüm denetim sistemi - nserver
10 Name:           cvs-nserver
11 Version:        1.11.1.52
12 Release:        9
13 License:        GPL
14 Group:          Development/Version Control
15 Source0:        http://dl.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
16 # Source0-md5:  357fb5f37cc556977dad79175e9c2d97
17 Source1:        %{name}.inetd
18 Source2:        cvs-pserver.inetd
19 Patch0:         %{name}-cvspasswd.patch
20 Patch1:         %{name}-info.patch
21 Patch2:         %{name}-am_ac.patch
22 Patch3:         %{name}-cvspass.patch
23 Patch4:         %{name}-home_etc.patch
24 Patch5:         %{name}-ssl-link.patch
25 Patch6:         %{name}-fix_doc_CVSUSER.patch
26 Patch7:         %{name}-segv.patch
27 Patch8:         %{name}-initgroups-rootonly.patch
28 Patch9:         %{name}-zlibfix.patch
29 Patch10:        %{name}-home_etc2.patch
30 URL:            http://cvs-nserver.sourceforge.net/
31 BuildRequires:  autoconf
32 BuildRequires:  automake
33 BuildRequires:  openssl-devel >= 0.9.7d
34 BuildRequires:  texinfo
35 BuildRequires:  zlib-devel
36 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
37
38 %define         _cvsroot        /srv/cvsroot
39
40 %description
41 CVS is a version control system, which allows you to keep old versions
42 of files (usually source code), keep a log of who, when, and why
43 changes occurred, etc., like RCS or SCCS. Unlike the simpler systems,
44 CVS does not just operate on one file at a time or one directory at a
45 time, but operates on hierarchical collections of directories
46 consisting of version controlled files. CVS helps to manage releases
47 and to control the concurrent editing of source files among multiple
48 authors. CVS allows triggers to enable/log/control various operations
49 and works well over a wide area network.
50
51 %description -l de
52 CVS ist ein Frontend für das RCS(1)-Revisionskontrollsystem, das den
53 Begriff der Revisionskontrolle von einer Sammlung von Dateien in einem
54 einzelnen Verzeichnis auf eine ganze Hierarchie ausweitet, bestehend
55 aus revisionskontrollierten Dateien. Diese Verzeichnisse und Dateien
56 lassen sich zu einer Software-Release kombinieren. CVS bietet die
57 Funktionen, die zur Verwaltung von Software-Releases und zur
58 Überwachung der gleichzeitigen Bearbeitung von Quelldateien durch
59 mehrere Software- Entwickler notwendig sind.
60
61 %description -l fr
62 "CVS" signifie "Concurrent Version System". C'est un système de
63 comparaison de versions de fichiers, qui peut garder une trace des
64 changements apportés à des fichiers (le plus souvent, les fichiers des
65 sources d'un programme). CVS conserve seulement les différences, et
66 non l'intégralité d'un fichier récent et d'un fichier plus ancien. A
67 chaque modification d'un fichier, CVS garde (entre autres) le nom de
68 la personne ayant fait la modification, la raison justifiant cette
69 modification, et la date à laquelle celle-ci a eu lieu. CVS est très
70 utile pour gérer la mise en commun des modifications apportées par
71 plusieurs personnes travaillant en parallèle sur les mêmes fichiers.
72 Au lieu de garder plusieurs versions des fichiers dans un seul
73 répertoire, CVS crée une série de répertoires, chacun contenant une
74 nouvelle version des fichiers. Ces répertoires et ces fichiers peuvent
75 ensuite être regroupés pour former la version la plus à jour du
76 logiciel. Installez ce package si vous avez besoin d'utiliser un
77 système de contrôle de version.
78
79 %description -l pl
80 CVS jest nak³adk± na rcs (Revision Control System, czyli w wolnym
81 t³umaczeniu system kontroli wersji zasobów), który rozszerza
82 mo¿liwo¶ci rcs'a z narzêdzia do kontroli zbioru plików w pojedynczym
83 katalogu o mo¿liwo¶æ kontroli zbioru hierarchicznie u³o¿onych
84 katalogów z plikami. Z pomoc± CVS w ³atwy sposób mo¿na zarz±dzaæ kodem
85 ¼ród³owym opracowywanym przez nawet bardzo du¿e zespó³y programistów
86 umo¿liwiaj±c ¶ledzenie i kontrolê wszystkich zmian w trakcie pracy nad
87 projektami i wypuszczaniem pe³nych wersji oprogramowania (release).
88
89 %description -l tr
90 CVS (Concurrent Versioning System), tek bir dizindeki dosya
91 topluluðunun sürüm denetimini, denetimi yapýlmýþ dizinlerin hiyerarþik
92 topluluðuna geniþleten rcs(1) sürüm denetim sisteminin ön yüzüdür. Bu
93 dizin ve dosyalar, bir yazýlým yayýný oluþturma amacýyla biraraya
94 getirilebilir. CVS, bu yazýlým yayýnlarýnýn yönetilmesini ve kaynak
95 dosyalarý bakýmýnýn birden çok yazýlým geliþtiricisi tarafýndan
96 eþzamanlý olarak yapýlmasýný kontrol etmek için gereken iþlevleri
97 saðlar.
98
99 %package client
100 Summary:        Concurrent Versions System - client
101 Summary(pl):    Concurrent Versions System - klient
102 Group:          Development/Version Control
103 Obsoletes:      cvs-npclient
104 Obsoletes:      cvs
105 Provides:       cvs = %{version}
106
107 %description client
108 CVS client.
109
110 %description client -l pl
111 Klient CVS.
112
113 %package common
114 Summary:        Concurrent Versions System - common files
115 Summary(pl):    Concurrent Versions System - wspólne pliki
116 Group:          Development/Version Control
117 Requires(pre):  /bin/id
118 Requires(pre):  /usr/bin/getgid
119 Requires(pre):  /usr/sbin/groupadd
120 Requires(pre):  /usr/sbin/useradd
121 Requires(pre):  cvs-nserver-client
122 Requires(pre):  fileutils
123 Requires(postun):       /usr/sbin/userdel
124 Requires(postun):       /usr/sbin/groupdel
125 Requires:       cvs-nserver-client
126 Obsoletes:      cvs-nserver
127
128 %description common
129 CVS - common server files.
130
131 %description common -l pl
132 Wspólne pliki serwerów CVS.
133
134 %package pserver
135 Summary:        Concurrent Versions System - pserver
136 Summary(pl):    Concurrent Versions System - pserver
137 Group:          Development/Version Control
138 PreReq:         rc-inetd
139 Requires:       cvs-nserver-common
140 Obsoletes:      cvs-npserver
141 Obsoletes:      cvs-pserver
142
143 %description pserver
144 CVS server - pserver files.
145
146 %description pserver -l pl
147 Serwer CVS - pliki pservera.
148
149 %package nserver
150 Summary:        Concurrent Versions System - nserver
151 Summary(pl):    Concurrent Versions System - nserver
152 Group:          Development/Version Control
153 PreReq:         rc-inetd
154 Requires:       cvs-nserver-common
155 Obsoletes:      cvs-nserver
156
157 %description nserver
158 CVS server - nserver files.
159
160 %description nserver -l pl
161 Serwer CVS - pliki nservera.
162
163 %prep
164 %setup -q
165 %patch0 -p1
166 %patch1 -p1
167 %patch2 -p1
168 %patch3 -p1
169 %patch4 -p1
170 %patch5 -p1
171 %patch6 -p1
172 %patch7 -p1
173 %patch8 -p1
174 %patch9 -p1
175 %patch10 -p1
176
177 %build
178 %{__aclocal}
179 %{__autoconf}
180 %{__automake}
181 %configure \
182         --enable-encryption \
183         --enable-client \
184         --enable-server \
185         --enable-setuid \
186         --with-openssl \
187         --without-gssapi
188 %{__make}
189
190 %install
191 rm -rf $RPM_BUILD_ROOT
192 install -d $RPM_BUILD_ROOT{/etc/sysconfig/rc-inetd,%{_cvsroot},/var/lock/cvs}
193
194 %{__make} install \
195         DESTDIR=$RPM_BUILD_ROOT
196
197 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/cvs-nserver
198 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/cvs-pserver
199
200 cat << EOF >$RPM_BUILD_ROOT%{_bindir}/cvs-pserver-script
201 #!/bin/sh
202 REPOSITORY="%{_cvsroot}"
203 if [ -f /etc/sysconfig/cvs ]; then
204         . /etc/sysconfig/cvs
205 fi
206
207 CVSPASSWD=%{_bindir}/cvspasswd \
208 exec %{_bindir}/cvs-pserver \$REPOSITORY -- \
209 %{_bindir}/cvschkpw %{_bindir}/cvs pserver
210 EOF
211
212 cat << EOF >$RPM_BUILD_ROOT%{_bindir}/cvs-nserver-script
213 #!/bin/sh
214 REPOSITORY="%{_cvsroot}"
215 if [ -f /etc/sysconfig/cvs ]; then
216         . /etc/sysconfig/cvs
217 fi
218
219 CVSPASSWD=%{_bindir}/cvspasswd \
220 exec %{_bindir}/cvs-nserver \$REPOSITORY -- \
221 %{_bindir}/cvschkpw %{_bindir}/cvs nserver
222 EOF
223
224 cat << EOF >$RPM_BUILD_ROOT/etc/sysconfig/cvs
225 # In this file you can specify additional repositories (separated with space)
226 # or just set different location.
227 #REPOSITORY="%{_cvsroot}"
228 EOF
229
230 mv -f   $RPM_BUILD_ROOT%{_datadir}/cvs-nserver/contrib/rcs2log \
231         $RPM_BUILD_ROOT%{_bindir}
232
233 %clean
234 rm -rf $RPM_BUILD_ROOT
235
236 %post client
237 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
238
239 %postun client
240 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
241
242 %pre common
243 if [ -n "`getgid cvs`" ]; then
244         if [ "`getgid cvs`" != "52" ]; then
245                 echo "Error: group cvs doesn't have gid=52. Correct this before installing cvs-nserver." 1>&2
246                 exit 1
247         fi
248 else
249         echo "Adding group cvs GID=52."
250         /usr/sbin/groupadd -g 52 -r -f cvs
251 fi
252 if [ -n "`getgid cvsadmin`" ]; then
253         if [ "`getgid cvsadmin`" != "53" ]; then
254                 echo "Error: group cvsadmin doesn't have gid=53. Correct this before installing cvs-nserver." 1>&2
255                 exit 1
256         fi
257 else
258         echo "Adding group cvsadmin GID=53."
259         /usr/sbin/groupadd -g 53 -r -f cvsadmin
260 fi
261 if [ -n "`id -u cvs 2>/dev/null`" ]; then
262         if [ "`id -u cvs`" != "52" ]; then
263                 echo "Error: user cvs doesn't have uid=52. Correct this before installing cvs-nserver." 1>&2
264                 exit 1
265         fi
266 else
267         echo "Adding user cvs UID=52."
268         /usr/sbin/useradd -u 52 -r -d %{_cvsroot} -s /bin/false -c "CVS user" -g cvs cvs 1>&2
269 fi
270 if [ -n "`id -u cvsadmin 2>/dev/null`" ]; then
271         if [ "`id -u cvsadmin`" != "53" ]; then
272                 echo "Error: user cvsadmin doesn't have uid=53. Correct this before installing cvs-nserver." 1>&2
273                 exit 1
274         fi
275 else
276         echo "Adding user cvsadmin UID=53."
277         /usr/sbin/useradd -u 53 -r -d %{_cvsroot} -s /bin/false -c "CVS user" -g cvsadmin -G cvs cvsadmin 1>&2
278 fi
279 if [ "$1" = 1 ]; then
280         echo "Initializing repository..."
281         %{_bindir}/cvs -d :local:%{_cvsroot} init
282         chown -R cvsadmin:cvsadmin %{_cvsroot}/CVSROOT
283 fi
284
285 %postun common
286 if [ "$1" = "0" ]; then
287         echo "Removing user cvs."
288         /usr/sbin/userdel cvs
289         echo "Removing user cvsadmin."
290         /usr/sbin/userdel cvsadmin
291         echo "Removing group cvs."
292         /usr/sbin/groupdel cvs
293         echo "Removing group cvsadmin."
294         /usr/sbin/groupdel cvsadmin
295 fi
296
297 %post pserver
298 if [ -f /var/lock/subsys/rc-inetd ]; then
299         /etc/rc.d/init.d/rc-inetd reload
300 fi
301
302 %postun pserver
303 if [ -f /var/lock/subsys/rc-inetd ]; then
304         /etc/rc.d/init.d/rc-inetd reload
305 fi
306
307 %post nserver
308 if [ -f /var/lock/subsys/rc-inetd ]; then
309         /etc/rc.d/init.d/rc-inetd reload
310 fi
311
312 %postun nserver
313 if [ -f /var/lock/subsys/rc-inetd ]; then
314         /etc/rc.d/init.d/rc-inetd reload
315 fi
316
317 %files client
318 %defattr(644,root,root,755)
319 %doc AUTHORS BUGS ChangeLog FAQ FAQ.nserver NEWS NEWS.nserver PROJECTS
320 %doc README README.checkpassword TODO
321 %attr(755,root,root) %{_bindir}/cvs
322 %attr(755,root,root) %{_bindir}/cvsbug
323 %{_infodir}/cvs*
324 %{_mandir}/man[15]/cvs.*
325 %{_mandir}/man8/cvsbug.8*
326
327 %files common
328 %defattr(644,root,root,755)
329 %attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/cvs
330 %attr(4754,cvsadmin,cvs) %{_bindir}/cvspasswd
331 %attr(755,root,root) %{_bindir}/cvschkpw
332 %attr(755,root,root) %{_bindir}/rcs2log
333 %dir %{_datadir}/cvs-nserver
334 %dir %{_datadir}/cvs-nserver/contrib
335 %{_datadir}/cvs-nserver/contrib/*
336 %attr(770,cvsadmin,cvs) %dir %{_cvsroot}
337 %{_mandir}/man8/cvs-server.8*
338 %attr(770,cvsadmin,cvs) %dir /var/lock/cvs
339
340 %files pserver
341 %defattr(644,root,root,755)
342 %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rc-inetd/cvs-pserver
343 %attr(755,root,root) %{_bindir}/cvs-pserver*
344 %{_mandir}/man8/cvs-pserver.8*
345
346 %files nserver
347 %defattr(644,root,root,755)
348 %doc NEWS.nserver FAQ.nserver
349 %config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rc-inetd/cvs-nserver
350 %attr(755,root,root) %{_bindir}/cvs-nserver*
351 %{_mandir}/man8/cvs-nserver.8*
This page took 0.712276 seconds and 2 git commands to generate.