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 Source0: http://www.cvsnt.org/archive/%{name}-%{version}.tar.gz
30 # Source0-md5: 853d1f2e1c89e8776467271d34bc0dcf
31 Source1: %{name}.inetd
32 Source2: %{name}-cvslockd.init
34 Patch0: %{name}-system-ltdl.patch
35 Patch1: %{name}-system-pcre.patch
36 Patch2: %{name}-system-zlib.patch
37 Patch3: %{name}-system-ntlm.patch
38 Patch4: %{name}-crypt.patch
39 Patch5: %{name}-build.patch
40 Patch6: %{name}-nospam.patch
41 Patch7: %{name}-ipv6.patch
42 Patch8: %{name}-fixes.patch
43 Patch9: %{name}-gcc4.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: heimdal-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}
116 Requires: %{name}-cvslockd = %{version}-%{release}
120 Obsoletes: cvs-nserver-common
121 Obsoletes: cvs-nserver-nserver
122 Obsoletes: cvs-nserver-pserver
125 Config files for rc-inetd that are necessary to run CVS in pserver
129 Summary: locking daemon
130 Group: Development/Version Control
132 %description cvslockd
135 %package database-mysql
136 Summary: MySQL Database support for CVSNT
137 Group: Development/Version Control
138 Requires: %{name} = %{version}-%{release}
140 %description database-mysql
141 MySQL Database support for CVSNT.
143 %package database-odbc
144 Summary: ODBC support for CVSNT
145 Group: Development/Version Control
146 Requires: %{name} = %{version}-%{release}
148 %description database-odbc
149 ODBC support for CVSNT.
151 %package database-postgres
152 Summary: PostgreSQL Database support for CVSNT
153 Group: Development/Version Control
154 Requires: %{name} = %{version}-%{release}
156 %description database-postgres
157 PostgreSQL Database support for CVSNT.
159 %package database-sqlite
160 Summary: SQLite Database support for CVSNT
161 Group: Development/Version Control
162 Requires: %{name} = %{version}-%{release}
164 %description database-sqlite
165 SQLite Database support for CVSNT.
167 %package protocol-gserver
168 Summary: gserver (Kerberos GSS) protocol support for CVSNT
169 Group: Development/Version Control
170 Requires: %{name} = %{version}-%{release}
172 %description protocol-gserver
173 gserver (Kerberos GSS) support for CVSNT.
175 %package protocol-sserver
176 Summary: sserver (SSL) procotol support for for CVSNT
177 Group: Development/Version Control
178 Requires: %{name} = %{version}-%{release}
180 %description protocol-sserver
181 sserver (SSL) protocol support for CVSNT.
183 %package protocol-sspi
184 Summary: SSPI procotol support for for CVSNT
185 Group: Development/Version Control
186 Requires: %{name} = %{version}-%{release}
188 %description protocol-sspi
189 SSPI protocol support for CVSNT.
191 %package protocol-sync
192 Summary: sync procotol support for for CVSNT
193 Group: Development/Version Control
194 Requires: %{name} = %{version}-%{release}
196 %description protocol-sync
197 sync protocol support for CVSNT.
200 Summary: CVSNT version of RCS tools
201 Group: Development/Version Control
202 Requires: %{name} = %{version}-%{release}
206 CVSNT version of RCS tools.
221 rm -rf pcre libltdl zlib protocols/ntlm
236 --enable-lockserver \
240 --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \
249 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
250 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
251 xmlto --skip-validation -o html_cvs html cvs2.dbk
252 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
255 rm -rf $RPM_BUILD_ROOT
256 install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
258 %{__make} install -j1 \
259 DESTDIR=$RPM_BUILD_ROOT
261 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
262 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
263 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt
265 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
266 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
269 rm -rf $RPM_BUILD_ROOT
271 %post -p /sbin/ldconfig
272 %postun -p /sbin/ldconfig
275 /sbin/chkconfig --add cvslockd
276 %service cvslockd restart
279 if [ "$1" = "0" ]; then
280 %service cvslockd stop
281 /sbin/chkconfig --del cvslockd
285 %groupadd -f -g 52 cvs
286 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
289 if [ "$1" = "1" ]; then
290 # Initialise repository
291 %{_bindir}/cvs -d :local:%{_cvs_root} init
292 chown -R cvs:cvs %{_cvs_root}/CVSROOT
294 %service -q rc-inetd reload
297 if [ "$1" = "0" ]; then
300 %service -q rc-inetd reload
304 %defattr(644,root,root,755)
305 %doc doc/html_cvsclient
306 %doc AUTHORS FAQ README
307 %doc triggers/examples/*.txt
308 %dir %{_sysconfdir}/cvsnt
309 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt
310 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
311 %attr(755,root,root) %{_bindir}/cvs
312 %attr(755,root,root) %{_bindir}/cvsnt
313 %attr(755,root,root) %{_bindir}/cvsscript
314 %dir %{_libdir}/cvsnt
315 %dir %{_libdir}/cvsnt/database
316 %dir %{_libdir}/cvsnt/mdns
317 %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so
318 %{_libdir}/cvsnt/mdns/*.la
319 %dir %{_libdir}/cvsnt/protocols
320 %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so
321 %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so
322 %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so
323 %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so
324 %{_libdir}/cvsnt/protocols/enum.la
325 %{_libdir}/cvsnt/protocols/ext.la
326 %{_libdir}/cvsnt/protocols/pserver.la
327 %{_libdir}/cvsnt/protocols/server.la
328 %dir %{_libdir}/cvsnt/triggers
329 %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so
330 %{_libdir}/cvsnt/triggers/*.la
331 %dir %{_libdir}/cvsnt/xdiff
332 %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so
333 %{_libdir}/cvsnt/xdiff/*.la
334 %attr(755,root,root) %{_libdir}/lib*-*.so*
338 %defattr(644,root,root,755)
340 %attr(770,root,cvs) %dir %{_cvs_root}
341 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
344 %defattr(644,root,root,755)
345 %attr(755,root,root) %{_bindir}/cvslockd
346 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
348 %files database-mysql
349 %defattr(644,root,root,755)
350 %doc triggers/sql/*_mysql.sql
351 %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so
352 %{_libdir}/cvsnt/database/mysql.la
355 %defattr(644,root,root,755)
356 %doc triggers/sql/*_oracle.sql
357 %doc triggers/sql/*_mssql.sql
358 %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so
359 %{_libdir}/cvsnt/database/odbc.la
361 %files database-postgres
362 %defattr(644,root,root,755)
363 %doc triggers/sql/*_postgres.sql
364 %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so
365 %{_libdir}/cvsnt/database/postgres.la
367 %files database-sqlite
368 %defattr(644,root,root,755)
369 %doc triggers/sql/*_sqlite.sql
370 %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so
371 %{_libdir}/cvsnt/database/sqlite.la
374 %files protocol-gserver
375 %defattr(644,root,root,755)
376 %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so
377 %{_libdir}/cvsnt/protocols/gserver.la
380 %files protocol-sserver
381 %defattr(644,root,root,755)
382 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so
383 %{_libdir}/cvsnt/protocols/sserver.la
386 %defattr(644,root,root,755)
387 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so
388 %{_libdir}/cvsnt/protocols/sspi.la
391 %defattr(644,root,root,755)
392 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sync.so
393 %{_libdir}/cvsnt/protocols/sync.la
396 %defattr(644,root,root,755)
397 %attr(755,root,root) %{_bindir}/co
398 %attr(755,root,root) %{_bindir}/rcsdiff
399 %attr(755,root,root) %{_bindir}/rlog