X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=util-vserver.spec;h=687035e8b8492b79eee6e806f38cbe1b78b9866a;hb=5f917915b5648233b3e58488b56a718db3af397f;hp=dfb79417928318f1373793d86f2c1639b1ecfb6d;hpb=59708fe87fcbff32b78bf527743e213d604cd118;p=util-vserver.git diff --git a/util-vserver.spec b/util-vserver.spec index dfb7941..687035e 100644 --- a/util-vserver.spec +++ b/util-vserver.spec @@ -1,32 +1,93 @@ -%define __chattr /usr/bin/chattr +# $Id: util-vserver.spec.in 2283 2006-09-10 17:07:57Z hollow $ + +## This package understands the following switches: +## --without dietlibc ... disable usage of dietlibc +## --with xalan ... require/use the xalan xslt processor + +%global confdir %_sysconfdir/vservers +%global confdefaultdir %confdir/.defaults +%global pkglibdir %_libdir/%name +%global chkconfig /sbin/chkconfig + +%global _localstatedir %_var + + +%{!?release_func:%global release_func() %1%{?dist}} Summary: Linux virtual server utilities Name: util-vserver -Version: 0.30 -Release: 0 -Epoch: 0 -Copyright: GPL +Version: 0.30.212 +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 -Provides: %name-devel = %epoch:%version-%release +Source0: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%name-%version.tar.bz2 +#Source1: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%name-%version.tar.bz2.asc BuildRoot: %_tmppath/%name-%version-%release-root -Provides: vserver = %epoch:%version-%release -Conflicts: vserver < %epoch:%version-%release -Conflicts: vserver > %epoch:%version-%release -BuildRequires: e2fsprogs-devel -Requires(post): %__chattr - -%package linuxconf -Summary: Linuxconf administration modules for vservers -Group: Applications/System -Requires: %name = %epoch:%version-%release -Provides: vserver-admin = %epoch:%version-%release -Conflicts: vserver-admin < %epoch:%version-%release -Conflicts: vserver-admin > %epoch:%version-%release +Requires: init(%name) +Requires: %name-core = %version-%release +Requires: %name-lib = %version-%release +Requires: diffutils mktemp sed +Provides: vserver = %version-%release +Obsoletes: vserver < %version +BuildRequires: mount vconfig gawk iproute iptables +BuildRequires: gcc-c++ wget which diffutils +BuildRequires: e2fsprogs-devel beecrypt-devel +BuildRequires: doxygen tetex-latex +Requires(post): %name-core +Requires(pre): %pkglibdir +Requires(postun): %pkglibdir +%{!?_without_dietlibc:BuildRequires: dietlibc >= 0:0.25} +%{?_with_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 +Requires: util-linux + +%package build +Summary: Tools which can be used to build vservers +Group: Applications/System +Requires: rpm wget binutils tar e2fsprogs +Requires: %name = %version-%release +Requires(pre): %confdir +Requires(postun): %confdir +Requires(post): %name-core + +%package sysv +Summary: SysV-initscripts for vserver +Group: System Environment/Base +Provides: init(%name) = sysv +Requires: make diffutils +Requires: initscripts +Requires: %name = %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 = %version-%release +Requires(post): %chkconfig +Requires(preun): %chkconfig +Requires(pre): %_initrddir %pkglibdir +requires(postun): %_initrddir %pkglibdir + +%package devel +Summary: Header-files and libraries needed to develop vserver based applications +Group: Development/Libraries +Requires: pkgconfig +Requires: %name-lib = %version-%release + %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 @@ -35,10 +96,67 @@ 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 +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 linuxconf -This package provides the components to setup virtual servers with -linuxconf. +%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 @@ -46,77 +164,243 @@ linuxconf. %build -%configure --enable-linuxconf -%__make %{?_smp_mflags} +%configure --with-initrddir=%_initrddir --enable-release \ + %{?_without_dietlibc:--disable-dietlibc} + +%__make %{?_smp_mflags} all +%__make %{?_smp_mflags} doc %install rm -rf $RPM_BUILD_ROOT -%__make DESTDIR=$RPM_BUILD_ROOT install +%__make DESTDIR="$RPM_BUILD_ROOT" install install-distribution -mkdir -p $RPM_BUILD_ROOT/vservers -test "%_initrddir" = %_sysconfdir/init.d || { - mkdir -p ${RPM_BUILD_ROOT}%_initrddir - mv ${RPM_BUILD_ROOT}%_sysconfdir/init.d/* ${RPM_BUILD_ROOT}%_initrddir/ -} +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 -/sbin/chkconfig --add vservers -/sbin/chkconfig --add rebootmgr +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" +f="%confdefaultdir/cachebase"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/cache/vservers "$f" + +%_sbindir/setattr --barrier /vservers /vservers/.pkg || : + + +%preun +test "$1" != 0 || rm -rf %_localstatedir/cache/vservers/* 2>/dev/null || : + + +%post lib -p /sbin/ldconfig +%postun lib -p /sbin/ldconfig + + +%post sysv +%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 || : + + +%triggerin build -- fedora-release, centos-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-* +copy fedora /etc/pki/rpm-gpg/RPM-GPG-* +copy centos /usr/share/doc/centos-*/RPM-GPG-KEY-* + +%post build +test -d /vservers/.hash || mkdir -m0700 /vservers/.hash + +f="%confdefaultdir/apps/vunify/hash"; test -e "$f"/method -o -e "$f"/00 || \ + ln -s /vservers/.hash "$f"/00 + +%_sbindir/setattr --barrier /vservers/.hash || : + + +%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 - /sbin/chkconfig --add v_$i + %chkconfig --del v_$i || : done -%__chattr +t /vservers || : +%post legacy +%chkconfig --add rebootmgr +%chkconfig --add vservers-legacy -%preun -test "$1" != 0 || for i in %v_services; do - /sbin/chkconfig --del v_$i +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 || : + +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 -test "$1" = 0 || %{_initrddir}/rebootmgr condrestart >/dev/null || : +%postun legacy +test "$1" = 0 || %_initrddir/rebootmgr condrestart >/dev/null || : -%files -%defattr(-,root,root) +%files -f %name-base.list +%defattr(-,root,root,-) %doc AUTHORS COPYING ChangeLog NEWS README THANKS -%_sbindir/* -%_libdir/%name -%_includedir/vserver.h -%_libdir/libvserver.a -%_mandir/man8/* -%config %_initrddir/* -%config(noreplace) /etc/vservers.conf -%attr(0,root,root) %dir /vservers +%doc doc/*.html doc/*.css +/sbin/vshelper +%dir %confdir +%dir %confdefaultdir +%dir %confdefaultdir/apps +%dir %confdefaultdir/files +%dir %pkglibdir/defaults +%ghost %confdefaultdir/cachebase +%ghost %confdefaultdir/vdirbase +%ghost %confdefaultdir/run.rev -%exclude %_sbindir/newvserver -%exclude %_mandir/man8/newvserver* +%dir %_localstatedir/cache/vservers +%dir %_localstatedir/run/vservers +%dir %_localstatedir/run/vservers.rev +%dir %_localstatedir/run/vshelper -%files linuxconf -%defattr(-,root,root) -%config(noreplace) /etc/vservers/newvserver.defaults -%_sbindir/newvserver -%_mandir/man8/newvserver* +%files lib -f %name-lib.list +%files sysv -f %name-sysv.list -%changelog -* Thu Mar 18 2004 Enrico Scholz - 0:0.29.3-0 -- removed '%%doc doc/FAQ.txt' since file does not exist anymore +%files core -f %name-core.list +%defattr(-,root,root,-) +%dir %pkglibdir + + +%files build -f %name-build.list +%defattr(-,root,root,-) +%doc contrib/yum*.patch +%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 + -* Fri Sep 26 2003 Enrico Scholz - 0:0.23.4-1 -- initial build. +%files legacy -f %name-legacy.list +%defattr(-,root,root,-) +%dir %pkglibdir/legacy + + +%files devel -f %name-devel.list +%defattr(-,root,root,-) +%doc lib/apidoc/latex/refman.pdf +%doc lib/apidoc/html + + +%changelog +* Sun Jan 22 2006 Enrico Scholz - 0.30.210-0 +- do not require 'xalan' anymore by default +- removed 'Requires: apt'; apt-rpm is not maintained upstream anymore +- removed 'chattr' leftovers +- create the '/etc/vservers/.defaults/cachebase' symlink +- added /var/cache/vservers and the needed support +- set barrier attribute on /vservers/.pkg and /vservers/.hash +- added 'centos-release' to the list of packages in the copy-the-keys + trigger script +- create '/vservers/.hash' and add initial configuration for it + +* Sun Oct 30 2005 Enrico Scholz - 0:0.30.209-0 +- version 0.30.209 +- copy centos keys + +* Sat Jul 16 2005 Enrico Scholz - 0:0.30.208-2 +- updated URLs + +* Fri Jul 15 2005 Enrico Scholz - 0:0.30.208-1 +- version 0.30.208 +- require the -lib subpackage by -devel +- copy GPG keys from /etc/pki/rpm-gpg/ + +* Fri Apr 15 2005 Enrico Scholz - 0:0.30.206-1 +- added patches to make yum work in chroot environments +- version 0.30.206 + +* Thu Mar 24 2005 Enrico Scholz - 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 - 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 - 0:0.30.194-0 +- documented switches for 'rpmbuild' + +* Wed May 26 2004 Enrico Scholz - 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 - 0:0.29.202-0 +- use file-list for sysv scripts also + +* Sat Mar 6 2004 Enrico Scholz - 0:0.29.198-0 +- added vprocunhide-service support +- added doxygen support +- updated Requires: + +* Wed Oct 1 2003 Enrico Scholz - 0:0.23.5-0 +- Initial build.