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