+# TODO
+# - somewhy empty /var/cache/vservers is needed when building pld vserver
+# - make build create /dev/std{in,out,err} links
+# - reject install in %pre if /proc/virtual/info has incompatible version
#
# 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
+Summary(pl.UTF-8): Narzędzia dla linuksowych serwerów wirtualnych
Name: util-vserver
-Version: 0.30.208
-Release: 2.1
+Version: 0.30.213
+Release: 6
License: GPL
Group: Applications/System
-Source0: http://www.13thfloor.at/~ensc/util-vserver/files/alpha/%{name}-%{version}.tar.bz2
-# Source0-md5: 4453ad0ae7f351fec651d6904e00521f
+Source0: http://ftp.linux-vserver.org/pub/utils/util-vserver/%{name}-%{version}.tar.bz2
+# Source0-md5: 2a444e725f7789f751ade259a38553ed
Source1: vprocunhide.init
-Source2: vservers-default.init
+Source2: vservers.init
Source3: vservers-legacy.init
Source4: rebootmgr.init
-Source5: vservers-default.sysconfig
+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: http://vserver.13thfloor.at/Experimental/UTIL-VSERVER/delta-0.30.208-kheaders.diff
-Patch6: http://vserver.13thfloor.at/Experimental/UTIL-VSERVER/delta-0.30.208-shiny6.diff
-Patch7: %{name}-cpuset.patch
-Patch8: %{name}-build-umask.patch
-Patch9: %{name}-vwait-timeout-fix.patch
-Patch10: %{name}-mounted.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
BuildRequires: libxslt-progs
BuildRequires: tetex-format-pdflatex
BuildRequires: tetex-makeindex
+# To be removed when tetex-format-pdflatex, tetex-pdftex...
+# ...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: tar
+Requires: util-linux
Obsoletes: util-vserver-core
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# for adapter
%define _usrbin /usr/bin
-%define _usrsbin /usr/bin
-%define _usrlib /usr/lib/util-vserver
+%define _usrsbin /usr/sbin
+%define _usrlib /usr/lib
%description
This package provides the components and a framework to setup virtual
This package contains utilities which are required to communicate with
the Linux-Vserver enabled kernel.
-%description -l pl
-Ten pakiet dostarcza sk³adniki i szkielet do tworzenia wirtualnych
-serwerów. Wirtualny serwer dzia³a wewn±trz serwera linuksowego, lecz
-jest od niego w du¿ym stopniu niezale¿ny. Jako taki mo¿e uruchamiaæ
-ró¿ne us³ugi z normaln± konfiguracj±. Ró¿ne vserwery nie mog± wchodziæ
-w interakcjê z innymi ani z us³ugami na g³ównym serwerze.
+%description -l pl.UTF-8
+Ten pakiet dostarcza składniki i szkielet do tworzenia wirtualnych
+serwerów. Wirtualny serwer działa wewnątrz serwera linuksowego, lecz
+jest od niego w dużym stopniu niezależny. Jako taki może uruchamiać
+różne usługi z normalną konfiguracją. Różne vserwery nie mogą wchodzić
+w interakcję z innymi ani z usługami na głównym serwerze.
-Wymaga to specjalnego j±dra obs³uguj±cego nowe wywo³ania systemowe
+Wymaga to specjalnego jądra obsługującego nowe wywołania systemowe
new_s_context i set_ipv4root.
-Ten pakiet zawiera narzêdzia wymagane do komunikacji z j±drem z
-w³±czonym mechanizmem Linux-Vserver.
+Ten pakiet zawiera narzędzia wymagane do komunikacji z jądrem z
+włączonym mechanizmem Linux-Vserver.
%package devel
Summary: Development files for Linux vserver libraries
-Summary(pl): Pliki programistyczne dla bibliotek linuksowego vserwera
+Summary(pl.UTF-8): Pliki programistyczne dla bibliotek linuksowego vserwera
Group: Development/Libraries
Requires: %{name}-lib = %{version}-%{release}
This package contains the development files necessary for developing
programs which use vserver library.
-%description devel -l pl
+%description devel -l pl.UTF-8
Ten pakiet zawiera pliki programistyczne konieczne do rozwijania
-programów u¿ywaj±cych biblioteki vserver.
+programów używających biblioteki vserver.
%package static
Summary: Static vserver library
-Summary(pl): Biblioteka statyczna vservera
+Summary(pl.UTF-8): Biblioteka statyczna vservera
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
%description static
This package contains the static version of vserver library.
-%description static -l pl
-Ten pakiet zawiera statyczn± wersjê biblioteki vservera.
+%description static -l pl.UTF-8
+Ten pakiet zawiera statyczną wersję biblioteki vservera.
%package lib
Summary: Dynamic libraries for util-vserver
-Summary(pl): Biblioteki dynamiczne dla pakietu util-vserver
+Summary(pl.UTF-8): Biblioteki dynamiczne dla pakietu util-vserver
Group: Libraries
%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
+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
'util-vserver' subpackages.
-%description lib -l pl
-util-vserver dostarcza sk³adniki i szkielet do tworzenia wirtualnych
-serwerów. Wirtualny serwer dzia³a wewn±trz serwera linuksowego, lecz
-jest od niego w du¿ym stopniu niezale¿ny. Jako taki mo¿e uruchamiaæ
-ró¿ne us³ugi z normaln± konfiguracj±. Ró¿ne vserwery nie mog± wchodziæ
-w interakcjê z innymi ani z us³ugami na g³ównym serwerze.
+%description lib -l pl.UTF-8
+util-vserver dostarcza składniki i szkielet do tworzenia wirtualnych
+serwerów. Wirtualny serwer działa wewnątrz serwera linuksowego, lecz
+jest od niego w dużym stopniu niezależny. Jako taki może uruchamiać
+różne usługi z normalną konfiguracją. Różne vserwery nie mogą wchodzić
+w interakcję z innymi ani z usługami na głównym serwerze.
-Ten pakiet zawiera biblioteki wspó³dzielone wymagane przez wszystkie
+Ten pakiet zawiera biblioteki współdzielone wymagane przez wszystkie
podpakiety util-vserver.
%package build
Summary: Tools which can be used to build vservers
-Summary(pl): Narzêdzia do budowania vserverów
+Summary(pl.UTF-8): Narzędzia do budowania vserverów
Group: Applications/System
-Requires: binutils
+Requires: %{name} = %{version}-%{release}
+Requires: /etc/pld-release
Requires: e2fsprogs
-Requires: rpm
-Requires: tar
-Requires: wget
+Requires: which
Conflicts: poldek < 0.18.8-10
-Requires: %{name} = %{version}-%{release}
%description build
util-vserver provides the components and a framework to setup virtual
This package contains utilities which assist in building Vservers.
-%description build -l pl
-util-vserver dostarcza sk³adniki i szkielet do tworzenia wirtualnych
-serwerów. Wirtualny serwer dzia³a wewn±trz serwera linuksowego, lecz
-jest od niego w du¿ym stopniu niezale¿ny. Jako taki mo¿e uruchamiaæ
-ró¿ne us³ugi z normaln± konfiguracj±. Ró¿ne vserwery nie mog± wchodziæ
-w interakcjê z innymi ani z us³ugami na g³ównym serwerze.
+%description build -l pl.UTF-8
+util-vserver dostarcza składniki i szkielet do tworzenia wirtualnych
+serwerów. Wirtualny serwer działa wewnątrz serwera linuksowego, lecz
+jest od niego w dużym stopniu niezależny. Jako taki może uruchamiać
+różne usługi z normalną konfiguracją. Różne vserwery nie mogą wchodzić
+w interakcję z innymi ani z usługami na głównym serwerze.
+
+Ten pakiet zawiera narzędzia pomagające przy budowaniu Vserwerów.
+
+%package -n vserver-distro-fedora
+Summary: VServer build templates for Fedora Core
+Summary(pl.UTF-8): Szablony do tworzenia VServerów dla dystrybucji Fedora Core
+Group: Applications/System
+Requires: %{name}-build = %{version}-%{release}
+Requires: binutils
+Requires: e2fsprogs
+Requires: rpm
+Requires: tar
+Requires: wget
+
+%description -n vserver-distro-fedora
+VServer build templates for Fedora Core 1,2,3,4.
+
+%description -n vserver-distro-fedora -l pl.UTF-8
+Szablony do tworzenia VServerów dla dystrybucji Fedora Core 1,2,3,4.
+
+%package -n vserver-distro-redhat
+Summary: VServer build template for Red Hat Linux 9
+Summary(pl.UTF-8): Szablon do tworzenia VServerów dla dystrybucji Red Hat Linux 9
+Group: Applications/System
+Requires: %{name}-build = %{version}-%{release}
+Requires: binutils
+Requires: e2fsprogs
+Requires: rpm
+Requires: tar
+Requires: wget
+
+%description -n vserver-distro-redhat
+VServer build template for RedHat Linux 9.
+
+%description -n vserver-distro-redhat -l pl.UTF-8
+Szablon do tworzenia VServerów dla dystrybucji Red Hat Linux 9.
+
+%package -n vserver-distro-suse
+Summary: VServer build template for SuSE 9.1
+Summary(pl.UTF-8): Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1
+Group: Applications/System
+Requires: %{name}-build = %{version}-%{release}
+Requires: binutils
+Requires: e2fsprogs
+Requires: rpm
+Requires: tar
+Requires: wget
+
+%description -n vserver-distro-suse
+VServer build template for SuSE Linux 9.1.
+
+%description -n vserver-distro-suse -l pl.UTF-8
+Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1.
-Ten pakiet zawiera narzêdzia pomagaj±ce przy budowaniu Vserwerów.
+%package -n vserver-distro-centos
+Summary: VServer build template for CentOS 4.2
+Summary(pl.UTF-8): Szablon budowania VServera dla CentOS 4.2
+Group: Applications/System
+Requires: %{name}-build = %{version}-%{release}
+Requires: yum
+
+%description -n vserver-distro-centos
+VServer build template for CentOS 4.
+
+%description -n vserver-distro-centos -l pl.UTF-8
+Szablon budowania VServera dla CentOS 4.
+
+%package -n vserver-distro-gentoo
+Summary: VServer build template for Gentoo
+Summary(pl.UTF-8): Szablon budowania VServera dla Gentoo
+Group: Applications/System
+Requires: %{name}-build = %{version}-%{release}
+
+%description -n vserver-distro-gentoo
+VServer build template for Gentoo.
+
+%description -n vserver-distro-gentoo -l pl.UTF-8
+Szablon budowania VServera dla Gentoo.
%package init
Summary: initscripts for vserver
-Summary(pl): Skrypty inicjalizuj±ce dla vserwera
+Summary(pl.UTF-8): Skrypty inicjalizujące dla vserwera
Group: Applications/System
Requires(post,preun): /sbin/chkconfig
Requires: %{name} = %{version}-%{release}
This package contains the SysV initscripts which start and stop
Vservers and related tools.
-%description init -l pl
-util-vserver dostarcza sk³adniki i szkielet do tworzenia wirtualnych
-serwerów. Wirtualny serwer dzia³a wewn±trz serwera linuksowego, lecz
-jest od niego w du¿ym stopniu niezale¿ny. Jako taki mo¿e uruchamiaæ
-ró¿ne us³ugi z normaln± konfiguracj±. Ró¿ne vserwery nie mog± wchodziæ
-w interakcjê z innymi ani z us³ugami na g³ównym serwerze.
+%description init -l pl.UTF-8
+util-vserver dostarcza składniki i szkielet do tworzenia wirtualnych
+serwerów. Wirtualny serwer działa wewnątrz serwera linuksowego, lecz
+jest od niego w dużym stopniu niezależny. Jako taki może uruchamiać
+różne usługi z normalną konfiguracją. Różne vserwery nie mogą wchodzić
+w interakcję z innymi ani z usługami na głównym serwerze.
-Ten pakiet zawiera skrypty inicjalizuj±ce SysV uruchamiaj±ce i
-zatrzymuj±ce Vserwery oraz powi±zane narzêdzia.
+Ten pakiet zawiera skrypty inicjalizujące SysV uruchamiające i
+zatrzymujące Vserwery oraz powiązane narzędzia.
%package legacy
Summary: Legacy utilities for util-vserver
-Summary(pl): Stare narzêdzia dla util-vserver
+Summary(pl.UTF-8): Stare narzędzia dla util-vserver
Group: Applications/System
Requires(post,preun): /sbin/chkconfig
Requires: %{name} = %{version}-%{release}
This package contains the tools which are needed to work with Vservers
having an old-style configuration.
-%description legacy -l pl
-util-vserver dostarcza sk³adniki i szkielet do tworzenia wirtualnych
-serwerów. Wirtualny serwer dzia³a wewn±trz serwera linuksowego, lecz
-jest od niego w du¿ym stopniu niezale¿ny. Jako taki mo¿e uruchamiaæ
-ró¿ne us³ugi z normaln± konfiguracj±. Ró¿ne vserwery nie mog± wchodziæ
-w interakcjê z innymi ani z us³ugami na g³ównym serwerze.
-
-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!
+%description legacy -l pl.UTF-8
+util-vserver dostarcza składniki i szkielet do tworzenia wirtualnych
+serwerów. Wirtualny serwer działa wewnątrz serwera linuksowego, lecz
+jest od niego w dużym stopniu niezależny. Jako taki może uruchamiać
+różne usługi z normalną konfiguracją. Różne vserwery nie mogą wchodzić
+w interakcję z innymi ani z usługami na głównym serwerze.
+
+Ten pakiet zawiera narzędzia potrzebne do pracy z Vserwerami mającymi
+konfigurację w starym stylu.
%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
-%patch10 -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
%build
+unset LD_SYMBOLIC_FUNCTIONS || :
+
+%if %{with dietlibc}
+CFLAGS="%{rpmcflags} -D__GLIBC__ -D__KERNEL_STRICT_NAMES=1 -U__STRICT_ANSI__"
+%endif
%{__aclocal} -I m4
%{__automake}
%{__autoconf}
%configure \
--with-initrddir=/etc/rc.d/init.d \
--enable-release \
- %{?with_dietlibc:--enable-dietlibc} \
- %{!?with_dietlibc:--disable-dietlibc} \
+ --enable-apis=NOLEGACY \
+ --with-initscripts=sysv \
+ --%{?with_dietlibc:en}%{!?with_dietlibc:dis}able-dietlibc \
MKTEMP=/bin/mktemp \
MOUNT=/bin/mount \
PS=/bin/ps \
%{__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 \
+%{__make} -j1 install install-distribution \
DESTDIR=$RPM_BUILD_ROOT
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
sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE1} > \
$RPM_BUILD_ROOT/etc/rc.d/init.d/vprocunhide
sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE2} > \
- $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-default
+ $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers
sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE3} > \
$RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-legacy
sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE4} > \
$RPM_BUILD_ROOT/etc/rc.d/init.d/rebootmgr
+sed 's|%{_usrlib}/util-vserver|%{_libdir}/%{name}|g' %{SOURCE5} > \
+ $RPM_BUILD_ROOT/etc/sysconfig/vservers
-install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/vservers-default
install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/vservers-legacy
-ln -sf /dev/null $RPM_BUILD_ROOT/dev/initctl
+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 %{SOURCE10} $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-th/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
+# ac i686
+cp -a $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac \
+ $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac-i686
+echo "%{_target_cpu}-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac/rpm/platform
+echo "i686-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ac-i686/rpm/platform
+cp -a $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-ac \
+ $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-ac-i686
+sed -i 's/x86_64/i686/g' $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-ac-i686/poldek/*.conf
+
+# th i686
+cp -a $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-th \
+ $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-th-i686
+echo "%{_target_cpu}-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-th/rpm/platform
+echo "i686-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-th-i686/rpm/platform
+cp -a $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-th \
+ $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-th-i686
+sed -i 's/x86_64/i686/g' $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-th-i686/poldek/*.conf
+
+# ac x86_64
+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
+sed -i 's/x86_64/amd64/g' $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-ac/poldek/*.conf
%endif
+%ifarch i486
+sed -i 's/i486/i386/g' $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-ac/poldek/*.conf
+%endif
+
+# XXX baggins check this: needed but seems unused
+install -d $RPM_BUILD_ROOT/var/cache/vservers
+
+# we have our own initscript which does the same
+rm -f $RPM_BUILD_ROOT/etc/rc.d/init.d/vservers-default
+rm -f $RPM_BUILD_ROOT/usr/lib/util-vserver/vserver-wrapper
+# probaly the part of them
+rm -f $RPM_BUILD_ROOT/etc/vservers.conf
%clean
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
-#if [ -r /var/lock/subsys/vprocunhide ]; then
-# /etc/rc.d/init.d/vprocunhide restart >&2
-#else
- echo "Type \"/etc/rc.d/init.d/vprocunhide start\" to set /proc visibility for vservers" 1>&2
-#fi
-#if [ -r /var/lock/subsys/vservers-default ]; then
-# /etc/rc.d/init.d/vservers-default restart >&2
-#else
- echo "Type \"/etc/rc.d/init.d/vservers-default start\" to start default vservers" 1>&2
-#fi
+/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 \"/sbin/service vprocunhide start\" to set /proc visibility for vservers" 1>&2
+fi
+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
- /sbin/chkconfig --del vprocunhide
- /sbin/chkconfig --del vservers-default
+ %service vservers stop
+ %service vprocunhide stop
+ %service vrootdevices stop
+ /sbin/chkconfig --del vservers
+ /sbin/chkconfig --del vprocunhide
+ /sbin/chkconfig --del vrootdevices
fi
%post legacy
/sbin/chkconfig --add rebootmgr
/sbin/chkconfig --add vservers-legacy
-#if [ -r /var/lock/subsys/rebootmgr ] ; then
-# /etc/rc.d/init.d/rebootmgr restart >&2
-#else
- echo "Type \"/etc/rc.d/init.d/rebootmgr start\" to start reboot manager for legacy vservers" 1>&2
-#fi
-#if [ -r /var/lock/subsys/vservers-legacy ] ; then
-# /etc/rc.d/init.d/vservers-legacy restart >&2
-#else
- echo "Type \"/etc/rc.d/init.d/vservers-legacy start\" to start legacy vservers" 1>&2
-#fi
+if [ ! -f /var/lock/subsys/rebootmgr ] ; then
+ 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 \"/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
%attr(755,root,root) %{_sbindir}/chxid
%attr(755,root,root) %{_sbindir}/exec-cd
%attr(755,root,root) %{_sbindir}/lsxid
+%attr(755,root,root) %{_sbindir}/naddress
+%attr(755,root,root) %{_sbindir}/nattribute
+%attr(755,root,root) %{_sbindir}/ncontext
%attr(755,root,root) %{_sbindir}/reducecap
%attr(755,root,root) %{_sbindir}/setattr
%attr(755,root,root) %{_sbindir}/showattr
%attr(755,root,root) %{_sbindir}/vnamespace
%attr(755,root,root) %{_sbindir}/vkill
%attr(755,root,root) %{_sbindir}/vlimit
+%attr(755,root,root) %{_sbindir}/vdevmap
%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
%{_libdir}/%{name}/defaults/*
%attr(755,root,root) %{_libdir}/%{name}/capchroot
%attr(755,root,root) %{_libdir}/%{name}/chain-echo
+%attr(755,root,root) %{_libdir}/%{name}/chbind-compat
%attr(755,root,root) %{_libdir}/%{name}/check-unixfile
%attr(755,root,root) %{_libdir}/%{name}/chcontext-compat
%attr(755,root,root) %{_libdir}/%{name}/chroot-sh
%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
+%attr(755,root,root) %{_libdir}/%{name}/vsysctl
%{_mandir}/man8/chbind.8*
%{_mandir}/man8/chcontext.8*
%{_mandir}/man8/reducecap.8*
%{_mandir}/man8/vserver.8*
%{_mandir}/man8/vtop.8*
%attr(000,root,root) %dir /vservers
-%attr(755,root,root) %dir /vservers/.pkg
+%dir /vservers/.pkg
%dir %{_localstatedir}/run/vservers
%dir %{_localstatedir}/run/vservers.rev
%dir %{_localstatedir}/run/vshelper
+%dir /var/cache/vservers
%files devel
%defattr(644,root,root,755)
%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/[frs]*
-%dir %{_sysconfdir}/vservers/.distributions/[frs]*/apt
-%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/[frs]*/apt/sources.list
-%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
+%ifarch %{x8664}
+%dir %{_sysconfdir}/vservers/.distributions/pld-ac-i686
+%dir %{_sysconfdir}/vservers/.distributions/pld-ac-i686/poldek
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld-ac-i686/poldek/*.conf
+%dir %{_sysconfdir}/vservers/.distributions/pld-th-i686
+%dir %{_sysconfdir}/vservers/.distributions/pld-th-i686/poldek
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld-th-i686/poldek/*.conf
+%endif
+%dir %{_sysconfdir}/vservers/.distributions/pld-th
+%dir %{_sysconfdir}/vservers/.distributions/pld-th/poldek
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld-th/poldek/*.conf
%attr(755,root,root) %{_libdir}/%{name}/rpm-fake*
%dir %{_libdir}/%{name}/distributions
-%attr(-, root, root) %{_libdir}/%{name}/distributions/*
+%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}/magic.mime
%{_libdir}/%{name}/vserver-build.*
%{_libdir}/%{name}/vserver-setup.functions
%{_libdir}/%{name}/defaults/fstab
%{_libdir}/%{name}/defaults/vunify-exclude
%attr(755,root,root) %{_libdir}/%{name}/pkgmgmt
%attr(755,root,root) %{_libdir}/%{name}/vapt-get-worker
+%attr(755,root,root) %{_libdir}/%{name}/vclone
%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-*
%attr(755,root,root) %{_sbindir}/vrpm
%attr(755,root,root) %{_sbindir}/vyum
+%files -n vserver-distro-fedora
+%defattr(644,root,root,755)
+%dir %{_sysconfdir}/vservers/.distributions/fc*
+%dir %{_sysconfdir}/vservers/.distributions/fc*/apt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/fc*/apt/sources.list
+%{_libdir}/%{name}/distributions/fc*
+
+%files -n vserver-distro-redhat
+%defattr(644,root,root,755)
+%dir %{_sysconfdir}/vservers/.distributions/rh*
+%dir %{_sysconfdir}/vservers/.distributions/rh*/apt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/rh*/apt/sources.list
+%{_libdir}/%{name}/distributions/rh*
+
+%files -n vserver-distro-suse
+%defattr(644,root,root,755)
+%dir %{_sysconfdir}/vservers/.distributions/suse*
+%dir %{_sysconfdir}/vservers/.distributions/suse*/apt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/suse*/apt/sources.list
+%{_libdir}/%{name}/distributions/suse*
+
+%files -n vserver-distro-centos
+%defattr(644,root,root,755)
+%{_libdir}/util-vserver/distributions/centos*
+
+%files -n vserver-distro-gentoo
+%defattr(644,root,root,755)
+%dir %{_libdir}/util-vserver/distributions/gentoo
+%attr(755,root,root) %{_libdir}/util-vserver/distributions/gentoo/*
+%attr(755,root,root) %{_sbindir}/vdispatch-conf
+%attr(755,root,root) %{_sbindir}/vemerge
+%attr(755,root,root) %{_sbindir}/vesync
+%attr(755,root,root) %{_sbindir}/vupdateworld
+
%files legacy
%defattr(644,root,root,755)
%dir %{_sysconfdir}/vservices
%{_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