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 # 2.5.04 is current stable series (2.5.05 is not)
27 License: GPL v2+/LGPL v2+
28 Group: Development/Version Control
29 # http://www.cvsnt.org/wiki/Download
30 Source0: http://www.cvsnt.org/archive/%{name}-%{version}.tar.gz
31 # Source0-md5: 474b57dcdd8da46f5eac47e6adbce068
32 Source1: %{name}.inetd
33 Source2: %{name}-cvslockd.init
35 Patch0: %{name}-system-ltdl.patch
36 Patch1: %{name}-system-pcre.patch
37 Patch2: %{name}-system-zlib.patch
38 Patch3: %{name}-system-ntlm.patch
39 Patch4: %{name}-crypt.patch
40 Patch5: %{name}-build.patch
41 Patch6: %{name}-nospam.patch
42 Patch7: %{name}-ipv6.patch
43 Patch8: %{name}-ipvflags.patch
44 URL: http://www.cvsnt.org/
45 BuildRequires: autoconf >= 2.58
46 BuildRequires: automake >= 1:1.7.9
47 BuildRequires: docbook-style-xsl
48 BuildRequires: howl-devel
49 %{?with_kerberos:BuildRequires: krb5-devel}
50 BuildRequires: libltdl-devel
51 BuildRequires: libntlm-devel >= 0.3.6
52 BuildRequires: libstdc++-devel
53 BuildRequires: libtool
54 BuildRequires: libxml2-devel
55 BuildRequires: mysql-devel
56 BuildRequires: openssl-devel
57 BuildRequires: pam-devel
58 BuildRequires: pcre-devel
59 BuildRequires: postgresql-devel
60 BuildRequires: rpmbuild(macros) >= 1.268
61 BuildRequires: sqlite3-devel
62 BuildRequires: unixODBC-devel
64 BuildRequires: zlib-devel
65 Requires(post): /sbin/ldconfig
66 Provides: cvs-client = %{version}
68 Obsoletes: cvs-nserver-client
69 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
71 %define _cvs_root /var/lib/cvs
74 CVS means Concurrent Version System; it is a version control system
75 which can record the history of your files (usually, but not always,
76 source code). CVS only stores the differences between versions,
77 instead of every version of every file you've ever created. CVS also
78 keeps a log of who and when made some changes and why they occurred,
81 CVSNT Server features include:
82 - Access control for securing projects and branches.
83 - Detailed audit and metrics recorded in an SQL database.
84 - Authentication with Active Directory.
85 - Tracking everything about the change - including whether it was
86 merged from somewhere, belongs to a problem report or was part of a
88 - A control panel to manage email notification of changes, defect
89 tracking integration, and more.
90 - Integrated repository synchronisation (for fail-over servers).
91 - Change set support (group changes by defect number).
92 - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames.
93 - When operating in UTF-8 (Unicode) mode it can automatically
94 translate filename encoding for any client.
95 - Plug-ins for email notification.
96 - Helps make merging branches easier with its "Mergepoint" feature.
97 - Native servers available for Mac OS X, Windows, Linux, Solaris,
99 - Supports reserved and unreserved versioning methodologies.
100 - CVSAPI for integration into 3rd party products.
101 - Script, COM and 3GL interface for triggers and integration into 3rd
102 party tools (such as defect tracking)
105 Summary: rc-inetd config files to run CVS pserver
106 Summary(pl.UTF-8): Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
107 Group: Development/Version Control
108 Requires(post): fileutils
109 Requires(postun): /usr/sbin/groupdel
110 Requires(postun): /usr/sbin/userdel
111 Requires(pre): /bin/id
112 Requires(pre): /usr/bin/getgid
113 Requires(pre): /usr/sbin/groupadd
114 Requires(pre): /usr/sbin/useradd
115 Requires: %{name} = %{version}-%{release}
119 Obsoletes: cvs-nserver-common
120 Obsoletes: cvs-nserver-nserver
121 Obsoletes: cvs-nserver-pserver
124 Config files for rc-inetd that are necessary to run CVS in pserver
127 %package database-mysql
128 Summary: MySQL Database support for CVSNT
129 Group: Development/Version Control
130 Requires: %{name} = %{version}-%{release}
132 %description database-mysql
133 MySQL Database support for CVSNT.
135 %package database-odbc
136 Summary: ODBC support for CVSNT
137 Group: Development/Version Control
138 Requires: %{name} = %{version}-%{release}
140 %description database-odbc
141 ODBC support for CVSNT.
143 %package database-postgres
144 Summary: PostgreSQL Database support for CVSNT
145 Group: Development/Version Control
146 Requires: %{name} = %{version}-%{release}
148 %description database-postgres
149 PostgreSQL Database support for CVSNT.
151 %package database-sqlite
152 Summary: SQLite Database support for CVSNT
153 Group: Development/Version Control
154 Requires: %{name} = %{version}-%{release}
156 %description database-sqlite
157 SQLite Database support for CVSNT.
159 %package protocol-gserver
160 Summary: gserver (Kerberos GSS) protocol support for CVSNT
161 Group: Development/Version Control
162 Requires: %{name} = %{version}-%{release}
164 %description protocol-gserver
165 gserver (Kerberos GSS) support for CVSNT.
167 %package protocol-sserver
168 Summary: sserver (SSL) procotol support for for CVSNT
169 Group: Development/Version Control
170 Requires: %{name} = %{version}-%{release}
172 %description protocol-sserver
173 sserver (SSL) protocol support for CVSNT.
175 %package protocol-sspi
176 Summary: SSPI procotol support for for CVSNT
177 Group: Development/Version Control
178 Requires: %{name} = %{version}-%{release}
180 %description protocol-sspi
181 SSPI protocol support for CVSNT.
183 %package protocol-sync
184 Summary: sync procotol support for for CVSNT
185 Group: Development/Version Control
186 Requires: %{name} = %{version}-%{release}
188 %description protocol-sync
189 sync protocol support for CVSNT.
192 Summary: CVSNT version of RCS tools
193 Group: Development/Version Control
194 Requires: %{name} = %{version}-%{release}
198 CVSNT version of RCS tools.
212 rm -rf pcre libltdl zlib protocols/ntlm
227 --enable-lockserver \
231 --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \
240 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
241 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
242 xmlto --skip-validation -o html_cvs html cvs2.dbk
243 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
246 rm -rf $RPM_BUILD_ROOT
247 install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
249 %{__make} install -j1 \
250 DESTDIR=$RPM_BUILD_ROOT
252 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
253 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
254 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt
256 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
257 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
260 rm -rf $RPM_BUILD_ROOT
264 /sbin/chkconfig --add cvslockd
265 %service cvslockd restart
268 if [ "$1" = "0" ]; then
269 %service cvslockd stop
270 /sbin/chkconfig --del cvslockd
273 %postun -p /sbin/ldconfig
276 %groupadd -f -g 52 cvs
277 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
280 if [ "$1" = "1" ]; then
281 # Initialise repository
282 %{_bindir}/cvs -d :local:%{_cvs_root} init
283 chown -R cvs:cvs %{_cvs_root}/CVSROOT
285 %service -q rc-inetd reload
288 if [ "$1" = "0" ]; then
291 %service -q rc-inetd reload
295 %defattr(644,root,root,755)
296 %doc doc/html_cvsclient
297 %doc AUTHORS FAQ README
298 %doc triggers/examples/*.txt
299 %dir %{_sysconfdir}/cvsnt
300 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt
301 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
302 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
303 %attr(755,root,root) %{_bindir}/cvs
304 %attr(755,root,root) %{_bindir}/cvslockd
305 %attr(755,root,root) %{_bindir}/cvsnt
306 %attr(755,root,root) %{_bindir}/cvsscript
307 %dir %{_libdir}/cvsnt
308 %dir %{_libdir}/cvsnt/database
309 %dir %{_libdir}/cvsnt/mdns
310 %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so
311 %{_libdir}/cvsnt/mdns/*.la
312 %dir %{_libdir}/cvsnt/protocols
313 %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so
314 %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so
315 %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so
316 %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so
317 %{_libdir}/cvsnt/protocols/enum.la
318 %{_libdir}/cvsnt/protocols/ext.la
319 %{_libdir}/cvsnt/protocols/pserver.la
320 %{_libdir}/cvsnt/protocols/server.la
321 %dir %{_libdir}/cvsnt/triggers
322 %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so
323 %{_libdir}/cvsnt/triggers/*.la
324 %dir %{_libdir}/cvsnt/xdiff
325 %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so
326 %{_libdir}/cvsnt/xdiff/*.la
327 %attr(755,root,root) %{_libdir}/lib*-*.so*
331 %defattr(644,root,root,755)
333 %attr(770,root,cvs) %dir %{_cvs_root}
334 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
336 %files database-mysql
337 %defattr(644,root,root,755)
338 %doc triggers/sql/*_mysql.sql
339 %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so
340 %{_libdir}/cvsnt/database/mysql.la
343 %defattr(644,root,root,755)
344 %doc triggers/sql/*_oracle.sql
345 %doc triggers/sql/*_mssql.sql
346 %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so
347 %{_libdir}/cvsnt/database/odbc.la
349 %files database-postgres
350 %defattr(644,root,root,755)
351 %doc triggers/sql/*_postgres.sql
352 %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so
353 %{_libdir}/cvsnt/database/postgres.la
355 %files database-sqlite
356 %defattr(644,root,root,755)
357 %doc triggers/sql/*_sqlite.sql
358 %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so
359 %{_libdir}/cvsnt/database/sqlite.la
362 %files protocol-gserver
363 %defattr(644,root,root,755)
364 %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so
365 %{_libdir}/cvsnt/protocols/gserver.la
368 %files protocol-sserver
369 %defattr(644,root,root,755)
370 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so
371 %{_libdir}/cvsnt/protocols/sserver.la
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so
376 %{_libdir}/cvsnt/protocols/sspi.la
379 %defattr(644,root,root,755)
380 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sync.so
381 %{_libdir}/cvsnt/protocols/sync.la
384 %defattr(644,root,root,755)
385 %attr(755,root,root) %{_bindir}/co
386 %attr(755,root,root) %{_bindir}/rcsdiff
387 %attr(755,root,root) %{_bindir}/rlog