X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=util-vserver.spec;h=015c7061071ce4678f4c3785ca6b978b02a9e9c1;hb=022d923c3ff4bd5b7327ec028cfe81dd617a5c52;hp=6ae851a8231c99c53f119dfc6ccbd33a991f5448;hpb=8783ed79e5b3fb4190d7c78a4bdffaa4576a6ee0;p=packages%2Futil-vserver.git diff --git a/util-vserver.spec b/util-vserver.spec index 6ae851a..015c706 100644 --- a/util-vserver.spec +++ b/util-vserver.spec @@ -1,47 +1,67 @@ +# TODO +# - somewhy empty /var/cache/vservers is needed when building pld vserver +# - make build create /dev/std{in,out,err} links # # m68k and mips are the only not supported archs # # Conditional build: -%bcond_without dietlibc # don't use dietlibc (ask for troubles) -%bcond_without doc # don't build documentation which needed LaTeX -%bcond_with xalan # use the xalan xslt processor +%bcond_without dietlibc # don't use dietlibc (ask for troubles) +%bcond_without doc # don't build documentation which needed LaTeX +%bcond_without no_dynamic_context # disable enforcement of disabled dynamic context +%bcond_with xalan # use the xalan xslt processor +# +%define _vproc_version 0.01 +# diet compile fails with ccache in %{__cc} +%undefine with_ccache # Summary: Linux virtual server utilities Summary(pl): Narzêdzia dla linuksowych serwerów wirtualnych Name: util-vserver -Version: 0.30.209 -Release: 0.1 +Version: 0.30.212 +Release: 1 License: GPL Group: Applications/System -Source0: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%{name}-%{version}.tar.bz2 -# Source0-md5: 674b122824292c20d3c53245b91f6088 +Source0: http://ftp.linux-vserver.org/pub/utils/util-vserver/%{name}-%{version}.tar.bz2 +# Source0-md5: 386b91732b7f0f132b4e9d978389dcc2 Source1: vprocunhide.init Source2: vservers.init Source3: vservers-legacy.init Source4: rebootmgr.init Source5: vservers.sysconfig Source6: vservers-legacy.sysconfig -# A bit of documentation explaining package menagement +Source7: vrootdevices.init +Source8: vrootdevices.sysconfig +# A bit of documentation explaining package management # http://www.paul.sladen.org/vserver/archives/200505/0078.html -Source7: %{name}-pkgmgmt.txt +Source9: %{name}-pkgmgmt.txt +Source10: %{name}-initpost.sh +Source11: http://www.13thfloor.at/vserver/s_release/v1.2.10/vproc-%{_vproc_version}.tar.bz2 +# Source11-md5: 1d030717bdbc958ea4b35fd2410dad85 +Source12: %{name}-vhashify.cron Patch0: %{name}-vsysvwrapper.patch Patch1: %{name}-pld.patch -Patch2: %{name}-build-poldek.patch +Patch2: %{name}-vrpm.patch Patch3: %{name}-include.patch Patch4: %{name}-m4-diet.patch -Patch5: %{name}-cpuset.patch Patch6: %{name}-build-umask.patch Patch7: %{name}-utmpx.patch +Patch8: %{name}-vprocunhide.patch +Patch9: %{name}-dev.patch +Patch10: %{name}-no-dynamic-ctx.patch +Patch11: %{name}-more-ip.patch +Patch12: %{name}-rpm-fake-resolver-badperm-errorlogging.patch URL: http://savannah.nongnu.org/projects/util-vserver/ BuildRequires: autoconf BuildRequires: automake >= 1.9 BuildRequires: beecrypt-devel %{?with_dietlibc:BuildRequires: dietlibc-static >= 2:0.29} +BuildRequires: e2fsprogs-devel BuildRequires: libstdc++-devel BuildRequires: libtool >= 1.5.14 %ifarch %{x8664} BuildRequires: sed >= 4.0 %endif +BuildRequires: rpmbuild(macros) >= 1.268 %if %{with doc} BuildRequires: doxygen BuildRequires: graphviz @@ -49,17 +69,19 @@ BuildRequires: libxslt-progs BuildRequires: tetex-format-pdflatex BuildRequires: tetex-makeindex # To be removed when tetex-format-pdflatex, tetex-pdftex... -BuildRequires: tetex-fonts-jknappen -BuildRequires: tetex-metafont -BuildRequires: ghostscript # ...and graphviz packages get fixed +BuildRequires: ghostscript BuildRequires: ghostscript-fonts-std +BuildRequires: tetex-fonts-jknappen +BuildRequires: tetex-metafont %{?with_xalan:BuildRequires: xalan-j} %endif -Requires: rc-scripts -Requires: util-linux Requires(post,preun): /sbin/chkconfig Requires: %{name}-lib = %{version}-%{release} +Requires: issue +Requires: mktemp >= 1.5-18 +Requires: rc-scripts +Requires: util-linux Obsoletes: util-vserver-core BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -129,7 +151,7 @@ Group: Libraries 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 +pith 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 @@ -149,8 +171,11 @@ podpakiety util-vserver. Summary: Tools which can be used to build vservers Summary(pl): Narzêdzia do budowania vserverów Group: Applications/System -Conflicts: poldek < 0.18.8-10 Requires: %{name} = %{version}-%{release} +Requires: /etc/pld-release +Requires: e2fsprogs +Requires: which +Conflicts: poldek < 0.18.8-10 %description build util-vserver provides the components and a framework to setup virtual @@ -229,10 +254,10 @@ Requires: util-vserver-build Requires: yum %description -n vserver-distro-centos -VServer build template for CentOS 4.2. +VServer build template for CentOS 4. %description -n vserver-distro-centos -l pl -Szablon budowania VServera dla CentOS 4.2. +Szablon budowania VServera dla CentOS 4. %package init Summary: initscripts for vserver @@ -292,43 +317,22 @@ w interakcj Ten pakiet zawiera narzêdzia potrzebne do pracy z Vserwerami maj±cymi konfiguracjê w starym stylu. -%package -n vserver-dev -Summary: /dev entries for systems in Vservers -Summary(pl): Pliki specjalne /dev/* dla systemów w Vserwerach -Group: Base -Requires: setup >= 2.4.1-2 -Provides: dev = 2.9.0-19 -Provides: devfs -AutoReqProv: no - -%description -n vserver-dev -Unix and unix like systems (including Linux) use file system entries -to represent devices attached to the machine. All of these entries are -in the /dev tree (though they don't have to be), and this package -contains only entries needed for a system running inside Vserver. - -DO NOT install this package for a normal system! - -%description -n vserver-dev -l pl -Wszystkie systemy klasy unices, w tym Linux, u¿ywaj± plików do -przedstawiania urz±dzeñ pod³±czonych do komputera. Wszystkie te pliki -znajduj± siê zwykle w katalogu /dev. Pakiet ten wy³±cznie te pliki -specjalne które s± potrzebne do uruchomienia systemu w Vserwerze. - -NIE INSTALUJ tego pakietu na zwyk³ym systemie! - %prep -%setup -q +%setup -q -a11 %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%{?with_no_dynamic_context:%patch10 -p1} +%patch11 -p1 +%patch12 -p1 -install %{SOURCE7} package-menagament.txt +install %{SOURCE9} package-management.txt cp -a compat.h vserver-compat.h @@ -342,6 +346,7 @@ CFLAGS="%{rpmcflags} -D__GLIBC__" %configure \ --with-initrddir=/etc/rc.d/init.d \ --enable-release \ + --enable-apis=NOLEGACY \ %{?with_dietlibc:--enable-dietlibc} \ %{!?with_dietlibc:--disable-dietlibc} \ MKTEMP=/bin/mktemp \ @@ -359,9 +364,14 @@ CFLAGS="%{rpmcflags} -D__GLIBC__" %{__make} all %{?with_doc:%{__make} doc} +%{__make} -C vproc-%{_vproc_version} \ + CC="%{__cc}" \ + CFLAGS="%{rpmcflags}" + %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{/vservers,/etc/{sysconfig,rc.d/init.d},/dev/pts} +install -d $RPM_BUILD_ROOT{/vservers,/etc/{sysconfig,rc.d/init.d,cron.d},/dev/pts} \ + $RPM_BUILD_ROOT{%{_sysconfdir}/vservices,/vservers/.pkg} %{__make} install install-distribution \ DESTDIR=$RPM_BUILD_ROOT @@ -370,8 +380,6 @@ cp -a vserver-compat.h $RPM_BUILD_ROOT%{_includedir} chmod -R +rX $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/* -install -d $RPM_BUILD_ROOT%{_sysconfdir}/vservices -install -d $RPM_BUILD_ROOT/vservers/.pkg ln -s /vservers $RPM_BUILD_ROOT%{_sysconfdir}/vservers/vdirbase ln -s %{_localstatedir}/run/vservers.rev $RPM_BUILD_ROOT%{_sysconfdir}/vservers/run.rev @@ -397,13 +405,26 @@ sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE5} > \ install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/vservers-legacy +install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/vrootdevices +install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/vrootdevices +install %{SOURCE10} $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac/initpost +install vproc-%{_vproc_version}/vproc $RPM_BUILD_ROOT%{_sbindir} +install %{SOURCE12} $RPM_BUILD_ROOT%{_libdir}/%{name}/vhashify.cron + +cat > $RPM_BUILD_ROOT/etc/cron.d/vservers << EOF +02 2 * * 0 root %{_libdir}/%{name}/vhashify.cron +EOF + ln -sf null $RPM_BUILD_ROOT/dev/initctl %ifarch %{x8664} -sed -i 's/^glibc$/glibc64/' $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld2.0/pkgs/01 -sed -i 's/glibc\-\[0\-9\]\*\.rpm/glibc64\-\[0\-9\]\*\.rpm/' $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld2.0/rpmlist.d/00.lst +sed -i 's/^glibc$/glibc64/' $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac/pkgs/01 +sed -i 's/glibc\-\[0\-9\]\*\.rpm/glibc64\-\[0\-9\]\*\.rpm/' $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac/rpmlist.d/00.lst %endif +# baggins check this: needed but seems unused +install -d $RPM_BUILD_ROOT/var/cache/vservers + %clean rm -rf $RPM_BUILD_ROOT @@ -414,49 +435,58 @@ rm -rf $RPM_BUILD_ROOT %postun lib -p /sbin/ldconfig %post init -/sbin/chkconfig --add vservers-default +/sbin/chkconfig --add vrootdevices /sbin/chkconfig --add vprocunhide +/sbin/chkconfig --add vservers +if [ ! -f /var/lock/subsys/vrootdevices ]; then + echo "Type \"/sbin/service vrootdevices start\" to assign virtual root devices" 1>&2 +fi if [ ! -f /var/lock/subsys/vprocunhide ]; then - echo "Type \"/etc/rc.d/init.d/vprocunhide start\" to set /proc visibility for vservers" 1>&2 + echo "Type \"/sbin/service vprocunhide start\" to set /proc visibility for vservers" 1>&2 fi -if [ ! -f /var/lock/subsys/vservers-default ]; then - echo "Type \"/etc/rc.d/init.d/vservers-default start\" to start default vservers" 1>&2 +if [ ! -f /var/lock/subsys/vservers ]; then + echo "Type \"/sbin/service vservers start\" to start vservers" 1>&2 fi %preun init if [ "$1" = "0" ]; then - if [ -r /var/lock/subsys/vprocunhide ]; then - /etc/rc.d/init.d/vprocunhide stop >&2 - fi - if [ -r /var/lock/subsys/vservers-default ]; then - /etc/rc.d/init.d/vservers-default stop >&2 - fi + %service vservers stop + %service vprocunhide stop + %service vrootdevices stop + /sbin/chkconfig --del vservers /sbin/chkconfig --del vprocunhide - /sbin/chkconfig --del vservers-default + /sbin/chkconfig --del vrootdevices fi %post legacy /sbin/chkconfig --add rebootmgr /sbin/chkconfig --add vservers-legacy if [ ! -f /var/lock/subsys/rebootmgr ] ; then - echo "Type \"/etc/rc.d/init.d/rebootmgr start\" to start reboot manager for legacy vservers" 1>&2 + echo "Type \"/sbin/service rebootmgr start\" to start reboot manager for legacy vservers" 1>&2 fi if [ ! -f /var/lock/subsys/vservers-legacy ] ; then - echo "Type \"/etc/rc.d/init.d/vservers-legacy start\" to start legacy vservers" 1>&2 + echo "Type \"/sbin/service vservers-legacy start\" to start legacy vservers" 1>&2 fi %preun legacy if [ "$1" = "0" ]; then - if [ -r /var/lock/subsys/rebootmgr ] ; then - /etc/rc.d/init.d/rebootmgr stop >&2 - fi - if [ -r /var/lock/subsys/vservers-legacy ] ; then - /etc/rc.d/init.d/vservers-legacy stop >&2 - fi + %service rebootmgr stop + %service vservers-legacy stop /sbin/chkconfig --del rebootmgr /sbin/chkconfig --del vservers-legacy fi +%triggerpostun build -- %{name}-build < 0.30.210-5.2 +if [ -f /etc/vservers/.distributions/pld2.0/poldek/poldek.conf.rpmsave ]; then + mv -f /etc/vservers/.distributions/{pld2.0,pld-ac}/poldek/poldek.conf.rpmsave +fi + +# kill old vserver specific package ignores which are no longer needed +l=`egrep '^ignore.*(basesystem|SysVinit|rc-scripts)' /etc/vservers/*/apps/pkgmgmt/base/poldek/etc/poldek.conf -l 2>/dev/null` +if [ "$l" ]; then + %{__sed} -i -e '/^ignore/s, \(basesystem\|SysVinit\|rc-scripts\),,g' $l +fi + %files %defattr(644,root,root,755) %doc AUTHORS ChangeLog NEWS THANKS doc/intro.txt @@ -485,6 +515,7 @@ fi %attr(755,root,root) %{_sbindir}/vkill %attr(755,root,root) %{_sbindir}/vlimit %attr(755,root,root) %{_sbindir}/vdu +%attr(755,root,root) %{_sbindir}/vproc %attr(755,root,root) %{_sbindir}/vps %attr(755,root,root) %{_sbindir}/vpstree %attr(755,root,root) %{_sbindir}/vrsetup @@ -520,7 +551,12 @@ fi %attr(755,root,root) %{_libdir}/%{name}/start-vservers %attr(755,root,root) %{_libdir}/%{name}/vprocunhide %{_libdir}/%{name}/vserver.* +%{_libdir}/%{name}/vserver-setup.* +%attr(755,root,root) %{_libdir}/%{name}/vserver-build +%{_libdir}/%{name}/vserver-build.* %attr(755,root,root) %{_libdir}/%{name}/vservers.grabinfo.sh +%attr(755,root,root) %{_libdir}/%{name}/vhashify +%attr(755,root,root) %{_libdir}/%{name}/vhashify.cron %attr(755,root,root) %{_libdir}/%{name}/vshelper %attr(755,root,root) %{_libdir}/%{name}/vshelper-sync %{_mandir}/man8/chbind.8* @@ -536,6 +572,7 @@ fi %dir %{_localstatedir}/run/vservers %dir %{_localstatedir}/run/vservers.rev %dir %{_localstatedir}/run/vshelper +%dir /var/cache/vservers %files devel %defattr(644,root,root,755) @@ -556,28 +593,31 @@ fi %files init %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/%{name}/vsysvwrapper -%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers-default +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vrootdevices +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers +%config(noreplace) %verify(not md5 mtime size) /etc/cron.d/vservers %attr(754,root,root) /etc/rc.d/init.d/vprocunhide -%attr(754,root,root) /etc/rc.d/init.d/vservers-default +%attr(754,root,root) /etc/rc.d/init.d/vrootdevices +%attr(754,root,root) /etc/rc.d/init.d/vservers %files build %defattr(644,root,root,755) -%doc contrib/yum*.patch package-menagament.txt +%doc contrib/yum*.patch package-management.txt %dir %{_sysconfdir}/vservers/.defaults/apps/vunify %dir %{_sysconfdir}/vservers/.defaults/apps/vunify/hash %dir %{_sysconfdir}/vservers/.distributions %dir %{_sysconfdir}/vservers/.distributions/.common %dir %{_sysconfdir}/vservers/.distributions/.common/pubkeys -%dir %{_sysconfdir}/vservers/.distributions/pld2.0 -%dir %{_sysconfdir}/vservers/.distributions/pld2.0/poldek -%{_sysconfdir}/vservers/.distributions/pld1.99 -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld2.0/poldek/poldek.conf +%dir %{_sysconfdir}/vservers/.distributions/pld-ac +%dir %{_sysconfdir}/vservers/.distributions/pld-ac/poldek +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld-ac/poldek/*.conf %attr(755,root,root) %{_libdir}/%{name}/rpm-fake* %dir %{_libdir}/%{name}/distributions -%attr(-, root, root) %{_libdir}/%{name}/distributions/defaults -%attr(-, root, root) %{_libdir}/%{name}/distributions/pld* -%attr(-, root, root) %{_libdir}/%{name}/distributions/template -%attr(-, root, root) %{_libdir}/%{name}/distributions/redhat* +%attr(-,root,root) %{_libdir}/%{name}/distributions/defaults +%attr(-,root,root) %{_libdir}/%{name}/distributions/pld* +%dir %{_libdir}/%{name}/distributions/template +%attr(755,root,root) %{_libdir}/%{name}/distributions/template/init* +%attr(-,root,root) %{_libdir}/%{name}/distributions/redhat %{_libdir}/%{name}/vserver-build.* %{_libdir}/%{name}/vserver-setup.functions %{_libdir}/%{name}/defaults/fstab @@ -586,7 +626,6 @@ fi %attr(755,root,root) %{_libdir}/%{name}/pkgmgmt %attr(755,root,root) %{_libdir}/%{name}/vapt-get-worker %attr(755,root,root) %{_libdir}/%{name}/vcopy -%attr(755,root,root) %{_libdir}/%{name}/vhashify %attr(755,root,root) %{_libdir}/%{name}/vpkg %attr(755,root,root) %{_libdir}/%{name}/vpoldek-worker %attr(755,root,root) %{_libdir}/%{name}/vrpm-* @@ -621,7 +660,7 @@ fi %files -n vserver-distro-centos %defattr(644,root,root,755) -%{_libdir}/util-vserver/distributions/centos42 +%{_libdir}/util-vserver/distributions/centos4 %files legacy %defattr(644,root,root,755) @@ -637,15 +676,3 @@ fi %{_mandir}/man8/distrib-info.8* %{_mandir}/man8/rebootmgr.8* %{_mandir}/man8/vserver-copy.8* - -%files -n vserver-dev -%defattr(644,root,root,755) -%dir /dev/pts -%dev(c,1,7) %attr(666,root,root) /dev/full -%dev(c,1,3) %attr(666,root,root) /dev/null -%dev(c,5,2) %attr(666,root,root) /dev/ptmx -%dev(c,1,8) %attr(644,root,root) /dev/random -%dev(c,5,0) %attr(666,root,root) /dev/tty -%dev(c,1,9) %attr(644,root,root) /dev/urandom -%dev(c,1,5) %attr(666,root,root) /dev/zero -/dev/initctl