3 %bcond_without kerberos # build without krb5 support
6 # - stay with STABLE 2.5.04 line as soon as it becomes stable
7 # - use external libltdl
8 # - check server mode and default config
10 # /usr/lib/libcvsapi.la
11 # /usr/lib/libcvsapi.so
12 # /usr/lib/libcvstools.la
13 # /usr/lib/libcvstools.so
14 # /usr/lib/libmdnsclient.la
15 # /usr/lib/libmdnsclient.so
16 Summary: Concurrent Versioning System
17 Summary(pl.UTF-8): Concurrent Versioning System
21 License: GPL v2+/LGPL v2+
22 Group: Development/Version Control
23 # http://www.cvsnt.org/wiki/Download
24 Source0: http://www.cvsnt.org/archive/%{name}-%{version}.tar.gz
25 # Source0-md5: 2f82c5b76cd450edcde714eed52b6377
26 Source1: %{name}.inetd
27 Source2: %{name}-cvslockd.init
29 URL: http://www.cvsnt.org/
30 BuildRequires: autoconf >= 2.58
31 BuildRequires: automake >= 1:1.7.9
32 BuildRequires: docbook-style-xsl
33 BuildRequires: expat-devel
34 BuildRequires: howl-devel
35 %{?with_kerberos:BuildRequires: krb5-devel}
36 BuildRequires: libstdc++-devel
37 BuildRequires: libxml2-devel
38 BuildRequires: mysql-devel
39 BuildRequires: openssl-devel
40 BuildRequires: pam-devel
41 BuildRequires: pcre-devel
42 BuildRequires: postgresql-devel
43 BuildRequires: rpmbuild(macros) >= 1.268
44 BuildRequires: sqlite3-devel
45 BuildRequires: unixODBC-devel
47 BuildRequires: zlib-devel
48 Provides: cvs-client = %{version}
50 Obsoletes: cvs-nserver-client
51 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
53 %define _cvs_root /var/lib/cvs
56 CVS means Concurrent Version System; it is a version control system
57 which can record the history of your files (usually, but not always,
58 source code). CVS only stores the differences between versions,
59 instead of every version of every file you've ever created. CVS also
60 keeps a log of who and when made some changes and why they occurred,
63 CVSNT Server features include:
64 - Access control for securing projects and branches.
65 - Detailed audit and metrics recorded in an SQL database.
66 - Authentication with Active Directory.
67 - Tracking everything about the change - including whether it was
68 merged from somewhere, belongs to a problem report or was part of a
70 - A control panel to manage email notification of changes, defect
71 tracking integration, and more.
72 - Integrated repository synchronisation (for fail-over servers).
73 - Change set support (group changes by defect number).
74 - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames.
75 - When operating in UTF-8 (Unicode) mode it can automatically
76 translate filename encoding for any client.
77 - Plug-ins for email notification.
78 - Helps make merging branches easier with its "Mergepoint" feature.
79 - Native servers available for Mac OS X, Windows, Linux, Solaris,
81 - Supports reserved and unreserved versioning methodologies.
82 - CVSAPI for integration into 3rd party products.
83 - Script, COM and 3GL interface for triggers and integration into 3rd
84 party tools (such as defect tracking)
87 Summary: rc-inetd config files to run CVS pserver
88 Summary(pl.UTF-8): Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
89 Group: Development/Version Control
90 Requires(post): fileutils
91 Requires(postun): /usr/sbin/groupdel
92 Requires(postun): /usr/sbin/userdel
93 Requires(pre): /bin/id
94 Requires(pre): /usr/bin/getgid
95 Requires(pre): /usr/sbin/groupadd
96 Requires(pre): /usr/sbin/useradd
97 Requires: %{name} = %{version}-%{release}
101 Obsoletes: cvs-nserver-common
102 Obsoletes: cvs-nserver-nserver
103 Obsoletes: cvs-nserver-pserver
106 Config files for rc-inetd that are necessary to run CVS in pserver
109 %package database-mysql
110 Summary: MySQL Database support for CVSNT
111 Group: Development/Version Control
112 Requires: %{name} = %{version}-%{release}
114 %description database-mysql
115 MySQL Database support for CVSNT.
117 %package database-odbc
118 Summary: ODBC support for CVSNT
119 Group: Development/Version Control
120 Requires: %{name} = %{version}-%{release}
122 %description database-odbc
123 ODBC support for CVSNT.
125 %package database-postgres
126 Summary: PostgreSQL Database support for CVSNT
127 Group: Development/Version Control
128 Requires: %{name} = %{version}-%{release}
130 %description database-postgres
131 PostgreSQL Database support for CVSNT.
133 %package database-sqlite
134 Summary: SQLite Database support for CVSNT
135 Group: Development/Version Control
136 Requires: %{name} = %{version}-%{release}
138 %description database-sqlite
139 SQLite Database support for CVSNT.
141 %package protocol-gserver
142 Summary: gserver (Kerberos GSS) protocol support for CVSNT
143 Group: Development/Version Control
144 Requires: %{name} = %{version}-%{release}
146 %description protocol-gserver
147 gserver (Kerberos GSS) support for CVSNT.
149 %package protocol-sserver
150 Summary: sserver (SSL) procotol support for for CVSNT
151 Group: Development/Version Control
152 Requires: %{name} = %{version}-%{release}
154 %description protocol-sserver
155 sserver (SSL) protocol support for CVSNT.
157 %package protocol-sync
158 Summary: sync procotol support for for CVSNT
159 Group: Development/Version Control
160 Requires: %{name} = %{version}-%{release}
162 %description protocol-sync
163 sync protocol support for CVSNT.
166 Summary: CVSNT version of RCS tools
167 Group: Development/Version Control
168 Requires: %{name} = %{version}-%{release}
171 CVSNT version of RCS tools.
185 --enable-lockserver \
189 --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \
198 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
199 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
200 xmlto --skip-validation -o html_cvs html cvs2.dbk
201 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
204 rm -rf $RPM_BUILD_ROOT
205 install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
207 %{__make} install -j1 \
208 DESTDIR=$RPM_BUILD_ROOT
210 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
211 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
212 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt
214 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
215 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
218 rm -rf $RPM_BUILD_ROOT
222 /sbin/chkconfig --add cvslockd
223 %service cvslockd restart
226 if [ "$1" = "0" ]; then
227 %service cvslockd stop
228 /sbin/chkconfig --del cvslockd
231 %postun -p /sbin/ldconfig
234 %groupadd -f -g 52 cvs
235 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
238 if [ "$1" = "1" ]; then
239 # Initialise repository
240 %{_bindir}/cvs -d :local:%{_cvs_root} init
241 chown -R cvs:cvs %{_cvs_root}/CVSROOT
243 %service -q rc-inetd reload
246 if [ "$1" = "0" ]; then
249 %service -q rc-inetd reload
253 %defattr(644,root,root,755)
254 %doc doc/html_cvsclient
255 %doc AUTHORS FAQ README
256 %doc triggers/examples/*.txt
257 %dir %{_sysconfdir}/cvsnt
258 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt
259 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
260 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
261 %attr(755,root,root) %{_bindir}/cvs
262 %attr(755,root,root) %{_bindir}/cvslockd
263 %attr(755,root,root) %{_bindir}/cvsnt
264 %attr(755,root,root) %{_bindir}/cvsscript
265 %dir %{_libdir}/cvsnt
266 %dir %{_libdir}/cvsnt/database
267 %dir %{_libdir}/cvsnt/mdns
268 %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so
269 %{_libdir}/cvsnt/mdns/*.la
270 %dir %{_libdir}/cvsnt/protocols
271 %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so
272 %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so
273 %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so
274 %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so
275 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so
276 %{_libdir}/cvsnt/protocols/enum.la
277 %{_libdir}/cvsnt/protocols/ext.la
278 %{_libdir}/cvsnt/protocols/pserver.la
279 %{_libdir}/cvsnt/protocols/server.la
280 %{_libdir}/cvsnt/protocols/sspi.la
281 %dir %{_libdir}/cvsnt/triggers
282 %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so
283 %{_libdir}/cvsnt/triggers/*.la
284 %dir %{_libdir}/cvsnt/xdiff
285 %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so
286 %{_libdir}/cvsnt/xdiff/*.la
287 %attr(755,root,root) %{_libdir}/lib*-*.so*
291 %defattr(644,root,root,755)
293 %attr(770,root,cvs) %dir %{_cvs_root}
294 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
296 %files database-mysql
297 %defattr(644,root,root,755)
298 %doc triggers/sql/*_mysql.sql
299 %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so
300 %{_libdir}/cvsnt/database/mysql.la
303 %defattr(644,root,root,755)
304 %doc triggers/sql/*_oracle.sql
305 %doc triggers/sql/*_mssql.sql
306 %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so
307 %{_libdir}/cvsnt/database/odbc.la
309 %files database-postgres
310 %defattr(644,root,root,755)
311 %doc triggers/sql/*_postgres.sql
312 %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so
313 %{_libdir}/cvsnt/database/postgres.la
315 %files database-sqlite
316 %defattr(644,root,root,755)
317 %doc triggers/sql/*_sqlite.sql
318 %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so
319 %{_libdir}/cvsnt/database/sqlite.la
322 %files protocol-gserver
323 %defattr(644,root,root,755)
324 %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so
325 %{_libdir}/cvsnt/protocols/gserver.la
328 %files protocol-sserver
329 %defattr(644,root,root,755)
330 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so
331 %{_libdir}/cvsnt/protocols/sserver.la
334 %defattr(644,root,root,755)
335 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sync.so
336 %{_libdir}/cvsnt/protocols/sync.la
339 %defattr(644,root,root,755)
340 %attr(755,root,root) %{_bindir}/co
341 %attr(755,root,root) %{_bindir}/rcsdiff
342 %attr(755,root,root) %{_bindir}/rlog