]>
Commit | Line | Data |
---|---|---|
ed1ec331 ER |
1 | #!/bin/sh |
2 | ||
3 | export LC_ALL=C | |
4 | ||
5 | filter_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 |
17 | group_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 |
28 | pkg2src() { |
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 | 54 | gen_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 | ||
75 | gen_list_uniq() { | |
9bfc9d35 ER |
76 | arch=$1 |
77 | shift | |
6f15d422 | 78 | gen_list $arch -O "unique package names = yes" "$@" |
ed1ec331 ER |
79 | } |
80 | ||
81 | t=$(mktemp) | |
82 | ftpdir=$HOME/ftp | |
9bfc9d35 ER |
83 | for 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 | |
92 | done | |
ed1ec331 | 93 | |
ed1ec331 ER |
94 | chmod 644 $HOME/www/*.txt |
95 | rm -f $t |