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