ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Mikhail Zabaluev <mhz@altlinux.org>
To: devel@altlinux.ru
Cc: at@turbinal.org
Subject: [devel] Re: /usr/lib/rpm/perl.req -- patch
Date: Sat, 2 Nov 2002 12:49:58 +0300
Message-ID: <20021102094958.GD6621@mhz.mikhail.zabaluev.name> (raw)
In-Reply-To: <20021030234453.GA6989@homestead.turbinal.org>

[-- Attachment #1: Type: text/plain, Size: 1786 bytes --]

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

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2002-11-02  9:49 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-29 23:27 [devel] /usr/lib/rpm/perl.req -- ахтунг! at
2002-10-30  0:58 ` at
2002-10-30  8:05   ` Alexey Morozov
2002-10-30 17:23     ` at
2002-10-30 23:44 ` [devel] /usr/lib/rpm/perl.req -- patch at
2002-10-31  0:19   ` at
2002-10-31  0:32     ` Dmitry V. Levin
2002-10-31  1:15       ` at
2002-11-02  9:27         ` [devel] " Mikhail Zabaluev
2002-10-31  0:22   ` [devel] " Dmitry V. Levin
2002-11-02  9:49   ` Mikhail Zabaluev [this message]
2002-11-02 14:01     ` [devel] " at
2002-11-02 15:18         ` Alexey Tourbin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20021102094958.GD6621@mhz.mikhail.zabaluev.name \
    --to=mhz@altlinux.org \
    --cc=at@turbinal.org \
    --cc=devel@altlinux.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git