* [devel] Requires для perl
@ 2005-09-14 7:49 Vitaly Lipatov
2005-09-14 8:14 ` [devel] " Alexey Tourbin
0 siblings, 1 reply; 6+ messages in thread
From: Vitaly Lipatov @ 2005-09-14 7:49 UTC (permalink / raw)
To: devel
Может кто-нибудь подскажет -
в начале программы такие строки:
#!/usr/bin/perl
use Gtk2 -init;
При поиске зависимостей в конце сборки пакета идёт попытка
инициализации Gtk2 с соответственно неудачным обращением к
$DISPLAY. Вопрос - кто виноват?
а) программа (возможно надо просто переписать инициализацию)
б) поиск зависимостей
До выяснения автопоиск я отключил :(
--
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! WINE! LaTeX! LyX! http://freesource.info
^ permalink raw reply [flat|nested] 6+ messages in thread
* [devel] Re: Requires для perl
2005-09-14 7:49 [devel] Requires для perl Vitaly Lipatov
@ 2005-09-14 8:14 ` Alexey Tourbin
2005-09-14 10:03 ` Alexey Tourbin
0 siblings, 1 reply; 6+ messages in thread
From: Alexey Tourbin @ 2005-09-14 8:14 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 1321 bytes --]
On Wed, Sep 14, 2005 at 11:49:56AM +0400, Vitaly Lipatov wrote:
> Может кто-нибудь подскажет -
> в начале программы такие строки:
>
> #!/usr/bin/perl
> use Gtk2 -init;
>
> При поиске зависимостей в конце сборки пакета идёт попытка
> инициализации Gtk2 с соответственно неудачным обращением к
> $DISPLAY. Вопрос - кто виноват?
> а) программа (возможно надо просто переписать инициализацию)
> б) поиск зависимостей
> До выяснения автопоиск я отключил :(
Программа. Поиск зависимостей не виноват, так как поиск зависимостей
в смысле исполнения кода эквивалентен syntax check.
$ perl -h |grep -e -c
-c check syntax only (runs BEGIN and CHECK blocks)
$
use Gtk2 -init; в точности эквивалентно
BEGIN { require Gtk2; Gtk2::->import(-init); }
(см. perldoc -f use)
То есть если сделать 'perl -c ПРОГРАММА' то будет такое же неудачное
обращение к $DISPLAY, как и при поиске зависимостей. Исполнять
прикладной код в BEGIN -- по-моему, очень плохая идея. Код в BEGIN
нужен только для импорта прототипов, перегрузки операторов и загрузки
лексических хинтов $^H (типа use strict).
Лучше вставить Gtk2->init в место фактической инициализации гуя у
программы, или же, если нет желания разбираться, где находится это
скорбное место, написать use Gtk2; INIT { Gtk2->init; }.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [devel] Re: Requires для perl
2005-09-14 8:14 ` [devel] " Alexey Tourbin
@ 2005-09-14 10:03 ` Alexey Tourbin
2005-09-14 23:25 ` Vitaly Lipatov
0 siblings, 1 reply; 6+ messages in thread
From: Alexey Tourbin @ 2005-09-14 10:03 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 1047 bytes --]
On Wed, Sep 14, 2005 at 12:14:44PM +0400, Alexey Tourbin wrote:
> Лучше вставить Gtk2->init в место фактической инициализации гуя у
> программы, или же, если нет желания разбираться, где находится это
> скорбное место, написать use Gtk2; INIT { Gtk2->init; }.
С другой стороны, в `perldoc Gtk2' сказано:
-init
Equivalent to Gtk2->init, called to initialize GLIB and
GTK+. Just about every Gtk2-Perl script should do "use Gtk2
-init"; This initialization should take place before using
any other Gtk2 functions in your GUI applications. It will
initialize everything needed to operate the toolkit and
parses some standard command line options. @ARGV is
adjusted accordingly so your own code will never see those
standard arguments.
То есть эта бня ещё и манглит аргументы командной строки. Needless
to say что стоило бы как-нибудь отделить инициализацию гуя от кромсания
аргументов командной строки, но этого нет.
use Gtk2;
INIT { Gtk2->init; }
остаётся наиболее приемлемым вариантом.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [devel] Re: Requires для perl
2005-09-14 10:03 ` Alexey Tourbin
@ 2005-09-14 23:25 ` Vitaly Lipatov
2005-09-15 4:16 ` Alexey Tourbin
0 siblings, 1 reply; 6+ messages in thread
From: Vitaly Lipatov @ 2005-09-14 23:25 UTC (permalink / raw)
To: devel
On Wednesday 14 September 2005 14:03, Alexey Tourbin wrote:
> То есть эта бня ещё и манглит аргументы командной строки.
> Needless to say что стоило бы как-нибудь отделить
> инициализацию гуя от кромсания аргументов командной строки, но
> этого нет.
>
> use Gtk2;
> INIT { Gtk2->init; }
>
> остаётся наиболее приемлемым вариантом.
Большое спасибо, так и сделал.
В таком варианте же тоже командная строка разбирается?
--
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! WINE! LaTeX! LyX! http://freesource.info
^ permalink raw reply [flat|nested] 6+ messages in thread
* [devel] Re: Requires для perl
2005-09-14 23:25 ` Vitaly Lipatov
@ 2005-09-15 4:16 ` Alexey Tourbin
2005-09-15 6:24 ` Vitaly Ostanin
0 siblings, 1 reply; 6+ messages in thread
From: Alexey Tourbin @ 2005-09-15 4:16 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 571 bytes --]
On Thu, Sep 15, 2005 at 03:25:29AM +0400, Vitaly Lipatov wrote:
> > use Gtk2;
> > INIT { Gtk2->init; }
> >
> > остаётся наиболее приемлемым вариантом.
> Большое спасибо, так и сделал.
> В таком варианте же тоже командная строка разбирается?
Будет, сразу после BEGIN и CHECK, но до исполнения основного кода.
Концептуальная проблема в том, что извлечение стандартных аргументов
командной строки неотделимо от инициализации GUI. Это значит, что для
выполнения `ПРОГРАММА --help' потребуется предварительная инициализация
GUI, то есть обращение к $DISPLAY.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [devel] Re: Requires для perl
2005-09-15 4:16 ` Alexey Tourbin
@ 2005-09-15 6:24 ` Vitaly Ostanin
0 siblings, 0 replies; 6+ messages in thread
From: Vitaly Ostanin @ 2005-09-15 6:24 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 769 bytes --]
Alexey Tourbin пишет:
> On Thu, Sep 15, 2005 at 03:25:29AM +0400, Vitaly Lipatov wrote:
>
>>>use Gtk2;
>>>INIT { Gtk2->init; }
>>>
>>>остаётся наиболее приемлемым вариантом.
>>
>>Большое спасибо, так и сделал.
>>В таком варианте же тоже командная строка разбирается?
>
> Будет, сразу после BEGIN и CHECK, но до исполнения основного кода.
> Концептуальная проблема в том, что извлечение стандартных аргументов
> командной строки неотделимо от инициализации GUI. Это значит, что для
> выполнения `ПРОГРАММА --help' потребуется предварительная инициализация
> GUI, то есть обращение к $DISPLAY.
gtk2 сама по себе $DISPLAY не требует, там как-то это обойти можно.
<skipped/>
--
Regards, Vyt
mailto: vyt@vzljot.ru
JID: vyt@vzljot.ru
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 256 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-09-15 6:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-14 7:49 [devel] Requires для perl Vitaly Lipatov
2005-09-14 8:14 ` [devel] " Alexey Tourbin
2005-09-14 10:03 ` Alexey Tourbin
2005-09-14 23:25 ` Vitaly Lipatov
2005-09-15 4:16 ` Alexey Tourbin
2005-09-15 6:24 ` Vitaly Ostanin
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