On Fri, Aug 12, 2005 at 08:57:31PM +0400, Alexey Tourbin wrote: > On Fri, Aug 12, 2005 at 05:16:12PM +0400, Denis Smirnov wrote: > > Обнаружил тут одну неприятность в bugzilla -- очень много багов висит на > > старых мантейнеров, а новые об этих багах могут узнать только поиском > > или заглянув на sisyphus.ru > > Ну. Делаешь такой дамп: > https://bugzilla.altlinux.org/buglist.cgi?ctype=csv&columnlist=bug_id,component,assigned_to > > Он выплёвывает: > bug_id,"component","assigned_to", > 6006,"xvidcap","aris@altlinux.org", > 7379,"spamassassin-spamd","force@altlinux.org", > 7484,"gcc3.4","ldv@altlinux.org", > 3986,"Form for enter new bug","legion@altlinux.org", > 1240,"indexhtml","rider@altlinux.org", > > Дальше нужно сравнивать assigned_to по пакетной базе. Редактором (ну, типа, exmode) делаем из него tab-delimited дамп, который назовём bugs: 6006 xvidcap aris@altlinux 7379 spamassassin-spamd force@altlinux 7484 gcc3.4 ldv@altlinux ... Далее делаем дамп для пакетной базы, который назовём packages: $ find /raid/ALT/Sisyphus/files/ -type f -name '*.rpm' -print0 |xargs -r0 \ rpm -qp --qf '%{NAME}\t%{PACKAGER}\n' AVLTree-devel AEN 7colors Rider libmidgard Sergei Dolmatov ... $ После обработки редактором остается: AVLTree-devel aen@altlinux 7colors rider@altlinux libmidgard saint@altlinux Далее будем делать join этих двух дампов (bugs и packages) по имени пакета, нужна предварительная сортировка: $ sort -o bugs -u bugs $ sort -o bugs -t$'\t' -k2,2 bugs $ sort -o packages -u packages $ sort -o packages -t$'\t' -k1,1 packages Смотрим, что получилось: $ head bugs 1776 3dwm nidd@altlinux 1940 3dwm nidd@altlinux 2226 3dwm reporter@altlinux 470 3dwm inger@altlinux 476 3dwm nidd@altlinux 749 3dwm nidd@altlinux 785 3dwm inger@altlinux 130 7colors rider@altlinux 1842 7colors rider@altlinux 7188 855resolution rider@altlinux $ head packages 7colors rider@altlinux 855resolution rider@altlinux a2ps andrei@altlinux a52dec aris@altlinux aalib aris@altlinux aalib-devel aris@altlinux aalib-utils aris@altlinux abiword vk@altlinux abook sass@altlinux abuse_sdl zerg@altlinux $ Похоже на правду. Теперь надо проверить, нет ли в списке packages "двойных maintainer'ов". $ awk -F'\t' 'BEGIN{OFS=FS}(p==$1){print p,m;print}{p=$1;m=$2}' packages >dups $ head dups arts mouse@altlinux arts zerg@altlinux bobtail mouse@altlinux bobtail rider@altlinux cdda2wav lakostis@altlinux cdda2wav mouse@altlinux cdrecord lakostis@altlinux cdrecord mouse@altlinux cdrtools lakostis@altlinux cdrtools mouse@altlinux $ Ясно, дупы есть, поскольку пакеты искали также в x86_64. :( Из дупов убираем mouse'а. $ awk -F'\t' '$2~/mouse/' dups >mouse $ grep -Fx -vf mouse packages >packages.new $ diff -u packages packages.new |head --- packages 2005-08-12 17:50:32 +0000 +++ packages.new 2005-08-12 17:55:32 +0000 @@ -196,7 +196,6 @@ arm-palmos-prc-tools raorn@altlinux arpd ldv@altlinux arpwatch inger@altlinux -arts mouse@altlinux arts zerg@altlinux asciidoc abulava@altlinux aseqview aris@altlinux $ mv packages.new packages Теперь всё готово для того, чтобы Сделать Join. # pkg bugno assigned to packager $ join -t$'\t' -12 -21 bugs packages |awk -F'\t' '$3!=$4' |head abiword 3019 aen@altlinux vk@altlinux abiword 3755 aen@altlinux vk@altlinux abiword 3869 aen@altlinux vk@altlinux abiword 3880 aen@altlinux vk@altlinux acl 1111 reporter@altlinux ab@altlinux acpi 4945 oes@altlinux force@altlinux acpid 175 reporter@altlinux wrar@altlinux acpid 2849 darkstar@altlinux wrar@altlinux acpid 2970 darkstar@altlinux wrar@altlinux agetty 1058 inger@altlinux util-linux@packages.altlinux $ Получилось! Полный список довольно большой (1900), но это с учетом адресов @packages.altlinux. Таким образом получен список багов, которые присвоены НЕ maintainer'ам. Вопрос: что делать с этим списком?