]> git.pld-linux.org Git - packages/cvs.git/blob - cvs.spec
- make sure some configure test choose correct values; enable pam
[packages/cvs.git] / cvs.spec
1 #
2 # Conditional build:
3 %bcond_without  krb5    # disable krb5 support
4 #
5 Summary:        Concurrent Versioning System
6 Summary(de.UTF-8):      Concurrent-Versioning-System
7 Summary(es.UTF-8):      Control de versiones en modo concurrente
8 Summary(fr.UTF-8):      Un système pour maintenir à jour des fichiers
9 Summary(pl.UTF-8):      Concurrent Versioning System
10 Summary(pt_BR.UTF-8):   Controle de versões em modo concorrente
11 Summary(ru.UTF-8):      Система управления версиями
12 Summary(tr.UTF-8):      Sürüm denetim sistemi
13 Summary(uk.UTF-8):      Система керування версіями
14 Summary(zh_CN.UTF-8):   并发的版本管理系统CVS
15 Name:           cvs
16 Version:        1.12.13
17 Release:        7
18 License:        GPL
19 Group:          Development/Version Control
20 Source0:        ftp://ftp.gnu.org/non-gnu/cvs/source/feature/%{version}/%{name}-%{version}.tar.bz2
21 # Source0-md5:  956ab476ce276c2d19d583e227dbdbea
22 Source1:        %{name}.inetd
23 Patch1:         %{name}-fixed_buffer.patch
24 Patch2:         %{name}-home_etc.patch
25 Patch3:         %{name}-no_libnsl.patch
26 Patch4:         %{name}-info.patch
27 Patch5:         %{name}-posix.patch
28 Patch6:         %{name}-CAN_2005_2693.patch
29 Patch7:         %{name}-cvspass.patch
30 Patch8:         %{name}-datetime.patch
31 Patch9:         %{name}-getcwd.patch
32 Patch10:        %{name}-ac.patch
33
34 # patches from debian
35 Patch100:       %{name}-debian-64bit-crash.patch
36 Patch101:       %{name}-debian-check-method-crash.patch
37 Patch102:       %{name}-debian-sparc.patch
38 Patch103:       %{name}-debian-zlib-read-compressed.patch
39 Patch104:       %{name}-debian-cvsrc.patch
40 Patch105:       %{name}-debian-date-format.patch
41 Patch106:       %{name}-debian-dsa-ext-pwd.patch
42 Patch107:       %{name}-debian-ext-exp.patch
43 Patch108:       %{name}-debian-extra-tags.patch
44 Patch109:       %{name}-debian-flag-conflicted-copies.patch
45 Patch110:       %{name}-debian-homedir.patch
46 Patch111:       %{name}-debian-import-n-X.patch
47 Patch112:       %{name}-debian-R-warning.patch
48 Patch113:       %{name}-debian-keyword-alnum.patch
49 Patch114:       %{name}-debian-l-opt.patch
50 Patch115:       %{name}-debian-newlines-commit-template.patch
51 Patch116:       %{name}-debian-normalize-roots.patch
52 Patch117:       %{name}-debian-pam.patch
53 Patch118:       %{name}-debian-parseopts.patch
54 Patch119:       %{name}-debian-perms.patch
55 Patch120:       %{name}-debian-server-wrapper.patch
56 Patch121:       %{name}-debian-repouid.patch
57 Patch122:       %{name}-debian-rsc2log.patch
58
59 URL:            http://www.nongnu.org/cvs/
60 BuildRequires:  autoconf >= 2.58
61 BuildRequires:  automake >= 1:1.7.9
62 %{?with_krb5:BuildRequires:     krb5-devel}
63 BuildRequires:  rpmbuild(macros) >= 1.268
64 BuildRequires:  texinfo
65 BuildRequires:  zlib-devel
66 Provides:       cvs-client = %{version}
67 Obsoletes:      cvs-client
68 Obsoletes:      cvs-nserver-client
69 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
70
71 %define         _cvs_root       /var/lib/cvs
72
73 %description
74 CVS means Concurrent Version System; it is a version control system
75 which can record the history of your files (usually, but not always,
76 source code). CVS only stores the differences between versions,
77 instead of every version of every file you've ever created. CVS also
78 keeps a log of who and when made some changes and why they occurred,
79 among other aspects.
80
81 CVS is very helpful for managing releases and controlling the
82 concurrent editing of source files among multiple authors. Instead of
83 providing version control for a collection of files in a single
84 directory, CVS provides version control for a hierarchical collection
85 of directories consisting of revision controlled files. These
86 directories and files can then be combined together to form a software
87 release.
88
89 %description -l de.UTF-8
90 CVS ist ein Frontend für das RCS(1)-Revisionskontrollsystem, das den
91 Begriff der Revisionskontrolle von einer Sammlung von Dateien in einem
92 einzelnen Verzeichnis auf eine ganze Hierarchie ausweitet, bestehend
93 aus revisionskontrollierten Dateien. Diese Verzeichnisse und Dateien
94 lassen sich zu einer Software-Release kombinieren. CVS bietet die
95 Funktionen, die zur Verwaltung von Software-Releases und zur
96 Überwachung der gleichzeitigen Bearbeitung von Quelldateien durch
97 mehrere Software-Entwickler notwendig sind.
98
99 %description -l es.UTF-8
100 CVS significa "Concurrent Version System" (sistema concurrente de
101 control de versiones). Puede guardar la historia de sus ficheros
102 (normalmente, pero no necesariamente, código fuente). CVS sólo guarda
103 las diferencias entre las versiones, en vez de guardar cada una de las
104 versiones de cada fichero que haya creado. CVS también mantiene un
105 registro de quién y cuándo realizó un cambio, el porqué del cambio,
106 etc.
107
108 CVS es muy útil para manejar los releases y controlar la edición
109 concurrente de los ficheros fuente entre varios autores. En vez de
110 proveer control de versiones para una colección de ficheros en un solo
111 directorio, CVS la provee para una colección jerárquica de directorios
112 que consistan de ficheros de revisiones controladas. Esos directorios
113 y ficheros pueden luego ser reunidos para formar un release de
114 software.
115
116 %description -l fr.UTF-8
117 "CVS" signifie "Concurrent Version System". C'est un système de
118 comparaison de versions de fichiers, qui peut garder une trace des
119 changements apportés à des fichiers (le plus souvent, les fichiers des
120 sources d'un programme). CVS conserve seulement les différences, et
121 non l'intégralité d'un fichier récent et d'un fichier plus ancien. A
122 chaque modification d'un fichier, CVS garde (entre autres) le nom de
123 la personne ayant fait la modification, la raison justifiant cette
124 modification, et la date à laquelle celle-ci a eu lieu.
125
126 CVS est très utile pour gérer la mise en commun des modifications
127 apportées par plusieurs personnes travaillant en parallèle sur les
128 mêmes fichiers. Au lieu de garder plusieurs versions des fichiers dans
129 un seul répertoire, CVS crée une série de répertoires, chacun
130 contenant une nouvelle version des fichiers. Ces répertoires et ces
131 fichiers peuvent ensuite être regroupés pour former la version la plus
132 à jour du logiciel. Installez ce package si vous avez besoin
133 d'utiliser un système de contrôle de version.
134
135 %description -l pl.UTF-8
136 CVS jest nakładką na rcs (Revision Control System, czyli w wolnym
137 tłumaczeniu system kontroli wersji zasobów), który rozszerza
138 możliwości rcs'a z narzędzia do kontroli zbioru plików w pojedynczym
139 katalogu o możliwość kontroli zbioru hierarchicznie ułożonych
140 katalogów z plikami. Z pomocą CVS w łatwy sposób można zarządzać kodem
141 źródłowym opracowywanym przez nawet bardzo duże zespoły programistów
142 umożliwiając śledzenie i kontrolę wszystkich zmian w trakcie pracy nad
143 projektami i wypuszczaniem pełnych wersji oprogramowania (release).
144
145 %description -l pt_BR.UTF-8
146 CVS é um front end para o rcs(1) - revision control system - que
147 estende a noção de controle de revisão de uma coletânea de arquivo em
148 um único diretório para uma coleção hierárquica de diretórios que
149 contém arquivos controlados por revisão. Esses diretórios e arquivos
150 podem ser combinados juntos para criar uma release de software. CVS
151 oferece as funções necessárias para administrar essas release de
152 software e para controlar a edição concorrente de arquivos fonte por
153 múltiplos programadores.
154
155 %description -l ru.UTF-8
156 CVS (Concurrent Version System) - это система управления версиями,
157 которая умеет записать историю ваших файлов (обычно, но не всегда, это
158 исходные тексты). CVS сохраняет только различия между версиями вместо
159 каждой версии каждого файла, которая была когда-либо создана. Также
160 CVS хранит протокол того, кто, когда и зачем что-либо изменил.
161
162 CVS очень полезна для организации релизов и управления параллельной
163 правкой исходных файлов несколькими авторами. Вместо предоставления
164 управления версиями набора файлов в одном каталоге CVS предоставляет
165 управление версиями иерархического набора каталогов, состоящих из
166 файлов, версиями которых надо управллять. Эти файлы и каталоги могут
167 быть собраны вместе для формирования релиза ПО.
168
169 %description -l tr.UTF-8
170 CVS (Concurrent Versioning System), tek bir dizindeki dosya
171 topluluğunun sürüm denetimini, denetimi yapılmış dizinlerin hiyerarşik
172 topluluğuna genişleten rcs(1) sürüm denetim sisteminin ön yüzüdür. Bu
173 dizin ve dosyalar, bir yazılım yayını oluşturma amacıyla biraraya
174 getirilebilir. CVS, bu yazılım yayınlarının yönetilmesini ve kaynak
175 dosyaları bakımının birden çok yazılım geliştiricisi tarafından
176 eşzamanlı olarak yapılmasını kontrol etmek için gereken işlevleri
177 sağlar.
178
179 %description -l uk.UTF-8
180 CVS (Concurrent Version System) - це система керування версіями, яка
181 вміє записати історію ваших файлів (зазвичай, але не завжди, це
182 вихідні тексти). CVS зберігає тільки різницю між версіями замість
183 кожної версії кожного файлу, яка була колись створена. Також CVS
184 зберігає протокол того, хто, коли і навіщо щось змінив.
185
186 CVS дуже корисна для організацію релізів та керування паралельною
187 правкою визідних файлів кількома авторами. Замість надання можливості
188 керування версіями набору файлів в одному каталозі, CVS надає
189 можливість керування ієрархічним набором каталогів, що складаються з
190 файлів, версіями котрих треба керувати. Ці файли та каталоги можуть
191 бути зібрані разом для формування релізу ПЗ.
192
193 %package pserver
194 Summary:        rc-inetd config files to run CVS pserver
195 Summary(es.UTF-8):      Ficheros de configuración de rc-inetd para un servidor CVS pserver
196 Summary(pl.UTF-8):      Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
197 Group:          Development/Version Control
198 Requires(post): fileutils
199 Requires(postun):       /usr/sbin/groupdel
200 Requires(postun):       /usr/sbin/userdel
201 Requires(pre):  /bin/id
202 Requires(pre):  /usr/bin/getgid
203 Requires(pre):  /usr/sbin/groupadd
204 Requires(pre):  /usr/sbin/useradd
205 Requires:       %{name} = %{version}-%{release}
206 Requires:       rc-inetd
207 Provides:       group(cvs)
208 Provides:       user(cvs)
209 Obsoletes:      cvs-nserver-common
210 Obsoletes:      cvs-nserver-nserver
211 Obsoletes:      cvs-nserver-pserver
212
213 %description pserver
214 Config files for rc-inetd that are necessary to run CVS in pserver
215 mode.
216
217 %description pserver -l es.UTF-8
218 Los ficheros de configuración rc-inetd necesarios para ejecutar CVS en
219 el modo de pserver.
220
221 %description pserver -l pl.UTF-8
222 Pliki konfiguracyjne rc-inetd niezbędne do uruchomienia CVSa w trybie
223 pserver.
224
225 %prep
226 %setup -q
227 %patch1 -p1
228 %patch2 -p1
229 %patch3 -p1
230 %patch4 -p1
231 %patch5 -p1
232 %patch6 -p1
233 %patch7 -p1
234 %patch8 -p1
235 %patch9 -p1
236 %patch10 -p1
237
238 %patch100 -p1
239 %patch101 -p1
240 %patch102 -p1
241 %patch103 -p1
242 %patch104 -p1
243 %patch105 -p1
244 # undefined reference to getpwline
245 #%patch106 -p1
246 %patch107 -p2
247 %patch108 -p1
248 %patch109 -p1
249 %patch110 -p1
250 %patch111 -p1
251 %patch112 -p1
252 %patch113 -p1
253 %patch114 -p1
254 %patch115 -p1
255 %patch116 -p1
256 %patch117 -p1
257 %patch118 -p1
258 %patch119 -p1
259 %patch120 -p1
260 %patch121 -p1
261 %patch122 -p1
262
263 rm -rf zlib && sed -i -e 's#zlib/Makefile##g' configure.in
264
265 # broken implementation, never use
266 rm lib/getcwd.c
267
268 %build
269 rm aclocal.m4
270 %{__aclocal} -I m4
271 %{__autoheader}
272 %{__autoconf}
273 %{__automake}
274 %configure \
275         --enable-pam \
276         --with-hardcoded-pam-service-name=cvs \
277         --with-external-zlib \
278         --enable-encryption \
279         --enable-server \
280         --enable-client \
281         --enable-rootcommit \
282         --with%{!?with_krb5:out}-gssapi \
283         --with-tmpdir=/tmp \
284         --with-rsh=%{_bindir}/ssh \
285         --with-editor=/bin/vi
286
287 %{__make}
288
289 %install
290 rm -rf $RPM_BUILD_ROOT
291 install -d $RPM_BUILD_ROOT{/etc/sysconfig/rc-inetd,%{_cvs_root}}
292
293 %{__make} install \
294         DESTDIR=$RPM_BUILD_ROOT
295
296 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/cvs
297
298 rm -f contrib/{.cvsignore,Makefile*,*.pl,*.sh,*.csh}
299 mv -f $RPM_BUILD_ROOT%{_datadir}/cvs/contrib/rcs2log $RPM_BUILD_ROOT%{_bindir}
300
301 %clean
302 rm -rf $RPM_BUILD_ROOT
303
304 %post   -p      /sbin/postshell
305 -/usr/sbin/fix-info-dir -c %{_infodir}
306
307 %postun -p      /sbin/postshell
308 -/usr/sbin/fix-info-dir -c %{_infodir}
309
310 %pre pserver
311 %groupadd -f -g 52 cvs
312 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
313
314 %post pserver
315 if [ "$1" = "1" ]; then
316         # Initialise repository
317         %{_bindir}/cvs -d :local:%{_cvs_root} init
318         chown -R cvs:cvs %{_cvs_root}/CVSROOT
319 fi
320 %service -q rc-inetd reload
321
322 %postun pserver
323 if [ "$1" = "0" ]; then
324         %userremove cvs
325         %groupremove cvs
326         %service -q rc-inetd reload
327 fi
328
329 %triggerpostun -- cvs-pserver < 1.1.13-1
330 echo "Warning: default cvsroot moved to %{_cvs_root}."
331 echo "Check your configration."
332
333 %files
334 %defattr(644,root,root,755)
335 %doc BUGS FAQ MINOR-BUGS NEWS PROJECTS TODO README
336 %doc ChangeLog doc/*.pdf contrib
337 %attr(755,root,root) %{_bindir}/*
338 %{_mandir}/man[158]/*
339 %{_infodir}/cvs*
340
341 %files pserver
342 %defattr(644,root,root,755)
343 %attr(770,root,cvs) %dir %{_cvs_root}
344 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvs
This page took 0.072337 seconds and 3 git commands to generate.