+# 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.209
-Release: 0.2
+Version: 0.30.214
+Release: 4
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: 8bad879e36a6a1b9b4858d0d6d3c8c76
Source1: vprocunhide.init
Source2: vservers.init
Source3: vservers-legacy.init
Source6: vservers-legacy.sysconfig
Source7: vrootdevices.init
Source8: vrootdevices.sysconfig
-# A bit of documentation explaining package menagement
+# 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
-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
+Patch13: %{name}-tmpdir.patch
+Patch14: %{name}-rpmpath.patch
+Patch15: %{name}-interfaces-ignore-cvs-dir.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: tetex-makeindex
# To be removed when tetex-format-pdflatex, tetex-pdftex...
# ...and graphviz packages get fixed
-BuildRequires: tetex-fonts-jknappen
-BuildRequires: tetex-metafont
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)
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 lib
+Summary: Dynamic libraries for 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
+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.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
+podpakiety util-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
-Group: Libraries
+%package build
+Summary: Tools which can be used to build vservers
+Summary(pl.UTF-8): Narzędzia do budowania vserverów
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+Requires: /etc/pld-release
+# for ar, used by debbootstrap
+Requires: binutils
+Requires: e2fsprogs
+Requires: wget
+Requires: which
+Conflicts: poldek < 0.18.8-10
-%description lib
+%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 the shared libraries needed by all other
-'util-vserver' subpackages.
+This package contains utilities which assist in building Vservers.
-%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 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 biblioteki wspó³dzielone wymagane przez wszystkie
-podpakiety util-vserver.
+Ten pakiet zawiera narzędzia pomagające przy budowaniu Vserwerów.
-%package build
-Summary: Tools which can be used to build vservers
-Summary(pl): Narzêdzia do budowania vserverów
+%package init
+Summary: initscripts for vserver
+Summary(pl.UTF-8): Skrypty inicjalizujące dla vserwera
Group: Applications/System
-Conflicts: poldek < 0.18.8-10
+Requires(post,preun): /sbin/chkconfig
Requires: %{name} = %{version}-%{release}
+Requires: diffutils
+Requires: make
+Requires: rc-scripts
-%description build
+%description init
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.
+This package contains the SysV initscripts which start and stop
+Vservers and related tools.
-%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 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 narzêdzia pomagaj±ce przy budowaniu Vserwerów.
+Ten pakiet zawiera skrypty inicjalizujące SysV uruchamiające i
+zatrzymujące Vserwery oraz powiązane narzędzia.
-%package -n vserver-distro-fedora
-Summary: VServer build templates for Fedora Core
-Summary(pl): Szablony do tworzenia VServerów dla dystrybucji Fedora Core
+%package legacy
+Summary: Legacy utilities for util-vserver
+Summary(pl.UTF-8): Stare narzędzia dla util-vserver
Group: Applications/System
+Requires(post,preun): /sbin/chkconfig
Requires: %{name} = %{version}-%{release}
+Requires: rc-scripts
+
+%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 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.
+
+%package -n vserver-distro-debian
+Summary: VServer build templates for Debian
+Summary(pl.UTF-8): Szablony do tworzenia VServerów dla dystrybucji Debian
+Group: Applications/System
+Requires: %{name}-build = %{version}-%{release}
+Requires: dpkg
+
+%description -n vserver-distro-debian
+VServer build templates for Debian.
+
+%description -n vserver-distro-debian -l pl.UTF-8
+Szablony do tworzenia VServerów dla dystrybucji Debian.
+
+%package -n vserver-distro-centos
+Summary: VServer build template for CentOS
+Summary(pl.UTF-8): Szablon budowania VServerów dla dystrybucji CentOS
+Group: Applications/System
+Requires: %{name}-build = %{version}-%{release}
+Requires: yum
+
+%description -n vserver-distro-centos
+VServer build template for CentOS 4.2 and 5.
+
+%description -n vserver-distro-centos -l pl.UTF-8
+Szablon budowania VServerów dla dystrybucji CentOS 4.2 i 5.
+
+%package -n vserver-distro-fedora
+Summary: VServer build templates for Fedora
+Summary(pl.UTF-8): Szablony do tworzenia VServerów dla dystrybucji Fedora
+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.
+VServer build templates for Fedora Core 1,2,3,4,5,6 and Fedora 7.
+
+%description -n vserver-distro-fedora -l pl.UTF-8
+Szablony do tworzenia VServerów dla dystrybucji Fedora Core
+1,2,3,4,5,6 oraz Fedora 7.
+
+%package -n vserver-distro-gentoo
+Summary: VServer build template for Gentoo
+Summary(pl.UTF-8): Szablon budowania VServerów dla Gentoo
+Group: Applications/System
+Requires: %{name}-build = %{version}-%{release}
+
+%description -n vserver-distro-gentoo
+VServer build template for Gentoo.
-%description -n vserver-distro-fedora -l pl
-Szablony do tworzenia VServerów dla dystrybucji Fedora Core 1,2,3,4.
+%description -n vserver-distro-gentoo -l pl.UTF-8
+Szablon budowania VServerów dla Gentoo.
%package -n vserver-distro-redhat
Summary: VServer build template for Red Hat Linux 9
-Summary(pl): Szablon do tworzenia VServerów dla dystrybucji Red Hat Linux 9
+Summary(pl.UTF-8): Szablon do tworzenia VServerów dla dystrybucji Red Hat Linux 9
Group: Applications/System
-Requires: %{name} = %{version}-%{release}
+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
-Szablon do tworzenia VServerów dla dystrybucji Red Hat 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): Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1
+Summary(pl.UTF-8): Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1
Group: Applications/System
-Requires: %{name} = %{version}-%{release}
+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
-Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1.
+%description -n vserver-distro-suse -l pl.UTF-8
+Szablon do tworzenia VServerów dla dystrybucji SuSE 9.1.
-%package -n vserver-distro-centos
-Summary: VServer build template for CentOS 4.2
-Summary(pl): Szablon budowania VServera dla CentOS 4.2
+%package -n vserver-distro-ubuntu
+Summary: VServer build templates for Ubuntu
+Summary(pl.UTF-8): Szablony do tworzenia VServerów dla dystrybucji Ubuntu
Group: Applications/System
-Requires: util-vserver-build
-Requires: yum
+Requires: %{name}-build = %{version}-%{release}
+Requires: dpkg
-%description -n vserver-distro-centos
-VServer build template for CentOS 4.2.
+%description -n vserver-distro-ubuntu
+VServer build templates for Ubuntu.
-%description -n vserver-distro-centos -l pl
-Szablon budowania VServera dla CentOS 4.2.
+%description -n vserver-distro-ubuntu -l pl.UTF-8
+Szablony do tworzenia VServerów dla dystrybucji Ubuntu.
-%package init
-Summary: initscripts for vserver
-Summary(pl): Skrypty inicjalizuj±ce dla vserwera
-Group: Applications/System
-Requires(post,preun): /sbin/chkconfig
-Requires: %{name} = %{version}-%{release}
-Requires: diffutils
-Requires: make
-Requires: rc-scripts
-
-%description init
-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 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.
-
-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
-Group: Applications/System
-Requires(post,preun): /sbin/chkconfig
-Requires: %{name} = %{version}-%{release}
-Requires: rc-scripts
-
-%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 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!
+%ifarch amd64
+%define _x8664name amd64
+%else
+%define _x8664name x86_64
+%endif
%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
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
-install %{SOURCE7} package-menagament.txt
-
-cp -a compat.h vserver-compat.h
+install %{SOURCE9} package-management.txt
%build
+unset LD_SYMBOLIC_FUNCTIONS || :
+
%if %{with dietlibc}
-CFLAGS="%{rpmcflags} -D__GLIBC__"
+CFLAGS="%{rpmcflags} -D__GLIBC__ -D__KERNEL_STRICT_NAMES=1 -U__STRICT_ANSI__"
%endif
%{__aclocal} -I m4
%{__automake}
%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
-
for i in $RPM_BUILD_ROOT/etc/rc.d/init.d/v_* ; do
s=`basename $i | sed s/v_//`
cat >$RPM_BUILD_ROOT%{_sysconfdir}/vservices/$s << EOF
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 %{SOURCE10} $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ti/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/%{_x8664name}/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/%{_x8664name}/i686/g' $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-th-i686/poldek/*.conf
+
+# titanium i686
+cp -a $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ti \
+ $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ti-i686
+echo "%{_target_cpu}-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ti/rpm/platform
+echo "i686-%{_target_vendor}-linux" > $RPM_BUILD_ROOT%{_libdir}/%{name}/distributions/pld-ti-i686/rpm/platform
+cp -a $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-ti \
+ $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-ti-i686
+sed -i 's/%{_x8664name}/i686/g' $RPM_BUILD_ROOT%{_sysconfdir}/vservers/.distributions/pld-ti-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%{_libdir}/util-vserver/vserver-wrapper
+# probaly the part of them
+rm -f $RPM_BUILD_ROOT%{_sysconfdir}/vservers.conf
+
%clean
rm -rf $RPM_BUILD_ROOT
%post lib -p /sbin/ldconfig
%postun lib -p /sbin/ldconfig
+%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
+
%post init
+/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 ]; then
- echo "Type \"/etc/rc.d/init.d/vservers start\" to start vservers" 1>&2
+ echo "Type \"/sbin/service vservers start\" to start vservers" 1>&2
fi
%preun init
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/vservers ]; then
- /etc/rc.d/init.d/vservers stop >&2
- fi
- if [ -r /var/lock/subsys/vprocunhide ]; then
- /etc/rc.d/init.d/vprocunhide stop >&2
- fi
+ %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 [ ! -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
%dir %{_sysconfdir}/vservers/.defaults/files
%{_sysconfdir}/vservers/.defaults/vdirbase
%{_sysconfdir}/vservers/.defaults/run.rev
-%{_sysconfdir}/vservers/vdirbase
-%{_sysconfdir}/vservers/run.rev
/sbin/vshelper
%attr(755,root,root) %{_sbindir}/chbind
%attr(755,root,root) %{_sbindir}/chcontext
%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
%attr(755,root,root) %{_sbindir}/vserver-info
%attr(755,root,root) %{_sbindir}/vserver-stat
%attr(755,root,root) %{_sbindir}/vsomething
+%attr(755,root,root) %{_sbindir}/vtag
%attr(755,root,root) %{_sbindir}/vtop
%attr(755,root,root) %{_sbindir}/vuname
%attr(755,root,root) %{_sbindir}/vwait
%{_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}/fakerunlevel
%attr(755,root,root) %{_libdir}/%{name}/filetime
%{_libdir}/%{name}/functions
+%attr(755,root,root) %{_libdir}/%{name}/h2ext
+%attr(755,root,root) %{_libdir}/%{name}/h2ext-worker
%attr(755,root,root) %{_libdir}/%{name}/keep-ctx-alive
%attr(755,root,root) %{_libdir}/%{name}/lockfile
%attr(755,root,root) %{_libdir}/%{name}/mask2prefix
%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 lib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
%files devel
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%{_libdir}/libvserver.a
-%files lib
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*.so.*.*.*
-
-%files init
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/%{name}/vsysvwrapper
-%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers
-%attr(754,root,root) /etc/rc.d/init.d/vprocunhide
-%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
+%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
+%dir %{_sysconfdir}/vservers/.distributions/pld-ti-i686
+%dir %{_sysconfdir}/vservers/.distributions/pld-ti-i686/poldek
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld-ti-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
+%dir %{_sysconfdir}/vservers/.distributions/pld-ti
+%dir %{_sysconfdir}/vservers/.distributions/pld-ti/poldek
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/pld-ti/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
%{_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 init
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/%{name}/vsysvwrapper
+%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/vrootdevices
+%attr(754,root,root) /etc/rc.d/init.d/vservers
+
+%files legacy
+%defattr(644,root,root,755)
+%dir %{_sysconfdir}/vservices
+%{_sysconfdir}/vservices/*
+%dir %{_libdir}/%{name}/legacy
+%attr(755,root,root) %{_libdir}/%{name}/legacy/*
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers-legacy
+%attr(754,root,root) /etc/rc.d/init.d/v_*
+%attr(754,root,root) /etc/rc.d/init.d/rebootmgr
+%attr(754,root,root) /etc/rc.d/init.d/vservers-legacy
+%attr(755,root,root) %{_sbindir}/vserver-copy
+%{_mandir}/man8/distrib-info.8*
+%{_mandir}/man8/rebootmgr.8*
+%{_mandir}/man8/vserver-copy.8*
+
+%files -n vserver-distro-centos
+%defattr(644,root,root,755)
+%{_libdir}/util-vserver/distributions/centos*
+
+%files -n vserver-distro-debian
+%defattr(644,root,root,755)
+%dir %{_libdir}/%{name}/distributions/debian
+%{_libdir}/%{name}/distributions/debian/debootstrap.script
+%attr(755,root,root) %{_libdir}/%{name}/distributions/debian/initpost
+%{_libdir}/%{name}/distributions/etch
+%{_libdir}/%{name}/distributions/lenny
+%{_libdir}/%{name}/distributions/sid
+
%files -n vserver-distro-fedora
%defattr(644,root,root,755)
+%dir %{_sysconfdir}/vservers/.distributions/f7
+%dir %{_sysconfdir}/vservers/.distributions/f7/apt
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vservers/.distributions/f7/apt/sources.list
%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/f7
%{_libdir}/%{name}/distributions/fc*
+%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 -n vserver-distro-redhat
%defattr(644,root,root,755)
%dir %{_sysconfdir}/vservers/.distributions/rh*
%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/centos42
-
-%files legacy
-%defattr(644,root,root,755)
-%dir %{_sysconfdir}/vservices
-%{_sysconfdir}/vservices/*
-%dir %{_libdir}/%{name}/legacy
-%attr(755,root,root) %{_libdir}/%{name}/legacy/*
-%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/vservers-legacy
-%attr(754,root,root) /etc/rc.d/init.d/v_*
-%attr(754,root,root) /etc/rc.d/init.d/rebootmgr
-%attr(754,root,root) /etc/rc.d/init.d/vservers-legacy
-%attr(755,root,root) %{_sbindir}/vserver-copy
-%{_mandir}/man8/distrib-info.8*
-%{_mandir}/man8/rebootmgr.8*
-%{_mandir}/man8/vserver-copy.8*
-
-%files -n vserver-dev
+%files -n vserver-distro-ubuntu
%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
+%{_libdir}/%{name}/distributions/breezy
+%{_libdir}/%{name}/distributions/dapper
+%{_libdir}/%{name}/distributions/edgy
+%{_libdir}/%{name}/distributions/feisty
+%{_libdir}/%{name}/distributions/gutsy
+%{_libdir}/%{name}/distributions/hoary
+%{_libdir}/%{name}/distributions/warty