]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blame - wwwbin/consistency-check.sh
Support for split debugsource packaes
[projects/pld-ftp-admin.git] / wwwbin / consistency-check.sh
CommitLineData
ed1ec331
ER
1#!/bin/sh
2
3export LC_ALL=C
4
5filter_deps() {
fa15d944
JR
6 boolean_deps="req \(.*\) not found"
7 common_deps="cpuinfo\(|uname\(release\)|-multilib-|\/eclipse\/|statifier|kernel-tools-perf-vdso"
8 x32_deps="libreoffice|nodejs|firefox|seamonkey|thunderbird"
9bfc9d35 9 if [ $1 = "x32" ]; then
fa15d944 10 grep -Ev "($boolean_deps|$common_deps|$x32_deps)"
9bfc9d35 11 else
fa15d944
JR
12 grep -Ev "($boolean_deps|$common_deps)"
13 fi
ed1ec331
ER
14}
15
cef29ec5 16# group errors by same error kind
ed1ec331
ER
17group_deps() {
18 local t=$(mktemp)
19 cat > $t
20 sed -ne 's/.*req \(.*\) not found.*/\1/p' $t | sort -u | while read dep; do
21 grep -F "req $dep not found" $t
22 done
23 rm -f $t
24}
25
cef29ec5
ER
26# convert pkg name to src.rpm name
27# uses poldek
cef29ec5
ER
28pkg2src() {
29 local t=$(mktemp)
cef29ec5
ER
30 local t3=$(mktemp)
31
32 # save input
33 cat > $t
34
48d8fed6 35 # create list of N-V-R.A.rpm -> src-N pairs from error report
cef29ec5 36 # error: arcconf-7.0.18786-1: req libstdc++.so.5()(64bit) not found
48d8fed6
JR
37 sed -ne 's/error: \(.*\): req .* not found/\1/p' $t | sort -u | \
38 xargs -d '\n' poldek --noignore -Q "$@" --cmd ls -q -s | \
39 sed -rne "s/^([^\t ]+)[\t ]+(.+)-[^-]+-[^-]+\.src\.rpm$/\1\t\2/p" >$t3
cef29ec5 40
48d8fed6 41 local pkg error message srpm
cef29ec5
ER
42 while read error pkg message; do
43 # error: arcconf-7.0.18786-1: req libstdc++.so.5()(64bit) not found
44 srpm=$(awk -vpkg="${pkg%:}" '$1 == pkg {printf("%s.spec", $2)}' $t3)
789fadf6
ER
45 if [ -z "$srpm" ]; then
46 echo >&2 "srpms: No match for [${pkg%:}]"
47 fi
cef29ec5
ER
48 echo "$error [$srpm] $pkg $message"
49 done < $t
50
48d8fed6 51 rm -f $t $t3
cef29ec5
ER
52}
53
ed1ec331 54gen_list() {
9bfc9d35
ER
55 arch=$1
56 shift
ed1ec331 57 date
6f15d422
JR
58 poldek --cleana
59 poldek \
60 -O "auto directory dependencies = yes" \
68442ebe 61 --ignore "*-debuginfo-*" \
20313fad 62 --ignore "*-debugsource-*" \
ed1ec331
ER
63 --ignore "opera-plugin32-*" \
64 --ignore "nspluginwrapper-*" \
65 --ignore "mbrola-voice-*" \
63c951e1
JR
66 --ignore "pysql-*" \
67 --ignore "yasql-*" \
ee85662d
JR
68 --ignore "kde4-kdenetwork-kopete-protocol-skype-*.x86_64" \
69 --ignore "libpurple-protocol-skype-*.x86_64" \
8c53cf89
ER
70 --ignore "nagios-plugin-check_cciss-*" \
71 --ignore "libpng1*" \
43cbb0a9 72 --verify=deps -Q "$@" | filter_deps $arch | group_deps | pkg2src "$@" | sort
ed1ec331
ER
73}
74
75gen_list_uniq() {
9bfc9d35
ER
76 arch=$1
77 shift
6f15d422 78 gen_list $arch -O "unique package names = yes" "$@"
ed1ec331
ER
79}
80
81t=$(mktemp)
82ftpdir=$HOME/ftp
9bfc9d35
ER
83for arch in x86_64 i686 x32 ; do
84 if [ "$arch" = x86_64 ]; then
85 outfext=.txt
86 else
87 outfext=-$arch.txt
88 fi
89 gen_list $arch -s $ftpdir/PLD/$arch/RPMS/ -s $ftpdir/PLD/noarch/RPMS/ > $t && cat $t > $HOME/www/main$outfext
90 gen_list_uniq $arch -s $ftpdir/PLD/$arch/RPMS/ -s $ftpdir/PLD/noarch/RPMS/ -s $ftpdir/ready/$arch/RPMS/ -s $ftpdir/ready/noarch/RPMS/ > $t && cat $t > $HOME/www/main-ready$outfext
91 gen_list_uniq $arch -s $ftpdir/PLD/$arch/RPMS/ -s $ftpdir/PLD/noarch/RPMS/ -s $ftpdir/ready/$arch/RPMS/ -s $ftpdir/ready/noarch/RPMS/ -s $ftpdir/test/$arch/RPMS/ -s $ftpdir/test/noarch/RPMS/ > $t && cat $t > $HOME/www/main-ready-test$outfext
92done
ed1ec331 93
ed1ec331
ER
94chmod 644 $HOME/www/*.txt
95rm -f $t
This page took 0.325393 seconds and 4 git commands to generate.