X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvserver-build.functions.rpm;h=d3a97958299d9f632d0caf00677593ba751c045b;hb=02598b80efa142453f5d67be4ea95e3f35d63682;hp=9a1bb5cd27de608e6d104cdfca91cc06fcd7d218;hpb=27ea7c46de8c8d362942de08377ed89ca1f4448e;p=util-vserver.git diff --git a/util-vserver/scripts/vserver-build.functions.rpm b/util-vserver/scripts/vserver-build.functions.rpm index 9a1bb5c..d3a9795 100644 --- a/util-vserver/scripts/vserver-build.functions.rpm +++ b/util-vserver/scripts/vserver-build.functions.rpm @@ -35,17 +35,17 @@ function rpm.importGPGPubKeys done done - test "$pkgs" || return 0 + test -n "$pkgs" || return 0 "$_VRPM" "$dst" -- --import "${pkgs[@]}" } function rpm.initVariables { - test "$WORKAROUND_106057" && \ + test -n "$WORKAROUND_106057" && \ RPMDB_PATH=/.rpmdb || \ RPMDB_PATH=/dev - findDir RPMLIBDIR "$CONFDIR/.distributions/$DISTRIBUTION/rpmlib" "$DISTRIBDIR/$DISTRIBUTION/rpmlib" / + findDir RPMLIBDIR "$__CONFDIR/.distributions/$DISTRIBUTION/rpmlib" "$__DISTRIBDIR/$DISTRIBUTION/rpmlib" / } function rpm.initFilesystem @@ -60,16 +60,67 @@ function rpm.initFilesystem mkdir -p "$PKGCFGDIR"/rpm/{etc,state} populateDirectory "$PKGCFGDIR/rpm/etc" \ - "$DISTRIBDIR/defaults/rpm" \ - "$DISTRIBDIR/$DISTRIBUTION/rpm" \ - "$CONFDIR/.distributions/$DISTRIBUTION/rpm" + "$__DISTRIBDIR/defaults/rpm" \ + "$__DISTRIBDIR/$DISTRIBUTION/rpm" \ + "$__CONFDIR/.distributions/$DISTRIBUTION/rpm" - echo "%_dbpath $RPMDB_PATH" >>"$pkgcfg/etc/macros" + echo "%_dbpath $RPMDB_PATH" >>"$PKGCFGDIR/rpm/etc/macros" - test "$RPMLIBDIR" = / || ln -s "$RPMLIB" "$confdir/apps/pkgmgmt/rpmlib" + test "$RPMLIBDIR" = / || ln -s "$RPMLIB" "$SETUP_CONFDIR/apps/pkgmgmt/rpmlib" } function rpm.initDB { RPM_FLAVOR=d "$_VRPM" "$1" -- --initdb } + + + +## Usage: rpmlist.install * +function rpmlist.install() +{ + local cfgdir=$1 + local basedir=$2 + local manifest=$3 + local listfile=$4 + shift 4 + + while read; do + case x"$REPLY" in + (x|\#*) continue;; + esac + + echo "$basedir/$REPLY" + done >"$manifest" <"$listfile" + + test "$OPTION_DEBUG" -eq 0 || cat "$manifest" + test ! -s "$manifest" || $_VRPM "$cfgdir" -- -U "$@" "$manifest" +} + + +## Usage: rpmlist.initByDistribution +function rpmlist.initByDistribution() +{ + local _rlid_listdir + declare -a _rlid_res=() + + + findDir _rlid_listdir "$__CONFDIR/.distributions/$2/rpmlist.d" \ + "$__DISTRIBDIR/$2/rpmlist.d" \ + '' + + test -d "$_rlid_listdir" || return 0 + + local _rlid_lst + for _rlid_lst in "$_rlid_listdir"/*.lst; do + test -e "$_rlid_lst" || continue + + local _rlid_opts=${_rlid_lst%%lst}cmd + declare -a _rlid_tmp=() + + test ! -e "$_rlid_opts" || getFileArray _rlid_tmp "$_rlid_opts" + _rlid_res=( "${_rlid_res[@]}" "${_rlid_tmp[@]}" "$_rlid_lst" ) + done + + eval "$1"='( "${_rlid_res[@]}" )' +}