vshost-util-vserver

Build script and sources for util-vserver.
git clone https://ccx.te2000.cz/git/vshost-util-vserver
Log | Files | Refs

vserver-build.rpm (3152B)


      1 # $Id$	--*- sh -*--
      2 
      3 # Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
      4 #  
      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.
      8 #  
      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.
     13 #  
     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.
     17 
     18 tmp=$(getopt -o +d:b:e --long debug,empty -n "$0" -- "$@") || exit 1
     19 eval set -- "$tmp"
     20 
     21 . "$_LIB_VSERVER_BUILD_FUNCTIONS_RPM"
     22 . "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
     23 
     24 set -e
     25 
     26 
     27 BASEDIR=$(pwd)
     28 DISTRIBUTION=
     29 EMPTY=
     30 
     31 echo "$@"
     32 
     33 while true; do
     34     case "$1" in
     35 	(-d)		DISTRIBUTION=$2; shift;;
     36 	(-b)		BASEDIR=$2; shift;;
     37 	(-e|--empty)	EMPTY=1;;
     38 	(--debug)	set -x;;
     39 	(--)		shift; break ;;
     40 	(*)		echo "vserver-build.rpm: internal error: unrecognized option '$1'" >&2
     41 			exit 1
     42 			;;
     43     esac
     44     shift
     45 done
     46 
     47 
     48 ####### some basic initializations
     49 
     50 getDistribution "template"
     51 
     52 base.init
     53 pkgmgmt.initVariables
     54 rpm.initVariables
     55 
     56 if test -z "$EMPTY" -a "$#" -eq 0; then
     57     rpmlist.initByDistribution rpm_lists "$DISTRIBUTION"
     58     set -- "${rpm_lists[@]}"
     59 fi
     60 
     61 test -n "$EMPTY" -o "$#" -gt 0 || \
     62     panic $"\
     63 No rpm-lists specified and no list found for distribution '$DISTRIBUTION'.
     64 When this is really indented, please use the '--empty' option."
     65 
     66 rpm_dflt_opts=()
     67 test "$OPTION_DEBUG" -lt 2 || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -v  )
     68 test "$OPTION_DEBUG" -lt 3 || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -v  )
     69 test -n "$OPTION_SILENT"   || rpm_dflt_opts=( "${rpm_dflt_opts[@]}" -vh )
     70 
     71 rpm.sanityCheck
     72 
     73 
     74 ######  init the filesystem
     75 
     76 base.initFilesystem    "$OPTION_FORCE"
     77 pkgmgmt.initFilesystem "$OPTION_FORCE"
     78 rpm.initFilesystem
     79 
     80 
     81 setup_writeOption "$VSERVER_NAME"
     82 setup_writeInitialFstab
     83 
     84 
     85 # when basedir is a non-local location, rpm will download it into the
     86 # current directory. Therefore, create and go into a temporay directory
     87 # before doing the operations.
     88 tmpdir=$($_MKTEMPDIR -p /var/tmp vserver-build.rpm.XXXXXX)
     89 manifest=$($_MKTEMP vserver-build.rpm.manifest.XXXXXX)
     90 trap "rm -rf $tmpdir $manifest" EXIT
     91 cd "$tmpdir"			
     92 
     93 ######  do the real work
     94 
     95 test -z "$BUILD_INITPRE"  || "$BUILD_INITPRE" "$SETUP_CONFDIR"  "$UTIL_VSERVER_VARS"
     96 rpm.initDB           "$SETUP_CONFDIR"
     97 rpm.importGPGPubKeys "$SETUP_CONFDIR" \
     98     "$__CONFDIR/.distributions/$DISTRIBUTION/pubkeys" \
     99     "$__CONFDIR/.distributions/.common/pubkeys" \
    100     "$__DISTRIBDIR/$DISTRIBUTION/pubkeys"
    101 
    102 opts=()
    103 for i; do
    104     case "$i" in
    105 	(--force|--nodeps)	opts=( "${opts[@]}" "$i" ); continue;;
    106     esac
    107     
    108     rpmlist.install "$VSERVER_NAME" "$BASEDIR" "$manifest" "$i" "${rpm_dflt_opts[@]}" "${opts[@]}" 
    109     opts=()
    110 done
    111 
    112 test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
    113 
    114 base.setSuccess