You are here: Foswiki>Tasks Web>Item12475 (05 Jul 2015, GeorgeClark)Edit Attach

Item12475: Move lib/CPAN/lib modules to a separate CpanContrib

Priority: Urgent
Current State: Closed
Released In: 2.0.0
Target Release: major
Applies To: Engine
Branches: trunk unknown master
Reported By: GeorgeClark
Waiting For:
Last Change By: GeorgeClark
This is related to MoveCPANLibToSeparateContrib, but marking this urgent since it's causing breakage on some systems.

The issue is that we have added dependencies in lib/CPAN/lib and now are getting version conflicts between the System CPAN lib versions and the Foswiki CPAN versions. In particular Class::Load has dependencies that require some XS modules. The lib/CPAN/lib versions were build to use the pure perl version of the dependencies, but if the local System version is found ahead of the Foswiki shipped version, the XS dependency is assumed and fails to load.

See further discussion in MoveCPANLibToSeparateContrib

-- GeorgeClark - 19 Apr 2013

Talked about it on FoswikiCamp2014, could not see the rationale behind the mechanism and therefore simplified the calculation of @INC.

Moved most of the CPAN deps to CpanContrib and cleaned out core's lib/CPAN/lib. Leaving CGI::Session in there because otherwise bin/configure won't come up. The other failed dependencies are complained about in bin/configure.

-- OliverKrueger - 14 Mar 2014

I wonder if this should be closed. Have we worked out the packaging changes, and have the installation instructions caught up for sites needing our CPAN contrib?

-- GeorgeClark - 02 Apr 2014

I think we'll also need to leave CGI along with CGI::Session. It's being removed as a standard perl component, and some of the distros have already stripped it out to a separate package.

-- GeorgeClark - 11 May 2014

Reopening. And we should set it waiting for release once completed. This is a significant change and should be documented.

-- GeorgeClark - 04 Jun 2014

The two remaining modules we can't ship are Net::SSL and HTML::Parser. From the release meeting on 7 July 2014:
  • CDot thought that HTML::Parser didn't require an XS module. Discovered it's a new dependency added in a recent version.
  • ACTION gac410 needs to investigate if CpanContribcould provide the backlevel version or HTML::Parser
    • XSLoader was added in 3.46, 2005-10-24. Maybe better than nothing, but this is probably too old. Newer versions deal with significant issues including perl breakages due to deprecations, etc.
    • The pure perl version of HTML::Parser was dropped in Release 2.99_06 back in 1999. This is way too old, I don't think we have a solution here.
    • Net::SSLeay will not be possible to include due to external requirements for openssl

-- GeorgeClark - 08 Jul 2014

Reopening one more time. Now that Configure is "just another" engine method, the reasoning to ship CGI::Session (So the user can get to the point of seeing dependencies report) is really not applicable.

So we should also remove CGI::Session and just ship with an empty lib/CPAN/lib.

-- GeorgeClark - 06 Nov 2014
Topic revision: r29 - 05 Jul 2015, GeorgeClark - This page was cached on 03 Jun 2017 - 06:34.

The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License