3 %bcond_without kerberos # build without krb5 support
6 # - commit -r BRANCH is rejected (contrary to manual)
7 # you can commit new file to branch with this technique:
9 # cvs up -r BRANCH file.patch
10 # cvs ci -m '- bleh' file.patch
11 # or just install cvs client from cvsnt package.
12 # - the newline auto translation on text files should be disabled on .patch files (better for any!)
13 # - check server mode and default config
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
21 Summary: Concurrent Versioning System
22 Summary(pl.UTF-8): Concurrent Versioning System
24 # http://www.cvsnt.org/archive/2.5_stable tell which version is stable
27 License: GPL v2+/LGPL v2+
28 Group: Development/Version Control
29 Source0: http://www.cvsnt.org/archive/%{name}-%{version}.tar.gz
30 # Source0-md5: 64aa0fc627893cc66182023b936260da
31 Source1: %{name}.inetd
32 Source2: %{name}-cvslockd.init
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
40 Patch6: format-security.patch
41 URL: http://www.cvsnt.org/
42 BuildRequires: autoconf >= 2.58
43 BuildRequires: automake >= 1:1.7.9
44 BuildRequires: docbook-style-xsl
45 BuildRequires: howl-devel
46 %{?with_kerberos:BuildRequires: heimdal-devel}
47 BuildRequires: libltdl-devel
48 BuildRequires: libntlm-devel >= 0.3.6
49 BuildRequires: libstdc++-devel
50 BuildRequires: libtool
51 BuildRequires: libxml2-devel
52 BuildRequires: mysql-devel
53 BuildRequires: openssl-devel
54 BuildRequires: pam-devel
55 BuildRequires: pcre-devel
56 BuildRequires: postgresql-devel
57 BuildRequires: rpmbuild(macros) >= 1.268
58 BuildRequires: sqlite3-devel
59 BuildRequires: unixODBC-devel
61 BuildRequires: zlib-devel
62 Requires(post): /sbin/ldconfig
63 Provides: cvs-client = %{version}
65 Obsoletes: cvs-nserver-client
66 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68 %define _cvs_root /var/lib/cvs
71 CVS means Concurrent Version System; it is a version control system
72 which can record the history of your files (usually, but not always,
73 source code). CVS only stores the differences between versions,
74 instead of every version of every file you've ever created. CVS also
75 keeps a log of who and when made some changes and why they occurred,
78 CVSNT Server features include:
79 - Access control for securing projects and branches.
80 - Detailed audit and metrics recorded in an SQL database.
81 - Authentication with Active Directory.
82 - Tracking everything about the change - including whether it was
83 merged from somewhere, belongs to a problem report or was part of a
85 - A control panel to manage email notification of changes, defect
86 tracking integration, and more.
87 - Integrated repository synchronisation (for fail-over servers).
88 - Change set support (group changes by defect number).
89 - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames.
90 - When operating in UTF-8 (Unicode) mode it can automatically
91 translate filename encoding for any client.
92 - Plug-ins for email notification.
93 - Helps make merging branches easier with its "Mergepoint" feature.
94 - Native servers available for Mac OS X, Windows, Linux, Solaris,
96 - Supports reserved and unreserved versioning methodologies.
97 - CVSAPI for integration into 3rd party products.
98 - Script, COM and 3GL interface for triggers and integration into 3rd
99 party tools (such as defect tracking)
102 Summary: rc-inetd config files to run CVS pserver
103 Summary(pl.UTF-8): Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
104 Group: Development/Version Control
105 Requires(post): fileutils
106 Requires(postun): /usr/sbin/groupdel
107 Requires(postun): /usr/sbin/userdel
108 Requires(pre): /bin/id
109 Requires(pre): /usr/bin/getgid
110 Requires(pre): /usr/sbin/groupadd
111 Requires(pre): /usr/sbin/useradd
112 Requires: %{name} = %{version}-%{release}
113 Requires: %{name}-cvslockd = %{version}-%{release}
117 Obsoletes: cvs-nserver-common
118 Obsoletes: cvs-nserver-nserver
119 Obsoletes: cvs-nserver-pserver
122 Config files for rc-inetd that are necessary to run CVS in pserver
126 Summary: locking daemon
127 Group: Development/Version Control
129 %description cvslockd
132 %package database-mysql
133 Summary: MySQL Database support for CVSNT
134 Group: Development/Version Control
135 Requires: %{name} = %{version}-%{release}
137 %description database-mysql
138 MySQL Database support for CVSNT.
140 %package database-odbc
141 Summary: ODBC support for CVSNT
142 Group: Development/Version Control
143 Requires: %{name} = %{version}-%{release}
145 %description database-odbc
146 ODBC support for CVSNT.
148 %package database-postgres
149 Summary: PostgreSQL Database support for CVSNT
150 Group: Development/Version Control
151 Requires: %{name} = %{version}-%{release}
153 %description database-postgres
154 PostgreSQL Database support for CVSNT.
156 %package database-sqlite
157 Summary: SQLite Database support for CVSNT
158 Group: Development/Version Control
159 Requires: %{name} = %{version}-%{release}
161 %description database-sqlite
162 SQLite Database support for CVSNT.
164 %package protocol-gserver
165 Summary: gserver (Kerberos GSS) protocol support for CVSNT
166 Group: Development/Version Control
167 Requires: %{name} = %{version}-%{release}
169 %description protocol-gserver
170 gserver (Kerberos GSS) support for CVSNT.
172 %package protocol-sserver
173 Summary: sserver (SSL) procotol support for for CVSNT
174 Group: Development/Version Control
175 Requires: %{name} = %{version}-%{release}
177 %description protocol-sserver
178 sserver (SSL) protocol support for CVSNT.
180 %package protocol-sspi
181 Summary: SSPI procotol support for for CVSNT
182 Group: Development/Version Control
183 Requires: %{name} = %{version}-%{release}
185 %description protocol-sspi
186 SSPI protocol support for CVSNT.
188 %package protocol-sync
189 Summary: sync procotol support for for CVSNT
190 Group: Development/Version Control
191 Requires: %{name} = %{version}-%{release}
193 %description protocol-sync
194 sync protocol support for CVSNT.
197 Summary: CVSNT version of RCS tools
198 Group: Development/Version Control
199 Requires: %{name} = %{version}-%{release}
203 CVSNT version of RCS tools.
230 --enable-lockserver \
234 --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \
243 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
244 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
245 xmlto --skip-validation -o html_cvs html cvs2.dbk
246 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
249 rm -rf $RPM_BUILD_ROOT
250 install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
252 %{__make} install -j1 \
253 DESTDIR=$RPM_BUILD_ROOT
255 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
256 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
257 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt
259 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
260 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
263 rm -rf $RPM_BUILD_ROOT
265 %post -p /sbin/ldconfig
266 %postun -p /sbin/ldconfig
269 /sbin/chkconfig --add cvslockd
270 %service cvslockd restart
273 if [ "$1" = "0" ]; then
274 %service cvslockd stop
275 /sbin/chkconfig --del cvslockd
279 %groupadd -f -g 52 cvs
280 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
283 if [ "$1" = "1" ]; then
284 # Initialise repository
285 %{_bindir}/cvs -d :local:%{_cvs_root} init
286 chown -R cvs:cvs %{_cvs_root}/CVSROOT
288 %service -q rc-inetd reload
291 if [ "$1" = "0" ]; then
294 %service -q rc-inetd reload
298 %defattr(644,root,root,755)
299 %doc doc/html_cvsclient
301 %doc triggers/examples/*.txt
302 %dir %{_sysconfdir}/cvsnt
303 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt
304 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
305 %attr(755,root,root) %{_bindir}/cvs
306 %attr(755,root,root) %{_bindir}/cvsnt
307 %attr(755,root,root) %{_bindir}/cvsscript
308 %dir %{_libdir}/cvsnt
309 %dir %{_libdir}/cvsnt/database
310 %dir %{_libdir}/cvsnt/mdns
311 %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so
312 %{_libdir}/cvsnt/mdns/*.la
313 %dir %{_libdir}/cvsnt/protocols
314 %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so
315 %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so
316 %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so
317 %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so
318 %{_libdir}/cvsnt/protocols/enum.la
319 %{_libdir}/cvsnt/protocols/ext.la
320 %{_libdir}/cvsnt/protocols/pserver.la
321 %{_libdir}/cvsnt/protocols/server.la
322 %dir %{_libdir}/cvsnt/triggers
323 %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so
324 %{_libdir}/cvsnt/triggers/*.la
325 %dir %{_libdir}/cvsnt/xdiff
326 %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so
327 %{_libdir}/cvsnt/xdiff/*.la
328 %attr(755,root,root) %{_libdir}/lib*-*.so*
332 %defattr(644,root,root,755)
334 %attr(770,root,cvs) %dir %{_cvs_root}
335 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
338 %defattr(644,root,root,755)
339 %attr(755,root,root) %{_bindir}/cvslockd
340 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
342 %files database-mysql
343 %defattr(644,root,root,755)
344 %doc triggers/sql/*_mysql.sql
345 %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so
346 %{_libdir}/cvsnt/database/mysql.la
349 %defattr(644,root,root,755)
350 %doc triggers/sql/*_oracle.sql
351 %doc triggers/sql/*_mssql.sql
352 %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so
353 %{_libdir}/cvsnt/database/odbc.la
355 %files database-postgres
356 %defattr(644,root,root,755)
357 %doc triggers/sql/*_postgres.sql
358 %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so
359 %{_libdir}/cvsnt/database/postgres.la
361 %files database-sqlite
362 %defattr(644,root,root,755)
363 %doc triggers/sql/*_sqlite.sql
364 %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so
365 %{_libdir}/cvsnt/database/sqlite.la
368 %files protocol-gserver
369 %defattr(644,root,root,755)
370 %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so
371 %{_libdir}/cvsnt/protocols/gserver.la
374 %files protocol-sserver
375 %defattr(644,root,root,755)
376 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so
377 %{_libdir}/cvsnt/protocols/sserver.la
380 %defattr(644,root,root,755)
381 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so
382 %{_libdir}/cvsnt/protocols/sspi.la
384 #%files protocol-sync
385 #%defattr(644,root,root,755)
386 #%attr(755,root,root) %{_libdir}/cvsnt/protocols/sync.so
387 #%{_libdir}/cvsnt/protocols/sync.la
390 %defattr(644,root,root,755)
391 %attr(755,root,root) %{_bindir}/co
392 %attr(755,root,root) %{_bindir}/rcsdiff
393 %attr(755,root,root) %{_bindir}/rlog