From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 2 Nov 2002 12:49:58 +0300 From: Mikhail Zabaluev To: devel@altlinux.ru Cc: at@turbinal.org Message-ID: <20021102094958.GD6621@mhz.mikhail.zabaluev.name> Mail-Followup-To: Mikhail Zabaluev , devel@altlinux.ru, at@turbinal.org References: <20021029232742.GA18900@homestead.turbinal.org> <20021030234453.GA6989@homestead.turbinal.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="g7w8+K/95kPelPD2" Content-Disposition: inline In-Reply-To: <20021030234453.GA6989@homestead.turbinal.org> User-Agent: Mutt/1.4i Subject: [devel] Re: /usr/lib/rpm/perl.req -- patch 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: --g7w8+K/95kPelPD2 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit Hello at, On Thu, Oct 31, 2002 at 02:44:53AM +0300, at@turbinal.org wrote: > > Возникает только проблема условных зависимостей. Например, в CGI.pm > написано: > > if ($ENV{...}) { > require Apache; > } elsif ($ENV{...}) { > require FCGI; > } > > Таким образом, при "правильном" поиске зависимостей пакет perl-CGI > потянет за собой пакеты apache-mod_perl и mod_fcgi, что несколько > странно. В целом, настолько сильные зависимости были бы неприемлемы. > > Кстати, сейчас в perl-CGI зависимость на apache-mod_perl отсутствует > только потому, что apache-mod_perl не установлен в среде сборки. > > Я посмотрел, как это сделано в rpm-*mdk. Там используется такое > наблюдение, что условные зависимости (require) обычно начинаются с > отступа. Всё это абсолютно в духе грязного хака, но пока это лучшее, что > можно придумать. Если мне дадут возможность отхачить perl.req, я > попробую быстро добиться приемлемой его работы на всем, что мы собираем > (нужно подтверждение). Я задумывался о менее грязном решении: компилировать файлы и выдавать из обратно через B::Deparse. Вывод будет идеально отформатирован, безусловные require не имеют отступа, а код процедур не из main::, наоборот, не выдаётся по умолчанию. Но пропадают use. Есть ещё и более вкусная штучка -- B::Xref, которая выдаёт файлы и пакеты, использованные на этапе компиляции. Попробуйте: perl -MO=Xref,r <скрипт> | grep ^File Проблема может быть ещё в том, что некоторые блоки perl-кода могут исполняться сразу на этапе компиляции и повлиять на результат. Но с этим ничего поделать нельзя: это perl, There Is More Than One Way To Screw It :) -- Stay tuned, MhZ JID: mookid@jabber.org ___________ Repartee is something we think of twenty-four hours too late. -- Mark Twain --g7w8+K/95kPelPD2 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQE9w5/GTKqCuNPJlLgRAn7sAKC7chtD3FhJE6oUZ3i7PO/J6P/+mACePs9r EuiwDwEccpU82kd6X+xoXz0= =x2Md -----END PGP SIGNATURE----- --g7w8+K/95kPelPD2--