Bug#549447: findimagedupes: unusable

Niko Tyni ntyni at debian.org
Thu Oct 15 06:05:23 UTC 2009


On Wed, Oct 14, 2009 at 10:12:13PM +0200, Manuel Prinz wrote:
 
> I have no idea where exactly the issue comes from, but after rebuilding
> an unmodified version and installing the new package on my sid box
> findimagedupes works like a charm. If someone could confirm that it
> fixes the issue, I'll ask the release team to schedule a rebuild.

The problem is with the Inline module noticing that the Perl version
has changed from 5.10.0 to 5.10.1. The module looks at the dependency
info in /usr/lib/findimagedupes/lib/auto/findimagedupes/findimagedupes.inl 
and decides to rebuild the C parts, which obviously fails.

While a binNMU would fix things for now, things would break again with
Perl 5.10.2, so it's not the right fix. The dependency information would
stay incorrect.

I suppose a workaround could be to somehow generate dependencies like
 Depends: perl (>= 5.10.1), perl (<< 5.10.2~)
and require binNMUs every time the perl version changes.

As the Perl versions are binary compatible and the rebuild isn't actually
needed for anything, I think the right thing has to do with the VERSION
parameter of the Inline module. From the Inline manual:

   VERSION
       Specifies the version number of the Inline extension object. It
       is used only for modules, and it must match the global variable
       $VERSION.  Additionally, this option should used if (and only if)
       a module is being set up to be installed permanently into the
       Perl sitelib tree. Inline will croak if you use it otherwise.

       The presence of the VERSION parameter is the official way to
       let Inline know that your code is an installable/installed
       module. Inline will never generate an object in the temporary
       cache (_Inline/ directory) if VERSION is set. It will also never
       try to recompile a module that was installed into someone's Perl
       site tree.

       So the basic rule is develop without VERSION, and deliver with VERSION.

However, this means the Inline'd code would need to be moved to a separate
module ("used only for modules"). That seems easy to do though.

FWIW, the few other packages depending on libinline-perl don't seem
to be broken.  I looked at libogg-vorbis-header-perl (which uses the
VERSION parameter) and it's loading the C extension fine.
-- 
Niko Tyni   ntyni at debian.org





More information about the debian-science-maintainers mailing list