use $(LIBENSCVECTOR) instead of libensc_vector.a
[util-vserver.git] / util-vserver / util-vserver.spec.in
index 8db3194..c65f61c 100644 (file)
@@ -1,35 +1,43 @@
 # $Id$
 
-%define confdir                %_sysconfdir/vservers
-%define confdefaultdir %confdir/.defaults
-%define pkglibdir      %_libdir/%name
-%define __chattr       /usr/bin/chattr
-%define chkconfig      /sbin/chkconfig
+## This package understands the following switches:
+## --without dietlibc        ...   disable usage of dietlibc
+## --without xalan           ...   do not require/use the xalan xslt processor
+
+%global confdir                %_sysconfdir/vservers
+%global confdefaultdir %confdir/.defaults
+%global pkglibdir      %_libdir/%name
+%global __chattr       /usr/bin/chattr
+%global chkconfig      /sbin/chkconfig
+
+%global _localstatedir %_var
+
+
+%{!?release_func:%global release_func() %1}
 
 Summary:       Linux virtual server utilities
 Name:          @PACKAGE@
 Version:       @VERSION@
-Release:       0
-Epoch:         0
+Release:       %release_func 0
 License:       GPL
 Group:         System Environment/Base
 URL:           http://savannah.nongnu.org/projects/util-vserver/
 Source0:       http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
 BuildRoot:     %_tmppath/%name-%version-%release-root
 Requires:      init(%name)
-Requires:      %name-core = %epoch:%version-%release
-Requires:      %name-lib  = %epoch:%version-%release
+Requires:      %name-core = %version-%release
+Requires:      %name-lib  = %version-%release
 Requires:      diffutils mktemp sed
-Provides:      vserver = %epoch:%version-%release
-Obsoletes:     vserver < %epoch:%version
-BuildRequires: mount vconfig gawk iproute
+Provides:      vserver = %version-%release
+Obsoletes:     vserver < %version
+BuildRequires: mount vconfig gawk iproute iptables
 BuildRequires: gcc-c++ wget
-BuildRequires: e2fsprogs-devel
+BuildRequires: e2fsprogs-devel beecrypt-devel
 BuildRequires: doxygen tetex-latex
 Requires(post):                %__chattr
 Requires(pre):         %pkglibdir
 Requires(postun):      %pkglibdir
-%{!?_without_dietlibc:BuildRequires:   dietlibc >= 0:0.24}
+%{!?_without_dietlibc:BuildRequires:   dietlibc >= 0:0.25}
 %{!?_without_xalan:BuildRequires:      xalan-j}
 
 %package lib
@@ -45,7 +53,7 @@ Requires:             util-linux
 Summary:               Tools which can be used to build vservers
 Group:                 Applications/System
 Requires:              rpm apt wget binutils tar e2fsprogs
-Requires:              %name = %epoch:%version-%release
+Requires:              %name = %version-%release
 Requires(pre):         %confdir
 Requires(postun):      %confdir
 
@@ -55,7 +63,7 @@ Group:                        System Environment/Base
 Provides:              init(%name) = sysv
 Requires:              make diffutils
 Requires:              initscripts
-Requires:              %name = %epoch:%version-%release
+Requires:              %name = %version-%release
 Requires(post):                %chkconfig
 Requires(preun):       %chkconfig
 Requires(pre):         %_initrddir %pkglibdir
@@ -64,7 +72,7 @@ requires(postun):     %_initrddir %pkglibdir
 %package legacy
 Summary:               Legacy utilities for util-vserver
 Group:                 Applications/System
-Requires:              %name = %epoch:%version-%release
+Requires:              %name = %version-%release
 Requires(post):                %chkconfig
 Requires(preun):       %chkconfig
 Requires(pre):         %_initrddir %pkglibdir
@@ -77,7 +85,7 @@ Requires:             pkgconfig
 
 
 %description
-This package provides the components and a framework to setup virtual
+util-vserver provides the components and a framework to setup virtual
 servers.  A virtual server runs inside a linux server. It is nevertheless
 highly independent. As such, you can run various services with normal
 configuration. The various vservers can't interact with each other and
@@ -87,11 +95,66 @@ This requires a special kernel supporting the new new_s_context and
 set_ipv4root system call.
 
 %description lib
+util-vserver provides the components and a framework to setup virtual
+servers.  A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the shared libraries needed by all other
+'util-vserver' subpackages.
+
 %description core
+util-vserver provides the components and a framework to setup virtual
+servers.  A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains utilities which are required to communicate with
+the Linux-Vserver enabled kernel.
+
+
 %description build
+util-vserver provides the components and a framework to setup virtual
+servers.  A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains utilities which assist in building Vservers.
+
 %description sysv
+util-vserver provides the components and a framework to setup virtual
+servers.  A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the SysV initscripts which start and stop
+VServers and related tools.
+
+
 %description legacy
+util-vserver provides the components and a framework to setup virtual
+servers.  A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains the tools which are needed to work with VServers
+having an old-style configuration.
+
+
 %description devel
