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: howl-devel
39 %{?with_kerberos:BuildRequires: krb5-devel}
40 BuildRequires: libltdl-devel
41 BuildRequires: libntlm-devel >= 0.3.6
42 BuildRequires: libstdc++-devel
43 BuildRequires: libxml2-devel
44 BuildRequires: mysql-devel
45 BuildRequires: openssl-devel
46 BuildRequires: pam-devel
47 BuildRequires: pcre-devel
48 BuildRequires: postgresql-devel
49 BuildRequires: rpmbuild(macros) >= 1.268
50 BuildRequires: sqlite3-devel
51 BuildRequires: unixODBC-devel
53 BuildRequires: zlib-devel
54 Requires(post): /sbin/ldconfig
55 Provides: cvs-client = %{version}
57 Obsoletes: cvs-nserver-client
58 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60 %define _cvs_root /var/lib/cvs
63 CVS means Concurrent Version System; it is a version control system
64 which can record the history of your files (usually, but not always,
65 source code). CVS only stores the differences between versions,
66 instead of every version of every file you've ever created. CVS also
67 keeps a log of who and when made some changes and why they occurred,
70 CVSNT Server features include:
71 - Access control for securing projects and branches.
72 - Detailed audit and metrics recorded in an SQL database.
73 - Authentication with Active Directory.
74 - Tracking everything about the change - including whether it was
75 merged from somewhere, belongs to a problem report or was part of a
77 - A control panel to manage email notification of changes, defect
78 tracking integration, and more.
79 - Integrated repository synchronisation (for fail-over servers).
80 - Change set support (group changes by defect number).
81 - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames.
82 - When operating in UTF-8 (Unicode) mode it can automatically
83 translate filename encoding for any client.
84 - Plug-ins for email notification.
85 - Helps make merging branches easier with its "Mergepoint" feature.
86 - Native servers available for Mac OS X, Windows, Linux, Solaris,
88 - Supports reserved and unreserved versioning methodologies.
89 - CVSAPI for integration into 3rd party products.
90 - Script, COM and 3GL interface for triggers and integration into 3rd
91 party tools (such as defect tracking)
94 Summary: rc-inetd config files to run CVS pserver
95 Summary(pl.UTF-8): Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
96 Group: Development/Version Control
97 Requires(post): fileutils
98 Requires(postun): /usr/sbin/groupdel
99 Requires(postun): /usr/sbin/userdel
100 Requires(pre): /bin/id
101 Requires(pre): /usr/bin/getgid
102 Requires(pre): /usr/sbin/groupadd
103 Requires(pre): /usr/sbin/useradd
104 Requires: %{name} = %{version}-%{release}
108 Obsoletes: cvs-nserver-common
109 Obsoletes: cvs-nserver-nserver
110 Obsoletes: cvs-nserver-pserver
113 Config files for rc-inetd that are necessary to run CVS in pserver
116 %package database-mysql
117 Summary: MySQL Database support for CVSNT
118 Group: Development/Version Control
119 Requires: %{name} = %{version}-%{release}
121 %description database-mysql
122 MySQL Database support for CVSNT.
124 %package database-odbc
125 Summary: ODBC support for CVSNT
126 Group: Development/Version Control
127 Requires: %{name} = %{version}-%{release}
129 %description database-odbc
130 ODBC support for CVSNT.
132 %package database-postgres
133 Summary: PostgreSQL Database support for CVSNT
134 Group: Development/Version Control
135 Requires: %{name} = %{version}-%{release}
137 %description database-postgres
138 PostgreSQL Database support for CVSNT.
140 %package database-sqlite
141 Summary: SQLite Database support for CVSNT
142 Group: Development/Version Control
143 Requires: %{name} = %{version}-%{release}
145 %description database-sqlite
146 SQLite Database support for CVSNT.
148 %package protocol-gserver
149 Summary: gserver (Kerberos GSS) protocol support for CVSNT
150 Group: Development/Version Control
151 Requires: %{name} = %{version}-%{release}
153 %description protocol-gserver
154 gserver (Kerberos GSS) support for CVSNT.
156 %package protocol-sserver
157 Summary: sserver (SSL) procotol support for for CVSNT
158 Group: Development/Version Control
159 Requires: %{name} = %{version}-%{release}
161 %description protocol-sserver
162 sserver (SSL) protocol support for CVSNT.
164 %package protocol-sspi
165 Summary: SSPI procotol support for for CVSNT
166 Group: Development/Version Control
167 Requires: %{name} = %{version}-%{release}
169 %description protocol-sspi
170 SSPI protocol support for CVSNT.
172 %package protocol-sync
173 Summary: sync procotol support for for CVSNT
174 Group: Development/Version Control
175 Requires: %{name} = %{version}-%{release}
177 %description protocol-sync
178 sync protocol support for CVSNT.
181 Summary: CVSNT version of RCS tools
182 Group: Development/Version Control
183 Requires: %{name} = %{version}-%{release}
187 CVSNT version of RCS tools.
198 rm -rf pcre libltdl zlib protocols/ntlm
213 --enable-lockserver \
217 --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \
226 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
227 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
228 xmlto --skip-validation -o html_cvs html cvs2.dbk
229 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
232 rm -rf $RPM_BUILD_ROOT
233 install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
235 %{__make} install -j1 \
236 DESTDIR=$RPM_BUILD_ROOT
238 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
239 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
240 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt
242 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
243 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
246 rm -rf $RPM_BUILD_ROOT
250 /sbin/chkconfig --add cvslockd
251 %service cvslockd restart
254 if [ "$1" = "0" ]; then
255 %service cvslockd stop
256 /sbin/chkconfig --del cvslockd
259 %postun -p /sbin/ldconfig
262 %groupadd -f -g 52 cvs
263 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
266 if [ "$1" = "1" ]; then
267 # Initialise repository
268 %{_bindir}/cvs -d :local:%{_cvs_root} init
269 chown -R cvs:cvs %{_cvs_root}/CVSROOT
271 %service -q rc-inetd reload
274 if [ "$1" = "0" ]; then
277 %service -q rc-inetd reload
281 %defattr(644,root,root,755)
282 %doc doc/html_cvsclient
283 %doc AUTHORS FAQ README
284 %doc triggers/examples/*.txt
285 %dir %{_sysconfdir}/cvsnt
286 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt
287 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
288 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
289 %attr(755,root,root) %{_bindir}/cvs
290 %attr(755,root,root) %{_bindir}/cvslockd
291 %attr(755,root,root) %{_bindir}/cvsnt
292 %attr(755,root,root) %{_bindir}/cvsscript
293 %dir %{_libdir}/cvsnt
294 %dir %{_libdir}/cvsnt/database
295 %dir %{_libdir}/cvsnt/mdns
296 %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so
297 %{_libdir}/cvsnt/mdns/*.la
298 %dir %{_libdir}/cvsnt/protocols
299 %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so
300 %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so
301 %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so
302 %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so
303 %{_libdir}/cvsnt/protocols/enum.la
304 %{_libdir}/cvsnt/protocols/ext.la
305 %{_libdir}/cvsnt/protocols/pserver.la
306 %{_libdir}/cvsnt/protocols/server.la
307 %dir %{_libdir}/cvsnt/triggers
308 %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so
309 %{_libdir}/cvsnt/triggers/*.la
310 %dir %{_libdir}/cvsnt/xdiff
311 %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so
312 %{_libdir}/cvsnt/xdiff/*.la
313 %attr(755,root,root) %{_libdir}/lib*-*.so*
317 %defattr(644,root,root,755)
319 %attr(770,root,cvs) %dir %{_cvs_root}
320 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
322 %files database-mysql
323 %defattr(644,root,root,755)
324 %doc triggers/sql/*_mysql.sql
325 %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so
326 %{_libdir}/cvsnt/database/mysql.la
329 %defattr(644,root,root,755)
330 %doc triggers/sql/*_oracle.sql
331 %doc triggers/sql/*_mssql.sql
332 %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so
333 %{_libdir}/cvsnt/database/odbc.la
335 %files database-postgres
336 %defattr(644,root,root,755)
337 %doc triggers/sql/*_postgres.sql
338 %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so
339 %{_libdir}/cvsnt/database/postgres.la
341 %files database-sqlite
342 %defattr(644,root,root,755)
343 %doc triggers/sql/*_sqlite.sql
344 %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so
345 %{_libdir}/cvsnt/database/sqlite.la
348 %files protocol-gserver
349 %defattr(644,root,root,755)
350 %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so
351 %{_libdir}/cvsnt/protocols/gserver.la
354 %files protocol-sserver
355 %defattr(644,root,root,755)
356 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so
357 %{_libdir}/cvsnt/protocols/sserver.la
360 %defattr(644,root,root,755)
361 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so
362 %{_libdir}/cvsnt/protocols/sspi.la
365 %defattr(644,root,root,755)
366 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sync.so
367 %{_libdir}/cvsnt/protocols/sync.la
370 %defattr(644,root,root,755)
371 %attr(755,root,root) %{_bindir}/co
372 %attr(755,root,root) %{_bindir}/rcsdiff
373 %attr(755,root,root) %{_bindir}/rlog