On Tue, 03 Jun 2008, Brendan O'Dea wrote:
> > I tried this but it doesn't work. The variable needs to be set before perl
> > is executed apparently. So you'd need some trick so that the script exec
> > itself a second time but with the environment variable set.
>
> Really? Something like this fails?
>
> BEGIN {
> local $ENV{PERL_DL_NONLAZY} = 1;
> eval {
> require "Locale::Gettext";
> Locale::Gettext->import;
> };
> if ($@) {
> # handle
> }
> }
I wanted to fix it for all scripts that use Dpkg::Gettext (there's dpkg-divert
too) and as such I tried to add the "$ENV{PERL_DL_NONLAZY} = 1;" in
/usr/share/perl5/Dpkg/Gettext.pm:
--- a/scripts/Dpkg/Gettext.pm
+++ b/scripts/Dpkg/Gettext.pm
@@ -7,6 +7,7 @@ use strict;
use warnings;
BEGIN {
+ local $ENV{PERL_DL_NONLAZY} = 1;
eval 'use Locale::gettext';
if ($@) {
eval q{
This doesn't work and I don't understand why.
However, now I tried to add the line directly to update-alternatives and it
worked:
--- a/scripts/update-alternatives.pl
+++ b/scripts/update-alternatives.pl
@@ -1,5 +1,9 @@
#!/usr/bin/perl --
+BEGIN {
+ $ENV{PERL_DL_NONLAZY} = 1;
+}
+
use strict;
use warnings;
Can anyone explain me why?
To test I simply dpkg --force-depends --unpack
liblocale-gettext-perl_1.05-1_i386.deb (the package from etch) on a sid machine.
Cheers,
--
Raphaël Hertzog
Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]