3 %bcond_without kerberos # build without krb5 support
6 # - use external libltdl
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 Source0: http://www.cvsnt.org/archive/%{name}-%{version}.tar.gz
23 # Source0-md5: 2f82c5b76cd450edcde714eed52b6377
24 Source1: %{name}.inetd
25 Source2: %{name}-cvslockd.init
27 URL: http://www.cvsnt.org/
28 BuildRequires: autoconf >= 2.58
29 BuildRequires: automake >= 1:1.7.9
30 BuildRequires: docbook-style-xsl
31 BuildRequires: expat-devel
32 BuildRequires: howl-devel
33 %{?with_kerberos:BuildRequires: krb5-devel}
34 BuildRequires: libstdc++-devel
35 BuildRequires: libxml2-devel
36 BuildRequires: mysql-devel
37 BuildRequires: openssl-devel
38 BuildRequires: pam-devel
39 BuildRequires: pcre-devel
40 BuildRequires: postgresql-devel
41 BuildRequires: rpmbuild(macros) >= 1.268
42 BuildRequires: sqlite3-devel
43 BuildRequires: unixODBC-devel
45 BuildRequires: zlib-devel
46 Provides: cvs-client = %{version}
48 Obsoletes: cvs-nserver-client
49 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 %define _cvs_root /var/lib/cvs
54 CVS means Concurrent Version System; it is a version control system
55 which can record the history of your files (usually, but not always,
56 source code). CVS only stores the differences between versions,
57 instead of every version of every file you've ever created. CVS also
58 keeps a log of who and when made some changes and why they occurred,
61 CVSNT Server features include:
62 - Access control for securing projects and branches.
63 - Detailed audit and metrics recorded in an SQL database.
64 - Authentication with Active Directory.
65 - Tracking everything about the change - including whether it was
66 merged from somewhere, belongs to a problem report or was part of a
68 - A control panel to manage email notification of changes, defect
69 tracking integration, and more.
70 - Integrated repository synchronisation (for fail-over servers).
71 - Change set support (group changes by defect number).
72 - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames.
73 - When operating in UTF-8 (Unicode) mode it can automatically
74 translate filename encoding for any client.
75 - Plug-ins for email notification.
76 - Helps make merging branches easier with its "Mergepoint" feature.
77 - Native servers available for Mac OS X, Windows, Linux, Solaris,
79 - Supports reserved and unreserved versioning methodologies.
80 - CVSAPI for integration into 3rd party products.
81 - Script, COM and 3GL interface for triggers and integration into 3rd
82 party tools (such as defect tracking)
85 Summary: rc-inetd config files to run CVS pserver
86 Summary(pl.UTF-8): Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
87 Group: Development/Version Control
88 Requires(post): fileutils
89 Requires(postun): /usr/sbin/groupdel
90 Requires(postun): /usr/sbin/userdel
91 Requires(pre): /bin/id
92 Requires(pre): /usr/bin/getgid
93 Requires(pre): /usr/sbin/groupadd
94 Requires(pre): /usr/sbin/useradd
95 Requires: %{name} = %{version}-%{release}
99 Obsoletes: cvs-nserver-common
100 Obsoletes: cvs-nserver-nserver
101 Obsoletes: cvs-nserver-pserver
104 Config files for rc-inetd that are necessary to run CVS in pserver
107 %package database-mysql
108 Summary: MySQL Database support for CVSNT
109 Group: Development/Version Control
110 Requires: %{name} = %{version}-%{release}
112 %description database-mysql
113 MySQL Database support for CVSNT.
115 %package database-odbc
116 Summary: ODBC support for CVSNT
117 Group: Development/Version Control
118 Requires: %{name} = %{version}-%{release}
120 %description database-odbc
121 ODBC support for CVSNT.
123 %package database-postgres
124 Summary: PostgreSQL Database support for CVSNT
125 Group: Development/Version Control
126 Requires: %{name} = %{version}-%{release}
128 %description database-postgres
129 PostgreSQL Database support for CVSNT.
131 %package database-sqlite
132 Summary: SQLite Database support for CVSNT
133 Group: Development/Version Control
134 Requires: %{name} = %{version}-%{release}
136 %description database-sqlite
137 SQLite Database support for CVSNT.
139 %package protocol-gserver
140 Summary: gserver (Kerberos GSS) protocol support for CVSNT
141 Group: Development/Version Control
142 Requires: %{name} = %{version}-%{release}
144 %description protocol-gserver
145 gserver (Kerberos GSS) support for CVSNT.
147 %package protocol-sserver
148 Summary: sserver (SSL) procotol support for for CVSNT
149 Group: Development/Version Control
150 Requires: %{name} = %{version}-%{release}
152 %description protocol-sserver
153 sserver (SSL) protocol support for CVSNT.
156 Summary: CVSNT version of RCS tools
157 Group: Development/Version Control
158 Requires: %{name} = %{version}-%{release}
161 CVSNT version of RCS tools.
175 --enable-lockserver \
179 --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \
188 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
189 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
190 xmlto --skip-validation -o html_cvs html cvs2.dbk
191 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
194 rm -rf $RPM_BUILD_ROOT
195 install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
197 %{__make} install -j1 \
198 DESTDIR=$RPM_BUILD_ROOT
200 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
201 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
202 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt
204 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
205 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
208 rm -rf $RPM_BUILD_ROOT
212 /sbin/chkconfig --add cvslockd
213 %service cvslockd restart
216 if [ "$1" = "0" ]; then
217 %service cvslockd stop
218 /sbin/chkconfig --del cvslockd
221 %postun -p /sbin/ldconfig
224 %groupadd -f -g 52 cvs
225 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
228 if [ "$1" = "1" ]; then
229 # Initialise repository
230 %{_bindir}/cvs -d :local:%{_cvs_root} init
231 chown -R cvs:cvs %{_cvs_root}/CVSROOT
233 %service -q rc-inetd reload
236 if [ "$1" = "0" ]; then
239 %service -q rc-inetd reload
243 %defattr(644,root,root,755)
244 %doc doc/html_cvsclient
245 %doc AUTHORS FAQ README
246 %doc triggers/examples/*.txt
247 %dir %{_sysconfdir}/cvsnt
248 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt
249 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
250 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
251 %attr(755,root,root) %{_bindir}/cvs
252 %attr(755,root,root) %{_bindir}/cvslockd
253 %attr(755,root,root) %{_bindir}/cvsnt
254 %dir %{_libdir}/cvsnt
255 %dir %{_libdir}/cvsnt/database
256 %dir %{_libdir}/cvsnt/mdns
257 %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so
258 %{_libdir}/cvsnt/mdns/*.la
259 %dir %{_libdir}/cvsnt/protocols
260 %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so
261 %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so
262 %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so
263 %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so
264 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so
265 %{_libdir}/cvsnt/protocols/enum.la
266 %{_libdir}/cvsnt/protocols/ext.la
267 %{_libdir}/cvsnt/protocols/pserver.la
268 %{_libdir}/cvsnt/protocols/server.la
269 %{_libdir}/cvsnt/protocols/sspi.la
270 %dir %{_libdir}/cvsnt/triggers
271 %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so
272 %{_libdir}/cvsnt/triggers/*.la
273 %dir %{_libdir}/cvsnt/xdiff
274 %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so
275 %{_libdir}/cvsnt/xdiff/*.la
276 %attr(755,root,root) %{_libdir}/lib*-*.so*
280 %defattr(644,root,root,755)
282 %attr(770,root,cvs) %dir %{_cvs_root}
283 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
285 %files database-mysql
286 %defattr(644,root,root,755)
287 %doc triggers/sql/*_mysql.sql
288 %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so
289 %{_libdir}/cvsnt/database/mysql.la
292 %defattr(644,root,root,755)
293 %doc triggers/sql/*_oracle.sql
294 %doc triggers/sql/*_mssql.sql
295 %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so
296 %{_libdir}/cvsnt/database/odbc.la
298 %files database-postgres
299 %defattr(644,root,root,755)
300 %doc triggers/sql/*_postgres.sql
301 %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so
302 %{_libdir}/cvsnt/database/postgres.la
304 %files database-sqlite
305 %defattr(644,root,root,755)
306 %doc triggers/sql/*_sqlite.sql
307 %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so
308 %{_libdir}/cvsnt/database/sqlite.la
311 %files protocol-gserver
312 %defattr(644,root,root,755)
313 %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so
314 %{_libdir}/cvsnt/protocols/gserver.la
317 %files protocol-sserver
318 %defattr(644,root,root,755)
319 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so
320 %{_libdir}/cvsnt/protocols/sserver.la
323 %defattr(644,root,root,755)
324 %attr(755,root,root) %{_bindir}/co
325 %attr(755,root,root) %{_bindir}/rcsdiff
326 %attr(755,root,root) %{_bindir}/rlog