Appendix A. The Bugzilla FAQ

1. General Questions
A.1.1. Where can I find information about Bugzilla?
A.1.2. What license is Bugzilla distributed under?
A.1.3. How do I get commercial support for Bugzilla?
A.1.4. What major companies or projects are currently using Bugzilla for bug-tracking?
A.1.5. Who maintains Bugzilla?
A.1.6. How does Bugzilla stack up against other bug-tracking databases?
A.1.7. How do I change my user name in Bugzilla?
A.1.8. Why doesn't Bugzilla offer this or that feature or compatability with this other tracking software?
A.1.9. Why MySQL? I'm interested in seeing Bugzilla run on Oracle/Sybase/Msql/PostgreSQL/MSSQL?
A.1.10. Why do the scripts say "/usr/bonsaitools/bin/perl" instead of "/usr/bin/perl" or something else?
2. Red Hat Bugzilla
A.2.1. What about Red Hat Bugzilla?
A.2.2. What are the primary benefits of Red Hat Bugzilla?
A.2.3. What's the current status of Red Hat Bugzilla?
3. Loki Bugzilla (AKA Fenris)
A.3.1. What is Loki Bugzilla (Fenris)?
4. Pointy-Haired-Boss Questions
A.4.1. Is Bugzilla web-based or do you have to have specific software or specific operating system on your machine?
A.4.2. Has anyone you know of already done any Bugzilla integration with Perforce (SCM software)?
A.4.3. Does Bugzilla allow the user to track multiple projects?
A.4.4. If I am on many projects, and search for all bugs assigned to me, will Bugzilla list them for me and allow me to sort by project, severity etc?
A.4.5. Does Bugzilla allow attachments (text, screenshots, urls etc)? If yes, are there any that are NOT allowed?
A.4.6. Does Bugzilla allow us to define our own priorities and levels? Do we have complete freedom to change the labels of fields and format of them, and the choice of acceptable values?
A.4.7. The index.html page doesn't show the footer. It's really annoying to have to go to the querypage just to check my "my bugs" link. How do I get a footer on static HTML pages?
A.4.8. Does Bugzilla provide any reporting features, metrics, graphs, etc? You know, the type of stuff that management likes to see. :)
A.4.9. Is there email notification and if so, what do you see when you get an email? Do you see bug number and title or is it only the number?
A.4.10. Can email notification be set up to send to multiple people, some on the To List, CC List, BCC List etc?
A.4.11. If there is email notification, do users have to have any particular type of email application?
A.4.12. If I just wanted to track certain bugs, as they go through life, can I set it up to alert me via email whenever that bug changes, whether it be owner, status or description etc.?
A.4.13. Does Bugzilla allow data to be imported and exported? If I had outsiders write up a bug report using a MS Word bug template, could that template be imported into "matching" fields? If I wanted to take the results of a query and export that data to MS Excel, could I do that?
A.4.14. Has anyone converted Bugzilla to another language to be used in other countries? Is it localizable?
A.4.15. Can a user create and save reports? Can they do this in Word format? Excel format?
A.4.16. Can a user re-run a report with a new project, same query?
A.4.17. Can a user modify an existing report and then save it into another name?
A.4.18. Does Bugzilla have the ability to search by word, phrase, compound search?
A.4.19. Can the admin person establish separate group and individual user privileges?
A.4.20. Does Bugzilla provide record locking when there is simultaneous access to the same bug? Does the second person get a notice that the bug is in use or how are they notified?
A.4.21. Are there any backup features provided?
A.4.22. Can users be on the system while a backup is in progress?
A.4.23. What type of human resources are needed to be on staff to install and maintain Bugzilla? Specifically, what type of skills does the person need to have? I need to find out if we were to go with Bugzilla, what types of individuals would we need to hire and how much would that cost vs buying an "Out-of-the-Box" solution.
A.4.24. What time frame are we looking at if we decide to hire people to install and maintain the Bugzilla? Is this something that takes hours or weeks to install and a couple of hours per week to maintain and customize or is this a multi-week install process, plus a full time job for 1 person, 2 people, etc?
A.4.25. Is there any licensing fee or other fees for using Bugzilla? Any out-of-pocket cost other than the bodies needed as identified above?
5. Bugzilla Installation
A.5.1. How do I download and install Bugzilla?
A.5.2. How do I install Bugzilla on Windows NT?
A.5.3. Is there an easy way to change the Bugzilla cookie name?
6. Bugzilla Security
A.6.1. How do I completely disable MySQL security if it's giving me problems (I've followed the instructions in the installation section of this guide!)?
A.6.2. Are there any security problems with Bugzilla?
A.6.3. I've implemented the security fixes mentioned in Chris Yeh's security advisory of 5/10/2000 advising not to run MySQL as root, and am running into problems with MySQL no longer working correctly.
7. Bugzilla Email
A.7.1. I have a user who doesn't want to receive any more email from Bugzilla. How do I stop it entirely for this user?
A.7.2. I'm evaluating/testing Bugzilla, and don't want it to send email to anyone but me. How do I do it?
A.7.3. I want whineatnews.pl to whine at something more, or other than, only new bugs. How do I do it?
A.7.4. I don't like/want to use Procmail to hand mail off to bug_email.pl. What alternatives do I have?
A.7.5. How do I set up the email interface to submit/change bugs via email?
A.7.6. Email takes FOREVER to reach me from bugzilla -- it's extremely slow. What gives?
A.7.7. How come email never reaches me from bugzilla changes?
8. Bugzilla Database
A.8.1. I've heard Bugzilla can be used with Oracle?
A.8.2. Bugs are missing from queries, but exist in the database (and I can pull them up by specifying the bug ID). What's wrong?
A.8.3. I think my database might be corrupted, or contain invalid entries. What do I do?
A.8.4. I want to manually edit some entries in my database. How?
A.8.5. I try to add myself as a user, but Bugzilla always tells me my password is wrong.
A.8.6. I think I've set up MySQL permissions correctly, but bugzilla still can't connect.
A.8.7. How do I synchronize bug information among multiple different Bugzilla databases?
A.8.8. Why do I get bizarre errors when trying to submit data, particularly problems with "groupset"?
A.8.9. How come even after I delete bugs, the long descriptions show up?
9. Bugzilla and Win32
A.9.1. What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
A.9.2. Is there a "Bundle::Bugzilla" equivalent for Win32?
A.9.3. CGI's are failing with a "something.cgi is not a valid Windows NT application" error. Why?
A.9.4. Can I have some general instructions on how to make Bugzilla on Win32 work?
A.9.5. I'm having trouble with the perl modules for NT not being able to talk to to the database.
10. Bugzilla Usage
A.10.1. The query page is very confusing. Isn't there a simpler way to query?
A.10.2. I'm confused by the behavior of the "accept" button in the Show Bug form. Why doesn't it assign the bug to me when I accept it?
A.10.3. I can't upload anything into the database via the "Create Attachment" link. What am I doing wrong?
A.10.4. Email submissions to Bugzilla that have attachments end up asking me to save it as a "cgi" file.
A.10.5. How do I change a keyword in Bugzilla, once some bugs are using it?
11. Bugzilla Hacking
A.11.1. What bugs are in Bugzilla right now?
A.11.2. How can I change the default priority to a null value? For instance, have the default priority be "---" instead of "P2"?
A.11.3. What's the best way to submit patches? What guidelines should I follow?

