Package: polymake
Version: 3.1-5
Severity: grave
X-Debbugs-Cc: p...@packages.debian.org

Running polymake currently fails with

  $ polymake
  Can't locate loadable object for module Polymake::Ext in @INC (@INC contains: 
/usr/share/polymake/perllib /usr/lib/polymake/perlx/5.26.0 
/usr/lib/polymake/perlx /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.26.1 
/usr/local/share/perl/5.26.1 /usr/lib/x86_64-linux-gnu/perl5/5.26 
/usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.26 /usr/share/perl/5.26 
/usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at 
/usr/share/polymake/perllib/Polymake/Namespaces.pm line 17.
  Compilation failed in require at 
/usr/share/polymake/perllib/Polymake/Namespaces.pm line 17.
  BEGIN failed--compilation aborted at 
/usr/share/polymake/perllib/Polymake/Namespaces.pm line 17.
  Compilation failed in require at /usr/share/polymake/perllib/Polymake.pm line 
27.
  BEGIN failed--compilation aborted at /usr/share/polymake/perllib/Polymake.pm 
line 27.
  Compilation failed in require at /usr/bin/polymake line 162.
  BEGIN failed--compilation aborted at /usr/bin/polymake line 162.
 
Apparently this is because it was built with Perl 5.26.0, but
we've since moved to 5.26.1.

There's an open binnmu request at #883933 but I don't think that's the
correct way to fix this as it makes no provisions for partial upgrades.

I see two better alternatives:

1) [preferrable] fix polymake not to install its extensions in a
  versioned directory (currently /usr/lib/polymake/perlx/5.26.0).
  This may be as simple as

--- a/lib/core/src/perl/Makefile.PL
+++ b/lib/core/src/perl/Makefile.PL
@@ -140,7 +140,7 @@ WriteMakefile(
     LIBS        => "$libpaths $AddLibs",
     DEFINE      => "-DPerlVersion=$numvers -Wno-nonnull".($coverage && ' 
-DPMCollectCoverage=1'),
     INC         => "-I$TOP/include/core",
-    LIB         => "\$(InstallDir)/perlx/$Config::Config{version}",
+    LIB         => "\$(InstallDir)/perlx",
     MAN3PODS    => { },
     @optimize,
 );

but I haven't tested that (the package is huge...)

2) [less preferrable] add binnmu-safe strict dependencies on the current
   Perl version. See for instance libdevel-cover-perl for an example of
   how to do this. If you do this, please let p...@packages.debian.org know
   so we can update
     https://wiki.debian.org/PerlMaintenance#New_upstream_release_checklist
   (and/or feel free to add to it yourself.)

I note that the confusing @INC list above (it has
/usr/lib/polymake/perlx/5.26.0 so it looks like it should work) is
because "use lib" will add versioned subdirectories to @INC if it
finds any, but will apparently *not* add arch-specific subdirectories
(like /usr/lib/polymake/perlx/5.26.0/x86_64-linux-gnu-thread-multi)
under those, and that's what would be needed here. I'm not quite sure
if this is a glitch in lib.pm's handling of binary-compatible versions
($Config{inc_version_list}).

Hope this helps a bit,
-- 
Niko

Reply via email to