[devel] perl-* NMU [was: I: Sisyphus-20081005 REBUILD i586 status]
Igor Vlasenko
=?iso-8859-1?q?vlasenko_=CE=C1_imath=2Ekiev=2Eua?=
Вт Окт 7 11:11:40 MSD 2008
On Mon, Oct 06, 2008 at 10:17:42PM +0300, Igor Vlasenko wrote:
> > Так что я не против выдачи Вам NMU на мои perl-*.
> Тогда просим уважаемый imcoming@ выдать NMU
[list skipped]
Итоги - 72 (70?) из 76 пакетов в Сизифе,
1 не прошел тесты, у 3 build unmets.
Фокус прошел, теперь займемся разоблачением :)
код у меня в RPM-Source-Editor.git,
пакеты сгенерировались такой командой (в IN лежали оригинальные пакеты):
mkdir OUT
for i in IN/*; do ./nmu --packager 'Michael Bochkaryov <misha на altlinux.ru>' --hook /path/to/RPM-Source-Editor.git/hooks/perl-check.pl --rpm $i --out OUT; done
скрипт nmu общего плана, он увеличивает релиз, устанавливает
Packager (если его нет), add changelog.
Сами команды редактирования содержатся в hooks/perl-check.pl.
./nmu и hooks -- Это как ракета и боеголовка.
в RPM-Source-Editor есть обьекты для спека и секции, и
различные команды для манипуляции их содержимым.
Эти обьекты ./nmu передает в hooks.
API, похоже, стабилизируется, так что можно понемногу
популяризовывать. Код перловый.
hooks/perl-check.pl:
push @SPECHOOKS,
sub {
my ($spec) = @_;
my $buildarch=$spec->get_section('package','')->get_tag('BuildArch');
if (!$buildarch) { # it looks like arch
foreach my $section ($spec->get_sections()) {
if ($section->get_type() eq 'files') {
$section->subst(qr'\%perl_vendor_privlib','%perl_vendor_archlib');
}
}
} elsif ($buildarch eq 'noarch') {
foreach my $section ($spec->get_sections()) {
if ($section->get_type() eq 'files') {
$section->push_body('%exclude %perl_vendor_archlib'."\n");
}
}
} else {
die "TODO: arch $arch!";
}
};
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Подробная информация о списке рассылки Devel