Closed Bug 192451 Opened 22 years ago Closed 18 years ago

Checksetup should prioritize missing module whines

Categories

(Bugzilla :: Installation & Upgrading, enhancement)

2.17.3
enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
Bugzilla 3.0

People

(Reporter: jouni, Assigned: mkanat)

References

Details

Attachments

(2 files, 1 obsolete file)

When running checksetup, information about a missing mandatory module is not
visible enough. For example, I got the following:

--
Checking perl modules ...
Checking for       AppConfig (v1.52)   ok: found v1.52
Checking for             CGI (v2.88)   ok: found v2.89
Checking for    Data::Dumper (any)     ok: found v2.12
Checking for     Date::Parse (any)     ok: found v2.24
Checking for             DBI (v1.32)    found v1.30
Checking for      DBD::mysql (v2.1010) ok: found v2.1020
Checking for      File::Spec (v0.82)   ok: found v0.83
Checking for      File::Temp (any)     ok: found v0.13
Checking for        Template (v2.08)   ok: found v2.08
Checking for      Text::Wrap (v2001.0131) ok: found v2001.0929

The following Perl modules are optional:
Checking for              GD (v1.20)   ok: found v2.05
Checking for     Chart::Base (v0.99)    found unknown version
Checking for     XML::Parser (any)     ok: found v2.31
Checking for       GD::Graph (any)      not found
Checking for GD::Text::Align (any)      not found

If you you want to see graphical bug charts (plotting historical data over
time), you should install libgd and the following Perl modules:

Chart 0.99b: perl -MCPAN -e'install "N/NI/NINJAZ/Chart-0.99b.tar.gz"'

If you you want to see graphical bug reports (bar, pie and line charts of
current data), you should install libgd and the following Perl modules:

GD::Graph:       perl -MCPAN -e'install "GD::Graph"'
GD::Text::Align: perl -MCPAN -e'install "GD::Text::Align"'



Bugzilla requires some Perl modules which are either missing from your
system, or the version on your system is too old.
They can be installed by running (as root) the following:
   perl -MCPAN -e 'install "DBI"'
   Minimum version required: 1.32
--

The critical information about the mandatory module's version conflict is buried
under a heap of instructions about installing _optional_ modules.

My proposal is that the GD:* installation stuff is printed only when there are
no other module-related errors, but anything with an equal effect goes.
Target Milestone: --- → Bugzilla 2.18
This is pretty much how it works in newinstall, it deals with the required
modules and then prints a summary of optional modules you may want to install at
the very end of the installation. 
Enhancements which don't currently have patches on them which are targetted at
2.18 are being retargetted to 2.20 because we're about to freeze for 2.18. 
Consideration will be taken for moving items back to 2.18 on a case-by-case
basis (but is unlikely for enhancements)
Target Milestone: Bugzilla 2.18 → Bugzilla 2.20
Bugzilla 2.20 feature set is now frozen as of 15 Sept 2004.  Anything flagged
enhancement that hasn't already landed is being pushed out.  If this bug is
otherwise ready to land, we'll handle it on a case-by-case basis, please set the
blocking2.20 flag to '?' if you think it qualifies.
Target Milestone: Bugzilla 2.20 → Bugzilla 2.22
Assignee: zach → installation
QA Contact: mattyt-bugzilla → default-qa
Target Milestone: Bugzilla 2.22 → ---
End-users tend to complain when we don't show them *all* the commands they need to run. It's true that there's a lot of information printed out by checksetup, but forcing people to run it over and over just to get everything installed is something that they don't like, by actual report (witness when I recently removed the checks for DBD::mysql from the beginning of checksetup, and then added back in the DBD:: checks later for this reason).
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → WONTFIX
I disagree with this resolution. jouni's request is to have missing mandatory modules first as people tend to read output from top to bottom (including myself). I made the same request a few days ago. Reopening!
Status: RESOLVED → REOPENED
Resolution: WONTFIX → ---
Attached patch v1 (obsolete) — Splinter Review
All right, here it is! This creates a much nicer output for checksetup.

It also does a lot of re-architecture inside of Requirements.pm. Note that MOD_PERL_MODULES is gone. (Don't worry, I fixed docs/makedocs.pl to work correctly, still.)

You'll also notice that checksetup now prints out package names instead of module names. This makes more sense, since that's what we're really requiring--certain packages.

I'm granting myself review as module owner. I've tested this quite extensively.

I'll also add an attachment that shows what the new output is like.
Assignee: installation → mkanat
Status: REOPENED → ASSIGNED
Attachment #240735 - Flags: review+
Target Milestone: --- → Bugzilla 3.0
Here's what the output looks like on a very plain perl that doesn't have any of the modules installed.

I also tested that it works correctly under $silent. (In fact, it works slightly better now than it used to -- if it fails for *required* modules, it will actually tell you, even under $silent.)
I'd like to check this in now. I think it's safe to check in during QA, because it only touches installation, and as far as I know, installation doesn't get any QA. (And it's quite thoroughly tested by test-checksetup usually, anyway.)
Flags: approval?
*** Bug 335741 has been marked as a duplicate of this bug. ***
Blocks: 354968
I'd love to see this go in, but Approval denied on the grounds that this conflicts with the patch from bug 206037 which is being held for checkin until release day because of being a security bug and we're too late in the game to be screwing with security patches.  You can revise the patch and commit after we release.
Flags: approval?
Okay. Let's put it back in the queue then, at least, so that I don't forget about it.
Flags: approval?
Blocks: 350220
This patch is bitrotted...
Attached patch v2Splinter Review
Ah, you're right! I've fixed the bitrot.

It was bitrotted by the sec patch that added the HTML:: optional requirements.
Attachment #240735 - Attachment is obsolete: true
Attachment #242469 - Flags: review+
Flags: approval? → approval+
Checking in checksetup.pl;
/cvsroot/mozilla/webtools/bugzilla/checksetup.pl,v  <--  checksetup.pl
new revision: 1.545; previous revision: 1.544
done
Checking in Bugzilla/DB.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/DB.pm,v  <--  DB.pm
new revision: 1.89; previous revision: 1.88
done
Checking in Bugzilla/Install/Requirements.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/Install/Requirements.pm,v  <--  Requirements.pm
new revision: 1.22; previous revision: 1.21
done
Checking in docs/makedocs.pl;
/cvsroot/mozilla/webtools/bugzilla/docs/makedocs.pl,v  <--  makedocs.pl
new revision: 1.15; previous revision: 1.14
done
Checking in docs/xml/installation.xml;
/cvsroot/mozilla/webtools/bugzilla/docs/xml/installation.xml,v  <--  installation.xml
new revision: 1.131; previous revision: 1.130
done
Status: ASSIGNED → RESOLVED
Closed: 18 years ago18 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: