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