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