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