3 %bcond_without kerberos # build without krb5 support
6 # - stay with STABLE 2.5.04 line as soon as it becomes stable
7 # - check server mode and default config
9 # /usr/lib/libcvsapi.la
10 # /usr/lib/libcvsapi.so
11 # /usr/lib/libcvstools.la
12 # /usr/lib/libcvstools.so
13 # /usr/lib/libmdnsclient.la
14 # /usr/lib/libmdnsclient.so
15 Summary: Concurrent Versioning System
16 Summary(pl.UTF-8): Concurrent Versioning System
20 License: GPL v2+/LGPL v2+
21 Group: Development/Version Control
22 # http://www.cvsnt.org/wiki/Download
23 Source0: http://www.cvsnt.org/archive/%{name}-%{version}.tar.gz
24 # Source0-md5: b8aae9e50c3ef682a126a5d19c797558
25 Source1: %{name}.inetd
26 Source2: %{name}-cvslockd.init
28 Patch0: %{name}-system-ltdl.patch
29 Patch1: %{name}-system-pcre.patch
30 Patch2: %{name}-system-zlib.patch
31 Patch3: %{name}-system-ntlm.patch
32 Patch4: %{name}-crypt.patch
33 Patch5: %{name}-build.patch
34 URL: http://www.cvsnt.org/
35 BuildRequires: autoconf >= 2.58
36 BuildRequires: automake >= 1:1.7.9
37 BuildRequires: docbook-style-xsl
38 BuildRequires: libxml2-devel
39 BuildRequires: howl-devel
40 %{?with_kerberos:BuildRequires: krb5-devel}
41 BuildRequires: libltdl-devel
42 BuildRequires: libntlm-devel >= 0.3.6
43 BuildRequires: libstdc++-devel
44 BuildRequires: libxml2-devel
45 BuildRequires: mysql-devel
46 BuildRequires: openssl-devel
47 BuildRequires: pam-devel
48 BuildRequires: pcre-devel
49 BuildRequires: postgresql-devel
50 BuildRequires: rpmbuild(macros) >= 1.268
51 BuildRequires: sqlite3-devel
52 BuildRequires: unixODBC-devel
54 BuildRequires: zlib-devel
55 Requires(post): /sbin/ldconfig
56 Provides: cvs-client = %{version}
58 Obsoletes: cvs-nserver-client
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61 %define _cvs_root /var/lib/cvs
64 CVS means Concurrent Version System; it is a version control system
65 which can record the history of your files (usually, but not always,
66 source code). CVS only stores the differences between versions,
67 instead of every version of every file you've ever created. CVS also
68 keeps a log of who and when made some changes and why they occurred,
71 CVSNT Server features include:
72 - Access control for securing projects and branches.
73 - Detailed audit and metrics recorded in an SQL database.
74 - Authentication with Active Directory.
75 - Tracking everything about the change - including whether it was
76 merged from somewhere, belongs to a problem report or was part of a
78 - A control panel to manage email notification of changes, defect
79 tracking integration, and more.
80 - Integrated repository synchronisation (for fail-over servers).
81 - Change set support (group changes by defect number).
82 - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames.
83 - When operating in UTF-8 (Unicode) mode it can automatically
84 translate filename encoding for any client.
85 - Plug-ins for email notification.
86 - Helps make merging branches easier with its "Mergepoint" feature.
87 - Native servers available for Mac OS X, Windows, Linux, Solaris,
89 - Supports reserved and unreserved versioning methodologies.
90 - CVSAPI for integration into 3rd party products.
91 - Script, COM and 3GL interface for triggers and integration into 3rd
92 party tools (such as defect tracking)
95 Summary: rc-inetd config files to run CVS pserver
96 Summary(pl.UTF-8): Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
97 Group: Development/Version Control
98 Requires(post): fileutils
99 Requires(postun): /usr/sbin/groupdel
100 Requires(postun): /usr/sbin/userdel
101 Requires(pre): /bin/id
102 Requires(pre): /usr/bin/getgid
103 Requires(pre): /usr/sbin/groupadd
104 Requires(pre): /usr/sbin/useradd
105 Requires: %{name} = %{version}-%{release}
109 Obsoletes: cvs-nserver-common
110 Obsoletes: cvs-nserver-nserver
111 Obsoletes: cvs-nserver-pserver
114 Config files for rc-inetd that are necessary to run CVS in pserver
117 %package database-mysql
118 Summary: MySQL Database support for CVSNT
119 Group: Development/Version Control
120 Requires: %{name} = %{version}-%{release}
122 %description database-mysql
123 MySQL Database support for CVSNT.
125 %package database-odbc
126 Summary: ODBC support for CVSNT
127 Group: Development/Version Control
128 Requires: %{name} = %{version}-%{release}
130 %description database-odbc
131 ODBC support for CVSNT.
133 %package database-postgres
134 Summary: PostgreSQL Database support for CVSNT
135 Group: Development/Version Control
136 Requires: %{name} = %{version}-%{release}
138 %description database-postgres
139 PostgreSQL Database support for CVSNT.
141 %package database-sqlite
142 Summary: SQLite Database support for CVSNT
143 Group: Development/Version Control
144 Requires: %{name} = %{version}-%{release}
146 %description database-sqlite
147 SQLite Database support for CVSNT.
149 %package protocol-gserver
150 Summary: gserver (Kerberos GSS) protocol support for CVSNT
151 Group: Development/Version Control
152 Requires: %{name} = %{version}-%{release}
154 %description protocol-gserver
155 gserver (Kerberos GSS) support for CVSNT.
157 %package protocol-sserver
158 Summary: sserver (SSL) procotol support for for CVSNT
159 Group: Development/Version Control
160 Requires: %{name} = %{version}-%{release}
162 %description protocol-sserver
163 sserver (SSL) protocol support for CVSNT.
165 %package protocol-sspi
166 Summary: SSPI procotol support for for CVSNT
167 Group: Development/Version Control
168 Requires: %{name} = %{version}-%{release}
170 %description protocol-sspi
171 SSPI protocol support for CVSNT.
173 %package protocol-sync
174 Summary: sync procotol support for for CVSNT
175 Group: Development/Version Control
176 Requires: %{name} = %{version}-%{release}
178 %description protocol-sync
179 sync protocol support for CVSNT.
182 Summary: CVSNT version of RCS tools
183 Group: Development/Version Control
184 Requires: %{name} = %{version}-%{release}
188 CVSNT version of RCS tools.
199 rm -rf pcre libltdl zlib protocols/ntlm
214 --enable-lockserver \
218 --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \
227 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
228 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
229 xmlto --skip-validation -o html_cvs html cvs2.dbk
230 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
233 rm -rf $RPM_BUILD_ROOT
234 install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
236 %{__make} install -j1 \
237 DESTDIR=$RPM_BUILD_ROOT
239 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
240 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
241 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt
243 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
244 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
247 rm -rf $RPM_BUILD_ROOT
251 /sbin/chkconfig --add cvslockd
252 %service cvslockd restart
255 if [ "$1" = "0" ]; then
256 %service cvslockd stop
257 /sbin/chkconfig --del cvslockd
260 %postun -p /sbin/ldconfig
263 %groupadd -f -g 52 cvs
264 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
267 if [ "$1" = "1" ]; then
268 # Initialise repository
269 %{_bindir}/cvs -d :local:%{_cvs_root} init
270 chown -R cvs:cvs %{_cvs_root}/CVSROOT
272 %service -q rc-inetd reload
275 if [ "$1" = "0" ]; then
278 %service -q rc-inetd reload
282 %defattr(644,root,root,755)
283 %doc doc/html_cvsclient
284 %doc AUTHORS FAQ README
285 %doc triggers/examples/*.txt
286 %dir %{_sysconfdir}/cvsnt
287 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt
288 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
289 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
290 %attr(755,root,root) %{_bindir}/cvs
291 %attr(755,root,root) %{_bindir}/cvslockd
292 %attr(755,root,root) %{_bindir}/cvsnt
293 %attr(755,root,root) %{_bindir}/cvsscript
294 %dir %{_libdir}/cvsnt
295 %dir %{_libdir}/cvsnt/database
296 %dir %{_libdir}/cvsnt/mdns
297 %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so
298 %{_libdir}/cvsnt/mdns/*.la
299 %dir %{_libdir}/cvsnt/protocols
300 %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so
301 %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so
302 %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so
303 %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so
304 %{_libdir}/cvsnt/protocols/enum.la
305 %{_libdir}/cvsnt/protocols/ext.la
306 %{_libdir}/cvsnt/protocols/pserver.la
307 %{_libdir}/cvsnt/protocols/server.la
308 %dir %{_libdir}/cvsnt/triggers
309 %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so
310 %{_libdir}/cvsnt/triggers/*.la
311 %dir %{_libdir}/cvsnt/xdiff
312 %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so
313 %{_libdir}/cvsnt/xdiff/*.la
314 %attr(755,root,root) %{_libdir}/lib*-*.so*
318 %defattr(644,root,root,755)
320 %attr(770,root,cvs) %dir %{_cvs_root}
321 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
323 %files database-mysql
324 %defattr(644,root,root,755)
325 %doc triggers/sql/*_mysql.sql
326 %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so
327 %{_libdir}/cvsnt/database/mysql.la
330 %defattr(644,root,root,755)
331 %doc triggers/sql/*_oracle.sql
332 %doc triggers/sql/*_mssql.sql
333 %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so
334 %{_libdir}/cvsnt/database/odbc.la
336 %files database-postgres
337 %defattr(644,root,root,755)
338 %doc triggers/sql/*_postgres.sql
339 %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so
340 %{_libdir}/cvsnt/database/postgres.la
342 %files database-sqlite
343 %defattr(644,root,root,755)
344 %doc triggers/sql/*_sqlite.sql
345 %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so
346 %{_libdir}/cvsnt/database/sqlite.la
349 %files protocol-gserver
350 %defattr(644,root,root,755)
351 %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so
352 %{_libdir}/cvsnt/protocols/gserver.la
355 %files protocol-sserver
356 %defattr(644,root,root,755)
357 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so
358 %{_libdir}/cvsnt/protocols/sserver.la
361 %defattr(644,root,root,755)
362 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so
363 %{_libdir}/cvsnt/protocols/sspi.la
366 %defattr(644,root,root,755)
367 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sync.so
368 %{_libdir}/cvsnt/protocols/sync.la
371 %defattr(644,root,root,755)
372 %attr(755,root,root) %{_bindir}/co
373 %attr(755,root,root) %{_bindir}/rcsdiff
374 %attr(755,root,root) %{_bindir}/rlog