From: Sergey Vlasov <vsu@altlinux.ru> To: ALT Devel discussion list <devel@lists.altlinux.org> Subject: [devel] perl.req and strange use wrappers Date: Sat, 28 Jan 2006 23:35:39 +0300 Message-ID: <20060128203539.GC8752@procyon.home> (raw) [-- Attachment #1: Type: text/plain, Size: 2060 bytes --] Hello! В fvwm-perl (/usr/share/fvwm/perllib/FVWM/Module/Toolkit.pm) обнаружился следующий кусок кода: =========================================================================== sub import ($@) { my $class = shift; my $caller = caller; my $error = 0; my $name = "*undefined*"; while (@_) { $name = shift; if ($name eq 'base') { next if UNIVERSAL::isa($caller, __PACKAGE__); my $caller2 = (caller(1))[0]; eval " package $caller2; use FVWM::Constants; package $caller; use vars qw(\$VERSION \@ISA); use FVWM::Constants; \$VERSION = \$FVWM::Module::Toolkit::VERSION; \@ISA = qw(FVWM::Module::Toolkit); "; if ($@) { die "Internal error:\n$@"; } } else { my ($name0, $args) = split(/>?=/, $name, 2); my $mod = $args? "$name0 split(/,/, q{$args})": $name; eval " package $caller; use $mod; "; if ($@) { $error = 1; last; } } } if ($error) { my $scriptName = $0; $scriptName =~ s|.*/||; my $errorTitle = 'FVWM Perl library error'; my $errorMsg = "$scriptName requires Perl package $name to be installed.\n\n"; $errorMsg .= "You may either find it as a binary package for your distribution\n"; $errorMsg .= "or download it from CPAN, http://cpan.org/modules/by-module/ .\n"; $class->showMessage($errorMsg, $errorTitle, 1); print STDERR "[$errorTitle]: $errorMsg\n$@"; exit(1); } } =========================================================================== Используется это, например, таким образом: use FVWM::Module::Toolkit qw(FileHandle IO::Select X11::Protocol>=0.52 Tk>=804.025 Tk::Balloon Tk::DragDrop Tk::DropSite Tk::LabFrame Tk::BrowseEntry Tk::PNG); В результате perl.req не видит таких зависимостей. С этим вообще как-то можно бороться централизованно (т.е., запатчив этот самый sub import в FVWM::Module::Toolkit)? Или единственный способ - написать в том месте, где стоит use FVWM::Module::Toolkit, нормальные use на все используемые модули? -- Sergey Vlasov [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next reply other threads:[~2006-01-28 20:35 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2006-01-28 20:35 Sergey Vlasov [this message] 2006-04-20 15:20 ` 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=20060128203539.GC8752@procyon.home \ --to=vsu@altlinux.ru \ --cc=devel@lists.altlinux.org \ /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