[devel] Re: perl packages
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Сен 5 16:15:19 MSD 2003
On Fri, Sep 05, 2003 at 03:08:16PM +0400, Andrey Brindeew wrote:
> У меня hasher'а никогда, видимо, не будет. Ибо по моим сведениям,
> hasher'у нужно полное локальное дерево Сизифа (т.к. он не умеет
> пользоваться удаленными репозитариями).
Да. Но некоторая часть пакетов, которая не пересобирается в hasher'е,
просто имеет неадекватный BuildReqruies. Другая часть не собирается
из-за требования нового perl.req. У hasher'а нет какой-то собственной
принципиальной специфики.
> А если учесть еще то, что hasher & sandman - всё-таки разные, то полного
> счастья опять мы не получаем. У разработчика всё будет прекрасно
> собираться в sandman'е, а у incominger'а - не будет в hasher'е. Или
> наоборот.
Тогда главный вопрос будет -- почему так происходит. Возможно, удастся
выявить неочевидные проблемы с пакетом. В этом смысле лучше, если пакет
не собирается, чем собирается.
> > - пакет должен иметь адекватные зависимости BuildRequires, полученные
> > с помощью buildreq (как минимум perl-devel); замечание: пока иногда
> > придется делать buildreq --args=-bi *.spec
>
> Вроде я так всегда и делаю.
Это связано со спецификой новых скриптов. В процессе B::Deparse/`perl -c'
проходит стадия компиляции перлового кода, исполнение кода BEGIN и
загрузка всех модулей из use. Поэтому могут цепляться дополнительные
файлы (хотя, по идее, то же саоме должно происходить в тестах).
> > - пакет должен собираться с помощью макросов %perl_vendor_build и
> > %perl_vendor_install (кстати, они умеют брать параметры)
>
> Дока есть? Или как обычно, "look into sources"? :-(
Доки нет. Но есть man ExtUtils::MakeMaker, который описывает
стандартную процедуру сборки перловых пакетов. Если пакет не собирается
с помощью стандартной процедуры, значит он кривой.
Из-за неясной мне пока специфики RPM, макросы специфического вида он не
берёт:
%perl_vendor_build --load-lazy
не работает. Обходной путь:
ARGS=--load-lazy
%perl_vendor_build $ARGS
> > - пакет должен проходить все тесты; исключения:
> > + требуется запуск X
> > + требуется запуск системных сервисов
> > + подразумевается специальная сетевая активность
>
> Тесты на подключение к БД сюда попадают? Для примера смотреть
Да, попадают.
> > Напоминаю, что тесты можно отключать избирательно (в случае исключений).
>
> Каким образом?
Если тесты физически выглядят как t/*.t, то можно удалить
соответствующие *.t файлы. Возможно, при этом придется отредактировать
MANIFEST. Пример из perl58.spec:
# skip some tests that fail under buildreq/strace or make dependencies
%ifdef __buildreqs
files="t/io/openpid.t
t/op/fork.t
t/op/stat.t
lib/diagnostics.t
lib/Pod/t/basic.t
lib/Term/Cap.t
ext/POSIX/t/waitpid.t"
%__rm -f $files
%__mv MANIFEST MANIFEST.orig
%__grep -Fv "$files" MANIFEST.orig > MANIFEST
%endif
> Что надо писать в Summary?
Зачем этот модуль нужен, что он делает.
> > Предлагается привести пакеты в соответствие с новыми требованиями.
> > В сущности, несколько maintainer'ов получили это предложение ещё вчера.
> > Отказ от предложения может привести к перемещению пакета в orphaned. :)
>
> Сурово. Посмотрим, как багзилла будет жить без perl-Template - он ведь
> тоже в списке! :-)
Может привести, а может и не привести. :)
Вчера пересобрал 10 пакетов...
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20030905/fd423ddb/attachment-0001.bin>
Подробная информация о списке рассылки Devel