1. General Questions

www.collab.net offers Bugzilla as part of their standard offering to large projects. They do have some minimum fees that are pretty hefty, and generally aren't interested in small projects.

There are several experienced Bugzilla hackers on the mailing list/newsgroup who are willing to whore themselves out for generous compensation. Try sending a message to the mailing list asking for a volunteer.

There are dozens of major comapanies with public Bugzilla sites to track bugs in their products. A few include:

Netscape/AOL
Mozilla.org
AtHome Corporation
Red Hat Software
Loki Entertainment Software
SuSe Corp
The Horde Project
The Eazel Project
AbiSource
Real Time Enterprises, Inc
Eggheads.org
Strata Software
RockLinux
Creative Labs (makers of SoundBlaster)
The Apache Foundation
The Gnome Foundation
Linux-Mandrake

Suffice to say, there are more than enough huge projects using Bugzilla that we can safely say it's extremely popular.

2. Red Hat Bugzilla

Note

This section is no longer up-to-date. Please see the section on "Red Hat Bugzilla" under "Variants" in The Bugzilla Guide.

Dave Lawrence:

For the record, we are not using any template type implementation for the cosmetic changes maded to Bugzilla. It is just alot of html changes in the code itself. I admit I may have gotten a little carried away with it but the corporate types asked for a more standardized interface to match up with other projects relating to Red Hat web sites. A lot of other web based internal tools I am working on also look like Bugzilla.

