|
Lines 56-76
unlink_symlinked()
Link Here
|
| 56 |
|
56 |
|
| 57 |
check_arch_dups() |
57 |
check_arch_dups() |
| 58 |
{ |
58 |
{ |
| 59 |
local arch=$1 |
59 |
local arch=$1 |
| 60 |
shift |
60 |
shift |
| 61 |
|
61 |
|
| 62 |
echo "Checking layout dups for $arch" |
62 |
echo "Checking layout dups for $arch" |
| 63 |
local out |
63 |
local out |
| 64 |
out=$(cut -f1 "files/list.$arch".* |sort |uniq -c |awk '{if ($1!=1) print $2}') |
64 |
out=$(cut -f1 "files/list.$arch".* |sort |uniq -c |awk '{if ($1!=1) print $2}') #' |
| 65 |
if [ -n "$out" ]; then |
65 |
if [ -n "$out" ]; then |
| 66 |
echo "ERROR: duplicated names found in $arch layout:" >&2 |
66 |
echo "ERROR: duplicated names found in $arch layout" >&2 |
| 67 |
echo "$out" >&2 |
67 |
duplicate_pkgs="$duplicate_pkgs |
| 68 |
return 1 |
68 |
$out |
|
|
69 |
" |
| 69 |
fi |
70 |
fi |
| 70 |
} |
71 |
} |
| 71 |
|
72 |
|
| 72 |
calc_arch_names() |
73 |
calc_arch_names() |
| 73 |
{ |
74 |
{ |
| 74 |
local arch=$1 |
75 |
local arch=$1 |
| 75 |
shift |
76 |
shift |
| 76 |
local rpms=$1 |
77 |
local rpms=$1 |
|
Lines 89-114
check_arch_missing()
Link Here
|
| 89 |
|
90 |
|
| 90 |
local list="$WORKDIR/$arch" |
91 |
local list="$WORKDIR/$arch" |
| 91 |
[ -s "$list" ] || return 0 |
92 |
[ -s "$list" ] || return 0 |
| 92 |
|
93 |
|
| 93 |
echo "Checking layout misses for $arch" |
94 |
echo "Checking layout misses for $arch" |
| 94 |
local out |
95 |
local out |
| 95 |
out=$(cut -f1 "files/list.$arch".* |sort -u |join "$list" - -v1 |cut -d' ' -f1 |sort -u) |
96 |
out=$(cut -f1 "files/list.$arch".* |sort -u |join "$list" - -v1 |cut -d' ' -f1 |sort -u) |
| 96 |
if [ -n "$out" ]; then |
97 |
if [ -n "$out" ]; then |
| 97 |
echo "ERROR: unlisted packages found in $arch layout:" >&2 |
98 |
echo "ERROR: unlisted packages found in $arch layout">&2 |
| 98 |
printf %s "$out" |join "$list" - -o 1.2 >&2 |
99 |
missing_pkgs="$missing_pkgs |
|
|
100 |
$(printf %s "$out" |join "$list" - -o 1.2) |
| 101 |
" |
| 99 |
return 1 |
102 |
return 1 |
| 100 |
fi |
103 |
fi |
| 101 |
local f |
104 |
local f |
| 102 |
for f in "files/list.$arch".*; do |
105 |
for f in "files/list.$arch".*; do |
| 103 |
out=$(cut -f1 "$f" |sort -u |join "$list" - -v2 |cut -d' ' -f1 |sort -u) |
106 |
out=$(cut -f1 "$f" |sort -u |join "$list" - -v2 |cut -d' ' -f1 |sort -u) |
| 104 |
if [ -n "$out" ]; then |
107 |
if [ -n "$out" ]; then |
| 105 |
echo "WARNING: orphaned names found in ${f#files/list.} layout:" >&2 |
108 |
echo "WARNING: orphaned names found in ${f#files/list.} layout" >&2 |
| 106 |
echo "$out" >&2 |
109 |
orphaned_pkgs="$orphaned_pkgs |
|
|
110 |
$out |
| 111 |
" |
| 107 |
fi |
112 |
fi |
| 108 |
done |
113 |
done |
| 109 |
} |
114 |
} |
| 110 |
|
115 |
|
| 111 |
calc_comp() |
116 |
calc_comp() |
| 112 |
{ |
117 |
{ |
| 113 |
local arch=$1 |
118 |
local arch=$1 |
| 114 |
shift |
119 |
shift |
|
Lines 160-185
relink_arch()
Link Here
|
| 160 |
[ -f "$f" ] || continue |
165 |
[ -f "$f" ] || continue |
| 161 |
$debug ln -s $verbose "$r/$n" "$d/" || rc=1 |
166 |
$debug ln -s $verbose "$r/$n" "$d/" || rc=1 |
| 162 |
done |
167 |
done |
| 163 |
return $rc |
168 |
return $rc |
| 164 |
} |
169 |
} |
| 165 |
|
170 |
|
| 166 |
problems_list= |
171 |
problems_list= |
| 167 |
|
172 |
|
|
|
173 |
duplicate_pkgs= |
| 174 |
missing_pkgs= |
| 175 |
orphaned_pkgs= |
| 176 |
|
| 168 |
check_arch_dups "src" || exit |
177 |
check_arch_dups "src" || exit |
| 169 |
calc_arch_names "src" "SRPMS" || exit |
178 |
calc_arch_names "src" "SRPMS" || exit |
| 170 |
check_arch_missing "src" || problems_list="$problems_list src" |
179 |
check_arch_missing "src" || problems_list="$problems_list src" |
| 171 |
|
180 |
|
| 172 |
for arch in $ARCHITECTURES; do |
181 |
for arch in $ARCHITECTURES; do |
| 173 |
check_arch_dups "$arch" || exit |
182 |
check_arch_dups "$arch" || exit |
| 174 |
calc_arch_names "$arch" "$arch/RPMS" || exit |
183 |
calc_arch_names "$arch" "$arch/RPMS" || exit |
| 175 |
if ! check_arch_missing "$arch"; then |
184 |
if ! check_arch_missing "$arch"; then |
| 176 |
problems_list="$problems_list $arch" |
185 |
problems_list="$problems_list $arch" |
| 177 |
continue |
|
|
| 178 |
fi |
186 |
fi |
| 179 |
for comp in $LINKONLY_COMPONENTS $MIXED_COMPONENTS; do |
187 |
for comp in $LINKONLY_COMPONENTS $MIXED_COMPONENTS; do |
| 180 |
calc_comp "$arch" "$comp" || exit |
188 |
calc_comp "$arch" "$comp" || exit |
| 181 |
unlink_symlinked "$arch/RPMS.$comp" || exit |
189 |
unlink_symlinked "$arch/RPMS.$comp" || exit |
| 182 |
if ! relink_arch "$arch" "$comp" "$arch/RPMS" "$arch/RPMS"; then |
190 |
if ! relink_arch "$arch" "$comp" "$arch/RPMS" "$arch/RPMS"; then |
| 183 |
echo "ERROR: $arch" |
191 |
echo "ERROR: $arch" |
| 184 |
problems_list="$problems_list $arch" |
192 |
problems_list="$problems_list $arch" |
| 185 |
fi |
193 |
fi |
|
Lines 189-202
for arch in $ARCHITECTURES; do
Link Here
|
| 189 |
if ! relink_arch "src" "$comp" "$arch/SRPMS" "SRPMS"; then |
197 |
if ! relink_arch "src" "$comp" "$arch/SRPMS" "SRPMS"; then |
| 190 |
echo "ERROR: $arch" |
198 |
echo "ERROR: $arch" |
| 191 |
problems_list="$problems_list $arch" |
199 |
problems_list="$problems_list $arch" |
| 192 |
fi |
200 |
fi |
| 193 |
done |
201 |
done |
| 194 |
find "$WORKDIR" -type f -name 'src.*' -delete |
202 |
find "$WORKDIR" -type f -name 'src.*' -delete |
| 195 |
done |
203 |
done |
| 196 |
|
204 |
|
| 197 |
[ -z "$problems_list" ] || Fatal "problems in:$problems_list" |
205 |
[ -z "$problems_list" ] || printf '\n%s\n\n' "problems in:$problems_list" >&2 |
|
|
206 |
|
| 207 |
if [ -n "$duplicate_pkgs" ]; then |
| 208 |
Info "ERROR: duplicated names found:" |
| 209 |
printf %s\\n "$duplicate_pkgs" >&2 |
| 210 |
fi |
| 211 |
|
| 212 |
if [ -n "$missing_pkgs" ]; then |
| 213 |
Info "ERROR: unlisted packages found:" |
| 214 |
printf %s\\n "$missing_pkgs" >&2 |
| 215 |
fi |
| 216 |
|
| 217 |
if [ -n "$orphaned_pkgs" ]; then |
| 218 |
Info "ERROR: orphaned names found:" |
| 219 |
printf %s\\n "$orphaned_pkgs" >&2 |
| 220 |
fi |
| 221 |
|
| 222 |
[ -z "$duplicate_pkgs" -a -z "$missing_pkgs" -a -z "$orphaned_pkgs" ] || exit 1 |
| 198 |
|
223 |
|
| 199 |
echo "Updating classic..." |
224 |
echo "Updating classic..." |
| 200 |
sisyphus_update_classic |
225 |
sisyphus_update_classic |
| 201 |
echo "Updating compatibility symlinks..." |
226 |
echo "Updating compatibility symlinks..." |
| 202 |
sisyphus_migration_hack |
227 |
sisyphus_migration_hack |