[devel] IA: package hasher for everyone
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Пт Июл 4 02:43:14 MSD 2003
On Fri, Jul 04, 2003 at 12:14:19AM +0300, Alexander Bokovoy wrote:
> On Thu, Jul 03, 2003 at 05:22:48PM +0400, Dmitry V. Levin wrote:
> > On Thu, Jul 03, 2003 at 12:51:14AM +0300, Alexander Bokovoy wrote:
> > > On Thu, Jul 03, 2003 at 01:45:24AM +0400, Dmitry V. Levin wrote:
> > > > On Wed, Jul 02, 2003 at 10:54:24PM +0400, Dmitry V. Levin wrote:
> > > > > Greetings!
> > > > >
> > > > > В сегодняшнем (20030702) Сизифе появилось (yet more) средство для
> > > > > автоматизированной пересборки пакетов - hasher.
> > > > [...]
> > > > > --contents-index-all=INDEX
> > > > > Path to file with complete package contents index, e.g.
> > > > > path/to/Sisyphus/i586/base/contents_index; necessary for proper
> > > > > binary package dependencies calculation.
> > > > > By default, no package contents indeces will be used.
> > > >
> > > > Пожелание разработчикам sandman'а:
> > > > реализовать поддержку использования этих индексов.
> > > Пока hsh не доползло, основной вопрос касается реализации вычисления
> > > зависимостей методом contents_index при использовании дополнительных
> > > репозитариев -- учитываются все contents_index-ы или только один, из
> > > основного репозитария? Последнее является ошибкой.
> >
> > Для rpm-build'а contents_index'ов должно быть не более одного
> > (каждого типа); вызывающий может/должен обеспечить rpm-build
> > contents_index'ом, при этом он может изготовить его из нескольких.
> Это серьезное ограничение, сводящее на нет практическое применение при
> пересборке подсистем.
Это неэффективно делать на стадии rpm-build'а, который ничего не смыслит в
репозиториях. Я убежден, что вызывающая сторона должна обеспечивать его
необходимыми индексами.
> > Нынешний hasher ещё не умеет поддерживать сразу несколько
> > contents_index'ов; это в TODO.
> Поставь его повыше в TODO, хорошо?
Объединить несколько индексов (одной природы) - это не сложнее, чем сделать
сами индексы. Сейчас индекс classic'а делается с помощью прилагаемого
скрипта. Если есть идеи, как лучше его назвать и в какой пакет
запаковать, высказывайтесь.
--
ldv
----------- следующая часть -----------
#!/bin/sh -e
export LANG=C LANGUAGE=C LC_ALL=C
PROG="${0##*/}"
[ $# -eq 1 ] || { echo "Usage: $PROG <directory>" >&2; exit 1; }
cd "$1"
shift
WORKDIR=
exit_handler()
{
local rc=$?
trap - EXIT
[ -z "$WORKDIR" ] || rm -rf -- "$WORKDIR"
exit $rc
}
trap exit_handler SIGHUP SIGINT SIGQUIT SIGTERM EXIT
WORKDIR="$(mktemp -d -t "$PROG.XXXXXXXXXX")"
# generate filelist.
find -mindepth 1 -maxdepth 1 -name \*.rpm -print0 |
xargs -r0 rpmquery -p --qf '[%{FILENAMES}\t%{NAME}\n]' -- |
fgrep -v ' ' |
sort -u >"$WORKDIR"/list
cd "$WORKDIR"
# find dups.
cut -f1 <list |
uniq -c |
awk '{if ($1 != "1") printf("%s\t%s\n",$2,$2)}' >dups
# find uniquie lines.
cut -f1 dups |
join -v1 list - |
tr -s ' ' '\t' >uniq
sort -u dups uniq
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20030704/18800761/attachment-0001.bin>
Подробная информация о списке рассылки Devel