rearranged some scriptlets to avoid comments after '-p /sbin/ldconfig'
[util-vserver.git] / util-vserver / util-vserver.spec.in
1 # $Id$
2
3 ## This package understands the following switches:
4 ## --without dietlibc        ...   disable usage of dietlibc
5 ## --without xalan           ...   do not require/use the xalan xslt processor
6
7 %define confdir         %_sysconfdir/vservers
8 %define confdefaultdir  %confdir/.defaults
9 %define pkglibdir       %_libdir/%name
10 %define __chattr        /usr/bin/chattr
11 %define chkconfig       /sbin/chkconfig
12
13 Summary:        Linux virtual server utilities
14 Name:           @PACKAGE@
15 Version:        @VERSION@
16 Release:        0.5
17 Epoch:          0
18 License:        GPL
19 Group:          System Environment/Base
20 URL:            http://savannah.nongnu.org/projects/util-vserver/
21 Source0:        http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
22 BuildRoot:      %_tmppath/%name-%version-%release-root
23 Requires:       init(%name)
24 Requires:       %name-core = %epoch:%version-%release
25 Requires:       %name-lib  = %epoch:%version-%release
26 Requires:       diffutils mktemp sed
27 Provides:       vserver = %epoch:%version-%release
28 Obsoletes:      vserver < %epoch:%version
29 BuildRequires:  mount vconfig gawk iproute iptables
30 BuildRequires:  gcc-c++ wget
31 BuildRequires:  e2fsprogs-devel
32 BuildRequires:  doxygen tetex-latex
33 Requires(post):         %__chattr
34 Requires(pre):          %pkglibdir
35 Requires(postun):       %pkglibdir
36 %{!?_without_dietlibc:BuildRequires:    dietlibc >= 0:0.24}
37 %{!?_without_xalan:BuildRequires:       xalan-j}
38
39 %package lib
40 Summary:                Dynamic libraries for util-vserver
41 Group:                  System Environment/Libraries
42
43 %package core
44 Summary:                The core-utilities for util-vserver
45 Group:                  Applications/System
46 Requires:               util-linux
47
48 %package build
49 Summary:                Tools which can be used to build vservers
50 Group:                  Applications/System
51 Requires:               rpm apt wget binutils tar e2fsprogs
52 Requires:               %name = %epoch:%version-%release
53 Requires(pre):          %confdir
54 Requires(postun):       %confdir
55
56 %package sysv
57 Summary:                SysV-initscripts for vserver
58 Group:                  System Environment/Base
59 Provides:               init(%name) = sysv
60 Requires:               make diffutils
61 Requires:               initscripts
62 Requires:               %name = %epoch:%version-%release
63 Requires(post):         %chkconfig
64 Requires(preun):        %chkconfig
65 Requires(pre):          %_initrddir %pkglibdir
66 requires(postun):       %_initrddir %pkglibdir
67
68 %package legacy
69 Summary:                Legacy utilities for util-vserver
70 Group:                  Applications/System
71 Requires:               %name = %epoch:%version-%release
72 Requires(post):         %chkconfig
73 Requires(preun):        %chkconfig
74 Requires(pre):          %_initrddir %pkglibdir
75 requires(postun):       %_initrddir %pkglibdir
76
77 %package devel
78 Summary:                Header-files and libraries which are needed to develop vserver based applications
79 Group:                  Development/Libraries
80 Requires:               pkgconfig
81
82
83 %description
84 This package provides the components and a framework to setup virtual
85 servers.  A virtual server runs inside a linux server. It is nevertheless
86 highly independent. As such, you can run various services with normal
87 configuration. The various vservers can't interact with each other and
88 can't interact with services in the main server.
89
90 This requires a special kernel supporting the new new_s_context and
91 set_ipv4root system call.
92
93 %description lib
94 %description core
95 %description build
96 %description sysv
97 %description legacy
98 %description devel
99
100
101 %prep
102 %setup -q
103
104
105 %build
106 %configure --with-initrddir=%_initrddir --enable-release \
107            %{?_without_dietlibc:--disable-dietlibc}
108
109 %__make %{?_smp_mflags} all
110 %__make %{?_smp_mflags} doc
111
112
113 %install
114 rm -rf $RPM_BUILD_ROOT
115 %__make DESTDIR="$RPM_BUILD_ROOT" install install-distribution
116
117 rm -f $RPM_BUILD_ROOT/%_libdir/*.la
118
119 MANIFEST_CONFIG='%config' \
120 MANIFEST_CONFIG_NOREPLACE='%config(noreplace)' \
121 contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
122
123
124 %check || :
125 %__make check
126
127
128 %clean
129 rm -rf $RPM_BUILD_ROOT
130
131
132 %post
133 f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers             "$f"
134 f="%confdefaultdir/run.rev";  test -L "$f" -o -e "$f" || ln -s /var/run/vservers.rev "$f"
135
136 %_sbindir/setattr --barrier /vservers || :
137
138
139 %post   lib -p /sbin/ldconfig
140 %postun lib -p /sbin/ldconfig
141
142
143 %post sysv
144 %chkconfig --add vservers-default
145 %chkconfig --add vprocunhide
146
147
148
149 %preun sysv
150 test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
151
152 test "$1" != 0 || %chkconfig --del vprocunhide
153 test "$1" != 0 || %chkconfig --del vservers-default
154
155
156 %postun sysv
157 test "$1" = 0  || %_initrddir/vprocunhide condrestart >/dev/null || :
158
159
160 ## Temporary workaround to remove old v_* files; it will conflict
161 ## somehow with the -legacy package but can be fixed by reinstalling
162 ## this package.
163 ## TODO: remove me in the final .spec file
164 %define v_services      httpd named portmap sendmail smb sshd xinetd gated
165 %triggerun sysv -- util-vserver-sysv < 0.30.198
166 for i in %v_services; do
167         %chkconfig --del v_$i || :
168 done
169
170
171 %post legacy
172 %chkconfig --add rebootmgr
173 %chkconfig --add vservers-legacy
174
175 for i in %v_services; do
176         %chkconfig --add v_$i
177 done
178
179
180 %preun legacy
181 test "$1" != 0 || %_initrddir/rebootmgr   stop &>/dev/null || :
182
183 test "$1" != 0 || for i in %v_services; do
184         %chkconfig --del v_$i
185 done
186
187 test "$1" != 0 || %chkconfig --del rebootmgr
188 test "$1" != 0 || %chkconfig --del vservers-legacy
189
190 %postun legacy
191 test "$1" = 0  || %_initrddir/rebootmgr   condrestart >/dev/null || :
192
193
194 %files -f %name-base.list
195 %defattr(-,root,root,-)
196 %doc AUTHORS COPYING ChangeLog NEWS README THANKS
197 %doc doc/*.html doc/*.css
198 /sbin/vshelper
199 %dir %confdir
200 %dir %confdefaultdir
201 %dir %confdefaultdir/apps
202 %dir %confdefaultdir/files
203 %dir %pkglibdir/defaults
204 %ghost %confdefaultdir/vdirbase
205 %ghost %confdefaultdir/run.rev
206
207 %attr(000,root,root) %dir /vservers/.pkg
208 %attr(000,root,root) %dir /vservers
209
210 %dir /var/run/vservers
211 %dir /var/run/vservers.rev
212 %dir /var/run/vshelper
213
214
215 %files lib -f %name-lib.list
216 %files sysv -f %name-sysv.list
217
218
219 %files core -f %name-core.list
220 %defattr(-,root,root,-)
221 %dir %pkglibdir
222
223
224 %files build -f %name-build.list
225 %defattr(-,root,root,-)
226 %dir %confdir/.distributions
227 %dir %confdir/.distributions/*
228 %dir %confdir/.distributions/*/apt
229
230
231 %files legacy -f %name-legacy.list
232 %defattr(-,root,root,-)
233 %dir %pkglibdir/legacy
234
235
236 %files devel -f %name-devel.list
237 %defattr(-,root,root,-)
238 %doc lib/apidoc/latex/refman.pdf
239 %doc lib/apidoc/html
240
241
242 %changelog
243 * Wed Jan 26 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.198-0.3
244 - updated BuildRequires:
245 - use 'setattr --barrier' instead of 'chattr +t' in the %post scriptlet
246 - moved the v_* initscripts to legacy 
247
248 * Thu Sep  9 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.194-0
249 - documented switches for 'rpmbuild'
250
251 * Wed May 26 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.215-0
252 - (re)added the MANIFEST_* variables which were lost some time ago;
253   this will preserve %%config files...
254
255 * Mon Mar 15 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.202-0
256 - use file-list for sysv scripts also
257
258 * Sat Mar  6 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.198-0
259 - added vprocunhide-service support
260 - added doxygen support
261 - updated Requires:
262
263 * Wed Oct  1 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.5-0
264 - Initial build.