#!/bin/bash #Copyright 2004, William Stearns #Released under the GPL #Version 1.6 Usage () { echo "Usage:" echo "$0 /full/path/to/top/level/yum/ arch [arch]... [module]... [urltop]..." echo echo '/full/path/to/top/level/yum/ is the top level, writable, directory' echo 'where all files will live.' echo echo 'arch is one of fc_1_i386, fc_2_i386, fc_1_x86_64, fc_2_x86_64, ' echo 'rh_7.3_i386, rh_9_i386, or allarch.' echo echo 'module is one of atrpms, ccrma, core, dag, dries, freshrpms,' echo 'jpackage, livna, updates, wstearns, ximian, or allmodules.' echo echo 'urltop is the start of the URL clients would need to type in to get to' echo 'these files, such as ftp://ftp.server/pub/ , http://web.server/mirror/ ,' echo 'or file:///mnt/nfsmirror/yum/ . Whatever you specify should have the' echo 'fedora directory immediately inside it. Multiple entries are fine; ' echo 'the most preferred url should come first and continue to less preferred' echo 'urls.' } randomof () { #Returns one of the parameters on the command line, picked at random #Sample call: echo `randomof Alan Bob Charlie Dave` declare -a ParamArray ParamCount=0 while [ -n "$1" ]; do ParamCount=$[ $ParamCount + 1 ] ParamArray[$ParamCount]="$1" shift done if [ "$ParamCount" -eq 0 ]; then #echo "No params to choose from" >&2 return fi RandChoice=$[ $RANDOM % $ParamCount + 1 ] #echo Returning $RandChoice out of $ParamCount >&2 echo "${ParamArray[$RandChoice]}" } requireutil () { while [ -n "$1" ]; do if ! type -path "$1" >/dev/null 2>/dev/null ; then echo Missing utility "$1". Please install it. >&2 return 1 #False, app is not available. fi shift done return 0 #True, app is there. } #End of requireutil requireutil cat createrepo genbasedir mkdir rm rsync yum-arch || exit 1 if [ -z "$1" ]; then Usage exit 1 fi while [ -n "$1" ]; do case "$1" in allarch) fc_1_i386='fc_1_i386' fc_2_i386='fc_2_i386' fc_1_x86_64='fc_1_x86_64' fc_2_x86_64='fc_2_x86_64' rh_73_i386='rh_73_i386' rh_9_i386='rh_9_i386' ;; allmodules) ModList="atrpms ccrma core dag dries freshrpms jpackage livna updates wstearns ximian" ;; fc_1_i386) fc_1_i386='fc_1_i386' ;; fc_2_i386) fc_2_i386='fc_2_i386' ;; fc_1_x86_64) fc_1_x86_64='fc_1_x86_64' ;; fc_2_x86_64) fc_2_x86_64='fc_2_x86_64' ;; rh_7.3_i386) rh_73_i386='rh_73_i386' ;; rh_9_i386) rh_9_i386='rh_9_i386' ;; atrpms|ccrma|core|dag|dries|freshrpms|jpackage|livna|updates|wstearns|ximian) ModList="$ModList $1" ;; fedora) ModList="$ModList core updates" fc_1_i386='fc_1_i386' fc_2_i386='fc_2_i386' fc_1_x86_64='fc_1_x86_64' fc_2_x86_64='fc_2_x86_64' ;; redhat) ModList="$ModList core updates" rh_73_i386='rh_73_i386' rh_9_i386='rh_9_i386' ;; file://*|http://*|ftp://*) URLTop="$URLTop $1" ;; /*) if [ -z "$TopDir" ]; then TopDir="$1" else echo "One of \"$TopDir\" or \"$1\" is unknown, or top level directory" echo "is being defined twice. Exiting." exit 1 fi ;; *) echo "Unknown param $1. Exiting" exit 1 ;; esac shift done if [ -z "$fc_1_i386$fc_2_i386$fc_1_x86_64$fc_2_x86_64$rh_73_i386$rh_9_i386" ]; then echo "No architecture specified. To get all, specify \"allarch\" on the command line. Exiting." exit 1 fi if [ -z "$URLTop" ]; then URLTop="file://$TopDir" fi if [ -z "$ModList" ]; then ModList="atrpms ccrma core dag dries freshrpms jpackage livna updates wstearns ximian" fi echo "Requested modules: $ModList" echo "Requested architectures:" "$fc_1_i386" "$fc_2_i386" "$fc_1_x86_64" "$fc_2_x86_64" "$rh_73_i386" "$rh_9_i386" echo "Top Level directory: $TopDir (also accessible as $URLTop)" if [ ! -d $TopDir ]; then mkdir --parents "$TopDir" fi if ! cd "$TopDir" ; then echo "Failed to changed to Top Level directory $TopDir. Exiting." exit 1 fi LOCKFILE=$TopDir/yum-pull.lock [ -f "$LOCKFILE" ] && exit 0 trap "rm -f $LOCKFILE" EXIT touch $LOCKFILE renice +15 -p $$ >/dev/null 2>&1 RsyncParams=" -a -q -L -H --exclude='*.src.rpm' --exclude=debug/ --exclude=headers/ --exclude=repodata/ --exclude=SRPMS " #RsyncDelete=" --delete --delete-after " #FIXME - now that we have oldrpms to yank old files, strongly suggest not using $RsyncDelete for ModuleName in $ModList ; do Changed='' cd "$TopDir" if [ -n "$rh_73_i386" ]; then Changed="$Changed $TopDir/redhat/linux/7.3/i386/$ModuleName/" mkdir -p "$TopDir"/redhat/linux/7.3/i386/$ModuleName/packages/ touch "$TopDir"/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files ( cd "$TopDir"/redhat/linux/7.3/i386/ && rm -f RPMS.$ModuleName && ln -sf $ModuleName/packages RPMS.$ModuleName ) fi if [ -n "$rh_9_i386" ]; then Changed="$Changed $TopDir/redhat/linux/9/i386/$ModuleName/" mkdir -p "$TopDir"/redhat/linux/9/i386/$ModuleName/packages/ touch "$TopDir"/redhat/linux/9/i386/$ModuleName/packages/excluded-files ( cd "$TopDir"/redhat/linux/9/i386/ && rm -f RPMS.$ModuleName && ln -sf $ModuleName/packages RPMS.$ModuleName ) fi if [ -n "$fc_1_i386" ]; then Changed="$Changed $TopDir/fedora/linux/1/i386/$ModuleName/" mkdir -p "$TopDir"/fedora/linux/1/i386/$ModuleName/packages/ touch "$TopDir"/fedora/linux/1/i386/$ModuleName/packages/excluded-files ( cd "$TopDir"/fedora/linux/1/i386/ && rm -f RPMS.$ModuleName && ln -sf $ModuleName/packages RPMS.$ModuleName ) fi if [ -n "$fc_2_i386" ]; then Changed="$Changed $TopDir/fedora/linux/2/i386/$ModuleName/" mkdir -p "$TopDir"/fedora/linux/2/i386/$ModuleName/packages/ touch "$TopDir"/fedora/linux/2/i386/$ModuleName/packages/excluded-files ( cd "$TopDir"/fedora/linux/2/i386/ && rm -f RPMS.$ModuleName && ln -sf $ModuleName/packages RPMS.$ModuleName ) fi if [ -n "$fc_1_x86_64" ]; then Changed="$Changed $TopDir/fedora/linux/1/x86_64/$ModuleName/" mkdir -p "$TopDir"/fedora/linux/1/x86_64/$ModuleName/packages/ touch "$TopDir"/fedora/linux/1/x86_64/$ModuleName/packages/excluded-files ( cd "$TopDir"/fedora/linux/1/x86_64/ && rm -f RPMS.$ModuleName && ln -sf $ModuleName/packages RPMS.$ModuleName ) fi if [ -n "$fc_2_x86_64" ]; then Changed="$Changed $TopDir/fedora/linux/2/x86_64/$ModuleName/" mkdir -p "$TopDir"/fedora/linux/2/x86_64/$ModuleName/packages/ touch "$TopDir"/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files ( cd "$TopDir"/fedora/linux/2/x86_64/ && rm -f RPMS.$ModuleName && ln -sf $ModuleName/packages RPMS.$ModuleName ) fi echo "Downloading files for $ModuleName" case "$ModuleName" in atrpms) Name='Fedora Linux $releasever - $basearch - atrpms' Source=`randomof 'rsync.hrz.tu-chemnitz.de::ftp/pub/linux/ATrpms/'` echo "Pulling from $Source" #It appears x86_64 is only available on fc2. Note, don't add $RsyncDelete since we have two rsync pulls down into the same directory. Each wipes out the other if you use delete. [ -n "$rh_73_i386" ] && rsync $RsyncParams $Source/redhat/7.3/en/i386/at-good/* "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_73_i386" ] && rsync $RsyncParams $Source/redhat/7.3/en/i386/at-stable/* "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" # [ -n "$rh_73_i386" ] && rsync $RsyncParams $Source/redhat/7.3/en/i386/at-bleeding/* "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" # [ -n "$rh_73_i386" ] && rsync $RsyncParams $Source/redhat/7.3/en/i386/at-testing/* "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams $Source/redhat/9/en/i386/at-good/* "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams $Source/redhat/9/en/i386/at-stable/* "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" # [ -n "$rh_9_i386" ] && rsync $RsyncParams $Source/redhat/9/en/i386/at-bleeding/* "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" # [ -n "$rh_9_i386" ] && rsync $RsyncParams $Source/redhat/9/en/i386/at-testing/* "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams $Source/fedora/1/en/i386/RPMS.at-good/* "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams $Source/fedora/1/en/i386/RPMS.at-stable/* "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" # [ -n "$fc_1_i386" ] && rsync $RsyncParams $Source/fedora/1/en/i386/RPMS.at-bleeding/* "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" # [ -n "$fc_1_i386" ] && rsync $RsyncParams $Source/fedora/1/en/i386/RPMS.at-testing/* "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams $Source/fedora/2/en/i386/RPMS.at-good/* "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams $Source/fedora/2/en/i386/RPMS.at-stable/* "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" # [ -n "$fc_2_i386" ] && rsync $RsyncParams $Source/fedora/2/en/i386/RPMS.at-bleeding/* "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" # [ -n "$fc_2_i386" ] && rsync $RsyncParams $Source/fedora/2/en/i386/RPMS.at-testing/* "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_x86_64" ] && rsync $RsyncParams $Source/fedora/2/en/x86_64/RPMS.at-good/* "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" [ -n "$fc_2_x86_64" ] && rsync $RsyncParams $Source/fedora/2/en/x86_64/RPMS.at-stable/* "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" # [ -n "$fc_2_x86_64" ] && rsync $RsyncParams $Source/fedora/2/en/x86_64/RPMS.at-bleeding/* "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" # [ -n "$fc_2_x86_64" ] && rsync $RsyncParams $Source/fedora/2/en/x86_64/RPMS.at-testing/* "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" ;; ccrma) Name='Fedora Linux $releasever - $basearch - ccrma' #No apparent x86_64 at the moment, no rh Source=`randomof 'ftp.upjs.sk::ftp/pub/mirrors/planet.ccrma/'` echo "Pulling from $Source" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/1/i386/*" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/2/i386/*" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" ;; core) Name='Fedora Linux $releasever - $basearch - core' Source=`randomof 'rsync://rsync.planetmirror.com/fedoralegacy/' 'rsync://mirror.pacific.net.au/fedoralegacy/' 'rsync://mirror.cpsc.ucalgary.ca/fedoralegacy/' 'rsync://ftp.tecnoera.com/ftp/pub/fedora/legacy/' 'rsync://ftp.fi.muni.cz/pub/linux/fedora/legacy/' 'rsync://rsync.mirror.ac.uk/download.fedoralegacy.org/legacy/' 'rsync://rsync.uni-bayreuth.de/fedoralegacy/' 'rsync://ftp-stud.fht-esslingen.de/fedoralegacy/' 'rsync://ftp.heanet.ie/mirrors/download.fedoralegacy.org/' 'rsync://rm.mirror.garr.it/fedoralegacy/' 'rsync://ftp.kddilabs.jp/fedora.leagacy/' 'rsync://ftp.riken.go.jp/fedoralegacy/' 'rsync://gnu.kookel.org/mirrors/fedoralegacy/' 'rsync://ftp.uninett.no/linux/RedHat/fedora-legacy/' 'rsync://ftp.iasi.roedu.net/fedoralegacy/' 'rsync://sunsite.rediris.es/fedora.legacy/' 'rsync://mirror3.cs.wisc.edu/pub/mirrors/linux/download.fedoralegacy.org/' 'rsync://rsync.gtlib.cc.gatech.edu/fedoralegacy/' 'rsync://mirror.physics.ncsu.edu/fedoralegacy/' 'rsync://limestone.uoregon.edu/ftp/fedoralegacy/'` echo "Pulling from $Source" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/redhat/7.3/os/i386/" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/redhat/9/os/i386/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" Source=`randomof 'mirror.linux.duke.edu::fedora-linux-core/' 'distro.ibiblio.org::fedora-linux-core/' 'mirror.hiwaay.net::fedora-linux-core/' 'rpmfind.net::linux/fedora/core/' 'rsync.gtlib.cc.gatech.edu::fedora-linux-core/'` echo "Pulling from $Source" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/1/i386/os/Fedora/RPMS/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/2/i386/os/Fedora/RPMS/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_x86_64" ] && rsync $RsyncParams "$Source/1/x86_64/os/Fedora/RPMS/" "$TopDir/fedora/linux/1/x86_64/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/x86_64/$ModuleName/packages/excluded-files" [ -n "$fc_2_x86_64" ] && rsync $RsyncParams "$Source/2/x86_64/os/Fedora/RPMS/" "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" ;; dag) Name='Fedora Linux $releasever - $basearch - dag' Source=`randomof 'apt.sw.be::pub/freshrpms/pub/dag/' 'ftp.heanet.ie::mirrors/ftp.freshrpms.net/pub/dag/'` echo "Pulling from $Source" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/redhat/7.3/en/i386/RPMS.dag/" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/redhat/9/en/i386/RPMS.dag/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/fedora/1/en/i386/RPMS.dag/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/fedora/2/en/i386/RPMS.dag/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_x86_64" ] && rsync $RsyncParams "$Source/fedora/2/en/x86_64/RPMS.dag/" "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" ;; dries) Name='Fedora Linux $releasever - $basearch - dries' Source=`randomof 'rsync://apt.sw.be/pub/freshrpms/pub/dag/dries/' 'ftp.heanet.ie::mirrors/ftp.freshrpms.net/pub/dag/dries/'` echo "Pulling from $Source" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/redhat/9/en/i386/RPMS.dries/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/fedora/fc1/i386/RPMS.dries/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/fedora/fc2/i386/RPMS.dries/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" ;; freshrpms) Name='Fedora Linux $releasever - $basearch - freshrpms' Source=`randomof 'rsync.freshrpms.net::freshrpms/' 'apt.sw.be::pub/freshrpms/pub/freshrpms/' 'ftp.heanet.ie::mirrors/ftp.freshrpms.net/pub/freshrpms/'` echo "Pulling from $Source" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/redhat/7.3/*/*.rpm" "$TopDir/fedora/linux/7.3/i386/$ModuleName/packages/" $RsyncDelete --exclude='*.x86_64.*' --exclude-from="$TopDir/fedora/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/redhat/9/*/*.rpm" "$TopDir/fedora/linux/9/i386/$ModuleName/packages/" $RsyncDelete --exclude='*.x86_64.*' --exclude-from="$TopDir/fedora/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/fedora/linux/1/*/*.rpm" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" $RsyncDelete --exclude='*.x86_64.*' --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/fedora/linux/2/*/*.rpm" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" $RsyncDelete --exclude='*.x86_64.*' --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_x86_64" ] && rsync $RsyncParams "$Source/fedora/linux/1/*/*.rpm" "$TopDir/fedora/linux/1/x86_64/$ModuleName/packages/" $RsyncDelete --exclude='*.i386.*' --exclude-from="$TopDir/fedora/linux/1/x86_64/$ModuleName/packages/excluded-files" [ -n "$fc_2_x86_64" ] && rsync $RsyncParams "$Source/fedora/linux/2/*/*.rpm" "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" $RsyncDelete --exclude='*.i386.*' --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" ;; jpackage) Name='Fedora Linux $releasever - $basearch - jpackage' Source=`randomof 'rsync://sunsite.dk/jpackage/' 'rsync://rsync.planetmirror.com/jpackage/' 'rsync://rpm.pbone.net/pbone/pub/jpackage/'` echo "Pulling from $Source" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/1.0/generic/RPMS.free/" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/1.5/redhat-7.3/RPMS.free/" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/1.5/generic/RPMS.devel/" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/1.0/generic/RPMS.free/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/1.5/redhat-9/RPMS.free/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/1.5/generic/RPMS.devel/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/1.0/generic/RPMS.free/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/1.5/fedora-1/RPMS.free/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/1.5/generic/RPMS.devel/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/1.0/generic/RPMS.free/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/1.5/fedora-2/RPMS.free/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/1.5/generic/RPMS.devel/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" ;; livna) Name='Fedora Linux $releasever - $basearch - livna' Source=`randomof 'rsync://rpm.livna.org/rlo/'` echo "Pulling from $Source" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/redhat/9/i386/RPMS.stable/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/fedora/1/i386/RPMS.stable/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/fedora/2/i386/RPMS.stable/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_x86_64" ] && rsync $RsyncParams "$Source/fedora/2/x86_64/RPMS.stable/" "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" ;; updates) Name='Fedora Linux $releasever - $basearch - updates' Source=`randomof 'rsync://rsync.planetmirror.com/fedoralegacy/' 'rsync://mirror.pacific.net.au/fedoralegacy/' 'rsync://mirror.cpsc.ucalgary.ca/fedoralegacy/' 'rsync://ftp.tecnoera.com/ftp/pub/fedora/legacy/' 'rsync://ftp.fi.muni.cz/pub/linux/fedora/legacy/' 'rsync://rsync.mirror.ac.uk/download.fedoralegacy.org/legacy/' 'rsync://rsync.uni-bayreuth.de/fedoralegacy/' 'rsync://ftp-stud.fht-esslingen.de/fedoralegacy/' 'rsync://ftp.heanet.ie/mirrors/download.fedoralegacy.org/' 'rsync://rm.mirror.garr.it/fedoralegacy/' 'rsync://ftp.kddilabs.jp/fedora.leagacy/' 'rsync://ftp.riken.go.jp/fedoralegacy/' 'rsync://gnu.kookel.org/mirrors/fedoralegacy/' 'rsync://ftp.uninett.no/linux/RedHat/fedora-legacy/' 'rsync://ftp.iasi.roedu.net/fedoralegacy/' 'rsync://sunsite.rediris.es/fedora.legacy/' 'rsync://mirror3.cs.wisc.edu/pub/mirrors/linux/download.fedoralegacy.org/' 'rsync://rsync.gtlib.cc.gatech.edu/fedoralegacy/' 'rsync://mirror.physics.ncsu.edu/fedoralegacy/' 'rsync://limestone.uoregon.edu/ftp/fedoralegacy/'` echo "Pulling from $Source" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/redhat/7.3/updates/i386/" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/redhat/9/updates/i386/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/fedora/1/updates/i386/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_x86_64" ] && rsync $RsyncParams "$Source/fedora/1/updates/x86_64/" "$TopDir/fedora/linux/1/x86_64/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/x86_64/$ModuleName/packages/excluded-files" Source=`randomof 'mirror.linux.duke.edu::fedora-linux-core/' 'distro.ibiblio.org::fedora-linux-core/' 'mirror.hiwaay.net::fedora-linux-core/' 'rpmfind.net::linux/fedora/core/' 'rsync.gtlib.cc.gatech.edu::fedora-linux-core/'` echo "Pulling from $Source" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/updates/2/i386/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_x86_64" ] && rsync $RsyncParams "$Source/updates/2/x86_64/" "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" ;; wstearns) Name='Fedora Linux $releasever - $basearch - wstearns' Source=`randomof 'zaphod.stearns.org::wstearns/yum/'` echo "Pulling from $Source" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/redhat/linux/7.3/i386/wstearns/packages/*.rpm" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/redhat/linux/9/i386/wstearns/packages/*.rpm" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/fedora/linux/1/i386/wstearns/packages/*.rpm" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/fedora/linux/2/i386/wstearns/packages/*.rpm" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_x86_64" ] && rsync $RsyncParams "$Source/fedora/linux/1/x86_64/wstearns/packages/*.rpm" "$TopDir/fedora/linux/1/x86_64/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/1/x86_64/$ModuleName/packages/excluded-files" [ -n "$fc_2_x86_64" ] && rsync $RsyncParams "$Source/fedora/linux/2/x86_64/wstearns/packages/*.rpm" "$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/" $RsyncDelete --exclude-from="$TopDir/fedora/linux/2/x86_64/$ModuleName/packages/excluded-files" ;; #FIXME - Add ximian from here down ximian) Name='Fedora Linux $releasever - $basearch - ximian' Source=`randomof 'rsync://rsync.secsup.org/ximian/'` echo "Pulling from $Source" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/xd2/redhat-73-i386/" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_73_i386" ] && rsync $RsyncParams "$Source/redcarpet22/redhat-73-i386/" "$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/7.3/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/xd2/redhat-9-i386/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$rh_9_i386" ] && rsync $RsyncParams "$Source/redcarpet2/redhat-9-i386/" "$TopDir/redhat/linux/9/i386/$ModuleName/packages/" --exclude-from="$TopDir/redhat/linux/9/i386/$ModuleName/packages/excluded-files" [ -n "$fc_1_i386" ] && rsync $RsyncParams "$Source/redcarpet2/fedora-1-i386/" "$TopDir/fedora/linux/1/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/1/i386/$ModuleName/packages/excluded-files" [ -n "$fc_2_i386" ] && rsync $RsyncParams "$Source/redcarpet2/fedora-2-i386/" "$TopDir/fedora/linux/2/i386/$ModuleName/packages/" --exclude-from="$TopDir/fedora/linux/2/i386/$ModuleName/packages/excluded-files" ;; *) echo "Unknown module $ModuleName" ;; esac #Remove old RPMS cd "$TopDir" for OneDir in */linux/*/*/$ModuleName/packages/ ; do cd "$OneDir" TFile=`mktemp -q /tmp/yum-pull.XXXXXX` || exit 1 ( cat excluded-files 2>/dev/null ; oldrpms `pwd` | sed -e 's@.*/@@' ) | sort | uniq >>"$TFile" mv -f "$TFile" excluded-files for OneFile in `cat excluded-files` ; do rm -f "$TopDir/$OneDir/$OneFile" done cd ../../../../../.. done echo "Module $ModuleName pulled, creating repository information." for OneDir in $Changed ; do #echo "checking headers for $OneDir" if [ -d "$OneDir" ]; then rm -rf "$OneDir/.oldheaders" "$OneDir/.olddata" "$OneDir/.repodata" "$OneDir/.newheaders" #"$OneDir/headers" "$OneDir/newheaders" nice yum-arch -q "$OneDir" & nice createrepo -q "$OneDir" & fi done echo "Repository headers created for $ModuleName, creating yum.conf.addme." URLBottom='fedora/linux/$releasever/$basearch/'"$ModuleName" echo >"$TopDir/yum.conf.addme.$ModuleName" echo "#Please change fedora to redhat if upgrading redhat." >>"$TopDir/yum.conf.addme.$ModuleName" echo "[$ModuleName]" >>"$TopDir/yum.conf.addme.$ModuleName" echo "name=$Name" >>"$TopDir/yum.conf.addme.$ModuleName" echo -n "baseurl=" >>"$TopDir/yum.conf.addme.$ModuleName" for OneTop in $URLTop ; do echo "$URLTop/$URLBottom" >>"$TopDir/yum.conf.addme.$ModuleName" done echo >>"$TopDir/yum.conf.addme.$ModuleName" echo "Yum.conf.addme created for $ModuleName" done for RepDir in \ `[ -n "$rh_73_i386" ] && echo "$TopDir/redhat/linux/7.3/i386/"` \ `[ -n "$rh_9_i386" ] && echo "$TopDir/redhat/linux/9/i386/"` \ `[ -n "$fc_1_i386" ] && echo "$TopDir/fedora/linux/1/i386/"` \ `[ -n "$fc_2_i386" ] && echo "$TopDir/fedora/linux/2/i386/"` \ `[ -n "$fc_1_x86_64" ] && echo "$TopDir/fedora/linux/1/x86_64/"` \ `[ -n "$fc_2_x86_64" ] && echo "$TopDir/fedora/linux/2/x86_64/"` \ ; do if [ -d "$RepDir" ]; then #echo "apt-ing $RepDir" cd "$RepDir" nice genbasedir --flat --bloat --bz2only --partial "$RepDir" `ls -a1d [a-z]* | egrep -v '(^base$|^RPMS.)'` >/dev/null & fi done echo Waiting for last directory indexes to finish. wait cat "$TopDir"/yum.conf.addme.* >"$TopDir"/yum.conf.addme if [ -x /usr/bin/freedups ]; then echo Hardlinking duplicate files to save space. #This saves 2.7G on a fc 1/2 i386/x86_64 full mirror of all modules freedups -a -d "$TopDir" else echo No freedups found, install freedups rpm to save disk space. fi #No access allowed to fedora mirror 'linux.nssl.noaa.gov::fedora/core/' #mirror.physics.ncsu.edu::whitebox/ #mirror.dulug.duke.edu #Fedora mirrors #rsync://mirror.linux.duke.edu/fedora-linux-core/ #rsync://distro.ibiblio.org/fedora-linux-core/ #rsync://mirror.hiwaay.net/fedora-linux-core/ #rsync://rpmfind.net/linux/fedora/core/ #rsync://rsync.gtlib.cc.gatech.edu/fedora-linux-core #rsync://linux.nssl.noaa.gov/fedora/core/ #rsync://mirror.cs.wisc.edu/pub/mirrors/linux/download.fedora.redhat.com/pub/fedora/linux/core/ #rsync://mirrors.kernel.org/fedora/core/ #rsync://ftp.muug.mb.ca/pub/fedora/linux/core/ #rsync://www.las.ic.unicamp.br/pub/fedora/ #rsync://ftp.univie.ac.at/fedora/ #rsync://ftp.belnet.be/packages/fedora/ #rsync://sunsite.mff.cuni.cz/fedora/fedora/ #rsync://ftp.fi.muni.cz/pub/linux/fedora/linux/core/ #rsync://ftp.crihan.fr::fedora-linux-core/ #rsync://rsync.uni-bayreuth.de/fedora-linux-core/ #rsync://ftp.join.uni-muenster.de/fedora-linux-core/ #rsync://ftp.rhnet.is/pub/fedora/ #rsync://ftp.heanet.ie/pub/fedora/linux/core/ #rsync://ftp.esat.net/ftp/pub/linux/fedora/ #rsync://ftp.nluug.nl/fedora #rsync://ftp.surfnet.nl/fedora #rsync://sunsite.icm.edu.pl/fedora/linux/core/ #rsync://ftp.iasi.roedu.net/fedora.redhat.com/core/ #rsync://ftp.udl.es/ #rsync://zeniiia.linux.org.uk/fedora-linux-core/ #rsync://rsync.mirrorservice.org/download.fedora.redhat.com/pub/fedora/linux/core/ #rsync://ftp.sfc.wide.ad.jp/fedora/ #rsync://ftp.kddilabs.jp/fedora/ #rsync://ftp.kreonet.re.kr/fedora/core/ #rsync://rsync.oss.eznetsols.org/ftp/linux/fedora/