Closed Bug 560330 Opened 10 years ago Closed 10 years ago

Old versions of CPAN don't install DateTime properly

Categories

(Bugzilla :: Installation & Upgrading, defect)

defect
Not set
normal

Tracking

()

VERIFIED FIXED
Bugzilla 3.6

People

(Reporter: mkanat, Assigned: mkanat)

References

Details

Attachments

(1 file)

DateTime requires Params::Validate. Installing Params::Validate via CPAN dies if Module::Build isn't installed. So, install-module.pl should make sure that Module::Build is installed whenever it does an installation (that will protect us against any future similar situations).
This is actually worse than I thought. It turns out that the version of CPAN that ships with Perl 5.8.8 doesn't install DateTime and Params::Validate properly at all--it ignores the Build.PL file, because it doesn't support Module::Build. So the XS components of both those modules never get installed, and so things will be much slower than they otherwise would.
Summary: Installing DateTime with install-module.pl fails if Module::Build isn't installed → Old versions of CPAN don't install DateTime properly
What are our alternatives?
We need at least CPAN 1.81 for things to work right. Once we have that, we can also install the YAML module, and then CPAN will use the YAML module to read the prerequisites of DateTime, and install Module::Build properly, fixing all these bugs in one swoop.
So probably what I'm going to do here is check the version of CPAN installed. Then, if it's too old, I'll have install-module.pl do nothing but upgrade CPAN and install YAML, and then quit with a red message saying to run the command again.
Okay, I've filed the following bug against DateTime:

  https://rt.cpan.org/Ticket/Display.html?id=56732
And this bug against Params::Validate:

  https://rt.cpan.org/Ticket/Display.html?id=56733
Blocks: 557769
  Okay, I think that this bug may actually affect several modules, and who knows what modules it will affect in the future.

  Here's what I'm going to do:

  If the required modules are missing or too old, I'm going to install them, and then re-run the original command using exec().
Attached patch v1Splinter Review
Okay, this updates the CPAN module if it's too old, and the YAML module if it's not there. It also updates the CPAN setting defaults for newer versions of CPAN. Also, I removed perl.secsup.org from the urllist because it seems to frequently have problems and hang when we try to download stuff from it.

The colorize_ stuff is only going onto HEAD, but the rest of the patch is going to 3.6 also.
Assignee: installation → mkanat
Status: NEW → ASSIGNED
Attachment #440347 - Flags: review+
For 3.6, I removed the colorize_ lines on checkin.

Committing to: bzr+ssh://bzr.mozilla.org/bugzilla/trunk/
modified install-module.pl
modified Bugzilla/Install/CPAN.pm
modified Bugzilla/Install/Requirements.pm
Committed revision 7133.

Committing to: bzr+ssh://bzr.mozilla.org/bugzilla/3.6/
modified install-module.pl
modified Bugzilla/Install/CPAN.pm
modified Bugzilla/Install/Requirements.pm
Committed revision 7087.
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
No longer blocks: 557769
Duplicate of this bug: 557769
Flags: approval3.6+
Flags: approval+
bugzilla-3.6: confirmed the message "Cannot determine local time zone" while opening the new bug

Which release this will be fixed in?
  This will be fixed in 3.6.1.
This worked correctly for me in 3.6.1
Cool, good to know. :-)
Status: RESOLVED → VERIFIED
I am still getting this error in bugzilla-3.6.1 on FreeBSD-8.1. I know it is supposed to be fixed, but ...


--- message ---
Software error:

Cannot determine local time zone
@Yuri At this point, your problem is a support issue. Ask the support-bugzilla mailing list about it. The mailing list is described here:

  http://www.bugzilla.org/support/
Why?

This PR is supposed to be fixed and I don;t find it fixed. This is exactly the same issue this PR is about.
I am facing same problem while installing perlmodule DateTime.. Installing on CentOS 5.5,Bugzilla Version 3.6.1..

[root@dev1 bugzilla]# /usr/bin/perl install-module.pl DateTime
 Error is " Failed 43/95 test scripts, 54.74% okay. 1/1 subtests failed, 0.00% okay.
make: *** [test_dynamic] Error 255
  /usr/bin/make test -- NOT OK
Running make install
Appending installation info to /var/www/html/bugzilla/lib/i386-linux-thread-multi/perllocal.pod
  /usr/bin/make install  -- OK
"

and i have tried 

"[root@dev1 bugzilla]# yum install DateTime
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iitm.ac.in
 * epel: mirror.nus.edu.sg
 * extras: ftp.iitm.ac.in
 * updates: ftp.iitm.ac.in
Setting up Install Process
No package DateTime available.
Nothing to do "

 while checking "yum list perl" it showing DateTime is installed
You need to log in before you can comment on or make changes to this bug.