Bug 22330

Summary: Просьба обновить perl-Moose до 0.93
Product: Sisyphus Reporter: Vitaly Lipatov <lav>
Component: perl-MooseAssignee: viy <viy>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: viy
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on: 22436    
Bug Blocks:    

Description Vitaly Lipatov 2009-11-19 11:49:22 MSK
Просьба обновить perl-Moose до 0.93,
а также вписать в Url
Url: %CPAN %m_distro
где m_distro - название модуля.
Comment 1 Mikhail Pokidko 2009-11-25 16:00:55 MSK
Пока беру таймаут.

Сборка прекращается на :

The 'add_attribute' method cannot be called on an immutable instance at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Class/Immutable/Trait.pm line 32
        Class::MOP::Class::Immutable::Trait::_immutable_cannot_call('add_attribute') called at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Class/Immutable/Trait.pm line 37
        Class::MOP::Class:::around('CODE(0x88987b0)', 'Class::MOP::Class::Immutable::Class::MOP::Class=HASH(0x88ee44c)', 'type_parameter', 'accessor', 'type_parameter', 'predicate', 'has_type_parameter') called at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Method/Wrapped.pm line 159
  Class::MOP::Method::Wrapped::__ANON__('Class::MOP::Class::Immutable::Class::MOP::Class=HASH(0x88ee44c)', 'type_parameter', 'accessor', 'type_parameter', 'predicate', 'has_type_parameter') called at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Method/Wrapped.pm line 89   
        Class::MOP::Class::Immutable::Class::MOP::Class::add_attribute('Class::MOP::Class::Immutable::Class::MOP::Class=HASH(0x88ee44c)', 'type_parameter', 'accessor', 'type_parameter', 'predicate', 'has_type_parameter') called at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterized.pm line 17
        require Moose/Meta/TypeConstraint/Parameterized.pm called at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterizable.pm line 12                       
        Moose::Meta::TypeConstraint::Parameterizable::BEGIN() called at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterized.pm line 0
                     
        eval {...} called at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterized.pm line 0
Compilation failed in require at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterizable.pm line 12.
BEGIN failed--compilation aborted at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterizable.pm line 12.
# /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterizable.pm: deparse failed, trying to recover with -MMoose::Meta::TypeConstraint 
The 'add_attribute' method cannot be called on an immutable instance at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Class/Immutable/Trait.pm line 32
        Class::MOP::Class::Immutable::Trait::_immutable_cannot_call('add_attribute') called at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Class/Immutable/Trait.pm line 37     
        Class::MOP::Class:::around('CODE(0x89b2fac)', 'Class::MOP::Class::Immutable::Class::MOP::Class=HASH(0x8b22548)', 'type_parameter', 'accessor', 'type_parameter', 'predicate', 'has_type_parameter') called at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Method/Wrapped.pm line 159
        Class::MOP::Method::Wrapped::__ANON__('Class::MOP::Class::Immutable::Class::MOP::Class=HASH(0x8b22548)', 'type_parameter', 'accessor', 'type_parameter', 'predicate', 'has_type_parameter') called at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Method/Wrapped.pm line 89
        Class::MOP::Class::Immutable::Class::MOP::Class::add_attribute('Class::MOP::Class::Immutable::Class::MOP::Class=HASH(0x8b22548)', 'type_parameter', 'accessor', 'type_parameter', 'predicate', 'has_type_parameter') called at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterized.pm line 17     
        require Moose/Meta/TypeConstraint/Parameterized.pm called at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterizable.pm line 12                           
        Moose::Meta::TypeConstraint::Parameterizable::BEGIN() called at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterized.pm line 0
                 
        eval {...} called at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterized.pm line 0 
Compilation failed in require at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterizable.pm line 12.
BEGIN failed--compilation aborted at /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterizable.pm line 12.
# /usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint/Parameterizable.pm: deparse failed. prefix=/usr/src/tmp/perl-Moose-buildroot/usr/lib/perl5/vendor_perl

find-requires: ERROR: /usr/lib/rpm/perl.req failed

error: /bin/sh failed
            
error: Failed to find Requires

Дело в perl-Class-MOP, насколько я понимаю.
Comment 2 Victor Forsyuk 2009-11-27 14:52:54 MSK
Присоединяюсь к обсуждению, поскольку оказался заинтересованным в обновлении пакета perl-Moose.

Дело в том, что перестал собираться пакет perl-Any-Moose с ошибками вида:

Class::MOP::subname is deprecated. Please use Sub::Name directly. at /usr/lib/perl5/vendor_perl/i386-linux/Class/MOP/Deprecated.pm line 102
        Class::MOP::subname('Any', 'CODE(0x8620768)') called at /usr/lib/perl5/vendor_perl/Moose/Meta/TypeConstraint.pm line 233

Очевидно, текущий сизифный perl-Moose оказался слишком старым для обновленного perl-Class-MOP - он использует конструкции, которые оказались deprecated.

Я только что попробовал собрать perl-Moose последней версии, 0.93. Вышепроцитированных ошибок уже не наблюдается, видимо они были с предыдущей сборкой perl-Class-MOP? Я собираю с perl-Class-MOP-0.95-alt1.

Однако сборка всё равно заканчивается неудачно. Обламывается тест t/050_metaclasses/023_easy_init_meta.t. Изучение федоровского спека от perl-Moose 0.92 показало, что они хотят perl(Test::More) >= 0.88. У нас же Test::More версии 0.80 и, сюрприз, включен в пакет perl-devel.

После ручной подмены /usr/lib/perl5/Test/More.pm на свежую версию с http://search.cpan.org/dist/Test-Simple/ тест проходится.

Итого, как минимум нужна свежая сборка perl с обновленным Test::More. Возможно всё же стоит отделить Test::More от базового пакета perl и доверить его пакету perl-Test-Simple.
Comment 3 Mikhail Pokidko 2009-11-27 15:05:16 MSK
Хм
at@ ?
Comment 4 Victor Forsyuk 2009-12-03 18:40:43 MSK
Для порядка повешен баг №22436 на perl-devel.
Comment 5 Mikhail Pokidko 2009-12-03 19:02:44 MSK
(В ответ на комментарий №4)
> Для порядка повешен баг №22436 на perl-devel.

Спасибо, у меня сейчас совсем нет времени :-/
Comment 6 Mikhail Pokidko 2010-03-18 12:57:56 MSK
0.99-alt1