From f73d2ef444b30b1c21569bf424ea573fbcae0d80 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Tue, 12 Jun 2012 11:51:14 +0200 Subject: [PATCH] cleanup how pkgs.py gets called, try to remove pl_parsePkgs and the like --- build.common | 55 +++++++++----------------------------------------- getpackages.sh | 28 ------------------------- pkgs.py | 2 +- 3 files changed, 10 insertions(+), 75 deletions(-) delete mode 100755 getpackages.sh diff --git a/build.common b/build.common index 20cfb7ca..10741f6d 100644 --- a/build.common +++ b/build.common @@ -80,7 +80,7 @@ function pl_yumexclude () { type -p pkgs.py >& /dev/null || export PATH=$builddir:$PATH # parse it - pl_parsePkgs $keyword $fcdistro $pldistro $yumexclude_file || \ + pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro $keyword $yumexclude_file || \ { echo pl_yumexclude failed with fcdistro=$fcdistro and pldistro=$pldistro; return 1 ; } } @@ -233,23 +233,23 @@ function pl_root_mkfedora () { # parse pkgsfile and add to local vars fcdistro=${pl_DISTRO_NAME} - pkgs_packages=$(pl_parsePkgs package $fcdistro $pldistro $pkgsfile) - pkgs_groups=$(pl_parsePkgs group $fcdistro $pldistro $pkgsfile) + pkgs_packages=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro package $pkgsfile) + pkgs_groups=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro group $pkgsfile) # what can get trashed to save space - pkgs_junk=$(pl_parsePkgs junk $fcdistro $pldistro $pkgsfile) + pkgs_junk=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro junk $pkgsfile) # but not this - pkgs_precious=$(pl_parsePkgs precious $fcdistro $pldistro $pkgsfile) + pkgs_precious=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro precious $pkgsfile) # formerly related to mkfedora -k : packages to take from our own build # and thus need be excluded frem the stock repos # locate builddir by looking for pkgs.py builddir=$(dirname $(type -p pkgs.py)) SUBST_NODEYUMEXCLUDE=$(pl_nodeyumexclude $fcdistro $pldistro $builddir) - pkgs_yumexclude=$(pl_parsePkgs yumexclude $fcdistro $pldistro $pkgsfile | sed -e s,@NODEYUMEXCLUDE@,"$SUBST_NODEYUMEXCLUDE",) + pkgs_yumexclude=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro yumexclude $pkgsfile | sed -e s,@NODEYUMEXCLUDE@,"$SUBST_NODEYUMEXCLUDE",) # get mirrors if not specified with -l if [ -z "$mirrors" ] ; then mirrorsfile=$(pl_locateDistroFile ../build/ $pldistro "$pldistro.mirrors") # do not sort mirrors, keep order from input - mirrors=$(pl_parsePkgs -u mirror $fcdistro $pldistro $mirrorsfile) + mirrors=$(pkgs.py -u -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro mirror $mirrorsfile) fi yumexclude_line="" @@ -545,6 +545,8 @@ function pl_fixdirs() { ########## .pkgs format # Usage: pl_parsePkgs keyword [-a arch] fcdistro pldistro pkgs-file[..s] # pkgs.py should be found in PATH, like this file build.common +# only usage should be for pl_getPackages and pl_getGroups, +# which in turn are usednow be in {node,slice}image/build.sh function pl_parsePkgs () { target_arch=$pl_DISTRO_ARCH keyword=$1;shift @@ -559,45 +561,6 @@ function pl_parsePkgs () { function pl_getPackages() { pl_parsePkgs package "$@" ; } function pl_getGroups() { pl_parsePkgs group "$@" ; } -############################## -### temporary - only for checking the new python version -# for a given keyword like 'package' : -# we support fcdistro-dependant format, for tokens (pkgname) without whitespace -# you can e.g. use -# package: pkg1 .. pkgn -# package+f8: pkg1 .. pkgn -# package-f8: pkg1 .. pkgn -# -# values can contain @arch@, @fcdistro@ or @pldistro@ that are replaced with the current values -# -# the reason for the -a option is for when we build the build vm itself; in this case -# pl_DISTRO_ARCH is the one we obtain from the root context, and that's wrong -# specify -sa arch AFTER keyword, so as to keep pl_getPackages and pl_getGroups simple -# -function pl_parsePkgs_old () { - - target_arch=$pl_DISTRO_ARCH - keyword=$1;shift - [ "$1" == "-a" ] && { shift; target_arch="$1"; shift; } - fcdistro=$1; shift - pldistro=$1; shift - # remaining arguments are paths to the pkgs files - - # grab regular descriptions - all=$(grep -v '^#' "$@" | grep --regexp="^${keyword}:" | sed -e "s,${keyword}:,,") - # grab additions - add=$(grep -v '^#' "$@" | grep --regexp="^${keyword}+${fcdistro}:" | sed -e "s,${keyword}+${fcdistro}:,,") - # grab exclusions - sub=$(grep -v '^#' "$@" | grep --regexp="^${keyword}-${fcdistro}:" | sed -e "s,${keyword}-${fcdistro}:,,") - - for rpm in $all $add; do - for exclude in $sub; do - [ "$rpm" = "$exclude" ] && continue 2 - done - echo "${rpm} " | sed -e "s,@arch@,${target_arch},g" -e "s,@fcdistro@,$fcdistro,g" -e "s,@pldistro@,$pldistro,g" - done - return 0 -} ############################## # locates a pldistro-dependant file diff --git a/getpackages.sh b/getpackages.sh deleted file mode 100755 index 7a385a31..00000000 --- a/getpackages.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash - -. build.common - -function usage () { - echo "Usage: $0 pldistro rhdistro lstfiles" - exit 1 -} - -#[ "$#" = 1 ] || usage -pldistro=$1; shift -rhdistro=$1; shift -lstfiles=$@ - -function pkgs_from_lst () { - builddir=$1; shift - pldistro=$1; shift - rhdistro=$1; shift - lstfiles=$@ - - for lstfile in $lstfiles; do - pkgsfile=$(pl_locateDistroFile $builddir $pldistro $lstfile 2> /dev/null) - packages=$(pl_getPackages $rhdistro $pldistro $pkgsfile) - echo $packages - done -} - -pkgs_from_lst $(dirname $0) $pldistro $rhdistro $lstfiles diff --git a/pkgs.py b/pkgs.py index 220eb748..495369b2 100755 --- a/pkgs.py +++ b/pkgs.py @@ -185,7 +185,7 @@ def main (): usage="Usage: %prog [options] keyword input[...]" parser=OptionParser (usage=usage) parser.add_option ('-a','--arch',dest='arch',action='store',default=default_arch, - help='target arch, e.g. i386 or x86_64') + help='target arch, e.g. i386 or x86_64, default=%s'%default_arch) parser.add_option ('-f','--fcdistro',dest='fcdistro',action='store', default=default_fcdistro, help='fcdistro, e.g. f12 or centos5') parser.add_option ('-d','--pldistro',dest='pldistro',action='store', default=default_pldistro, -- 2.47.0