I do want to land the changes that I have made to Bugzilla but I may have to back out a good deal and make a different version of Red Hat's Bugzilla for checking in to CVS. Especially the cosmetic changes because it seems they may not fit the general public. I will do that as soon as I can. I also still do my regular QA responsibilities along with Bugzilla so time is difficult sometimes to come by.

There are also a good deal of other changes that were requested by management for things like support contracts and different permission groups for making bugs private. Here is a short list of the major changes that have been made:

  1. No enum types. All old enum types are now separate smaller tables.

  2. No bit wise operations. Not all databases support this so they were changed to a more generic way of doing this task

  3. Bug reports can only be altered by the reporter, assignee, or a privileged bugzilla user. The rest of the world can see the bug but in a non-changeable format (unless the bug has been marked private). They can however add comments, add and remove themselves from the CC list

  4. Different group scheme. Each group has an id number related to it. There is a user_group table which contains userid to groupid mappings to determine which groups each user belongs to. Additionally there is a bug_group table that has bugid to groupid mappings to show which groups can see a particular bug. If there are no entries for a bug in this table then the bug is public.

  5. Product groups. product_table created to only allow certain products to be visible for certain groups in both bug entry and query. This was particulary helpful for support contracts.

  6. Of course many (too many) changes to Bugzilla code itself to allow use with Oracle and still allow operation with Mysql if so desired. Currently if you use Mysql it is set to use Mysql's old permission scheme to keep breakage to a minimum. Hopefully one day this will standardize on one style which may of course be something completely different.

  7. Uses Text::Template perl module for rendering of the dynamic HTML pages such as enter_bug.cgi, query.cgi, bug_form.pl, and for the header and footer parts of the page. This allows the html to be separate from the perl code for customizing the look and feel of the page to one's preference.

  8. There are many other smaller changes. There is also a port to Oracle that I have been working on as time permits but is not completely finished but somewhat usable. I will merge it into our standard code base when it becomes production quality. Unfortunately there will have to be some conditionals in the code to make it work with other than Oracle due to some differences between Oracle and Mysql.

Both the Mysql and Oracle versions of our current code base are available from ftp://people.redhat.com/dkl. If Terry/Tara wants I can submit patch files for all of the changes I have made and he can determine what is suitable for addition to the main bugzilla cade base. But for me to commit changes to the actual CVS I will need to back out alot of things that are not suitable for the rest of the Bugzilla community. I am open to suggestions.

Note

This information is somewhat dated; I last updated it 7 June 2000. Please see the "Variants" section of "The Bugzilla Guide" for more up-to-date information regarding Red Hat Bugzilla.

Dave Lawrence:

I suppose the current thread warrants an update on the status of Oracle and bugzilla ;) We have now been running Bugzilla 2.8 on Oracle for the last two days in our production environment. I tried to do as much testing as possible with it before going live which is some of the reason for the long delay. I did not get enough feedback as I would have liked from internal developers to help weed out any bugs still left so I said "Fine, i will take it live and then I will get the feedback I want :)" So it is now starting to stabilize and it running quite well after working feverishly the last two days fixing problems as soon as they came in from the outside world. The current branch in cvs is up2date if anyone would like to grab it and try it out. The oracle _setup.pl is broken right now due to some last minute changes but I will update that soon. Therefore you would probably need to create the database tables the old fashioned way using the supplied sql creation scripts located in the ./oracle directory. We have heavy optimizations in the database it self thanks to the in-house DBA here at Red Hat so it is running quite fast. The database itself is located on a dual PII450 with 1GB ram and 14 high voltage differential raided scsi drives. The tables and indexes are partitioned in 4 chuncks across the raided drive which is nice because when ever you need to do a full table scan, it is actually starting in 4 different locations on 4 different drives simultaneously. And the indexes of course are on separate drives from the data so that speeds things up tremendously. When I can find the time I will document all that we have done to get this thing going to help others that may need it.

