initial checkin
[util-vserver.git] / util-vserver / util-vserver.spec.in
index d16f113..01f05c6 100644 (file)
@@ -1,7 +1,16 @@
 # $Id$
 
+## This package understands the following switches:
+## --without dietlibc        ...   disable usage of dietlibc
+## --without xalan           ...   do not require/use the xalan xslt processor
+
 %define confdir                %_sysconfdir/vservers
+%define confdefaultdir %confdir/.defaults
 %define pkglibdir      %_libdir/%name
+%define __chattr       /usr/bin/chattr
+%define chkconfig      /sbin/chkconfig
+
+%define _localstatedir %_var
 
 Summary:       Linux virtual server utilities
 Name:          @PACKAGE@
@@ -13,36 +22,64 @@ 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(@PACKAGE@)
+Requires:      init(%name)
 Requires:      %name-core = %epoch:%version-%release
+Requires:      %name-lib  = %epoch:%version-%release
+Requires:      diffutils mktemp sed
 Provides:      vserver = %epoch:%version-%release
 Obsoletes:     vserver < %epoch:%version
-BuildRequires: mount vconfig gawk iproute
-BuildRequires: gcc-c++
+BuildRequires: mount vconfig gawk iproute iptables
+BuildRequires: gcc-c++ wget
 BuildRequires: e2fsprogs-devel
-%{!?_without_dietlibc:BuildRequires:   dietlibc >= 0:0.22}
+BuildRequires: doxygen tetex-latex
+Requires(post):                %__chattr
+Requires(pre):         %pkglibdir
+Requires(postun):      %pkglibdir
+%{!?_without_dietlibc:BuildRequires:   dietlibc >= 0:0.24}
+%{!?_without_xalan:BuildRequires:      xalan-j}
+
+%package lib
+Summary:               Dynamic libraries for util-vserver
+Group:                 System Environment/Libraries
 
 %package core
-Summary:       The core-utilities for util-vserver
-Group:         Applications/System
+Summary:               The core-utilities for util-vserver
+Group:                 Applications/System
+Requires:              util-linux
 
 %package build
-Summary:       Tools which can be used to build vservers
-Group:         Applications/System
-Requires:      %name = %epoch:%version-%release
-Requires:      rpm apt
+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(pre):         %confdir
+Requires(postun):      %confdir
 
 %package sysv
-Summary:       SysV-initscripts for vserver
-Group:         System Environment/Base
-Provides:      init(@PACKAGE@)
-Requires:      %name = %epoch:%version-%release
-Requires:      initscripts
+Summary:               SysV-initscripts for vserver
+Group:                 System Environment/Base
+Provides:              init(%name) = sysv
+Requires:              make diffutils
+Requires:              initscripts
+Requires:              %name = %epoch:%version-%release
+Requires(post):                %chkconfig
+Requires(preun):       %chkconfig
+Requires(pre):         %_initrddir %pkglibdir
+requires(postun):      %_initrddir %pkglibdir
+
+%package legacy
+Summary:               Legacy utilities for util-vserver
+Group:                 Applications/System
+Requires:              %name = %epoch:%version-%release
+Requires(post):                %chkconfig
+Requires(preun):       %chkconfig
+Requires(pre):         %_initrddir %pkglibdir
+requires(postun):      %_initrddir %pkglibdir
 
 %package devel
-Summary:       Header-files and libraries which are needed to develop vserver based applications
-Group:         Development/Libraries
-Requires:      pkgconfig
+Summary:               Header-files and libraries which are needed to develop vserver based applications
+Group:                 Development/Libraries
+Requires:              pkgconfig
 
 
 %description
@@ -55,9 +92,11 @@ can't interact with services in the main server.
 This requires a special kernel supporting the new new_s_context and
 set_ipv4root system call.
 
+%description lib
 %description core
 %description build
 %description sysv
+%description legacy
 %description devel
 
 
@@ -68,137 +107,162 @@ set_ipv4root system call.
 %build
 %configure --with-initrddir=%_initrddir --enable-release \
            %{?_without_dietlibc:--disable-dietlibc}
-%__make %{?_smp_mflags}
+
+%__make %{?_smp_mflags} all
+%__make %{?_smp_mflags} doc
 
 
 %install
 rm -rf $RPM_BUILD_ROOT