+util-vserver provides the components and a framework to setup virtual
+servers.  A virtual server runs inside a linux server. It is nevertheless
+highly independent. As such, you can run various services with normal
+configuration. The various vservers can't interact with each other and
+can't interact with services in the main server.
+
+This package contains header files and libraries which are needed to
+develop VServer related applications.
 
 
 %prep
@@ -126,27 +189,26 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %post
-f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers             "$f"
-f="%confdefaultdir/run.rev";  test -L "$f" -o -e "$f" || ln -s /var/run/vservers.rev "$f"
+test -d /vservers      || mkdir -m0000 /vservers
+test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
 
-%__chattr +t /vservers || :
+f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers                        "$f"
+f="%confdefaultdir/run.rev";  test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f"
+
+%_sbindir/setattr --barrier /vservers || :
+
+
+%post   lib -p /sbin/ldconfig
+%postun lib -p /sbin/ldconfig
 
 
-%define v_services     httpd named portmap sendmail smb sshd xinetd gated
 %post sysv
 %chkconfig --add vservers-default
 %chkconfig --add vprocunhide
 
-for i in %v_services; do
-       %chkconfig --add v_$i
-done
 
 
 %preun sysv
-test "$1" != 0 || for i in %v_services; do
-       %chkconfig --del v_$i
-done
-
 test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
 
 test "$1" != 0 || %chkconfig --del vprocunhide
@@ -157,17 +219,53 @@ test "$1" != 0 || %chkconfig --del vservers-default
 test "$1" = 0  || %_initrddir/vprocunhide condrestart >/dev/null || :
 
 
-%post   lib -p /sbin/ldconfig
-%postun lib -p /sbin/ldconfig
+%triggerin build -- fedora-release
+function copy()
+{
+    base=$1
+    shift
+
+    for i; do
+       test -r "$i" || continue
+
+       target=%confdir/.distributions/.common/pubkeys/$base-$(basename "$i")
+       cp -a "$i" "$target"
+    done
+}
+copy fedora /usr/share/doc/fedora-release-*/RPM-GPG-*
+
+
+%preun build
+test "$1" != 0 || rm -f %confdir/.distributions/.common/pubkeys/fedora-*
+
+
+## Temporary workaround to remove old v_* files; it will conflict
+## somehow with the -legacy package but can be fixed by reinstalling
+## this package.
+## TODO: remove me in the final .spec file
+%define v_services     httpd named portmap sendmail smb sshd xinetd gated
+%triggerun sysv -- util-vserver-sysv < 0.30.198
+for i in %v_services; do
+       %chkconfig --del v_$i || :
+done
 
 
 %post legacy
 %chkconfig --add rebootmgr
 %chkconfig --add vservers-legacy
 
+for i in %v_services; do
+       %chkconfig --add v_$i
+done
+
+
 %preun legacy
 test "$1" != 0 || %_initrddir/rebootmgr   stop &>/dev/null || :
 
+test "$1" != 0 || for i in %v_services; do
+       %chkconfig --del v_$i
+done
+
 test "$1" != 0 || %chkconfig --del rebootmgr
 test "$1" != 0 || %chkconfig --del vservers-legacy
 
@@ -188,12 +286,9 @@ test "$1" = 0  || %_initrddir/rebootmgr   condrestart >/dev/null || :
 %ghost %confdefaultdir/vdirbase
 %ghost %confdefaultdir/run.rev
 
-%attr(000,root,root) %dir /vservers/.pkg
-%attr(000,root,root) %dir /vservers
-
-%dir /var/run/vservers
-%dir /var/run/vservers.rev
-%dir /var/run/vshelper
+%dir %_localstatedir/run/vservers
+%dir %_localstatedir/run/vservers.rev
+%dir %_localstatedir/run/vshelper
 
 
 %files lib -f %name-lib.list
@@ -210,6 +305,10 @@ test "$1" = 0  || %_initrddir/rebootmgr   condrestart >/dev/null || :
 %dir %confdir/.distributions
 %dir %confdir/.distributions/*
 %dir %confdir/.distributions/*/apt
+%dir %confdir/.distributions/.common
+%dir %confdir/.distributions/.common/pubkeys
+%dir %confdefaultdir/apps/vunify
+%dir %confdefaultdir/apps/vunify/hash
 
 
 %files legacy -f %name-legacy.list
@@ -224,6 +323,25 @@ test "$1" = 0  || %_initrddir/rebootmgr   condrestart >/dev/null || :
 
 
 %changelog
+* Thu Mar 24 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.205-0
+- added some %%descriptions
+- copy GPG keys from the system into the confdir
+- buildrequire dietlibc-0.25
+- BuildRequire beecrypt-devel
+- cleanups
+- use %%global instead of %%define
+- removed 'run.rev' as a vserver-local variable and made it a system-wide setting
+
+* Wed Jan 26 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.198-0.3
+- updated BuildRequires:
+- use 'setattr --barrier' instead of 'chattr +t' in the %%post scriptlet
+- moved the v_* initscripts to legacy
+- do not ship the /vservers directory itself; as it is immutable, the
+  extraction will fail else
+
+* Thu Sep  9 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.194-0
+- documented switches for 'rpmbuild'
+
 * Wed May 26 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.215-0
 - (re)added the MANIFEST_* variables which were lost some time ago;
   this will preserve %%config files...