|
|
@ -0,0 +1,82 @@ |
|
|
|
#!/bin/bash |
|
|
|
# |
|
|
|
# Given are builds without stage 9 in which broken packages |
|
|
|
# have been rebuilt unless all deps are resolved. |
|
|
|
# |
|
|
|
# This script is trying to resolve all cyclic deps causing |
|
|
|
# troubles in scripts/Check-Deps-2 by looking into the dep |
|
|
|
# files from the given builds and adding del entries to |
|
|
|
# scripts/dep_fixes.txt for those of the cyclic deps present |
|
|
|
# in scripts/dep_db.txt but not in the given builds deps. |
|
|
|
# |
|
|
|
# So you can do stuff like: |
|
|
|
# |
|
|
|
# while ./depfeedback.sh build/ref06* >> scripts/dep_fixes.txt; do true; done |
|
|
|
|
|
|
|
if [ "$1" = "merge" ] |
|
|
|
then |
|
|
|
shift |
|
|
|
perl -e ' |
|
|
|
my %deps; |
|
|
|
|
|
|
|
while (<>) { |
|
|
|
comp; next unless s/^(\S+)\s+del\s+//; |
|
|
|
my $p = $1; @_ = split /\s+/; |
|
|
|
$deps{$p}{$_} = 1 foreach (@_); |
|
|
|
} |
|
|
|
|
|
|
|
foreach (sort keys %deps) { |
|
|
|
print "$_", length $_ < 8 ? "\t\t" : length $_ >= 16 ? " " : "\t"; |
|
|
|
print "del\t", join(" ", sort keys %{$deps{$_}}), "\n" |
|
|
|
} |
|
|
|
' "$@" |
|
|
|
exit 0 |
|
|
|
fi |
|
|
|
|
|
|
|
if [ -z "$1" -o ! -d "$1/var/adm/dependencies" ] |
|
|
|
then |
|
|
|
echo "Usage: $0 build/<ROCKCFGID> [ ... ] >> scripts/dep_fixes.txt" |
|
|
|
echo " $0 merge list1 list2 list3 ..." |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
rm -f dependencies.dot dependencies.dbg |
|
|
|
rm -f dependencies.patch dependencies.done |
|
|
|
./scripts/Check-Deps-2 > /dev/null |
|
|
|
|
|
|
|
if [ -f dependencies.dot ] |
|
|
|
then |
|
|
|
echo -n > dependencies.done |
|
|
|
while read dep pkg; do |
|
|
|
for x; do |
|
|
|
if [ -f "$x/var/adm/logs/5-$pkg.log" -a \ |
|
|
|
-f "$x/var/adm/dependencies/$pkg" ] |
|
|
|
then |
|
|
|
if ! grep -qx "$pkg: $dep" "$x/var/adm/dependencies/$pkg"; then |
|
|
|
echo "$pkg del $dep" >> dependencies.done |
|
|
|
fi |
|
|
|
fi |
|
|
|
done |
|
|
|
done < dependencies.dbg |
|
|
|
|
|
|
|
if [ -s dependencies.done ] |
|
|
|
then |
|
|
|
bash $0 merge dependencies.done |
|
|
|
echo Found $(wc -l < dependencies.done) questionable deps. >&2 |
|
|
|
else |
|
|
|
rm -f dependencies.dot dependencies.dbg |
|
|
|
rm -f dependencies.patch dependencies.done |
|
|
|
echo "No questionable deps found, still some cyclic deps left." >&2 |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
else |
|
|
|
rm -f dependencies.dot dependencies.dbg |
|
|
|
rm -f dependencies.patch dependencies.done |
|
|
|
echo "No cyclic deps left." >&2 |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
rm -f dependencies.dot dependencies.dbg |
|
|
|
rm -f dependencies.patch dependencies.done |
|
|
|
exit 0 |
|
|
|
|