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