As Matt has mentioned it is still using out-dated code and with a little help I would like to bring everything up to date for eventual incorporation with the main cvs tree. Due to other duties I have with the company any help with this wiould be appreciated. What we are using now is what I call a best first effort. It definitely can be improved on and may even need complete rewrites in a lot of areas. A lot of changes may have to be made in the way Bugzilla does things currently to make this transition to a more generic database interface. Fortunately when making the Oracle changes I made sure I didn't do anything that I would consider Oracle specific and could not be easily done with other databases. Alot of the sql statements need to be broken up into smaller utilities that themselves would need to make decisions on what database they are using but the majority of the code can be made database neutral.

3. Loki Bugzilla (AKA Fenris)

Loki Games has a customized version of Bugzilla available at http://fenris.lokigames.com. There are some advantages to using Fenris, chief being separation of comments based upon user privacy level, data hiding, forced login for any data retrieval, and some additional fields. Loki has mainted their code, originally a fork from the Bugzilla 2.8 code base, and it is quite a bit different than stock Bugzilla at this point. I recommend you stick with official Bugzilla version 2.14 rather than using a fork, but it's up to you.

4. Pointy-Haired-Boss Questions

Note

The title of this section doesn't mean you're a PHB -- it just means you probably HAVE a PHB who wants to know this :)

Yes. Look at http://bugzilla.mozilla.org/reports.cgi for basic reporting facilities.

For more advanced reporting, I recommend hooking up a professional reporting package, such as Crystal Reports, and use ODBC to access the MySQL database. You can do a lot through the Query page of Bugzilla as well, but right now Advanced Reporting is much better accomplished through third-party utilities that can interface with the database directly.

Advanced Reporting is a Bugzilla 3.X proposed feature.

Bugzilla email is sent in plain text, the most compatible mail format on the planet.

Note

If you decide to use the bugzilla_email integration features to allow Bugzilla to record responses to mail with the associated bug, you may need to caution your users to set their mailer to "respond to messages in the format in which they were sent". For security reasons Bugzilla ignores HTML tags in comments, and if a user sends HTML-based email into Bugzilla the resulting comment looks downright awful.

7. Bugzilla Email

8. Bugzilla Database

9. Bugzilla and Win32

The following couple entries are deprecated in favor of the Windows installation instructions available in the "Administration" portion of "The Bugzilla Guide". However, they are provided here for historical interest and insight.


  1. #!C:/perl/bin/perl had to be added to every perl file.
  2. Converted to Net::SMTP to handle mail messages instead of
     /usr/bin/sendmail.
  3. The crypt function isn't available on Windows NT (at least none that I
     am aware), so I made encrypted passwords = plaintext passwords.
  4. The system call to diff had to be changed to the Cygwin diff.
  5. This was just to get a demo running under NT, it seems to be working
     good, and I have inserted almost 100 bugs from another bug tracking
     system. Since this work was done just to get an in-house demo, I am NOT
     planning on making a patch for submission to Bugzilla. If you would
     like a zip file, let me know.

