# Marc E. Fiuczynski <mef@cs.princeton.edu>
# Copyright (C) 2007 The Trustees of Princeton University
#
-# $Id: build.common,v 1.3 2007/08/31 03:17:34 mef Exp $
+# $Id$
#
function pl_getDefaultDistro() {
pl_DISTRO_RELEASE=$(pl_getRelease)
+# vserver expects something like fc4 or f7
+# for fedora only as of now
+case $pl_DISTRO in
+ [Ff]edora*)
+ if [ "$pl_DISTRO_RELEASE" -le 6 ] ; then
+ pl_DISTRO_NAME=fc$pl_DISTRO_RELEASE
+ else
+ pl_DISTRO_NAME=f$pl_DISTRO_RELEASE
+ fi ;;
+ [Cc]entOS*)
+ if [ "$pl_DISTRO_RELEASE" = "4.5" ] ; then
+ # centos 4.5 is just centos4 + enhancements
+ pl_DISTRO_NAME=centos4
+ else
+ pl_DISTRO_NAME=centos$pl_DISTRO_RELEASE
+ fi ;;
+ *)
+ pl_DISTRO_NAME="unknown-name-for-${pl_DISTRO}-please-edit-build.common"
+ echo 1>&2 "build.common: WARNING - pl_DISTRO_NAME not set for distro=$pl_DISTRO"
+ ;;
+esac
+
# get patch to appropriate yumgroups.xml file
-# XXX This path should be relative to PLDISTRO, as defined in
-# build/Makefile
-pl_YUMGROUPSXML="../build/groups/v4_yumgroups.xml"
+# Thierry: quick & dirty improvement
+# this file is updated by the toplevel build, from groups/pldistro>.xml
+pl_DISTRO_YUMGROUPS="../../../RPMS/yumgroups.xml"
function pl_process_fedora_options () {
# Get options
done
}
+########## .lst format
+# comments start with a # - this is needed only if you use a keyword in a comment
+# lst_parse keyword fcdistro lst1 .. lstn
+# 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
+
+function lst_parse () {
+
+ keyword=$1;shift
+ fcdistro=$1; shift
+
+ # 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 i in $all $add; do
+ for exclude in $sub; do
+ [ "$i" = "$exclude" ] && continue 2
+ done
+ echo "$i "
+ done
+ return 0
+}
+
+function pl_getPackages2() { fcdistro=$1; shift ; lst_parse package $fcdistro "$@" ; }
+function pl_getGroups2() { fcdistro=$1; shift ; lst_parse group $fcdistro "$@" ; }
+# add -p before each package for mkfedora
+function pl_getPackagesOptions2 () { pl_getPackages2 "$@" | awk '{for (i=1;i<=NF;i++) {print "-p " $i}}' ; }
+# add -g before each group for mkfedora
+function pl_getGroupsOptions2 () { pl_getGroups2 "$@" | awk '{for (i=1;i<=NF;i++) {print "-g " $i}}' ; }