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