]> git.pld-linux.org Git - packages/cvsnt.git/blob - cvsnt.spec
a2135a78d69aafe52dd1e9e7c551a64cfb06f265
[packages/cvsnt.git] / cvsnt.spec
1 #
2 # Conditional build:
3 %bcond_without  kerberos                # build without krb5 support
4 #
5 # TODO:
6 # - stay with STABLE 2.5.04 line as soon as it becomes stable
7 # - check server mode and default config
8 # - unpackaged:
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
17 Name:           cvsnt
18 Version:        2.5.04.3055
19 Release:        2
20 License:        GPL v2+/LGPL v2+
21 Group:          Development/Version Control
22 # http://www.cvsnt.org/wiki/Download
23 Source0:        http://www.cvsnt.org/archive/%{name}-%{version}.tar.gz
24 # Source0-md5:  74104668c086d9ece2cf1bb1a8fc60be
25 Source1:        %{name}.inetd
26 Source2:        %{name}-cvslockd.init
27 Source3:        %{name}.pam
28 Patch0:         %{name}-system-ltdl.patch
29 Patch1:         %{name}-system-pcre.patch
30 Patch2:         %{name}-system-zlib.patch
31 Patch3:         %{name}-system-ntlm.patch
32 Patch4:         %{name}-crypt.patch
33 URL:            http://www.cvsnt.org/
34 BuildRequires:  autoconf >= 2.58
35 BuildRequires:  automake >= 1:1.7.9
36 BuildRequires:  docbook-style-xsl
37 BuildRequires:  expat-devel
38 BuildRequires:  howl-devel
39 %{?with_kerberos:BuildRequires: krb5-devel}
40 BuildRequires:  libltdl-devel
41 BuildRequires:  libntlm-devel >= 0.3.6
42 BuildRequires:  libstdc++-devel
43 BuildRequires:  libxml2-devel
44 BuildRequires:  mysql-devel
45 BuildRequires:  openssl-devel
46 BuildRequires:  pam-devel
47 BuildRequires:  pcre-devel
48 BuildRequires:  postgresql-devel
49 BuildRequires:  rpmbuild(macros) >= 1.268
50 BuildRequires:  sqlite3-devel
51 BuildRequires:  unixODBC-devel
52 BuildRequires:  xmlto
53 BuildRequires:  zlib-devel
54 Requires(post): /sbin/ldconfig
55 Provides:       cvs-client = %{version}
56 Obsoletes:      cvs-client
57 Obsoletes:      cvs-nserver-client
58 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59
60 %define         _cvs_root       /var/lib/cvs
61
62 %description
63 CVS means Concurrent Version System; it is a version control system
64 which can record the history of your files (usually, but not always,
65 source code). CVS only stores the differences between versions,
66 instead of every version of every file you've ever created. CVS also
67 keeps a log of who and when made some changes and why they occurred,
68 among other aspects.
69
70 CVSNT Server features include:
71 - Access control for securing projects and branches.
72 - Detailed audit and metrics recorded in an SQL database.
73 - Authentication with Active Directory.
74 - Tracking everything about the change - including whether it was
75   merged from somewhere, belongs to a problem report or was part of a
76   change set.
77 - A control panel to manage email notification of changes, defect
78   tracking integration, and more.
79 - Integrated repository synchronisation (for fail-over servers).
80 - Change set support (group changes by defect number).
81 - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames.
82 - When operating in UTF-8 (Unicode) mode it can automatically
83   translate filename encoding for any client.
84 - Plug-ins for email notification.
85 - Helps make merging branches easier with its "Mergepoint" feature.
86 - Native servers available for Mac OS X, Windows, Linux, Solaris,
87   HPUX.
88 - Supports reserved and unreserved versioning methodologies.
89 - CVSAPI for integration into 3rd party products.
90 - Script, COM and 3GL interface for triggers and integration into 3rd
91   party tools (such as defect tracking)
92
93 %package pserver
94 Summary:        rc-inetd config files to run CVS pserver
95 Summary(pl.UTF-8):      Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
96 Group:          Development/Version Control
97 Requires(post): fileutils
98 Requires(postun):       /usr/sbin/groupdel
99 Requires(postun):       /usr/sbin/userdel
100 Requires(pre):  /bin/id
101 Requires(pre):  /usr/bin/getgid
102 Requires(pre):  /usr/sbin/groupadd
103 Requires(pre):  /usr/sbin/useradd
104 Requires:       %{name} = %{version}-%{release}
105 Requires:       rc-inetd
106 Provides:       group(cvs)
107 Provides:       user(cvs)
108 Obsoletes:      cvs-nserver-common
109 Obsoletes:      cvs-nserver-nserver
110 Obsoletes:      cvs-nserver-pserver
111
112 %description pserver
113 Config files for rc-inetd that are necessary to run CVS in pserver
114 mode.
115
116 %package database-mysql
117 Summary:        MySQL Database support for CVSNT
118 Group:          Development/Version Control
119 Requires:       %{name} = %{version}-%{release}
120
121 %description database-mysql
122 MySQL Database support for CVSNT.
123
124 %package database-odbc
125 Summary:        ODBC support for CVSNT
126 Group:          Development/Version Control
127 Requires:       %{name} = %{version}-%{release}
128
129 %description database-odbc
130 ODBC support for CVSNT.
131
132 %package database-postgres
133 Summary:        PostgreSQL Database support for CVSNT
134 Group:          Development/Version Control
135 Requires:       %{name} = %{version}-%{release}
136
137 %description database-postgres
138 PostgreSQL Database support for CVSNT.
139
140 %package database-sqlite
141 Summary:        SQLite Database support for CVSNT
142 Group:          Development/Version Control
143 Requires:       %{name} = %{version}-%{release}
144
145 %description database-sqlite
146 SQLite Database support for CVSNT.
147
148 %package protocol-gserver
149 Summary:        gserver (Kerberos GSS) protocol support for CVSNT
150 Group:          Development/Version Control
151 Requires:       %{name} = %{version}-%{release}
152
153 %description protocol-gserver
154 gserver (Kerberos GSS) support for CVSNT.
155
156 %package protocol-sserver
157 Summary:        sserver (SSL) procotol support for for CVSNT
158 Group:          Development/Version Control
159 Requires:       %{name} = %{version}-%{release}
160
161 %description protocol-sserver
162 sserver (SSL) protocol support for CVSNT.
163
164 %package protocol-sspi
165 Summary:        SSPI procotol support for for CVSNT
166 Group:          Development/Version Control
167 Requires:       %{name} = %{version}-%{release}
168
169 %description protocol-sspi
170 SSPI protocol support for CVSNT.
171
172 %package protocol-sync
173 Summary:        sync procotol support for for CVSNT
174 Group:          Development/Version Control
175 Requires:       %{name} = %{version}-%{release}
176
177 %description protocol-sync
178 sync protocol support for CVSNT.
179
180 %package rcs
181 Summary:        CVSNT version of RCS tools
182 Group:          Development/Version Control
183 Requires:       %{name} = %{version}-%{release}
184 Provides:       rcs
185
186 %description rcs
187 CVSNT version of RCS tools.
188
189 %prep
190 %setup -q
191 %patch0 -p1
192 %patch1 -p1
193 %patch2 -p1
194 %patch3 -p1
195 %patch4 -p0
196
197 rm -rf pcre libltdl zlib protocols/ntlm
198
199 %build
200 %{__libtoolize}
201 %{__aclocal}
202 %{__autoconf}
203 %{__automake}
204 %configure \
205         --enable-mdns \
206         --enable-sqlite \
207         --enable-mysql \
208         --enable-odbc \
209         --enable-postgres \
210         --enable-pam \
211         --enable-server \
212         --enable-lockserver \
213         --enable-pserver \
214         --enable-ext \
215         --enable-rsh \
216         --%{?with_kerberos:en}%{!?with_kerberos:dis}able-gserver \
217         --enable-sserver \
218         --enable-sspi \
219         --enable-enum \
220         --enable-rcs
221
222 %{__make}
223
224 cd doc
225 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
226 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
227 xmlto --skip-validation -o html_cvs html cvs2.dbk
228 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
229
230 %install
231 rm -rf $RPM_BUILD_ROOT
232 install -d $RPM_BUILD_ROOT{/etc/{pam.d,rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
233
234 %{__make} install -j1 \
235         DESTDIR=$RPM_BUILD_ROOT
236
237 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
238 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
239 install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/cvsnt
240
241 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
242 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
243
244 %clean
245 rm -rf $RPM_BUILD_ROOT
246
247 %post
248 /sbin/ldconfig
249 /sbin/chkconfig --add cvslockd
250 %service cvslockd restart
251
252 %preun
253 if [ "$1" = "0" ]; then
254         %service cvslockd stop
255         /sbin/chkconfig --del cvslockd
256 fi
257
258 %postun -p /sbin/ldconfig
259
260 %pre pserver
261 %groupadd -f -g 52 cvs
262 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
263
264 %post pserver
265 if [ "$1" = "1" ]; then
266         # Initialise repository
267         %{_bindir}/cvs -d :local:%{_cvs_root} init
268         chown -R cvs:cvs %{_cvs_root}/CVSROOT
269 fi
270 %service -q rc-inetd reload
271
272 %postun pserver
273 if [ "$1" = "0" ]; then
274         %userremove cvs
275         %groupremove cvs
276         %service -q rc-inetd reload
277 fi
278
279 %files
280 %defattr(644,root,root,755)
281 %doc doc/html_cvsclient
282 %doc AUTHORS FAQ README
283 %doc triggers/examples/*.txt
284 %dir %{_sysconfdir}/cvsnt
285 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/cvsnt
286 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
287 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
288 %attr(755,root,root) %{_bindir}/cvs
289 %attr(755,root,root) %{_bindir}/cvslockd
290 %attr(755,root,root) %{_bindir}/cvsnt
291 %attr(755,root,root) %{_bindir}/cvsscript
292 %dir %{_libdir}/cvsnt
293 %dir %{_libdir}/cvsnt/database
294 %dir %{_libdir}/cvsnt/mdns
295 %attr(755,root,root) %{_libdir}/cvsnt/mdns/*.so
296 %{_libdir}/cvsnt/mdns/*.la
297 %dir %{_libdir}/cvsnt/protocols
298 %attr(755,root,root) %{_libdir}/cvsnt/protocols/enum.so
299 %attr(755,root,root) %{_libdir}/cvsnt/protocols/ext.so
300 %attr(755,root,root) %{_libdir}/cvsnt/protocols/pserver.so
301 %attr(755,root,root) %{_libdir}/cvsnt/protocols/server.so
302 %{_libdir}/cvsnt/protocols/enum.la
303 %{_libdir}/cvsnt/protocols/ext.la
304 %{_libdir}/cvsnt/protocols/pserver.la
305 %{_libdir}/cvsnt/protocols/server.la
306 %dir %{_libdir}/cvsnt/triggers
307 %attr(755,root,root) %{_libdir}/cvsnt/triggers/*.so
308 %{_libdir}/cvsnt/triggers/*.la
309 %dir %{_libdir}/cvsnt/xdiff
310 %attr(755,root,root) %{_libdir}/cvsnt/xdiff/*.so
311 %{_libdir}/cvsnt/xdiff/*.la
312 %attr(755,root,root) %{_libdir}/lib*-*.so*
313 %{_mandir}/man[15]/*
314
315 %files pserver
316 %defattr(644,root,root,755)
317 %doc doc/html_cvs
318 %attr(770,root,cvs) %dir %{_cvs_root}
319 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
320
321 %files database-mysql
322 %defattr(644,root,root,755)
323 %doc triggers/sql/*_mysql.sql
324 %attr(755,root,root) %{_libdir}/cvsnt/database/mysql.so
325 %{_libdir}/cvsnt/database/mysql.la
326
327 %files database-odbc
328 %defattr(644,root,root,755)
329 %doc triggers/sql/*_oracle.sql
330 %doc triggers/sql/*_mssql.sql
331 %attr(755,root,root) %{_libdir}/cvsnt/database/odbc.so
332 %{_libdir}/cvsnt/database/odbc.la
333
334 %files database-postgres
335 %defattr(644,root,root,755)
336 %doc triggers/sql/*_postgres.sql
337 %attr(755,root,root) %{_libdir}/cvsnt/database/postgres.so
338 %{_libdir}/cvsnt/database/postgres.la
339
340 %files database-sqlite
341 %defattr(644,root,root,755)
342 %doc triggers/sql/*_sqlite.sql
343 %attr(755,root,root) %{_libdir}/cvsnt/database/sqlite.so
344 %{_libdir}/cvsnt/database/sqlite.la
345
346 %if %{with kerberos}
347 %files protocol-gserver
348 %defattr(644,root,root,755)
349 %attr(755,root,root) %{_libdir}/cvsnt/protocols/gserver.so
350 %{_libdir}/cvsnt/protocols/gserver.la
351 %endif
352
353 %files protocol-sserver
354 %defattr(644,root,root,755)
355 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sserver.so
356 %{_libdir}/cvsnt/protocols/sserver.la
357
358 %files protocol-sspi
359 %defattr(644,root,root,755)
360 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sspi.so
361 %{_libdir}/cvsnt/protocols/sspi.la
362
363 %files protocol-sync
364 %defattr(644,root,root,755)
365 %attr(755,root,root) %{_libdir}/cvsnt/protocols/sync.so
366 %{_libdir}/cvsnt/protocols/sync.la
367
368 %files rcs
369 %defattr(644,root,root,755)
370 %attr(755,root,root) %{_bindir}/co
371 %attr(755,root,root) %{_bindir}/rcsdiff
372 %attr(755,root,root) %{_bindir}/rlog
This page took 0.071659 seconds and 3 git commands to generate.