diff -Nur -x '*.orig' -x '*.rej' smeserver-yum-1.2.0/root/sbin/e-smith/yum_update_dbs mezzanine_patched_smeserver-yum-1.2.0/root/sbin/e-smith/yum_update_dbs --- smeserver-yum-1.2.0/root/sbin/e-smith/yum_update_dbs 2005-09-25 20:30:54.000000000 -0600 +++ mezzanine_patched_smeserver-yum-1.2.0/root/sbin/e-smith/yum_update_dbs 2007-06-10 04:04:47.000000000 -0600 @@ -22,6 +22,10 @@ use esmith::ConfigDB; my $db = esmith::ConfigDB->open_ro or die "Couldn't open ConfigDB\n"; +my $RestrictRpm = $db->get_prop('yum', 'RestrictRpm') || 'no'; +my $RestrictRepo = $db->get_prop('yum', 'RestrictRepo') || 'no'; +my @rpms = split(/,/, $RestrictRpm); +my @repos = split(/,/, $RestrictRepo); use constant YUM_CRON_FLAG => '/var/lock/subsys/yum'; @@ -66,7 +70,33 @@ next unless $package and $version and $repo; - print DB "$package=package|Repo|$repo|Version|$version\n"; + if ($list_option eq 'available') + { + if (($RestrictRpm eq 'no') && ($RestrictRepo eq 'no')) + { + print DB "$package=package|Repo|$repo|Version|$version\n"; + } + else + { + my $match = ''; # test on a match so we don't get duplicate entries + foreach (@rpms) + { + next if ($match eq 'yes'); + if ($package =~ /$_/) + { print DB "$package=package|Repo|$repo|Version|$version\n"; $match='yes';} + } + foreach (@repos) + { + next if ($match eq 'yes'); + if ($repo =~ /$_/) + { print DB "$package=package|Repo|$repo|Version|$version\n"; $match='yes';} + } + } + } + else + { + print DB "$package=package|Repo|$repo|Version|$version\n"; + } } close YUM or warn "yum list $list_option status $?\n";