--- util-vserver-0.30.216-r2837.orig/distrib/defaults/poldek/poldek.conf 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/defaults/poldek/poldek.conf 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,11 @@ +# poldek configuration file. + +%includedir repos.d + +[global] +particle install = no +choose equivalents manually = yes +unique package names = yes + +#hold = +ignore = kernel* udev devfs --- util-vserver-0.30.216-r2837.orig/distrib/Makefile.am 2009-06-22 17:36:52.000000000 +0200 +++ util-vserver-0.30.216-r2837/distrib/Makefile.am 2009-06-22 17:49:36.000000000 +0200 @@ -45,6 +45,7 @@ defaults/apt.conf \ defaults/rpm/macros \ defaults/apt/apt.conf \ + defaults/poldek/poldek.conf \ template/initpost template/initpre \ rh9/apt/rpmpriorities rh9/pkgs/01 rh9/pkgs/02 \ fc1/apt/rpmpriorities fc1/pkgs/01 fc1/pkgs/02 \ @@ -85,7 +86,10 @@ suse91/apt/rpmpriorities suse91/pkgs/01 suse91/pkgs/02 \ suse91/rpm/macros \ gentoo/init-vserver.sh gentoo/net.vserver \ - gentoo/reboot.sh gentoo/shutdown.sh + gentoo/reboot.sh gentoo/shutdown.sh\ + pld-ac/pkgs/01 pld-ac/rpm/macros \ + pld-th/pkgs/01 pld-th/rpm/macros \ + pld-ti/pkgs/01 pld-ti/rpm/macros nobase_confdistrib_DATA = rh9/apt/sources.list \ fc1/apt/sources.list \ @@ -95,7 +99,10 @@ fc5/apt/sources.list \ fc6/apt/sources.list \ f7/apt/sources.list \ - suse91/apt/sources.list + suse91/apt/sources.list \ + pld-ac/poldek/repos.d/pld.conf \ + pld-th/poldek/repos.d/pld.conf \ + pld-ti/poldek/repos.d/pld.conf AM_INSTALLCHECK_STD_OPTIONS_EXEMPT \ = $(nobase_distrib_SCRIPTS) --- util-vserver-0.30.216-r2837.orig/distrib/pld-ac/pkgs/01 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-ac/pkgs/01 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,6 @@ +basesystem +filesystem +glibc-misc +issue +rpm-base +vserver-packages --- util-vserver-0.30.216-r2837.orig/distrib/pld-ac/poldek/repos.d/pld.conf 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-ac/poldek/repos.d/pld.conf 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,64 @@ +# $Id$ +# PLD Linux Distribution . +# +# Main sources for PLD Linux 2.0 (Ac) + +# specify our packages architecture +_arch = %ARCH% + +# main PLD-site for often changed things: +_pld_main_prefix = ftp://ftp.ac.pld-linux.org/dists/ac + +## Some mirrors +## You can use them if you have better connection there +# CI TASK: +#_prefix = ftp://ftp.task.pld-linux.org/dists/ac +_prefix = %{_pld_main_prefix} + +_type = pndir + +# PLD Linux 2.0 (Ac) +[source] +type = %{_type} +name = ac-main +path = %{_prefix}/PLD/%{_arch}/PLD/RPMS/ +signed = yes +pri = 1 +# msmtp-sendmail is broken, yum noarch is older than in updates +ignore = msmtp-sendmail* yum* + +[source] +type = %{_type} +name = ac-updates +path = %{_prefix}/updates/%{_arch}/ +signed = yes +pri = 1 + +[source] +type = %{_type} +name = ac-supported +path = %{_prefix}/supported/%{_arch}/ +signed = yes +auto = no +autoup = no + +[source] +type = %{_type} +name = ac-ready +path = %{_pld_main_prefix}/ready/%{_arch}/ +#signed = yes +auto = no +autoup = no + +[source] +type = %{_type} +name = ac-test +path = %{_pld_main_prefix}/test/%{_arch}/ +auto = no +autoup = no + +# ac-main + ac-updates +[source] +type = group +name = ac +sources = ac-main ac-updates --- util-vserver-0.30.216-r2837.orig/distrib/pld-ac/rpm/macros 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-ac/rpm/macros 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,6 @@ +# Because of https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=52725 +# you have to use at least one language beside 'C' +%_install_langs C:en:pl +%_netsharedpath /dev:/proc +%_tmppath /tmp +%_host_os %_os --- util-vserver-0.30.216-r2837.orig/distrib/pld-th/pkgs/01 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-th/pkgs/01 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,6 @@ +basesystem +filesystem +glibc-misc +issue +rpm-base +vserver-packages --- util-vserver-0.30.216-r2837.orig/distrib/pld-th/poldek/repos.d/pld.conf 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-th/poldek/repos.d/pld.conf 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,65 @@ +# PLD Linux Distribution . + +_arch = %ARCH% +_prefix = ftp://ftp.th.pld-linux.org/dists/th +## Some mirrors +## You can use them if you have better connection there +# CI TASK: +#_prefix = ftp://ftp.task.pld-linux.org/dists/th + +_type = pndir + +# PLD 3.0 (Th) +[source] +type = %{_type} +name = th +path = %{_prefix}/PLD/%{_arch}/RPMS/ + +[source] +type = %{_type} +name = th +path = %{_prefix}/PLD/noarch/RPMS/ + +#[source] +#type = %{_type} +#name = th-updates +#path = %{_prefix}/updates/%{_arch}/RPMS/ +# +#[source] +#type = %{_type} +#name = th-updates +#path = %{_prefix}/updates/noarch/RPMS/ + +#[source] +#type = %{_type} +#name = th-supported +#path = %{_prefix}/supported/%{_arch}/ +#auto = no + +[source] +type = %{_type} +name = th-ready +path = %{_prefix}/ready/%{_arch}/RPMS/ +auto = no +autoup = no + +[source] +type = %{_type} +name = th-ready +path = %{_prefix}/ready/noarch/RPMS/ +auto = no +autoup = no + +[source] +type = %{_type} +name = th-test +path = %{_prefix}/test/%{_arch}/RPMS/ +auto = no +autoup = no + +[source] +type = %{_type} +name = th-test +path = %{_prefix}/test/noarch/RPMS/ +auto = no +autoup = no --- util-vserver-0.30.216-r2837.orig/distrib/pld-th/rpm/macros 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-th/rpm/macros 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,6 @@ +# Because of https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=52725 +# you have to use at least one language beside 'C' +%_install_langs C:en:pl +%_netsharedpath /dev:/proc +%_tmppath /tmp +%_host_os %_os --- util-vserver-0.30.216-r2837.orig/distrib/pld-ti/pkgs/01 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-ti/pkgs/01 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,6 @@ +basesystem +filesystem +glibc-misc +issue +rpm-base +vserver-packages --- util-vserver-0.30.216-r2837.orig/distrib/pld-ti/poldek/repos.d/pld.conf 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-ti/poldek/repos.d/pld.conf 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,46 @@ +# PLD Titanium +# Unofficial version of PLD Linux Distribution +# http://www.pld-linux.org/Titanium + +_arch = %ARCH% +_prefix = ftp://ftp.titanium.pld-linux.org/branches/titanium + +_type = pndir + +[source] +type = %{_type} +name = titanium +path = %{_prefix}/PLD/%{_arch}/RPMS/ + +[source] +type = %{_type} +name = titanium +path = %{_prefix}/PLD/noarch/RPMS/ + +[source] +type = %{_type} +name = titanium-ready +path = %{_prefix}/ready/%{_arch}/RPMS/ +auto = no +autoup = no + +[source] +type = %{_type} +name = titanium-ready +path = %{_prefix}/ready/noarch/RPMS/ +auto = no +autoup = no + +[source] +type = %{_type} +name = titanium-test +path = %{_prefix}/test/%{_arch}/RPMS/ +auto = no +autoup = no + +[source] +type = %{_type} +name = titanium-test +path = %{_prefix}/test/noarch/RPMS/ +auto = no +autoup = no --- util-vserver-0.30.216-r2837.orig/distrib/pld-ti/rpm/macros 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/distrib/pld-ti/rpm/macros 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,6 @@ +# Because of https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=52725 +# you have to use at least one language beside 'C' +%_install_langs C:en:pl +%_netsharedpath /dev:/proc +%_tmppath /tmp +%_host_os %_os --- util-vserver-0.30.216-r2837.orig/scripts/functions 2009-06-22 17:36:35.000000000 +0200 +++ util-vserver-0.30.216-r2837/scripts/functions 2009-06-22 17:48:26.000000000 +0200 @@ -403,6 +403,20 @@ fi } +function _pkgSetVarsPoldek +{ + if test -n "$PKGDIR"; then + findDir POLDEKETCDIR $PKGDIR/poldeketc $PKGDIR/base/poldek/etc /etc/poldek + findDir POLDEKCACHEDIR $PKGDIR/poldek-cache $PKGDIR/base/poldek/cache + else + findDir POLDEKETCDIR "$VDIR"/etc/poldek /etc/poldek + findDir POLDEKCACHEDIR "$VDIR"/var/tmp/poldek-cache + fi + + findFile POLDEK_CONFIG "$POLDEKETCDIR"/poldek.conf "" + test -z "$POLDEK_CONFIG" || export POLDEK_CONFIG +} + function _pkgMountBase { @@ -476,6 +490,7 @@ rpm) _pkgSetVarsRPM;; apt) _pkgSetVarsApt;; yum) _pkgSetVarsYum;; + poldek) _pkgSetVarsPoldek;; *) echo "Unknown packaging flavor" >&2; exit 1;; esac done @@ -770,6 +785,8 @@ style=redhat elif test -e "$_pgs_vdir"/etc/mandrake-release; then style=mandrake + elif test -e "$_pgs_vdir"/etc/pld-release; then + style=pld elif test -e "$_pgs_vdir"/etc/debian_version; then style=debian elif test -e "$_pgs_vdir"/etc/SuSE-release; then @@ -837,6 +854,27 @@ test -n "$have_yum" && return 0 || return 1 } +## Usage: pkgmgmt.isPoldekAvailable [] +function pkgmgmt.isPoldekAvailable +{ + local cfgdir="$1" + local vdir="$2" + local is_internal="$3" + + local have_poldek i + if test -n "$is_internal"; then + have_poldek=1 + test -d "$cfgdir"/base/poldek -o -d "$cfgdir"/poldeketc || have_poldek= + else + have_poldek= + for i in /bin /usr/bin /usr/local/bin; do + test ! -x "$vdir$i"/poldek || { have_poldek=1; break; } + done + fi + + test -n "$have_poldek" && return 0 || return 1 +} + function vshelper.doSanityCheck { --- util-vserver-0.30.216-r2837.orig/scripts/Makefile-files 2009-06-22 17:36:35.000000000 +0200 +++ util-vserver-0.30.216-r2837/scripts/Makefile-files 2009-06-22 17:48:26.000000000 +0200 @@ -21,6 +21,7 @@ scripts/vapt-get-worker \ scripts/vrpm-worker \ scripts/vyum-worker \ + scripts/vpoldek-worker \ scripts/vrpm-preload \ scripts/save_s_context \ scripts/vservers.grabinfo.sh \ @@ -48,11 +49,13 @@ scripts/vserver-build.template \ scripts/vserver-build.rsync \ scripts/vserver-build.clone \ + scripts/vserver-build.poldek \ scripts/vserver-build.functions \ scripts/vserver-build.functions.apt \ scripts/vserver-build.functions.rpm \ scripts/vserver-build.functions.pkgmgmt \ scripts/vserver-build.functions.yum \ + scripts/vserver-build.functions.poldek \ scripts/vserver-setup.functions \ scripts/vserver.functions \ scripts/vserver.start \ @@ -66,6 +69,7 @@ scripts_pkglib_src_SCRPTS = scripts/pkgmgmt \ scripts/vapt-get-worker \ scripts/vpkg \ + scripts/vpoldek-worker \ scripts/vrpm-worker \ scripts/vrpm-preload \ scripts/start-vservers \ @@ -89,6 +93,7 @@ scripts_sbin_src_PRGS = scripts/chbind \ scripts/chcontext \ scripts/vapt-get \ + scripts/vpoldek \ scripts/vdispatch-conf \ scripts/vemerge \ scripts/vesync \ --- util-vserver-0.30.216-r2837.orig/scripts/pkgmgmt 2009-06-22 17:36:34.000000000 +0200 +++ util-vserver-0.30.216-r2837/scripts/pkgmgmt 2009-06-22 17:48:26.000000000 +0200 @@ -195,7 +195,7 @@ " case $2 in - (RH) pkgs=$(vrpm "$1" -- -q --qf '---%{NAME}---\n' rpm apt yum "${YUM_RELEASEPKGS[@]}") + (RH) pkgs=$(vrpm "$1" -- -q --qf '---%{NAME}---\n' rpm apt yum poldek "${YUM_RELEASEPKGS[@]}") hasSubstring "$pkgs" ---rpm--- || { warning "$ERR * The vserver does not seem to have the 'rpm' package which is required @@ -205,9 +205,9 @@ ERR= } - hasSubstring "$pkgs" ---apt--- ---yum--- || { + hasSubstring "$pkgs" ---apt--- ---yum--- ---poldek--- || { warning "$ERR -* The vserver does not seem to have a depsolver like 'apt' or 'yum' +* The vserver does not seem to have a depsolver like 'apt', 'yum' or 'poldek' installed. It is suggested to install such a program before setting up internal package management." res=1 @@ -368,6 +368,131 @@ fi } +function processVserver_PLD() +{ + local vserver=$1 + local is_internalize=$2 + local cfgdir + local i + + cfgdir=$($_VSERVER_INFO "$vserver" APPDIR pkgmgmt) || \ + cfgdir=$($_VSERVER_INFO "$vserver" APPDIR)/pkgmgmt + + ## Figure out the environment.... + pkgmgmt.isPoldekAvailable "$cfgdir" "$vdir" "$is_internalize" || have_poldek= + + local POLDEKETCDIR= + local POLDEKCACHEDIR= + local RPMETCDIR= + local RPMSTATEDIR= + + ## Create directories and assign variables where configuration + ## can/will be found on the host + if test -n "$is_internalize"; then + verifyInternalPackages "$vserver" RH || test -n "$IS_FORCE" || + panic " +Can not continue; use '--force' to override this check" + + pushd "$vdir" >/dev/null + + test ! -L var/lib/rpm || { + $_EXEC_CD /var/lib $_RM rpm && + $_EXEC_CD /var/lib $_MKDIR -m755 rpm && + $_EXEC_CD /var/lib $_CHOWN rpm:rpm rpm || + : + } /dev/null + + for i in var/tmp/poldek-cache etc/rpm etc/poldek; do + test -d "$i" || + $_EXEC_CD /$(dirname "$i") $_MKDIR -m755 $(basename "$i") || : + done #2>/dev/null + + popd >/dev/null + + if test -n "$have_poldek"; then + findDir POLDEKETCDIR "$cfgdir"/poldeketc "$cfgdir"/base/poldek/etc /etc/poldek + fi + + findDir RPMETCDIR "$cfgdir"/rpmetc "$cfgdir"/base/rpm/etc /etc/rpm / + findDir RPMSTATEDIR "$cfgdir"/rpmstate "$cfgdir"/base/rpm/state + else + mkdir -m755 -p "$cfgdir" + local need_base= + + if test -n "$have_poldek"; then + findDir POLDEKETCDIR "$cfgdir"/poldeketc "$cfgdir"/base/poldek/etc / + findDir POLDEKCACHEDIR "$cfgdir"/poldek-cache "$cfgdir"/base/poldek/cache / + + test "$POLDEKETCDIR" != / || POLDEKETCDIR=$cfgdir/base/poldek/etc + test "$POLDEKCACHEDIR" != / || POLDEKCACHEDIR=$cfgdir/base/poldek/cache + + test -d "$cfgdir"/poldeketc -a -d "$cfgdir"/poldek-cache || need_base=1 + fi + + findDir RPMETCDIR "$cfgdir"/rpmetc "$cfgdir"/base/rpm/etc / + findDir RPMSTATEDIR "$cfgdir"/rpmstate "$cfgdir"/base/rpm/state / + + test "$RPMETCDIR" != / || RPMETCDIR=$cfgdir/base/rpm/etc + test "$RPMSTATEDIR" != / || RPMSTATEDIR=$cfgdir/base/rpm/state + + test -d "$cfgdir"/rpmetc -a -d "$cfgdir"/rpmstate || need_base=1 + test ! -e "$cfgdir"/base || need_base= + + test -z "$need_base" || ln -s "$PKGCFGDIR" "$cfgdir"/base + + mkdir -m755 -p "$PKGCFGDIR" + _createDirs "$POLDEKETCDIR" "$POLDEKCACHEDIR" \ + "$RPMETCDIR" "$RPMSTATEDIR" + fi + + ## Copy the files... + if test -n "$is_internalize"; then + if test -n "$have_poldek"; then + _copySecure "$vdir" "$POLDEKETCDIR" /etc/poldek + pushd "$vdir" >/dev/null + _hashAuto /etc/poldek.conf '/' + popd >/dev/null + fi + + _copySecure "$vdir" "$RPMETCDIR" /etc/rpm + _copySecure "$vdir" "$RPMSTATEDIR" /var/lib/rpm + + pushd "$vdir" >/dev/null + ## remove %_dbpath settings + _substFile /etc/rpm/macros '/^%_dbpath[ \t].*/D' + popd >/dev/null + else + if test -n "$have_poldek"; then + _copySecureRev "$vdir" /etc/poldek "$POLDEKETCDIR" + _unhashAuto "$POLDEKETCDIR"/poldek.conf '/' + fi + + _copySecureRev "$vdir" /etc/rpm "$RPMETCDIR" + _copySecureRev "$vdir" /var/lib/rpm "$RPMSTATEDIR" + + echo -e "%_dbpath\t\t$rpmdb_mntpoint" >>$RPMETCDIR/macros + fi + + ## Cleanups... + if test -n "$is_internalize"; then + : + else + tmpdir=$($_MKTEMPDIR -p /var/tmp pgmgmt.XXXXXX) + trap "$_RM -rf $tmpdir" EXIT + pushd "$vdir" >/dev/null + $_EXEC_CD /var/lib $_MV rpm $tmpdir/ + $_EXEC_CD /var/lib $_LN_S "$rpmdb_mntpoint" rpm + $_RM -rf $tmpdir + fi + + ## Finish it... + if test -n "$is_internalize"; then + $_TOUCH "$cfgdir"/internal + else + $_RM -f "$cfgdir"/internal + fi +} + function processVserver_Debian() { local vserver=$1 @@ -422,6 +547,7 @@ case "$style" in (redhat|mandrake) processVserver_RH "$vserver" "$IS_INTERNALIZE";; + (pld) processVserver_PLD "$vserver" "$IS_INTERNALIZE";; (debian) processVserver_Debian "$vserver" "$IS_INTERNALIZE";; (*) echo $"Vserver style '$style' is not supported for packagemanagment" >&2 --- util-vserver-0.30.216-r2837.orig/scripts/util-vserver-vars.pathsubst 2009-06-22 17:36:34.000000000 +0200 +++ util-vserver-0.30.216-r2837/scripts/util-vserver-vars.pathsubst 2009-06-22 17:48:26.000000000 +0200 @@ -54,6 +54,7 @@ _LIB_VSERVER_BUILD_FUNCTIONS_RPM="$__PKGLIBDIR/vserver-build.functions.rpm" _LIB_VSERVER_BUILD_FUNCTIONS_YUM="$__PKGLIBDIR/vserver-build.functions.yum" _LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT="$__PKGLIBDIR/vserver-build.functions.pkgmgmt" +_LIB_VSERVER_BUILD_FUNCTIONS_POLDEK="$__PKGLIBDIR/vserver-build.functions.poldek" _LISTDEVIP="$__LEGACYDIR/listdevip" _LOCKFILE="$__PKGLIBDIR/lockfile" _MASK2PREFIX="$__PKGLIBDIR/mask2prefix" @@ -109,6 +110,8 @@ _VUNIFY="$__PKGLIBDIR/vunify" _VYUM="$__SBINDIR/vyum" _VYUM_WORKER="$__PKGLIBDIR/vyum-worker" +_VPOLDEK="$__SBINDIR/vpoldek" +_VPOLDEK_WORKER="$__PKGLIBDIR/vpoldek-worker" _AWK="@AWK@" _BZIP2="@BZIP2@" --- util-vserver-0.30.216-r2837.orig/scripts/vpkg 2009-06-22 17:36:34.000000000 +0200 +++ util-vserver-0.30.216-r2837/scripts/vpkg 2009-06-22 17:48:26.000000000 +0200 @@ -115,6 +115,44 @@ fi fi ;; + (pld) + rpm_param= + poldek_param= + case "$tag" in + ## rpm outputs sometimes '(contains no files)', so return + ## only the valid output + (get-conffiles) + rpm_param=( -qac --pipe "$_SED '\!^/!p;d'" );; + (install) + rpm_param=( -Uvh "$@" ) + poldek_param=( --install -v "$@" ) + ;; + esac + + if test -n "$is_external"; then + have_poldek=1 + test -d "$cfgdir"/base/poldek -o -d "$cfgdir"/poldeketc || have_poldek= + else + have_poldek= + for i in /bin /usr/bin /usr/local/bin; do + test ! -x "$vdir$i"/poldek || { have_poldek=1; break; } + done + fi + + if test -n "$is_external"; then + if test "$have_poldek" -a "$poldek_param"; then + cmd=( "$_VPOLDEK" "$vserver" -- "${poldek_param[@]}" ) + else + cmd=( "$_VRPM" "$vserver" -- "${rpm_param[@]}" ) + fi + else + if test "$have_poldek" -a "$poldek_param"; then + cmd=( "$_VSERVER" --silent "$vserver" exec poldek "${poldek_param[@]}" ) + else + cmd=( "$_VSERVER" --silent "$vserver" exec rpm "${rpm_param[@]}" ) + fi + fi + ;; (debian) case "$tag" in (get-conffiles) --- util-vserver-0.30.216-r2837.orig/scripts/vpoldek 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/scripts/vpoldek 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,74 @@ +#! /bin/bash +# $Id$ + +# Copyright (C) 2007 Enrico Scholz +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +function showHelp() +{ + echo \ +$"Usage: $0 * [--all] -- + + +Report bugs to <$PACKAGE_BUGREPORT>." + exit 0 +} + +function showVersion() +{ + echo \ +$"vpoldek $PACKAGE_VERSION -- poldek for vservers +This program is part of $PACKAGE_STRING + +Copyright (C) 2007 Enrico Scholz +This program is free software; you may redistribute it under the terms of +the GNU General Public License. This program has absolutely no warranty." + exit 0 +} + +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through poldek_opts + +while true; do + case "$1" in + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) poldek_opts=( "${poldek_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vpoldek: internal error; arg=='$1'" >&2; exit 1;; + esac + shift +done + +VSOMETHING_TITLE=vpoldek +VSOMETHING_WORKER=$_VPOLDEK_WORKER +VSOMETHING_PKGMGMT=1 + +export VSOMETHING_TITLE VSOMETHING_WORKER VSOMETHING_PKGMGMT + +test ${#poldek_opts[@]} -eq 0 || poldek_opts=( "${poldek_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" poldek "${poldek_opts[@]}" "$@" --- util-vserver-0.30.216-r2837.orig/scripts/vpoldek-worker 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/scripts/vpoldek-worker 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,45 @@ +#! /bin/bash +# $Id$ + +# Copyright (C) 2003 Enrico Scholz +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +set -e + +: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} +test -e "$UTIL_VSERVER_VARS" || { + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 + exit 1 +} +. "$UTIL_VSERVER_VARS" +. "$_LIB_FUNCTIONS" + + +vserver="$1" +shift + +pkgInit "$vserver" rpm poldek + +test -z "$_POLDEK" || { + warning $"The environment variable \$_POLDEK is not supported anymore; please use \$POLDEK instead of" + ${POLDEK:=$_POLDEK} +} + +exec ${_POLDEK:-poldek} \ + -v --root=$VDIR \ + --cachedir=$POLDEKCACHEDIR \ + --conf=$POLDEK_CONFIG \ + --pmcmd=$RPM_BINARY \ + "$@" --- util-vserver-0.30.216-r2837.orig/scripts/vserver-build 2009-06-22 17:36:34.000000000 +0200 +++ util-vserver-0.30.216-r2837/scripts/vserver-build 2009-06-22 17:48:26.000000000 +0200 @@ -57,6 +57,9 @@ yum ... -- -d ... installs the base-packages of the given distribution with help of 'vyum' + poldek ... -- -d + ... installs the base-packages of the given distribution with + help of 'vpoldek' rpm ... -- [-d ] --empty|([--force] [--nodeps] )+ ... installs lists of rpm-packages skeleton ... -- [ *] @@ -136,7 +139,7 @@ case x"$method" in (xlegacy) exec $_VSERVER_LEGACY "$VSERVER_NAME" build "$@" ;; - (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum|xrpm|xtemplate|xfai|xrsync|xclone) + (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum|xrpm|xtemplate|xfai|xrsync|xclone|xpoldek) . $__PKGLIBDIR/vserver-build.$method ;; (x) panic $"No build-method specified";; --- util-vserver-0.30.216-r2837.orig/scripts/vserver-build.functions 2009-06-22 17:36:35.000000000 +0200 +++ util-vserver-0.30.216-r2837/scripts/vserver-build.functions 2009-06-22 17:48:26.000000000 +0200 @@ -170,6 +170,12 @@ elif test -e /etc/slackware-version; then set -- $(cat /etc/slackware-version) DISTRIBUTION=slackware$2 + elif test -e /etc/pld-release; then + old_IFS=$IFS + IFS='()' + set -- $(cat /etc/pld-release) + DISTRIBUTION=pld-$(echo $2 | tr A-Z a-z) + IFS=$old_IFS elif test -n "$1"; then DISTRIBUTION=$1 else --- util-vserver-0.30.216-r2837.orig/scripts/vserver-build.functions.poldek 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/scripts/vserver-build.functions.poldek 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,81 @@ +# $Id$ --*- sh -*-- + +# Copyright (C) 2003 Enrico Scholz +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +function poldek.installBasePackages +{ + local name="$1" + local dir="$2" + + test "$dir" != / || return 0 + for filelist in "$dir"/*; do + isRegularFile "$filelist" || continue + local idx=0 + local can_fail=false + local flags='--install' + + set -- $(<$filelist) + while test "$#" -gt 0; do + case "$1" in + --reinstall) flags='--reinstall';; + --can-fail) can_fail=true;; + *) break;; + esac + shift + done + "$_VPOLDEK" "$name" -- $flags $* || $can_fail + done +} + +function poldek.initVariables +{ + findFile POLDEKCONFDEFAULT \ + "$__CONFDIR/.distributions/$DISTRIBUTION/poldek/poldek.conf" \ + "$__CONFDIR/.defaults/apps/pkgmgmt/poldek/poldek.conf" \ + "$__DISTRIBDIR/$DISTRIBUTION/poldek/poldek.conf" \ + "$__DISTRIBDIR/defaults/poldek/poldek.conf" \ + '' +} + +function poldek.initFilesystem +{ + mkdir -p "$PKGCFGDIR"/poldek/etc/repos.d + + $_LN_S "$__CONFDIR"/.defaults/cachebase/poldek "$PKGCFGDIR"/poldek/cache + + populateDirectory "$PKGCFGDIR/poldek/etc" \ + "$__DISTRIBDIR/defaults/poldek" \ + "$__DISTRIBDIR/$DISTRIBUTION/poldek" \ + "$__CONFDIR/.distributions/$DISTRIBUTION/poldek" + + populateDirectory "$PKGCFGDIR/poldek/etc/repos.d" \ + "$__DISTRIBDIR/defaults/poldek/repos.d" \ + "$__DISTRIBDIR/$DISTRIBUTION/poldek/repos.d" \ + "$__CONFDIR/.distributions/$DISTRIBUTION/poldek/repos.d" + + if [ -n "$SETUP_MACHINE" ]; then + say "Using $SETUP_MACHINE as machine" + sed -i -e "s#^\(_arch\s*\)=.*#\1= $SETUP_MACHINE#" "$PKGCFGDIR"/poldek/etc/repos.d/*.conf + fi + + if [ -n "$MIRROR" ]; then + say "Using $MIRROR as mirror URL" + sed -i -e "s#^\(_prefix\s*\)=.*#\1= $MIRROR#" "$PKGCFGDIR"/poldek/etc/repos.d/*.conf + fi + +# test -z "$POLDEKCONFDEFAULT" || \ +# $_LN_S "$POLDEKCONFDEFAULT" "$PKGCFGDIR"/poldek/etc/ +} --- util-vserver-0.30.216-r2837.orig/scripts/vserver-build.poldek 1970-01-01 01:00:00.000000000 +0100 +++ util-vserver-0.30.216-r2837/scripts/vserver-build.poldek 2009-06-22 17:48:26.000000000 +0200 @@ -0,0 +1,65 @@ +# $Id$ --*- sh -*-- + +# Copyright (C) 2003 Enrico Scholz +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +tmp=$(getopt -o +d:,m: --long debug -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +. "$_LIB_VSERVER_BUILD_FUNCTIONS_RPM" +. "$_LIB_VSERVER_BUILD_FUNCTIONS_POLDEK" +. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT" + +while true; do + case "$1" in + (-d) DISTRIBUTION=$2; shift;; + (-m) MIRROR=$2; shift;; + (--debug) set -x;; + (--) shift; break ;; + (*) echo "vserver-build.poldek: internal error: unrecognized option '$1'" >&2 + exit 1 + ;; + esac + shift +done + +getDistribution + +base.init + +pkgmgmt.initVariables +rpm.initVariables +poldek.initVariables + +base.initFilesystem "$OPTION_FORCE" +pkgmgmt.initFilesystem "$OPTION_FORCE" +rpm.initFilesystem +poldek.initFilesystem + +setup_writeOption "$VSERVER_NAME" +setup_writeInitialFstab + +test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" +rpm.initDB "$SETUP_CONFDIR" +rpm.importGPGPubKeys "$SETUP_CONFDIR" \ + "$__CONFDIR/.distributions/$DISTRIBUTION/pubkeys" \ + "$__CONFDIR/.distributions/.common/pubkeys" \ + "$__DISTRIBDIR/$DISTRIBUTION/pubkeys" + +$_VPOLDEK "$SETUP_CONFDIR" -- --update-whole +poldek.installBasePackages "$SETUP_CONFDIR" "$PKGINSTALLDIR" +test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS" + +base.setSuccess