From 015a4d43d269541e495d05f7e2e05c1b4f972721 Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Mon, 10 Apr 2006 20:37:18 +0000 Subject: [PATCH] - add -x option to explicitly exclude packages - add -k option to exclude kernel* packages from all repositories except bootstrap (so that the default FC4 kernel doesn't override our kernel) --- mkfedora | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/mkfedora b/mkfedora index 16b13a92..e05a5437 100755 --- a/mkfedora +++ b/mkfedora @@ -13,7 +13,7 @@ # Mark Huang # Copyright (C) 2004-2006 The Trustees of Princeton University # -# $Id: mkfedora,v 1.9 2006/04/05 21:32:15 mlhuang Exp $ +# $Id: mkfedora,v 1.10 2006/04/06 04:45:23 mlhuang Exp $ # export PATH=/sbin:/bin:/usr/sbin:/usr/bin @@ -41,6 +41,12 @@ groups=() # Packages to install packages=() +# Packages to exclude +exclude=() + +# Exclude kernel* packages from all repositories except bootstrap +exclude_kernel= + usage() { echo "Usage: mkfedora [OPTION]... [basedir]" @@ -54,13 +60,16 @@ usage() echo " Yumgroups to install (default: none)" echo " -p package1 -p package2 ..." echo " Additional packages to install (default: none)" + echo " -x package1 -x package2 ..." + echo " Packages to exclude (default: none)" + echo " -k Exclude kernel* packages from all repositories except bootstrap" echo " -v Be verbose" echo " -h This message" exit 1 } # Get options -while getopts "l:r:a:g:p:vh" opt ; do +while getopts "l:r:a:g:p:x:kvh" opt ; do case $opt in l) if echo $OPTARG | grep -q -i '^\(file\|http[s]*\)://' ; then @@ -81,6 +90,12 @@ while getopts "l:r:a:g:p:vh" opt ; do p) packages[${#packages[*]}]="$OPTARG" ;; + x) + exclude[${#exclude[*]}]="$OPTARG" + ;; + k) + exclude_kernel="exclude=kernel*" + ;; v) verbose=1 set -x @@ -232,6 +247,7 @@ reposdir=/dev/null [base] name=Fedora Core $releasever - $basearch - base baseurl=$baseurl/ +$exclude_kernel EOF for optional in core/updates extras ; do @@ -241,6 +257,7 @@ for optional in core/updates extras ; do [$(basename $optional)] name=Fedora Core $releasever - $basearch - $(basename $optional) baseurl=$mirror/linux/$optional/$releasever/$basearch/ +$exclude_kernel EOF fi done @@ -274,22 +291,26 @@ baseurl=file://$RPM_RPMS_DIR/ EOF fi +excludes= +for package in "${exclude[@]}" ; do + excludes="$excludes --exclude=$package" +done + # glibc must be specified explicitly for the correct arch to be -# chosen. coreutils are basically mandatory for any useful -# installation. -echo "* Installing glibc and coreutils" >&3 -yum -c $vroot/etc/yum.conf --installroot=$vroot -y install glibc coreutils +# chosen. +echo "* Installing glibc" >&3 +yum -c $vroot/etc/yum.conf --installroot=$vroot -y $excludes install glibc # Go, baby, go if [ ${#groups[*]} -gt 0 ] ; then echo "* Installing optional groups" >&3 - yum -c $vroot/etc/yum.conf --installroot=$vroot -y \ + yum -c $vroot/etc/yum.conf --installroot=$vroot -y $excludes \ groupinstall "${groups[@]}" fi if [ ${#packages[*]} -gt 0 ] ; then echo "* Installing optional packages" >&3 - yum -c $vroot/etc/yum.conf --installroot=$vroot -y \ + yum -c $vroot/etc/yum.conf --installroot=$vroot -y $excludes \ install "${packages[@]}" fi -- 2.47.0