function pl_root_rpm_macros () {
cat <<EOF
%_install_langs C:en_US:en
-%_netsharedpath /proc:/dev/pts
+%_netsharedpath /proc:/dev/pts:/usr/share/info
%_excludedocs 1
%__file_context_path /dev/null
EOF
done
echo
mkfedora_usage
+ else
+ echo "* selecting mirror with baseurl=$baseurl"
fi
# Do not tolerate errors
fi
rm -rf ${root}/${datadir}
mkdir -p $(dirname ${root}/${datadir})
- ln -nsf /${store}/${datadir} ${root}/${datadir}
+ ln -nsf ${store}/${datadir} ${root}/${datadir}
done
}
(cd $root && tar cpf - .) | (cd $tmp && tar xpf -)
# Unmount it
- umount -l $tmp
+ umount $tmp
rmdir $tmp
trap - ERR INT
}
########## .pkgs format
# comments start with a # - this is needed only if you use a keyword in a comment
+
+function pl_getPkgsAttribute () {
+ keyword=$1; shift
+ file=$1; shift
+ grep -v '^#' $file | grep --regexp="^${keyword}:" | sed -e "s,${keyword}:,,"
+}
+
+
# for a given keyword like 'package' :
# we support fcdistro-dependant format, for tokens (pkgname) without whitespace
# you can e.g. use
# 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}:,,")
+ 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}:,,")
+ sub=$(grep -v '^#' "$@" | grep --regexp="^${keyword}-${fcdistro}:" | sed -e "s,${keyword}-${fcdistro}:,,")
for i in $all $add; do
for exclude in $sub; do
# experimental
function yumgroups_from_pkgs () {
- groupname=$1; shift
- groupdesc=$1; shift
- pkgsfile=$1; shift
- fcdistro=$pl_DISTRO_NAME
- [[ -n "$@" ]] && fcdistro=$1; shift
- if [[ -n "$@" ]] ; then
- echo "yumgroups_from_pkgs : wrong signature"
- return 1
- fi
-
- packages=$(pl_getPackages $fcdistro $pkgsfile)
+ builddir=$1; shift
+ pldistro=$1; shift
+ fcdistro=$1; shift
+ pkgsnames=$@
+
+sedargs="-e s,@FCDISTRO@,$fcdistro,g"
cat <<__header
<?xml version="1.0"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
+__header
+
+ for pkgsname in $pkgsnames; do
+ pkgsfile=$(pl_locateDistroFile $builddir $pldistro $pkgsname)
+ packages=$(pl_getPackages $fcdistro $pkgsfile)
+
+ groupname=$(pl_getPkgsAttribute groupname $pkgsfile | sed $sedargs)
+ groupdesc=$(pl_getPkgsAttribute groupdesc $pkgsfile | sed $sedargs)
+
+ if [ -z "$groupname" -o -z "$groupdesc" ] ; then
+ echo "Cannot find groupname: and groupdesc: in $pkgsfile -- skipped" 1>&2
+ continue
+ fi
+
+ cat << __group_header
<group>
<id>$(echo $groupname|tr A-Z a-z)</id>
<name>$groupname</name>
<description>$groupdesc</description>
<uservisible>false</uservisible>
<packagelist>
-__header
-
- for package in $packages; do
- echo "<packagereq type=\"mandatory\">$package</packagereq>"
- done
-
-cat <<__footer
+__group_header
+ for package in $packages; do
+ echo "<packagereq type=\"mandatory\">$package</packagereq>"
+ done
+ cat << __group_footer
</packagelist>
</group>
+__group_footer
+ done
+cat <<__footer
</comps>
__footer
}
-function toplevel_yumgroups () {
- pldistro=$1; shift
- pkgsname=$1; shift
- builddir=$(dirname $0)
- pkgsfile=$(pl_locateDistroFile $builddir $pldistro $pkgsname)
- yumgroups_from_pkgs 'PlanetLab' 'PlanetLab Node Root' $pkgsfile
-}