]> git.pld-linux.org Git - packages/cvsnt.git/blob - cvsnt.spec
- kerberos bcond
[packages/cvsnt.git] / cvsnt.spec
1 #
2 # Conditional build:
3 %bcond_without  kerberos                # build without krb5 support
4 #
5 # TODO:
6 # - check server mode and default config
7 # - create cvsnt-database-xyz and cvsnt-protocol-xyz subpackages
8 Summary:        Concurrent Versioning System
9 Summary(pl.UTF-8):      Concurrent Versioning System
10 Name:           cvsnt
11 Version:        2.5.03.2382
12 Release:        0.1
13 License:        GPL v2+/LGPL v2+
14 Group:          Development/Version Control
15 Source0:        http://unifacecm.de/archive/%{name}-%{version}.tar.gz
16 # Source0-md5:  4f7d2e54c5529829a43b089f9b37c86e
17 Source1:        %{name}.inetd
18 Source2:        %{name}-cvslockd.init
19 URL:            http://www.cvsnt.org/
20 BuildRequires:  autoconf >= 2.58
21 BuildRequires:  automake >= 1:1.7.9
22 BuildRequires:  avahi-compat-libdns_sd-devel
23 BuildRequires:  docbook-style-xsl
24 BuildRequires:  expat-devel
25 %{?with_kerberos:BuildRequires: krb5-devel}
26 BuildRequires:  libstdc++-devel
27 BuildRequires:  mysql-devel
28 BuildRequires:  openssl-devel
29 BuildRequires:  pam-devel
30 BuildRequires:  pcre-devel
31 BuildRequires:  postgresql-devel
32 BuildRequires:  rpmbuild(macros) >= 1.268
33 BuildRequires:  sqlite3-devel
34 BuildRequires:  texinfo
35 BuildRequires:  unixODBC-devel
36 BuildRequires:  xmlto
37 BuildRequires:  zlib-devel
38 Provides:       cvs-client = %{version}
39 Obsoletes:      cvs-client
40 Obsoletes:      cvs-nserver-client
41 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42
43 %define         _cvs_root       /var/lib/cvs
44
45 %description
46 CVS means Concurrent Version System; it is a version control system
47 which can record the history of your files (usually, but not always,
48 source code). CVS only stores the differences between versions,
49 instead of every version of every file you've ever created. CVS also
50 keeps a log of who and when made some changes and why they occurred,
51 among other aspects.
52
53 CVSNT Server features include:
54 - Access control for securing projects and branches.
55 - Detailed audit and metrics recorded in an SQL database.
56 - Authentication with Active Directory.
57 - Tracking everything about the change - including whether it was
58   merged from somewhere, belongs to a problem report or was part of a
59   change set.
60 - A control panel to manage email notification of changes, defect
61   tracking integration, and more.
62 - Integrated repository synchronisation (for fail-over servers).
63 - Change set support (group changes by defect number).
64 - Supports UNICODE UTF-8/UCS-2 files and multi-lingual filenames.
65 - When operating in UTF-8 (Unicode) mode it can automatically
66   translate filename encoding for any client.
67 - Plug-ins for email notification.
68 - Helps make merging branches easier with its "Mergepoint" feature.
69 - Native servers available for Mac OS X, Windows, Linux, Solaris,
70   HPUX.
71 - Supports reserved and unreserved versioning methodologies.
72 - CVSAPI for integration into 3rd party products.
73 - Script, COM and 3GL interface for triggers and integration into 3rd
74   party tools (such as defect tracking)
75
76 %package pserver
77 Summary:        rc-inetd config files to run CVS pserver
78 Summary(pl.UTF-8):      Pliki konfiguracyjne rc-inetd do postawienia pservera CVS
79 Group:          Development/Version Control
80 Requires(post): fileutils
81 Requires(postun):       /usr/sbin/groupdel
82 Requires(postun):       /usr/sbin/userdel
83 Requires(pre):  /bin/id
84 Requires(pre):  /usr/bin/getgid
85 Requires(pre):  /usr/sbin/groupadd
86 Requires(pre):  /usr/sbin/useradd
87 Requires:       %{name} = %{version}-%{release}
88 Requires:       rc-inetd
89 Provides:       group(cvs)
90 Provides:       user(cvs)
91 Obsoletes:      cvs-nserver-common
92 Obsoletes:      cvs-nserver-nserver
93 Obsoletes:      cvs-nserver-pserver
94
95 %description pserver
96 Config files for rc-inetd that are necessary to run CVS in pserver
97 mode.
98
99 %prep
100 %setup -q
101
102 %build
103 %configure \
104         --enable-mdns \
105         --enable-sqlite \
106         --enable-mysql \
107         --enable-odbc \
108         --enable-postgres \
109         --enable-pam \
110         --enable-server \
111         --enable-lockserver \
112         --enable-pserver \
113         --enable-ext \
114         --enable-rsh \
115         --enable-gserver \
116         --enable-sserver \
117         --enable-sspi \
118         --enable-enum \
119         --disable-rcs
120
121 %{__make}
122
123 cd doc
124 sed "s/__VERSION__/%{version}/" < cvs.dbk > cvs2.dbk
125 sed "s/__VERSION__/%{version}/" < cvsclient.dbk > cvsclient2.dbk
126 xmlto --skip-validation -o html_cvs html cvs2.dbk
127 xmlto --skip-validation -o html_cvsclient html cvsclient2.dbk
128
129 %install
130 rm -rf $RPM_BUILD_ROOT
131 install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig/rc-inetd},%{_cvs_root}}
132
133 %{__make} install \
134         DESTDIR=$RPM_BUILD_ROOT
135
136 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/%{name}
137 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/cvslockd
138
139 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/PServer{.example,}
140 mv $RPM_BUILD_ROOT%{_sysconfdir}/cvsnt/Plugins{.example,}
141
142 %clean
143 rm -rf $RPM_BUILD_ROOT
144
145 %post
146 /sbin/ldconfig
147 /sbin/chkconfig --add cvslockd
148 %service cvslockd restart
149
150 %preun
151 if [ "$1" = "0" ]; then
152         %service cvslockd stop
153         /sbin/chkconfig --del cvslockd
154 fi
155
156 %postun -p /sbin/ldconfig
157
158 %pre pserver
159 %groupadd -f -g 52 cvs
160 %useradd -g cvs -d %{_cvs_root} -u 52 -s /bin/false cvs
161
162 %post pserver
163 if [ "$1" = "1" ]; then
164         # Initialise repository
165         %{_bindir}/cvs -d :local:%{_cvs_root} init
166         chown -R cvs:cvs %{_cvs_root}/CVSROOT
167 fi
168 %service -q rc-inetd reload
169
170 %postun pserver
171 if [ "$1" = "0" ]; then
172         %userremove cvs
173         %groupremove cvs
174         %service -q rc-inetd reload
175 fi
176
177 %files
178 %defattr(644,root,root,755)
179 %doc doc/html_cvsclient
180 %doc AUTHORS FAQ README
181 %dir %{_sysconfdir}/cvsnt
182 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cvsnt/*
183 %attr(754,root,root) /etc/rc.d/init.d/cvslockd
184 %attr(755,root,root) %{_bindir}/*
185 %dir %{_libdir}/cvsnt
186 %dir %{_libdir}/cvsnt/*
187 %attr(755,root,root) %{_libdir}/cvsnt/*/*.so
188 %{_libdir}/cvsnt/*/*.la
189 %attr(755,root,root) %{_libdir}/lib*-*.so*
190 %{_mandir}/man[15]/*
191
192 %files pserver
193 %defattr(644,root,root,755)
194 %doc doc/html_cvs
195 %attr(770,root,cvs) %dir %{_cvs_root}
196 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/cvsnt
This page took 0.081641 seconds and 4 git commands to generate.