| Summary: | ошибка при создании spec-файла в секции files | ||
|---|---|---|---|
| Product: | Branch 5.0 | Reporter: | PeterVF <petervf> |
| Component: | cpan2rpm | Assignee: | Vitaly Lipatov <lav> |
| Status: | CLOSED WONTFIX | QA Contact: | qa-5.0 <qa-5.0> |
| Severity: | major | ||
| Priority: | P2 | CC: | petervf |
| Version: | unspecified | ||
| Hardware: | all | ||
| OS: | Linux | ||
Вы не указали, какой строка в files должна быть. (В ответ на комментарий №1)
> Вы не указали, какой строка в files должна быть.
:) как в версии cpan2rpm-2.027-alt1 меня вполне устраивает
%files
%perl_vendor_privlib/*
(В ответ на комментарий №2) > (В ответ на комментарий №1) > > Вы не указали, какой строка в files должна быть. > :) как в версии cpan2rpm-2.027-alt1 меня вполне устраивает > > %files > %perl_vendor_privlib/* Это неправильно, и sisyphus_check не пропустит такой пакет. Я хотел бы узнать, какая строка будет правильной для данного пакета. А, там наверное будет %perl_vendor_privlib/RTF/RTF-Parser/ ? (В ответ на комментарий №3) > %perl_vendor_privlib/RTF/RTF-Parser/ > ? Если я правильно понял правила наименования модулей perl и соответствующих им пакетов (архивов), то директории ABC-Module там в принципе не может быть. Речь идет о модуле ABC::Module В конкретном случае в %perl_vendor_privlib/ лежат две папки: RTF i386-linux и т.к. модуль написан иключительно на perl (т.е. - noarch), то достаточный минимум - %perl_vendor_privlib/RTF/*. Если бы были си-шные вставки, потребовалолась бы строка %perl_vendor_privlib/i386-linux/* (см. например perl-DBI). Кроме того, архив модуля содержит не совсем бесполезные утилиты rtf2html,rtf2text, которые после "компиляции" лежат в %buildroot/blib/script. Но, похоже, для помещения их в пакет, надо вручную править спек. (В ответ на комментарий №4) ... > Кроме того, архив модуля содержит не совсем бесполезные утилиты > rtf2html,rtf2text, которые после "компиляции" лежат в %buildroot/blib/script. > Но, похоже, для помещения их в пакет, надо вручную править спек. Не очень понимаю, с чего вы взяли, что это возможно сделать автоматически. Но если хотите попробовать, всегда можете отредактировать /usr/bin/cpan2rpm и прислать исправление. (В ответ на комментарий №5)
> > Но, похоже, для помещения их в пакет, надо вручную править спек.
> Не очень понимаю, с чего вы взяли, что это возможно сделать автоматически.
?!
Не вижу здесь утверждения, что я считаю, что это возможно сделать автоматически.
(Как вариант автоматизации этого порцесса - поместить все что предлагает изначальный пакет за минусом того чот уже упаковалось и man-ов в %doc секцию или отдельный doc-пакет)
(В ответ на комментарий №5) >...Но > если хотите попробовать, всегда можете отредактировать /usr/bin/cpan2rpm и > прислать исправление. Приехали. а как всеже с первопричиной бага? Позвольте повториться: cpan2rpm-2.027-alt1 выдает вполне рабочий spec-файл, из которого собирается вполне рабочий пакет. По поводу sisyphus_check не совсем понятно, на что он будет ругаться, т.к. мне, как рядовому пользователю, приходится собирать пакеты с опцией --no-sisyphus-check. А cpan2rpm - инструмент в основном для рядового пользователя. А для "разработчика" - лишь первый помощник (ввиду ком.№4 2-я часть :). IMHO. (В ответ на комментарий №7) > (В ответ на комментарий №5) > >...Но > > если хотите попробовать, всегда можете отредактировать /usr/bin/cpan2rpm и > > прислать исправление. > > Приехали. > а как всеже с первопричиной бага? > Позвольте повториться: > cpan2rpm-2.027-alt1 выдает вполне рабочий spec-файл, из которого собирается > вполне рабочий пакет. Не соответствующий policy на perl-пакеты в Сизифе. > По поводу sisyphus_check не совсем понятно, на что он будет ругаться, т.к. мне, > как рядовому пользователю, приходится собирать пакеты с опцией > --no-sisyphus-check. А cpan2rpm - инструмент в основном для рядового Что не очень хорошо. > пользователя. А для "разработчика" - лишь первый помощник (ввиду ком.№4 2-я > часть :). IMHO. По моему мнению, cpan2rpm - инструмент для меня. Если вам не хватает пакетов в Сизифе, сообщите, я соберу. Текущая ситуация меня в общем-то устраивает, потому что человек хоть в спек заглянет при сборке пакета. Изменить "назад" я не могу, потому что старое поведение противоречит правилам. Исправлять до идеала мне некогда. Похоже, мне "повезло" с пакетом:
$ cat Makefile.PL
use ExtUtils::MakeMaker;
&WriteMakefile(
NAME => 'RTF::Parser',
EXE_FILES => [ 'bin/rtf2html', 'bin/rtf2text' ],
DISTNAME => 'RTF-Parser',
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
Обрабатывая этот файл, cpan2rpm (
505 $info->{module} ||= $meta{DISTNAME} || $meta{NAME};
) присваивает $info->{module} значение RTF-Parser. Отсюда и проблема.
Предлагаю следующий патч:
$ diff -u /usr/bin/cpan2rpm cpan2rpm-my
--- /usr/bin/cpan2rpm 2008-10-09 22:38:45 +0000
+++ cpan2rpm-my 2009-04-08 11:01:43 +0000
@@ -512,8 +512,8 @@
}
$info->{module} = $info->{tarball};
$info->{module} =~ s/-(\d+\.?\d*)$tarRE$//i;
- $info->{module} =~ s/-/::/g;
}
+ $info->{module} =~ s/-/::/g;
($info->{name} = $info->{module}) =~ s/::/-/g unless $info->{name};
$info->{tarball} = $info->{name} if -d $info->{dist};
Кстати, Ваш патч несколько избыточен. Например:
$ cat cpan2rpm-2.027-alt.patch|grep %perl_vendor
+%perl_vendor_build
+%perl_vendor_install
+%perl_vendor_privlib/*
+%perl_vendor_man3dir/*
%perl_vendor_man3dir/*
%perl_vendor_install
+rm -rf %buildroot%perl_vendor_man3dir/
-%perl_vendor_privlib/*
-%perl_vendor_man3dir/*
Закрываю задачи для Branch 5. |
(cpan2rpm-2.027-alt3) например, при создании RTF-parser в секции files получаем: %files %perl_vendor_privlib/RTF-Parser/* и соответственно ошибка при сборке RPM build errors: File not found by glob: /usr/src/tmp/perl-RTF-Parser-buildroot/usr/lib/perl5/vendor_perl/RTF-Parser/* при использовании cpan2rpm-2.027-alt1 files имеет вид: %files %perl_vendor_privlib/* %perl_vendor_man3dir/*