]>
Commit | Line | Data |
---|---|---|
c3a69507 ER |
1 | # |
2 | # Conditional build: | |
3 | %bcond_without kerberos # build without krb5 support | |
4 | # | |
0dfc8e39 | 5 | # TODO: |
76e9890a | 6 | # - commit -r BRANCH is rejected (contrary to manual) |
a1e3dda1 | 7 | # you can commit new file to branch with this technique: |
71b477cb ER |
8 | # cvs add file.patch |
9 | # cvs up -r BRANCH file.patch | |
10 | # cvs ci -m '- bleh' file.patch | |
a1e3dda1 | 11 | # or just install cvs client from cvsnt package. |
71b477cb | 12 | # - the newline auto translation on text files should be disabled on .patch files (better for any!) |
011fcd65 | 13 | # - check server mode and default config |
4a8a65b9 ER |
14 | # - unpackaged: |
15 | # /usr/lib/libcvsapi.la | |
16 | # /usr/lib/libcvsapi.so | |
17 | # /usr/lib/libcvstools.la | |
18 | # /usr/lib/libcvstools.so | |
19 | # /usr/lib/libmdnsclient.la | |
20 | # /usr/lib/libmdnsclient.so | |
0dfc8e39 AM |
21 | Summary: Concurrent Versioning System |
22 | Summary(pl.UTF-8): Concurrent Versioning System | |
23 | Name: cvsnt | |
81261dcb AM |
24 | # http://www.cvsnt.org/archive/2.5_stable tell which version is stable |
25 | Version: 2.5.05.3744 | |
1f2ef84a | 26 | Release: 14 |
0dfc8e39 AM |
27 | License: GPL v2+/LGPL v2+ |
28 | Group: Development/Version Control | |
5223dac3 | 29 | Source0: http://www.cvsnt.org/archive/%{name}-%{version}.tar.gz |
81261dcb | 30 | # Source0-md5: 64aa0fc627893cc66182023b936260da |
0dfc8e39 AM |
31 | Source1: %{name}.inetd |
32 | Source2: %{name}-cvslockd.init | |
5223dac3 | 33 | Source3: %{name}.pam |
81261dcb AM |
34 | Patch0: %{name}-system-pcre.patch |
35 | Patch1: %{name}-system-ntlm.patch | |
36 | Patch2: %{name}-build.patch | |
37 | Patch3: %{name}-nospam.patch | |
38 | Patch4: %{name}-fixes.patch | |
39 | Patch5: %{name}-gcc4.patch | |
cc573531 | 40 | Patch6: format-security.patch |
77e72c74 | 41 | Patch7: cxx.patch |
67a356d9 | 42 | Patch8: openssl.patch |
1f2ef84a | 43 | Patch9: gcc10.patch |
0dfc8e39 AM |
44 | URL: http://www.cvsnt.org/ |
45 | BuildRequires: autoconf >= 2.58 | |
46 | BuildRequires: automake >= 1:1.7.9 | |
0dfc8e39 | 47 | BuildRequires: docbook-style-xsl |
77e72c74 | 48 | BuildRequires: avahi-compat-howl-devel |
790bcc6a | 49 | %{?with_kerberos:BuildRequires: heimdal-devel} |
3d551737 ER |
50 | BuildRequires: libltdl-devel |
51 | BuildRequires: libntlm-devel >= 0.3.6 | |
0dfc8e39 | 52 | BuildRequires: libstdc++-devel |
620c684c | 53 | BuildRequires: libtool |
211cc332 | 54 | BuildRequires: libxml2-devel |
0dfc8e39 AM |
55 | BuildRequires: mysql-devel |
56 | BuildRequires: openssl-devel | |
57 | BuildRequires: pam-devel | |
58 | BuildRequires: pcre-devel | |
59 | BuildRequires: postgresql-devel | |
60 | BuildRequires: rpmbuild(macros) >= 1.268 | |
61 | BuildRequires: sqlite3-devel | |
0dfc8e39 AM |
62 | BuildRequires: unixODBC-devel |
63 | BuildRequires: xmlto | |
64 | BuildRequires: zlib-devel | |
b6e8fc68 | 65 | Requires(post): /sbin/ldconfig |
0dfc8e39 AM |
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 | CVSNT Server features include: | |
82 | - Access control for securing projects and branches. | |
83 | - Detailed audit and metrics recorded in an SQL database. | |
84 | - Authentication with Active Directory. | |
85 | - Tracking everything about the change - including whether it was | |
86 | merged from somewhere, belongs to a problem report or was part of a | |
87 | change set. | |
88 | - A control panel to manage email notification of changes, defect | |
89 | tracking integration, and more. | |
90 | - Integrated repository synchronisation (for fail-over servers). | |
91 | - Change set support (group changes by defect number). | |
92 | - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames. | |
93 | - When operating in UTF-8 (Unicode) mode it can automatically | |
94 | translate filename encoding for any client. | |
95 | - Plug-ins for email notification. | |
96 | - Helps make merging branches easier with its "Mergepoint" feature. | |
97 | - Native servers available for Mac OS X, Windows, Linux, Solaris, | |
98 | HPUX. | |
99 | - Supports reserved and unreserved versioning methodologies. | |
100 | - CVSAPI for integration into 3rd party products. | |
101 | - Script, COM and 3GL interface for triggers and integration into 3rd | |
102 | party tools (such as defect tracking) | |
103 | ||
104 | %package pserver | |
105 | Summary: rc-inetd config files to run CVS pserver | |
106 | Summary(pl.UTF-8): Pliki konfiguracyjne rc-inetd do postawienia pservera CVS | |
107 | Group: Development/Version Control | |
108 | Requires(post): fileutils | |
109 | Requires(postun): /usr/sbin/groupdel | |
110 | Requires(postun): /usr/sbin/userdel | |
111 | Requires(pre): /bin/id | |
112 | Requires(pre): /usr/bin/getgid | |
113 | Requires(pre): /usr/sbin/groupadd | |
114 | Requires(pre): /usr/sbin/useradd | |
115 | Requires: %{name} = %{version}-%{release} | |
2a46cd31 | 116 | Requires: %{name}-cvslockd = %{version}-%{release} |
0dfc8e39 AM |
117 | Requires: rc-inetd |
118 | Provides: group(cvs) | |
119 | Provides: user(cvs) | |
120 | Obsoletes: cvs-nserver-common | |
121 | Obsoletes: cvs-nserver-nserver | |
122 | Obsoletes: cvs-nserver-pserver | |
123 | ||
124 | %description pserver | |
125 | Config files for rc-inetd that are necessary to run CVS in pserver | |
126 | mode. | |
127 | ||
2a46cd31 AM |
128 | %package cvslockd |
129 | Summary: locking daemon | |
130 | Group: Development/Version Control | |
131 | ||
132 | %description cvslockd | |
133 | CVS locking daemon. | |
134 | ||
7a8b94dc AM |
135 | %package database-mysql |
136 | Summary: MySQL Database support for CVSNT | |
137 | Group: Development/Version Control | |
138 | Requires: %{name} = %{version}-%{release} | |
139 | ||
140 | %description database-mysql | |
141 | MySQL Database support for CVSNT. | |
142 | ||
143 | %package database-odbc | |
144 | Summary: ODBC support for CVSNT | |
145 | Group: Development/Version Control | |
146 | Requires: %{name} = %{version}-%{release} | |
147 | ||
148 | %description database-odbc | |
149 | ODBC support for CVSNT. | |
150 | ||
151 | %package database-postgres | |
152 | Summary: PostgreSQL Database support for CVSNT | |
153 | Group: Development/Version Control | |
154 | Requires: %{name} = %{version}-%{release} | |
155 | ||
156 | %description database-postgres | |
157 | PostgreSQL Database support for CVSNT. | |
158 | ||
159 | %package database-sqlite | |
160 | Summary: SQLite Database support for CVSNT | |
161 | Group: Development/Version Control | |
162 | Requires: %{name} = %{version}-%{release} | |
163 | ||
164 | %description database-sqlite | |
165 | SQLite Database support for CVSNT. | |
166 | ||
2cc4bba8 AM |
167 | %package protocol-gserver |
168 | Summary: gserver (Kerberos GSS) protocol support for CVSNT | |
169 | Group: Development/Version Control | |
170 | Requires: %{name} = %{version}-%{release} | |
171 | ||
172 | %description protocol-gserver | |
173 | gserver (Kerberos GSS) support for CVSNT. | |
174 | ||
175 | %package protocol-sserver | |
176 | Summary: sserver (SSL) procotol support for for CVSNT | |
177 | Group: Development/Version Control | |
178 | Requires: %{name} = %{version}-%{release} | |
179 | ||
180 | %description protocol-sserver | |
181 | sserver (SSL) protocol support for CVSNT. | |
182 | ||
92b17172 AM |
183 | %package protocol-sspi |
184 | Summary: SSPI procotol support for for CVSNT | |
185 | Group: Development/Version Control | |
186 | Requires: %{name} = %{version}-%{release} | |
187 | ||
188 | %description protocol-sspi | |
189 | SSPI protocol support for CVSNT. | |
190 | ||
77cd9e4e AM |
191 | %package protocol-sync |
192 | Summary: sync procotol support for for CVSNT | |
193 | Group: Development/Version Control | |
194 | Requires: %{name} = %{version}-%{release} | |
195 | ||
196 | %description protocol-sync | |
197 | sync protocol support for CVSNT. | |
198 | ||
b503e563 AM |
199 | %package rcs |
200 | Summary: CVSNT version of RCS tools | |
201 | Group: Development/Version Control | |
202 | Requires: %{name} = %{version}-%{release} | |
b64867c1 | 203 | Provides: rcs |
b503e563 AM |
204 | |
205 | %description rcs | |
206 | CVSNT version of RCS tools. | |
207 | ||
0dfc8e39 AM |
208 | %prep |
209 | %setup -q | |
86e7036a | 210 | %patch0 -p1 |
3d551737 ER |
211 | %patch1 -p1 |
212 | %patch2 -p1 | |
213 | %patch3 -p1 | |
81261dcb | 214 | %patch4 -p1 |
57a699b1 | 215 | %patch5 -p1 |
cc573531 | 216 | %patch6 -p1 |
77e72c74 | 217 | %patch7 -p1 |
67a356d9 | 218 | %patch8 -p1 |
1f2ef84a | 219 | %patch9 -p1 |
3d551737 | 220 | |
81261dcb | 221 | rm -r protocols/ntlm |
0dfc8e39 AM |
222 | |
223 | %build | |
3d551737 | 224 | %{__libtoolize} |
86e7036a ER |
225 | %{__aclocal} |
226 | %{__autoconf} | |
227 | %{__automake} | |
0dfc8e39 AM |
228 | %configure \ |
229 | --enable-mdns \ | |
230 | --enable-sqlite \ | |
231 | --enable-mysql \ | |
232 | --enable-odbc \ | |
233 | --enable-postgres \ | |
234 | --enable-pam \ | |
235 | --enable-server \ | |
236 | --enable-lockserver \ | |
237 | --enable-pserver \ | |
238 | --enable-ext \ | |
239 | --enable-rsh \ | |
2cc4bba8 | 240 | --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \ |
0dfc8e39 AM |
241 | --enable-sserver \ |
242 | --enable-sspi \ | |
243 | --enable-enum \ | |
b503e563 | 244 | --enable-rcs |
0dfc8e39 AM |
245 | |
246 | %{__make} | |
247 | ||
248 | cd doc | |
249 | sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk | |
250 | sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk | |
251 | xmlto --skip-validation -o html_cvs html cvs2.dbk | |
252 | xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk | |
253 | ||
254 | %install | |
255 | rm -rf $RPM_BUILD_ROOT | |
5223dac3 | 256 | install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}} |
0dfc8e39 | 257 | |
4a8a65b9 | 258 | %{__make} install -j1 \ |
0dfc8e39 AM |
259 | DESTDIR=$RPM_BUILD_ROOT |
260 | ||
261 | install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name} | |
262 | install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd | |
5223dac3 | 263 | install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt |
0dfc8e39 | 264 | |
c3a69507 ER |
265 | mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,} |
266 | mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,} | |
0dfc8e39 AM |
267 | |
268 | %clean | |
269 | rm -rf $RPM_BUILD_ROOT | |
270 | ||
2a46cd31 AM |
271 | %post -p /sbin/ldconfig |
272 | %postun -p /sbin/ldconfig | |
273 | ||
274 | %post cvslockd | |
011fcd65 AM |
275 | /sbin/chkconfig --add cvslockd |
276 | %service cvslockd restart | |
277 | ||
2a46cd31 | 278 | %preun cvslockd |
011fcd65 | 279 | if [ "$1" = "0" ]; then |
b6e8fc68 ER |
280 | %service cvslockd stop |
281 | /sbin/chkconfig --del cvslockd | |
011fcd65 AM |
282 | fi |
283 | ||
0dfc8e39 AM |
284 | %pre pserver |
285 | %groupadd -f -g 52 cvs | |
286 | %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs | |
287 | ||
288 | %post pserver | |
289 | if [ "$1" = "1" ]; then | |
290 | # Initialise repository | |
291 | %{_bindir}/cvs -d :local:%{_cvs_root} init | |
292 | chown -R cvs:cvs %{_cvs_root}/CVSROOT | |
293 | fi | |
294 | %service -q rc-inetd reload | |
295 | ||
296 | %postun pserver | |
297 | if [ "$1" = "0" ]; then | |
298 | %userremove cvs | |
299 | %groupremove cvs | |
300 | %service -q rc-inetd reload | |
301 | fi | |
302 | ||
0dfc8e39 AM |
303 | %files |
304 | %defattr(644,root,root,755) | |
305 | %doc doc/html_cvsclient | |
81261dcb | 306 | %doc AUTHORS README |
2cc4bba8 | 307 | %doc triggers/examples/*.txt |
0dfc8e39 | 308 | %dir %{_sysconfdir}/cvsnt |
5223dac3 | 309 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt |
0dfc8e39 | 310 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/* |
b503e563 | 311 | %attr(755,root,root) %{_bindir}/cvs |
b503e563 | 312 | %attr(755,root,root) %{_bindir}/cvsnt |
77cd9e4e | 313 | %attr(755,root,root) %{_bindir}/cvsscript |
0dfc8e39 | 314 | %dir %{_libdir}/cvsnt |
906b183f AM |
315 | %dir %{_libdir}/cvsnt/database |
316 | %dir %{_libdir}/cvsnt/mdns | |
317 | %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so | |
318 | %{_libdir}/cvsnt/mdns/*.la | |
319 | %dir %{_libdir}/cvsnt/protocols | |
2cc4bba8 AM |
320 | %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so |
321 | %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so | |
322 | %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so | |
323 | %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so | |
2cc4bba8 AM |
324 | %{_libdir}/cvsnt/protocols/enum.la |
325 | %{_libdir}/cvsnt/protocols/ext.la | |
326 | %{_libdir}/cvsnt/protocols/pserver.la | |
327 | %{_libdir}/cvsnt/protocols/server.la | |
906b183f AM |
328 | %dir %{_libdir}/cvsnt/triggers |
329 | %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so | |
330 | %{_libdir}/cvsnt/triggers/*.la | |
331 | %dir %{_libdir}/cvsnt/xdiff | |
332 | %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so | |
333 | %{_libdir}/cvsnt/xdiff/*.la | |
0dfc8e39 AM |
334 | %attr(755,root,root) %{_libdir}/lib*-*.so* |
335 | %{_mandir}/man[15]/* | |
336 | ||
337 | %files pserver | |
338 | %defattr(644,root,root,755) | |
339 | %doc doc/html_cvs | |
340 | %attr(770,root,cvs) %dir %{_cvs_root} | |
341 | %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt | |
7a8b94dc | 342 | |
2a46cd31 AM |
343 | %files cvslockd |
344 | %defattr(644,root,root,755) | |
345 | %attr(755,root,root) %{_bindir}/cvslockd | |
346 | %attr(754,root,root) /etc/rc.d/init.d/cvslockd | |
347 | ||
7a8b94dc AM |
348 | %files database-mysql |
349 | %defattr(644,root,root,755) | |
2cc4bba8 | 350 | %doc triggers/sql/*_mysql.sql |
b503e563 AM |
351 | %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so |
352 | %{_libdir}/cvsnt/database/mysql.la | |
7a8b94dc AM |
353 | |
354 | %files database-odbc | |
355 | %defattr(644,root,root,755) | |
2cc4bba8 AM |
356 | %doc triggers/sql/*_oracle.sql |
357 | %doc triggers/sql/*_mssql.sql | |
b503e563 AM |
358 | %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so |
359 | %{_libdir}/cvsnt/database/odbc.la | |
7a8b94dc AM |
360 | |
361 | %files database-postgres | |
362 | %defattr(644,root,root,755) | |
2cc4bba8 | 363 | %doc triggers/sql/*_postgres.sql |
b503e563 AM |
364 | %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so |
365 | %{_libdir}/cvsnt/database/postgres.la | |
7a8b94dc AM |
366 | |
367 | %files database-sqlite | |
368 | %defattr(644,root,root,755) | |
2cc4bba8 | 369 | %doc triggers/sql/*_sqlite.sql |
b503e563 AM |
370 | %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so |
371 | %{_libdir}/cvsnt/database/sqlite.la | |
2cc4bba8 AM |
372 | |
373 | %if %{with kerberos} | |
374 | %files protocol-gserver | |
375 | %defattr(644,root,root,755) | |
376 | %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so | |
377 | %{_libdir}/cvsnt/protocols/gserver.la | |
378 | %endif | |
379 | ||
380 | %files protocol-sserver | |
381 | %defattr(644,root,root,755) | |
382 | %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so | |
383 | %{_libdir}/cvsnt/protocols/sserver.la | |
b503e563 | 384 | |
92b17172 AM |
385 | %files protocol-sspi |
386 | %defattr(644,root,root,755) | |
387 | %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so | |
388 | %{_libdir}/cvsnt/protocols/sspi.la | |
389 | ||
81261dcb AM |
390 | #%files protocol-sync |
391 | #%defattr(644,root,root,755) | |
392 | #%attr(755,root,root) %{_libdir}/cvsnt/protocols/sync.so | |
393 | #%{_libdir}/cvsnt/protocols/sync.la | |
77cd9e4e | 394 | |
b503e563 AM |
395 | %files rcs |
396 | %defattr(644,root,root,755) | |
397 | %attr(755,root,root) %{_bindir}/co | |
398 | %attr(755,root,root) %{_bindir}/rcsdiff | |
399 | %attr(755,root,root) %{_bindir}/rlog |