From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <438826E3.8090908@gorodmasterov.com> Date: Sat, 26 Nov 2005 12:12:03 +0300 From: Vladimir Lettiev User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050815) X-Accept-Language: ru-ru, ru MIME-Version: 1.0 To: ALT Linux Sisyphus discussion list Subject: Re: [sisyphus] I: updated package - subversion References: <43025FE4.8090303@epam.com> <20051125163709.GA2542@nomad.office.altlinux.org> <43878B6B.6050900@altlinux.ru> <20051125225511.GA17307@basalt.office.altlinux.org> In-Reply-To: <20051125225511.GA17307@basalt.office.altlinux.org> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gorodmasterov.com X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Nov 2005 09:09:56 -0000 Archived-At: List-Archive: List-Post: Dmitry V. Levin пишет: > On Sat, Nov 26, 2005 at 12:08:43AM +0200, Sviatoslav Sviridov wrote: >> Dmitry V. Levin wrote: >>> On Wed, Aug 17, 2005 at 12:51:32AM +0300, Sviataslau Svirydau >>>> проблему, которую я описывал в >>>> http://lists.altlinux.ru/pipermail/sisyphus/2005-August/066367.html >> >> Проблема до сих пор не решена. Помогите кто чем может :) Сам я в >> разумные сроки исправить не смогу... > > Тут нужен специалист по перлу более высокого уровня. Алексей не откликается, я попробую ;) ... > У меня тоже не получилось, даже --query-repackage --build='--with > swig_pl' не помогло (какой-то макрос не был определён), пришлось в > spec-файл залезть. > > В результате имеем то же самое (лишь номер строки изменился): Use of > uninitialized value in string eq at > /usr/src/tmp/subversion-buildroot/usr/lib/perl5/vendor_perl/i386-linux/SVN/Core.pm > line 410 during global destruction. Пока лишь могу попытаться объяснить причину ошибки. Фикс теоретически готов, но надо время затестить (уж больно долго собирается subversion). Причина ошибки, вот это такое изменение в коде Core.pm: +our $gpool = SVN::Pool->new_default; +SVN::Core::utf_initialize($gpool); + Добавляется создание объекта SVN::Pool. А значит и все warnnings связанные с его отработкой. После отработки кода собиратель мусора унижтожает все объекты: при нормальном завершении работы выполняются код END {} затем код процедуры DESTROY модуля SVN::Pool. Что будет если запустить проверку кода с помощью `perl -c`? Выполнятся только секции BEGIN{}, CHECK{} и после perl выполнит процедуру DESTROY модуля (если требуется). Т.о. из цепочки выпала секция END{}, которая и обеспечивала нормальное выполнение кода процедуры DESTROY в SVN::Pool. Похоже, что в perl.req работает такой же принцип проверки (без вызова END{}). Самый простой фикс, добавить строчку в тело SVN::Pool : no warnings 'uninitialized'; Чуть сложнее и наверное корректнее (пока не проверил): --- Core.pm.old 2005-11-26 11:13:58 +0300 +++ Core.pm 2005-11-26 12:03:11 +0300 @@ -406,6 +406,7 @@ sub DESTROY { return if $globaldestroy; my $self = shift; + return unless ($$self && $SVN::_Core::current_pool); if ($$self eq $SVN::_Core::current_pool) { $SVN::_Core::current_pool = pop @POOLSTACK; } -- С уважением, Владимир Леттиев aka crux