3 # Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; version 2 of the License.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 tmp=$(getopt -o +d:b: --long debug -n "$0" -- "$@") || exit 1
21 . "$_LIB_VSERVER_BUILD_FUNCTIONS_RPM"
22 . "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
27 ## Usage: installPackages <vserver> <rpm-options>*
28 ## it expects a list of packages on stdin
29 function installPackages()
39 echo "$BASEDIR/$REPLY"
43 test ! -s "$manifest" || $_VRPM "$cfgdir" -- -Uv "$@" "$manifest"
53 (-d) DISTRIBUTION=$2; shift;;
54 (-b) BASEDIR=$2; shift;;
57 (*) echo "vserver-build.rpm: internal error: unrecognized option '$1'" >&2
64 getDistribution "template"
70 base.initFilesystem "$OPTION_FORCE"
71 pkgmgmt.initFilesystem "$OPTION_FORCE"
74 setup_writeOption "$VSERVER_NAME"
75 setup_writeInitialFstab
77 # when basedir is a non-local location, rpm will download it into the
78 # current directory. Therefore, create and go into a temporay directory
79 # before doing the operations.
80 tmpdir=$($_MKTEMPDIR /var/tmp/vserver-build.rpm.XXXXXX)
81 manifest=$($_MKTEMP /tmp/vserver-build.rpm.manifest.XXXXXX)
82 trap "rm -rf $tmpdir $manifest" EXIT
85 test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
86 rpm.importGPGPubKeys "$SETUP_CONFDIR" "$CONFDIR/.distributions/$DISTRIBUTION/pubkeys" "$DISTRIBDIR/$DISTRIBUTION/pubkeys"
87 rpm.initDB "$SETUP_CONFDIR"
91 (--force|--nodeps) opts=( "${opts[@]}" "$i" ); continue;;
94 installPackages "$VSERVER_NAME" "${opts[@]}" <"$i"
98 test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"