[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#248730: Error: dynamic loading not available in this perl



On Thu, May 13, 2004 at 07:05:38AM +0200, Fabio Massimo Di Nitto wrote:
>On Thu, 13 May 2004, Srdjan wrote:
>> | This looks like http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=247291
>> | which should be fixed in perl 5.8.4-2 - Have you tried stopping and starting
>> | apache2 since the perl upgrade?
>
>Brendan what is the problem with perl that keeps breaking so often? It is
>not the first time we need to run behind these problems. Is it safe now to
>upload apache & Co. with a dependency >= 5.4.1-2, or do we need to bind to
>perl with = 5.4.1-2 ? What do you suggest?

The dependency requirements for programs embedding a perl interpreter
are detailed in Perl Policy §5.2:  dpkg-shlibdeps should generate the
required dependency (on libperlN.N, which in turn depends on perl-base
of the same version).

Packages such as libapache2-mod-perl2 which additionally provide binary
perl modules also require the dependencies for packaged modules given in
§3.4.2 (perl >= <build-perl-version>, perlapi-N.N.N).

That's how it is supposed to work in theory.

In practice there are two issues:

 * The @INC paths contained the full version, causing problems loading
   core modules when perl was upgraded without restarting long-running
   processes (the reason I presume for initially tightening the
   dependencies in apache).

   This was fixed in 5.8.3.

 * Since upstream doesn't drop the sub-version from the soname there
   have been minor issues with compatability across versions.

   In this case the problem b/w 5.8.3 and .4 was pretty minor, a trivial
   change to DynaLoader which bumped the version number, causing a
   miss-match with programs compiled against the old version.

   The change was corrected in 5.8.4-2, although as noted at the time
   this unfortunately forced a re-build of anything built against
   5.8.4-1.

Given that the first issue should now be resolved you should be able to
use looser dependencies as described above.

While I can't guarantee that breakages as occurred with 5.8.4-1 won't
occur, they should be resolvable by fixing the perl packages rather than
requiring a rebuild of other packages such as apache.

As a working example, libapache2-mod-perl2 which was built with 5.8.3-2
works fine with 5.8.4-2.  I used this package as one of my checks prior
to releasing 5.8.4-1, although unfortunately the basic mod_perl script I
used didn't involve DynaLoader (it does now).

--bod



Reply to: