# uses poldek
pkg2src() {
local t=$(mktemp)
- local t1=$(mktemp)
- local t2=$(mktemp)
local t3=$(mktemp)
# save input
cat > $t
- # create list of packages from error report
+ # create list of N-V-R.A.rpm -> src-N pairs from error report
# error: arcconf-7.0.18786-1: req libstdc++.so.5()(64bit) not found
- sed -ne 's/error: \(.*\): req .* not found/\1/p' $t | sort -u > $t1
-
- # create list of package -> src.rpm names
- poldek --noignore -Q "$@" --cmd ls -q -s > $t2
-
- # create N-V-R -> N list
- local pkg error message srpm out
- while read pkg; do
- # there's no space between the columns, so need to match with known archs
- # see https://bugs.launchpad.net/poldek/+bug/1031767
- out=$(sed -rne "s/^($pkg)\.(x86_64|i686|noarch)(.+)-[^-]+-[^-]+\.src\.rpm$/\1\t\3/p" $t2)
- if [ -z "$out" ]; then
- echo >&2 "nvr: No match for [$pkg]"
- fi
- echo "$out"
- done < $t1 > $t3
+ sed -ne 's/error: \(.*\): req .* not found/\1/p' $t | sort -u | \
+ xargs -d '\n' poldek --noignore -Q "$@" --cmd ls -q -s | \
+ sed -rne "s/^([^\t ]+)[\t ]+(.+)-[^-]+-[^-]+\.src\.rpm$/\1\t\2/p" >$t3
+ local pkg error message srpm
while read error pkg message; do
# error: arcconf-7.0.18786-1: req libstdc++.so.5()(64bit) not found
srpm=$(awk -vpkg="${pkg%:}" '$1 == pkg {printf("%s.spec", $2)}' $t3)
echo "$error [$srpm] $pkg $message"
done < $t
- rm -f $t $t1 $t2 $t3
+ rm -f $t $t3
}
gen_list() {
date
/usr/bin/poldek -O "auto directory dependencies = yes" \
- --ignore "*-debuginfo-*" --ignore "db4.6*" \
- --ignore "boost*1.34*" \
- --ignore "krb5*" \
- --ignore "libjpeg6*" \
- --ignore "libpthread-stubs-devel*" \
- --ignore "monodoc-*" \
- --ignore "arts-*" --ignore "artsc-*" \
- --ignore "esound-*" \
+ --ignore "*-debuginfo-*" \
--ignore "opera-plugin32-*" \
--ignore "nspluginwrapper-*" \
--ignore "mbrola-voice-*" \
- --ignore "hal" \
- --ignore "hal-libs" \
- --ignore "quicktime4linux*" \
- --ignore "compat-libstdc++-*" \
+ --ignore "pysql-*" \
+ --ignore "yasql-*" \
+ --ignore "kde4-kdenetwork-kopete-protocol-skype-*.x86_64" \
+ --ignore "libpurple-protocol-skype-*.x86_64" \
+ --ignore "nagios-plugin-check_cciss-*" \
+ --ignore "libpng1*" \
--verify=deps -Q "$@" | filter_deps | group_deps | sort | pkg2src "$@"
}