Q: Hmm, couldn't figure it out from the general instructions above.  How
about step-by-step?
A: Sure! Here ya go!

  1. Install IIS 4.0 from the NT Option Pack #4.
  2. Download and install Active Perl.
  3. Install the Windows GNU tools from Cygwin. Make sure to add the bin
     directory to your system path. (Everyone should have these, whether
     they decide to use Bugzilla or not. :-) )
  4. Download relevant packages from ActiveState at
     http://www.activestate.com/packages/zips/. + DBD-Mysql.zip
  5. Extract each zip file with WinZip, and install each ppd file using the
     notation: ppm install <module>.ppd
  6. Install Mysql.  *Note: If you move the default install from c:\mysql,
     you must add the appropriate startup parameters to the NT service. (ex.
     -b e:\\programs\\mysql)
  7. Download any Mysql client. http://www.mysql.com/download_win.html
  8. Setup MySql. (These are the commands that I used.)

          I. Cleanup default database settings.
           C:\mysql\bin\mysql -u root mysql
           mysql> DELETE FROM user WHERE Host='localhost' AND User='';
           mysql> quit
          C:\mysql\bin\mysqladmin reload

          II. Set password for root.
           C:\mysql\bin\mysql -u root mysql
           mysql> UPDATE user SET Password=PASSWORD('new_password')
           WHERE user='root';
           mysql> FLUSH PRIVILEGES;
           mysql> quit
           C:\mysql\bin\mysqladmin -u root reload

          III. Create bugs user.
           C:\mysql\bin\mysql -u root -p
           mysql> insert into user (host,user,password)
          values('localhost','bugs','');
           mysql> quit
           C:\mysql\bin\mysqladmin -u root reload

          IV. Create the bugs database.
           C:\mysql\bin\mysql -u root -p
           mysql> create database bugs;

          V. Give the bugs user access to the bugs database.
           mysql> insert into db
          (host,db,user,select_priv,insert_priv,update_priv,delete_priv,create_priv,drop_priv)
          values('localhost','bugs','bugs','Y','Y','Y','Y','Y','N')
           mysql> quit
           C:\mysql\bin\mysqladmin -u root reload
  9. Run the table scripts to setup the bugs database.
 10. Change CGI.pm to use the following regular expression because of
     differing backslashes in NT versus UNIX.
        o $0 =~ m:[^\\]*$:;
 11. Had to make the crypt password = plain text password in the database.
     (Thanks to Andrew Lahser" <andrew_lahser@merck.com>" on this one.) The
     files that I changed were:
        o globals.pl
        o CGI.pl
        o alternately, you can try commenting all references to 'crypt'
          string and replace them with similar lines but without encrypt()
          or crypr() functions insida all files.
 12. Replaced sendmail with Windmail. Basically, you have to come up with a
     sendmail substitute for NT. Someone said that they used a Perl module
     (Net::SMTP), but I was trying to save time and do as little Perl coding
     as possible.
 13. Added "perl" to the beginning of all Perl system calls that use a perl
     script as an argument and renamed processmail to processmail.pl.
 14. In processmail.pl, I added binmode(HANDLE) before all read() calls. I'm
     not sure about this one, but the read() under NT wasn't counting the
     EOLs without the binary read."
    

10. Bugzilla Usage

11. Bugzilla Hacking

Try this link to view current bugs or requests for enhancement for Bugzilla.

You can view bugs marked for 2.16 release here. This list includes bugs for the 2.16 release that have already been fixed and checked into CVS. Please consult the Bugzilla Project Page for details on how to check current sources out of CVS so you can have these bug fixes early!

This is well-documented here: http://bugzilla.mozilla.org/show_bug.cgi?id=49862. Ultimately, it's as easy as adding the "---" priority field to your localconfig file in the appropriate area, re-running checksetup.pl, and then changing the default priority in your browser using "editparams.cgi". Hmm, now that I think about it, that is kind of a klunky way to handle it, but for now it's what we have! Although the bug has been closed "resolved wontfix", there may be a better way to handle this...

  1. Enter a bug into bugzilla.mozilla.org for the "Bugzilla" product.

  2. Upload your patch as a unified DIFF (having used "diff -u" against the current sources checked out of CVS), or new source file by clicking "Create a new attachment" link on the bug page you've just created, and include any descriptions of database changes you may make, into the bug ID you submitted in step #1. Be sure and click the "Patch" radio button to indicate the text you are sending is a patch!

  3. Announce your patch and the associated URL (http://bugzilla.mozilla.org/show_bug.cgi?id=XXXX) for discussion in the newsgroup (netscape.public.mozilla.webtools). You'll get a really good, fairly immediate reaction to the implications of your patch, which will also give us an idea how well-received the change would be.

  4. If it passes muster with minimal modification, the person to whom the bug is assigned in Bugzilla is responsible for seeing the patch is checked into CVS.

  5. Bask in the glory of the fact that you helped write the most successful open-source bug-tracking software on the planet :)