Item12191: Missing dependencies in Fosiki Foswiki Debian packages
Priority: Normal
Current State: New
Released In: n/a
Target Release: n/a
There are missing dependencies in some of the Fosiki Foswiki Debian packages. There's a set of mappings between CPAN module names to Debian package names in the =tools/dependencies_installer.pl. I've noticed that where a plugin's installer script lists a CPAN module that has a match in that mapping, that dependency shows up in the list of dependencies for the Debian package. Where a plugin's installer script lists a CPAN module that doesn't have a match in that mapping, I've noticed that the package doesn't get listed in the Debian package's "Depends:" section.
I became aware of the problem when I was putting together a Foswiki installation on a Debian wheezy box using Sven's Fosiki Foswiki Debian package repository. Amongst other things, I installed the
foswiki-solrplugin
package. After activating the plugin, I pointed my browser at
SolrSearch and saw:
Foswiki detected an internal error - please check your Foswiki logs and webserver logs for more information.
Can't locate Moose.pm in @INC (@INC contains: path path . path path path path path path path path)
I ran
apt-get install libmoose-perl
. Pointing my browser once again at
SolrSearch I received a different error:
Foswiki detected an internal error - please check your Foswiki logs and webserver logs for more information.
Can't locate XMLpath in @INC (@INC contains: path path . path path path path path path path path)
That error message was banished with
apt-get install libxml-generator-perl
, whereupon I received yet another error message:
Foswiki detected an internal error - please check your Foswiki logs and webserver logs for more information.
Can't locate Unicodepath in @INC (@INC contains: path path . path path path path path path path path)
This I fixed with
apt-get install libunicode-maputf8-perl
, at which point I saw the
SolrSearch page with a message of "can't connect to solr server".
In investigating the missing Perl modules, I started looking at other plugins, the dependencies listed in their installer scripts, and whether they had been installed on my system. In putting together a list of missing dependencies, I came across
tools/dependencies_installer.pl
(which doesn't work by default in a Debian package installation because it lists the file
lib/DEPENDENCIES
as part of its expected environment, which doesn't exist under the Debian package install), looked at its internals, and saw the CPAN module to Debian package mapping.
As an example, the dependencies of
StringifierContrib in the
StringifierContrib installer are:
File::MMagic,>0,1,cpan,Required
Module::Pluggable,>0,1,cpan,Required
Spreadsheet::ParseExcel,>0,1,cpan,Required for =.xls= files
Spreadsheet::XLSX,>0,1,cpan,Required for =.xlsx= files
Encode,>0,1,cpan,Required
Error,>0,1,cpan,Required
ppthtml,>0,1,c,Required for indexing =.ppt= files. Part of xlhtml
pdftotext,>0,1,c,Required for indexing =.pdf=. Part of poppler-utils
antiword,>0,1,c,One of antiword, abiword or wvWare is required for =.doc= files
abiword,>0,1,c,One of antiword, abiword or wvWare is required for =.doc= files
wvWare,>0,1,c,One of antiword, abiword or wvWare is required for =.doc= files
html2text,>0,1,c,Required for indexing html files
odt2txt,>0,1,c,Required for indexing OpenDocument and StarOffice documents
The Foswiki package for Debian
foswiki-stringifiercontrib
lists the following as dependencies:
Depends: foswiki, foswiki-core, libfile-mmagic-perl, libmodule-pluggable-perl, libspreadsheet-parseexcel-perl, liberror-perl, ppthtml, odt2txt
In
tools/dependencies_installer.pl
, I see that
File::MMagic
corresponds with
libfile-mmagic-perl
and has a listed package dependency of
libfile-mmagic-perl
. I see that
Module::Pluggable
corresponds with
libmodule-pluggable-perl
, which is not listed as a package dependency; however,
libmodule-pluggable-perl appears to no longer exist as a separate package and has been rolled into =perl-modules
. I see that
Spreadsheet::ParseExcel
corresponds with
libspreadsheet-parseexcel-perl
and has that as a listed package dependency. I see that
Spreadsheet::XLSX
does not have a mapping in
tools/dependencies_installer.pl
. A Google search for "Spreadsheet::XLSX perl debian" brings up
libspreadsheet-xlsx-perl
, which is not listed as a package dependency. So on and so forth.
What generates the package dependencies for the Debian packages?
--
RomanZimmermann - 25 Oct 2012
As a guess, I think the cause behind
Tasks.Item8469 from 2010 is the same. According to the installer for
ActionTrackerPlugin, the dependencies are:
Time::ParseDate,>=2003.0211,1,cpan,Required. Available from the CPAN archive.
Foswiki::Contrib::JSCalendarContrib,>=0.961,1,perl,Optional, used if installed. Used to display a neat calendar popup when editing actions. Available from the Foswiki:Extensions/JSCalendarContrib repository.
Foswiki::Plugins::JQueryPlugin,>=0,1,perl,Required, used for the action editor.
JSON,>=0,1,cpan,Required. Available from the CPAN archive.
The
foswiki-actiontrackerplugin
package lists these as its dependencies:
Depends: foswiki, foswiki-core, foswiki-jqueryplugin, libjson-perl
.
Time::ParseDate
doesn't have a match in the mapping section
tools/dependencies_installer.pl
script; howerever, a Google search for an appropriate Debian package brings up
libtime-modules-perl
, which is the package that solved the fellow's problem in
Tasks.Item8469. The Perl module JSON does have a match in the mapping section of the
tools/dependencies_installer.pl
script and tthe Debian package for the plugin does list
libjson-perl
as a dependency.
--
RomanZimmermann - 25 Oct 2012
Tasks.Item8726 has the same cause.
--
RomanZimmermann - 25 Oct 2012