-%__make DESTDIR="$RPM_BUILD_ROOT" install install-vserverdir
+%__make DESTDIR="$RPM_BUILD_ROOT" install install-distribution
+
+rm -f $RPM_BUILD_ROOT/%_libdir/*.la
+
+MANIFEST_CONFIG='%config' \
+MANIFEST_CONFIG_NOREPLACE='%config(noreplace)' \
+contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
+
+
+%check || :
+%__make check
 
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 
-%define v_services     httpd named portmap sendmail smb sshd xinetd
+%post
+test -d /vservers      || mkdir -m0000 /vservers
+test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
+
+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
+
+
 %post sysv
-/sbin/chkconfig --add vservers
-/sbin/chkconfig --add rebootmgr
+%chkconfig --add vservers-default
+%chkconfig --add vprocunhide
+
+
+
+%preun sysv
+test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
+
+test "$1" != 0 || %chkconfig --del vprocunhide
+test "$1" != 0 || %chkconfig --del vservers-default
+
+
+%postun sysv
+test "$1" = 0  || %_initrddir/vprocunhide condrestart >/dev/null || :
+
 
+## 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
-       /sbin/chkconfig --add v_$i
+       %chkconfig --del v_$i || :
 done
 
 
-%preun sysv
-test "$1" != 0 || for i in %v_services; do
-       /sbin/chkconfig --del v_$i
+%post legacy
+%chkconfig --add rebootmgr
+%chkconfig --add vservers-legacy
+
+for i in %v_services; do
+       %chkconfig --add v_$i
 done
 
-test "$1" != 0 || %{_initrddir}/rebootmgr stop &>/dev/null || :
-test "$1" != 0 || /sbin/chkconfig --del rebootmgr
-test "$1" != 0 || /sbin/chkconfig --del vservers
 
+%preun legacy
+test "$1" != 0 || %_initrddir/rebootmgr   stop &>/dev/null || :
 
-%postun sysv
-test "$1" = 0  || %{_initrddir}/rebootmgr condrestart >/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
+
+%postun legacy
+test "$1" = 0  || %_initrddir/rebootmgr   condrestart >/dev/null || :
 
 
-%files
+%files -f %name-base.list
 %defattr(-,root,root,-)
 %doc AUTHORS COPYING ChangeLog NEWS README THANKS
-%doc doc/FAQ.txt
-%pkglibdir
-%exclude %pkglibdir/distributions
-%exclude %pkglibdir/distrib-info
-%exclude %pkglibdir/rpm-fake.so
-%exclude %pkglibdir/util-vserver-vars
-%exclude %pkglibdir/vapt-get*
-%exclude %pkglibdir/vrpm*
-%exclude %pkglibdir/vserver-build*
-%exclude %pkglibdir/vserver-setup*
-%exclude %pkglibdir/vunify
-%_sbindir/rebootmgr
-%_sbindir/vdu
-%_sbindir/vfiles
-%_sbindir/vps
-%_sbindir/vpstree
-%_sbindir/vserver
-%_sbindir/vserver-stat
-%_sbindir/vtop
-%_mandir/*/*
-%exclude %_mandir/*/chbind*
-%exclude %_mandir/*/chcontext*
-%exclude %_mandir/*/reducecap*
-%exclude %_mandir/*/distrib-info*
-%exclude %_mandir/*/vserver-copy*
-%exclude %_mandir/*/vrpm*
-
-%dir %confdir/.defaults
-%dir %confdir/.defaults/*
-%pkglibdir/defaults
-
-%attr(000,root,root) %dir /vservers/.pkg
-%attr(000,root,root) %dir /vservers
-
-%dir /var/run/vservers
-%dir /var/run/vservers/rev
-
-
-
-%files core
-%defattr(-,root,root,-)
-%_sbindir/chbind
-%_sbindir/chcontext
-%_sbindir/ctx-kill
-%_sbindir/new-namespace
-%_sbindir/reducecap
-%_sbindir/util-vserver-vars
-%pkglibdir/util-vserver-vars
-%_mandir/*/chbind*
-%_mandir/*/chcontext*
-%_mandir/*/reducecap*
-%dir %pkglibdir
+%doc doc/*.html doc/*.css
+/sbin/vshelper
+%dir %confdir
+%dir %confdefaultdir
+%dir %confdefaultdir/apps
+%dir %confdefaultdir/files
+%dir %pkglibdir/defaults
+%ghost %confdefaultdir/vdirbase
+%ghost %confdefaultdir/run.rev
+
+%dir %_localstatedir/run/vservers
+%dir %_localstatedir/run/vservers.rev
+%dir %_localstatedir/run/vshelper
 
 
-%files build
+%files lib -f %name-lib.list
+%files sysv -f %name-sysv.list
+
+
+%files core -f %name-core.list
 %defattr(-,root,root,-)
-%_sbindir/vapt-get
-%_sbindir/vrpm
-%_sbindir/vserver-copy
 %dir %pkglibdir
-%pkglibdir/distributions
-%pkglibdir/rpm-fake.so
-%pkglibdir/vapt-get*
-%pkglibdir/vrpm*
-%pkglibdir/vserver-build*
-%pkglibdir/vserver-setup*
-%pkglibdir/vunify
-%_mandir/*/distrib-info*
-%_mandir/*/vserver-copy*
-%exclude %_mandir/*/vrpm*
 
+
+%files build -f %name-build.list
+%defattr(-,root,root,-)
 %dir %confdir/.distributions
 %dir %confdir/.distributions/*
 %dir %confdir/.distributions/*/apt
-%config(noreplace) %confdir/.distributions/*/apt/sources.list
-
 
 
-%files sysv
+%files legacy -f %name-legacy.list
 %defattr(-,root,root,-)
-%_initrddir/*
-%config(noreplace) %_sysconfdir/vservers.conf
+%dir %pkglibdir/legacy
 
 
-%files devel
+%files devel -f %name-devel.list
 %defattr(-,root,root,-)
-%_includedir/*.h
-%_libdir/*.a
-%_libdir/pkgconfig/*
+%doc lib/apidoc/latex/refman.pdf
+%doc lib/apidoc/html
 
 
 %changelog
+* 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...
+
+* Mon Mar 15 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.202-0
+- use file-list for sysv scripts also
+
+* Sat Mar  6 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.198-0
+- added vprocunhide-service support
+- added doxygen support
+- updated Requires:
+
 * Wed Oct  1 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.5-0
 - Initial build.
-