From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: at@turbinal.org Date: Wed, 30 Oct 2002 20:23:13 +0300 To: devel@altlinux.ru Subject: Re: [devel] =?koi8-r?B?L3Vzci9saWIvcnBt?= =?koi8-r?B?L3BlcmwucmVxIC0tIMHI1NXOxyE=?= Message-ID: <20021030172313.GA2184@homestead.turbinal.org> Mail-Followup-To: devel@altlinux.ru References: <20021029232742.GA18900@homestead.turbinal.org> <20021030005805.GA20211@homestead.turbinal.org> <20021030080522.GP23755@bebi.novosoft.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20021030080522.GP23755@bebi.novosoft.ru> Sender: devel-admin@altlinux.ru Errors-To: devel-admin@altlinux.ru X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: devel@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: On Wed, Oct 30, 2002 at 02:05:22PM +0600, Alexey Morozov wrote: > > > Я вчитался в perl.req. Выяснилось, что он натурально зарубает все > > > перловые зависимости, которые не предоставляются в среде сборки (а также > > > самим пакетом). Например, если в среде сборки нет ничего кроме > > > perl-base и perl-devel, тогда в requires у пакета окажутся зависимости > > > вида perl(XXX.pm) только из perl-base и perl-devel. > > > Какие будут мнения по этому вопросу? > > Предварительный диагноз: если отхачить perl.req на предмет ignore VMS*, > > Mac* и т.п., то можно будет включить полный поиск зависимостей. > А если делать так: > запоминать таблицу загруженных модулей (через %INC), > грузить некоторый модуль, а потом сравнивать %INC с запомненным. Проблема здесь в том, что загрузка произвольного модуля эквивалента исполнению произвольного кода в окружении сборки. В меньшей степени это касается make test. Можно попробовать ограничить определенную активность кода с помощью Safe(3) и Opcode(3). Но вообще же, это никак не решает поставленную мной проблему, ибо очевидно, что в %INC ничего кроме окружения сборки оказаться не может. > Мне кажется, что у /некоторых/ модулей зависимости могут быть весьма > неявными и совсем не обязательными, то есть, он либо может (с некоторой > усеченной функциональностью) использоваться и без таковых модулей, либо > использует эти необязательные случаи только в экзотических случаях, типа > того же VMS или, например, в mod_perl... Да, это так. Но ведь есть ещё и AutoLoader. Вчитайтесь, например, в Storable.pm. Какие модули -- навскидку -- ему необходимы для успешной работы? "Это не простой вопрос." Вообще, весь этот perl.{req,prov} -- это грязный хак. Но это лучше, чем ничего.