From: gerv%gerv.net <> Date: Sat, 25 May 2002 22:36:45 +0000 (+0000) Subject: More serious documentation whackage. This is now ready for review. X-Git-Tag: bugzilla-2.16rc2~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f9c5d7f48e4d9c90fbf9680f3253d92c014c2d5;p=thirdparty%2Fbugzilla.git More serious documentation whackage. This is now ready for review. --- diff --git a/docs/html/administration.html b/docs/html/administration.html index 7d98020404..df31d4ee4e 100644 --- a/docs/html/administration.html +++ b/docs/html/administration.html @@ -13,8 +13,8 @@ REL="PREVIOUS" TITLE="Troubleshooting" HREF="troubleshooting.html">
NextThere are a suite of utilities for querying Bugzilla from the - command line. Although there's no particular reason why they - shouldn't work, they have not been tested with 2.16.
Download three files:
bash$ - - wget -O query.conf - 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26157' - -
bash$ - - wget -O buglist - 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26944' - -
bash# - - wget -O bugs - 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26215' - -
Make your utilities executable: - bash$ - - chmod u+x buglist bugs - -
The query.conf file contains the mapping from options to field +>query.conf + contains the mapping from options to field names and comparison types. Quoted option names are "grepped" for, so it should be easy to edit this file. Comments (#) have no effect; you must make sure these lines do not contain any quoted "option".
buglist is a shell script which submits a Bugzilla query and writes +>buglist + is a shell script which submits a Bugzilla query and writes the resulting HTML page to stdout. It supports both short options, (such as "-Afoo" or "-Rbar") and long options (such as "--assignedto=foo" or "--reporter=bar"). If the first character of an option is not "-", it is treated as if it were prefixed with "--default=".
The columlist is taken from the COLUMNLIST environment variable. +>The column list is taken from the COLUMNLIST environment variable. This is equivalent to the "Change Columns" option when you list bugs in - buglist.cgi. If you have already used Bugzilla, use - grep COLUMLIST ~/.netscape/cookies - - to see your current COLUMNLIST setting.
bugs is a simple shell script which calls buglist and extracts the +>bugs is a simple shell script which calls + buglist and extracts the bug numbers from the output. Adding the prefix "http://bugzilla.mozilla.org/buglist.cgi?bug_id=" turns the bug list into a working link if any bugs are found. Counting bugs is easy. Pipe the @@ -200,7 +140,11 @@ CLASS="command" >
Akkana says she has good results piping buglist output through +>Akkana Peck says she has good results piping + buglist output through w3m -T text/html -dump file.extensionfilename
NextThere are several ways to take advantage of Bugzilla's templates, and which you use depends on what you want to do. The Bugzilla @@ -138,11 +138,12 @@ CLASS="command" automagically merged into your modified versions.
The other method is to copy the templates into - The other method is to copy the templates into a mirrored directory + structure under template/en/custom. This method is better if +>. + This method is better if you are going to make major changes, because it is guaranteed that the contents of this directory will not be touched during an upgrade, and you can then decide whether to continue using your own templates, @@ -157,16 +158,48 @@ CLASS="filename" HREF="http://www.template-toolkit.org" TARGET="_top" >Template Toolkit home - page
Don't directly edit the compiled templates in + data/template/* - your + changes will be lost when Template Toolkit recompiles them. + |
There are a few templates you may be particularly interested in customising for your installation. @@ -184,13 +217,121 @@ CLASS="command" Editing these is a way to quickly get a distinctive look and feel for your Bugzilla installation.
bug/create/create.html.tmpl and + bug/create/comment.txt.tmpl: + You may wish to get bug submitters to give certain bits of structured + information, each in a separate input widget, for which there is not a + field in the database. The bug entry system has been designed in an + extensible fashion to enable you to define arbitrary fields and widgets, + and have their values appear formatted in the initial + Description (rather than in database fields.) +
To make this work, create a custom template for + enter_bug.cgi (the default template, on which you + could base it, is create.html.tmpl), + and either call it create.html.tmpl or + create-<formatname>.html.tmpl. + Put it in the custom/bug/create + directory. In it, add widgets for each piece of information you'd like + collected - such as a build number, or set of steps to reproduce. +
Then, create a template like + custom/bug/create/comment.txt.tmpl, which + references the form fields you have created. When a bug report is + submitted, the initial comment attached to the bug report will be + formatted according to the layout of this template. +
For example, if your enter_bug template had a field +
<input type="text" name="buildid" size="30"> + |
BuildID: [% form.buildid %] + |
BuildID: 20020303 + |
Some CGIs have the ability to use more than one template. For example, buglist.cgi can output bug lists as RDF or two @@ -273,7 +414,7 @@ WIDTH="33%" ALIGN="right" VALIGN="top" >NextIntegrating Bugzilla with Third-Party ToolsUpgrading to New Releases
If you were like me, at this point you're totally clueless about the internals of MySQL, and if it weren't for this executive order from @@ -195,10 +195,14 @@ CLASS="parameter" ! You should have locked your security down like the installation instructions told you to. You can find details on locking down your database in the Bugzilla FAQ in this directory (under - "Security"), or more robust security generalities in the MySQL - searchable documentation at - http://www.mysql.com/php/manual.php3?section=Privilege_system - .
MySQL + searchable documentation. +use bugs;
Don't forget the - ";" - - at the end of each line, or you'll be kicking yourself - later. |
Imagine your MySQL database as a series of spreadsheets, and you won't be too far off. If you use this command:
B.2.1.1. Bugzilla Database Tablesmysql> - show tables from bugs;you'll be able to see all the +>you'll be able to see the names of all the "spreadsheets" - - (tables) in your database. It is similar to a file system, only - faster and more robust for certain types of operations.
From the command issued above, ou should have some output that - looks like this: -
Here's an overview of what each table does. Most
- columns in each table have descriptive names that make it fairly
- trivial to figure out their jobs. attachments: This table stores all
- attachments to bugs. It tends to be your largest table, yet also
- generally has the fewest entries because file attachments are so
- (relatively) large. bugs: This is the core of your system. The bugs
- table stores most of the current information about a bug, with the
- exception of the info stored in the other tables. bugs_activity: This
- stores information regarding what changes are made to bugs when -- a
- history file. cc: This tiny table simply stores all the CC
- information for any bug which has any entries in the CC field of the
- bug. Note that, like most other tables in Bugzilla, it does not refer
- to users by their user names, but by their unique userid, stored as a
- primary key in the profiles table. components: This stores the
- programs and components (or products and components, in newer
- Bugzilla parlance) for Bugzilla. Curiously, the "program" (product)
- field is the full name of the product, rather than some other unique
- identifier, like bug_id and user_id are elsewhere in the database.
- dependencies: Stores data about those cool dependency trees.
- fielddefs: A nifty table that defines other tables. For instance,
- when you submit a form that changes the value of "AssignedTo" this
- table allows translation to the actual field name "assigned_to" for
- entry into MySQL. groups: defines bitmasks for groups. A bitmask is a
- number that can uniquely identify group memberships. For instance,
- say the group that is allowed to tweak parameters is assigned a value
- of "1", the group that is allowed to edit users is assigned a "2",
- and the group that is allowed to create new groups is assigned the
- bitmask of "4". By uniquely combining the group bitmasks (much like
- the chmod command in UNIX,) you can identify a user is allowed to
- tweak parameters and create groups, but not edit users, by giving him
- a bitmask of "5", or a user allowed to edit users and create groups,
- but not tweak parameters, by giving him a bitmask of "6" Simple, huh?
- If this makes no sense to you, try this at the mysql prompt:
- mysql> select * from groups; You'll see the list, it makes much
- more sense that way. keyworddefs: Definitions of keywords to be used
- keywords: Unlike what you'd think, this table holds which keywords
- are associated with which bug id's. logincookies: This stores every
- login cookie ever assigned to you for every machine you've ever
- logged into Bugzilla from. Curiously, it never does any housecleaning
- -- I see cookies in this file I've not used for months. However,
- since Bugzilla never expires your cookie (for convenience' sake), it
- makes sense. longdescs: The meat of bugzilla -- here is where all
- user comments are stored! You've only got 2^24 bytes per comment
- (it's a mediumtext field), so speak sparingly -- that's only the
- amount of space the Old Testament from the Bible would take
- (uncompressed, 16 megabytes). Each comment is keyed to the bug_id to
- which it's attached, so the order is necessarily chronological, for
- comments are played back in the order in which they are received.
- milestones: Interesting that milestones are associated with a
- specific product in this table, but Bugzilla does not yet support
- differing milestones by product through the standard configuration
- interfaces. namedqueries: This is where everybody stores their
- "custom queries". Very cool feature; it beats the tar out of having
- to bookmark each cool query you construct. products: What products
- you have, whether new bug entries are allowed for the product, what
- milestone you're working toward on that product, votes, etc. It will
- be nice when the components table supports these same features, so
- you could close a particular component for bug entry without having
- to close an entire product... profiles: Ahh, so you were wondering
- where your precious user information was stored? Here it is! With the
- passwords in plain text for all to see! (but sshh... don't tell your
- users!) profiles_activity: Need to know who did what when to who's
- profile? This'll tell you, it's a pretty complete history. shadowlog:
- I could be mistaken here, but I believe this table tells you when
- your shadow database is updated and what commands were used to update
- it. We don't use a shadow database at our site yet, so it's pretty
- empty for us. versions: Version information for every product votes:
- Who voted for what when watch: Who (according to userid) is watching
- who's bugs (according to their userid). === THE DETAILS === Ahh, so
- you're wondering just what to do with the information above? At the
- mysql prompt, you can view any information about the columns in a
- table with this command (where "table" is the name of the table you
- wish to view): mysql> show columns from table; You can also view
- all the data in a table with this command: mysql> select * from
- table; -- note: this is a very bad idea to do on, for instance, the
- "bugs" table if you have 50,000 bugs. You'll be sitting there a while
- until you ctrl-c or 50,000 bugs play across your screen. You can
- limit the display from above a little with the command, where
- "column" is the name of the column for which you wish to restrict
- information: mysql> select * from table where (column = "some
- info"); -- or the reverse of this mysql> select * from table where
- (column != "some info"); Let's take our example from the
- introduction, and assume you need to change the word "verified" to
- "approved" in the resolution field. We know from the above
- information that the resolution is likely to be stored in the "bugs"
- table. Note we'll need to change a little perl code as well as this
- database change, but I won't plunge into that in this document. Let's
- verify the information is stored in the "bugs" table: mysql> show
- columns from bugs (exceedingly long output truncated here) |
- bug_status|
- enum('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED')||MUL
- | UNCONFIRMED|| Sorry about that long line. We see from this that the
- "bug status" column is an "enum field", which is a MySQL peculiarity
- where a string type field can only have certain types of entries.
- While I think this is very cool, it's not standard SQL. Anyway, we
- need to add the possible enum field entry 'APPROVED' by altering the
- "bugs" table. mysql> ALTER table bugs CHANGE bug_status bug_status
- -> enum("UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED",
- -> "VERIFIED", "APPROVED", "CLOSED") not null; (note we can take
- three lines or more -- whatever you put in before the semicolon is
- evaluated as a single expression) Now if you do this: mysql> show
- columns from bugs; you'll see that the bug_status field has an extra
- "APPROVED" enum that's available! Cool thing, too, is that this is
- reflected on your query page as well -- you can query by the new
- status. But how's it fit into the existing scheme of things? Looks
- like you need to go back and look for instances of the word
- "verified" in the perl code for Bugzilla -- wherever you find
- "verified", change it to "approved" and you're in business (make sure
- that's a case-insensitive search). Although you can query by the enum
- field, you can't give something a status of "APPROVED" until you make
- the perl changes. Note that this change I mentioned can also be done
- by editing checksetup.pl, which automates a lot of this. But you need
- to know this stuff anyway, right? I hope this database tutorial has
- been useful for you. If you have comments to add, questions,
- concerns, etc. please direct them to mbarnson@excitehome.net. Please
- direct flames to /dev/null :) Have a nice day! === LINKS === Great
- MySQL tutorial site:
- http://www.devshed.com/Server_Side/MySQL/
As well as the text-based dependency graphs, Bugzilla also supports dependency graphing, using a package called 'dot'. - Exactly how this works is controlled by the 'webdotbase' parameter. + Exactly how this works is controlled by the 'webdotbase' parameter, + which can have one of three values:
(To be written...
A complete file path to the command 'dot' (part of + GraphViz) + will generate the graphs locally +
A URL prefix pointing to an installation of the webdot package will + generate the graphs remotely +
A blank value will disable dependency graphing. +
So, to get this working, install + GraphViz. If you + do that, you need to + enable + server-side image maps in Apache. + Alternatively, you could set up a webdot server, or use the AT&T + public webdot server (the + default for the webdotbase param). Note that AT&T's server won't work + if Bugzilla is only accessible using HTTPS. +
As long as you installed the GD and Graph::Base Perl modules you might as well turn on the nifty Bugzilla bug reporting graphs.
By now you have a fully functional Bugzilla, but what good are bugs if they're not annoying? To help make those bugs more annoying you @@ -322,6 +370,290 @@ TARGET="_top" "mail", but you may need to change this.
It is possible for a Bugzilla to execute malicious Javascript + code. Due to internationalization concerns, we are unable to + incorporate the code changes necessary to fulfill the CERT advisory + requirements mentioned in + http://www.cet.org/tech_tips/malicious_code_mitigation.html/#3. + Executing the following code snippet from a UNIX command shell will + rectify the problem if your Bugzilla installation is intended for an + English-speaking audience. As always, be sure your Bugzilla + installation has a good backup before making changes, and I recommend + you understand what the script is doing before executing it.
bash# perl -pi -e "s/Content-Type\: text\/html/Content-Type\: text\/html\; charset=ISO-8859-1/i" *.cgi *.pl + |
All this one-liner command does is search for all instances of + "Content-type: text/html" + + and replaces it with + "Content-Type: text/html; charset=ISO-8859-1" + + . This specification prevents possible Javascript attacks on the + browser, and is suggested for all English-speaking sites. For + non-English-speaking Bugzilla sites, I suggest changing + "ISO-8859-1", above, to + "UTF-8".
To enhance the security of your Bugzilla installation, Bugzilla's + checksetup.pl script will generate + .htaccess + + + files which the Apache webserver can use to restrict access to the + bugzilla data files. + These .htaccess files will not work with Apache 1.2.x - but this + has security holes, so you shouldn't be using it anyway. +
If you are using an alternate provider of + webdot + + services for graphing (as described when viewing + editparams.cgi + + in your web browser), you will need to change the ip address in + data/webdot/.htaccess + + to the ip address of the webdot server that you are using. |
The default .htaccess file may not provide adequate access + restrictions, depending on your web server configuration. Be sure to + check the <Directory> entries for your Bugzilla directory so that + the + .htaccess + + file is allowed to override web server defaults. For instance, let's + assume your installation of Bugzilla is installed to + /usr/local/bugzilla + + . You should have this <Directory> entry in your + httpd.conf + + file:
+
<Directory /usr/local/bugzilla/> + Options +FollowSymLinks +Indexes +Includes +ExecCGI + AllowOverride All +</Directory> + |
The important part above is + "AllowOverride All" + + . Without that, the + .htaccess + + file created by + checksetup.pl + + will not have sufficient permissions to protect your Bugzilla + installation.
If you are using Internet Information Server (IIS) or another + web server which does not observe + .htaccess + conventions, you can disable their creation by editing + localconfig + and setting the + $create_htaccess + variable to + 0. +
It is possible for a user, by mistake or on purpose, to access + the database many times in a row which can result in very slow access + speeds for other users. If your Bugzilla installation is experiencing + this problem , you may install the Apache module + mod_throttle + + which can limit connections by ip-address. You may download this module + at + http://www.snert.com/Software/Throttle/. + Follow the instructions to install into your Apache install. + This module only functions with the Apache web + server! + You may use the + ThrottleClientIP + + command provided by this module to accomplish this goal. See the + Module + Instructions + for more information.
This FAQ includes questions not covered elsewhere in the Guide. +
A.1.1. Where can I find information about Bugzilla?
A.1.2.
What license is Bugzilla distributed under?
@@ -666,7 +614,7 @@ CLASS="qandaentry"
CLASS="question"
> A.1.3.
How do I get commercial support for Bugzilla?
@@ -701,7 +649,7 @@ CLASS="qandaentry"
CLASS="question"
> A.1.4.
What major companies or projects are currently using Bugzilla
@@ -809,7 +757,7 @@ CLASS="qandaentry"
CLASS="question"
>
A.1.7. - How do I change my user name (email address) in Bugzilla? -
- New in 2.16 - go to the Account section of the Preferences. You will - be emailed at both addresses for confirmation. -
A.2.4.
If I am on many projects, and search for all bugs assigned to me, will
@@ -1165,10 +1069,10 @@ CLASS="qandaentry"
CLASS="question"
> A.2.6.
Does Bugzilla allow us to define our own priorities and levels? Do we
@@ -1227,30 +1131,8 @@ CLASS="qandaentry"
CLASS="question"
> If you upgrade to 2.16, the index page has a footer.
-
- Yes. Place yourself in the "cc" field of the bug you wish to monitor.
- Then change your "Notify me of changes to" field in the Email Settings
- tab of the User Preferences screen in Bugzilla to the "Only those
- bugs which I am listed on the CC line" option.
- A.2.13. A.2.11.
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
@@ -1462,8 +1317,8 @@ CLASS="qandaentry"
CLASS="question"
> A.2.14. A.2.12.
Has anyone converted Bugzilla to another language to be used in other
countries? Is it localizable?
@@ -1488,8 +1343,8 @@ CLASS="qandaentry"
CLASS="question"
> A.2.15. A.2.13.
Can a user create and save reports? Can they do this in Word format?
Excel format?
@@ -1511,53 +1366,8 @@ CLASS="qandaentry"
CLASS="question"
> A.2.16.
- Can a user re-run a report with a new project, same query?
-
- Yes.
-
- You can save an unlimited number of queries in Bugzilla. You are free
- to modify them and rename them to your heart's desire.
- A.2.18. A.2.14.
Does Bugzilla have the ability to search by word, phrase, compound
search?
@@ -1580,31 +1390,8 @@ CLASS="qandaentry"
CLASS="question"
> A.2.19.
- Can the admin person establish separate group and individual user
- privileges?
-
- Yes.
- A.2.20. A.2.15.
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
@@ -1628,8 +1415,8 @@ CLASS="qandaentry"
CLASS="question"
> A.2.21. A.2.16.
Are there any backup features provided?
A.2.22. A.2.17.
Can users be on the system while a backup is in progress?
Commercial Bug-tracking software typically costs somewhere upwards
@@ -1714,8 +1501,8 @@ CLASS="qandaentry"
CLASS="question"
> A.2.24. A.2.19.
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
@@ -1745,8 +1532,8 @@ CLASS="qandaentry"
CLASS="question"
> A.2.25. A.2.20.
Is there any licensing fee or other fees for using Bugzilla? Any
out-of-pocket cost other than the bodies needed as identified above?
@@ -1768,96 +1555,18 @@ CLASS="answer"
CLASS="qandadiv"
>
- Check
http://www.bugzilla.org/ for details.
- Read the other parts of this Guide for installation instructions.
-
- Installation on Windows NT has its own section in
- this document.
-
- At present, no.
- A.4.2. A.3.2.
Are there any security problems with Bugzilla?
A.4.3. A.3.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
@@ -1932,15 +1640,15 @@ CLASS="answer"
CLASS="qandadiv"
> A.5.3. A.4.3.
I want whineatnews.pl to whine at something more, or other than, only new
bugs. How do I do it?
@@ -2017,8 +1725,8 @@ CLASS="qandaentry"
CLASS="question"
> A.5.4. A.4.4.
I don't like/want to use Procmail to hand mail off to bug_email.pl.
What alternatives do I have?
@@ -2033,7 +1741,7 @@ CLASS="answer"
You can call bug_email.pl directly from your aliases file, with
an entry like this:
bugzilla-daemon: "|/usr/local/bin/bugzilla/contrib/bug_email.pl"
@@ -2052,8 +1760,8 @@ CLASS="qandaentry"
CLASS="question"
> A.5.5. A.4.5.
How do I set up the email interface to submit/change bugs via email?
A.5.6. A.4.6.
Email takes FOREVER to reach me from Bugzilla -- it's extremely slow.
What gives?
@@ -2108,8 +1816,8 @@ CLASS="qandaentry"
CLASS="question"
> A.5.7. A.4.7.
How come email from Bugzilla changes never reaches me?
A.6.1. A.5.1.
I've heard Bugzilla can be used with Oracle?
A.6.2. A.5.2.
I think my database might be corrupted, or contain invalid entries. What
do I do?
@@ -2214,8 +1922,8 @@ CLASS="qandaentry"
CLASS="question"
> A.6.3. A.5.3.
I want to manually edit some entries in my database. How?
A.6.4. A.5.4.
I try to add myself as a user, but Bugzilla always tells me my password is wrong.
A.6.6. A.5.6.
How do I synchronize bug information among multiple different Bugzilla
databases?
@@ -2327,15 +2035,15 @@ CLASS="answer"
CLASS="qandadiv"
> A.7.1. A.6.1.
What is the easiest way to run Bugzilla on Win32 (Win98+/NT/2K)?
A.7.2. A.6.2.
Is there a "Bundle::Bugzilla" equivalent for Win32?
A.7.3. A.6.3.
CGI's are failing with a "something.cgi is not a valid Windows NT
application" error. Why?
@@ -2402,7 +2110,7 @@ CLASS="answer"
>
Microsoft has some advice on this matter, as well:
"Set application mappings. In the ISM, map the extension for the script
@@ -2425,8 +2133,8 @@ CLASS="qandaentry"
CLASS="question"
> A.7.4. A.6.4.
I'm having trouble with the perl modules for NT not being able to talk to
to the database.
@@ -2491,15 +2199,38 @@ TARGET="_top"
CLASS="qandadiv"
>
+ New in 2.16 - go to the Account section of the Preferences. You will
+ be emailed at both addresses for confirmation.
+ A.8.5. A.7.6.
How do I change a keyword in Bugzilla, once some bugs are using it?
A.9.3. A.8.3.
What's the best way to submit patches? What guidelines should I follow?
Announce your patch and the associated URL
- (http://bugzilla.mozilla.org/show_bug.cgi?id=XXXX) for discussion in
+ (http://bugzilla.mozilla.org/show_bug.cgi?id=XXXXXX) 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
diff --git a/docs/html/geninstall.html b/docs/html/geninstall.html
index 8c34c43406..15d700a4cf 100644
--- a/docs/html/geninstall.html
+++ b/docs/html/geninstall.html
@@ -79,10 +79,18 @@ CLASS="section"
> Bugzilla optimizes database lookups by storing all relatively
- static information in the versioncache file, located in the data/
+ static information in the
+ versioncache file, located in the
+ data/
subdirectory under your installation directory. If you make a change to the structural data in your database (the
@@ -92,8 +100,11 @@ CLASS="QUOTE"
>"constants"
- encoded in defparams.pl, you will need to remove the cached content
- from the data directory (by doing a
+ encoded in defparams.pl, you will need to remove
+ the cached content from the data directory (by doing a
"rm data/versioncache" That file gets automatically regenerated whenever it's more than
+> versioncache
+ gets automatically regenerated whenever it's more than
an hour old, so Bugzilla will eventually notice your changes by itself,
but generally you want it to notice right away, so that you can test
things. A plain Bugzilla is fairly easy to upgrade from one version to a
newer one. However, things get a bit more complicated if you've made
@@ -131,7 +146,11 @@ CLASS="filename"
>Because the developers of Bugzilla are constantly adding new
tables, columns and fields, you'll probably get SQL errors if you just
update the code and attempt to use Bugzilla. Always run the
- checksetup.pl script whenever you upgrade your installation. If you are running Bugzilla version 2.8 or lower, and wish to
upgrade to the latest version, please consult the file,
@@ -147,11 +166,13 @@ NAME="htaccess">4.5.3. .htaccess
-
files and security To enhance the security of your Bugzilla installation, Bugzilla
- will generate
+>To enhance the security of your Bugzilla installation, Bugzilla's
+ checksetup.pl script will generate
files which the Apache webserver can use to restrict access to the
- bugzilla data files. The checksetup script will generate the
- .htaccess
-
- files. These .htaccess files will not work with Apache 1.2.x - but this
+ bugzilla data files.
+ These .htaccess files will not work with Apache 1.2.x - but this
has security holes, so you shouldn't be using it anyway.
The important part above is
@@ -286,34 +302,30 @@ CLASS="filename"
will not have sufficient permissions to protect your Bugzilla
installation. If you are using Internet Information Server or other web server
- which does not observe
+>If you are using Internet Information Server (IIS) or another
+ web server which does not observe
.htaccess
-
conventions, you can disable their creation by editing
localconfig
-
and setting the
$create_htaccess
-
variable to
0
-
- . Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit
- Parameters" screen. "usebuggroupsentry" has the capacity to prevent the
- administrative user from directly altering bugs because of
- conflicting group permissions. If you plan on using
- "usebuggroupsentry", you should plan on restricting
- administrative account usage to administrative duties only. In
- other words, manage bugs with an unpriveleged user account, and
- manage users, groups, Products, etc. with the administrative
- account. You will generally have no Groups set up, unless you enabled
- "usebuggroupsentry" prior to creating any Products. To create
- "Generic Group Security" groups, follow the instructions given
- above. To create Product-Based Group security, simply follow the
- instructions for creating a new Product. If you need to add users
- to these new groups as you create them, you will find the option to
- add them to the group available under the "Edit User"
- screens. You may find this example illustrative for how bug groups work.
- Quicksearch is a single-text-box query tool which uses
metacharacters to indicate what is to be searched. For example, typing
- "foo|bar" into Quicksearch would search for "foo" or "bar" in the
- summary and status whiteboard of a bug; adding ":BazProduct" would
+ "foo|bar"
+ into Quicksearch would search for "foo" or "bar" in the
+ summary and status whiteboard of a bug; adding
+ ":BazProduct" would
search only in that product.
3.2.3. CommentsIf you are changing the fields on a bug, only comment if
either you have something pertinent to say, or Bugzilla requires it.
Otherwise, you may spam people unnecessarily with bug mail.
- To take an example: a user sets up their account to filter out messages
+ To take an example: a user can set up their account to filter out messages
where someone just adds themselves to the CC field of a bug
(which happens a lot.) If you come along, add yourself to the CC field,
and add a comment saying "Adding self to CC", then that person
@@ -198,8 +206,8 @@ NAME="attachments">3.2.4. Attachments Don't attach simple test cases (e.g. one html file and one
- css file and one image) as a ZIP file. Instead, upload them in
+>Don't attach simple test cases (e.g. one HTML file, one
+ CSS file and an image) as a ZIP file. Instead, upload them in
reverse order and edit the referring file so that they point to the
attached files. This way, the test case works immediately
out of the bug.
@@ -210,7 +218,7 @@ CLASS="section"
> Try to make sure that everything said in the summary is also
said in the first comment. Summaries are often updated and this will
diff --git a/docs/html/how.html b/docs/html/how.html
index 0c583764f8..68d13ee307 100644
--- a/docs/html/how.html
+++ b/docs/html/how.html
@@ -82,7 +82,8 @@ HREF="http://landfill.tequilarista.org/"
TARGET="_top"
>Landfill,
- which you are welcome to play with. However, it does not necessarily
+ which you are welcome to play with (if it's up.)
+ However, it does not necessarily
have all Bugzilla features enabled, and often runs cutting-edge versions
of Bugzilla for testing, so some things may work slightly differently
than mentioned here. You are now logged in. Bugzilla uses cookies for authentication,
- so (unless your IP address changes) you should not have to log in
+>You are now logged in. Bugzilla uses cookies for authentication
+ so, unless your IP address changes, you should not have to log in
again.
Product and Component
-
- : Bugs are divided up by Product and Component, with a Product
+>:
+ Bugs are divided up by Product and Component, with a Product
having one or more Components in it. For example,
bugzilla.mozilla.org's "Bugzilla" Product is composed of several
Components:
@@ -296,7 +297,7 @@ BORDER="0"
>
URL:*URL:
A URL associated with the bug, if any.
Status Whiteboard:*Status Whiteboard:
(a.k.a. Whiteboard) A free-form text area for adding short notes
and tags to a bug.
Keywords:*Keywords:
The administrator can define keywords which you can use to tag and
categorise bugs - e.g. The Mozilla Project has keywords like crash
@@ -363,7 +364,7 @@ BORDER="0"
>
Target:*Target:
(a.k.a. Target Milestone) A future version by which the bug is to
be fixed. e.g. The Bugzilla Project's milestones for future
@@ -396,7 +397,7 @@ BORDER="0"
>
Dependencies:*Dependencies:
If this bug cannot be fixed unless other bugs are fixed (depends
on), or this bug stops other bugs being fixed (blocks), their
@@ -405,7 +406,7 @@ BORDER="0"
>
Votes:*Votes:
Whether this bug has any votes. Bonsai is a web-based tool for managing
"on the hook"
-
- (include cool URL link here for Hook policies at mozilla.org). Bonsai
- also includes gateways to
+ closed. Bonsai
+ also integrates with
Tinderbox, the Mozilla automated build management system
-
- and Bugzilla CVS integration is best accomplished, at this point, using the
- Bugzilla Email Gateway. There have been some files submitted to allow
- greater CVS integration, but we need to make certain that Bugzilla is not
- tied into one particular software management package. Follow the instructions in the FAQ for enabling Bugzilla e-mail
+>Follow the instructions in this Guide for enabling Bugzilla e-mail
integration. Ensure that your check-in script sends an email to your
Bugzilla e-mail gateway with the subject of
"[Bug XXXX]"
-
- , and you can have CVS check-in comments append to your Bugzilla bug. If
+>,
+ and you can have CVS check-in comments append to your Bugzilla bug. If
you have your check-in script include an @resolution field, you can even
change the Bugzilla bug state. There is also a project, based upon somewhat dated Bugzilla code,
- to integrate CVS and Bugzilla through CVS' ability to email. Check it out
- at:
+>There is also a CVSZilla project, based upon somewhat dated
+ Bugzilla code, to integrate CVS and Bugzilla through CVS' ability to
+ email. Check it out at:
http://homepages.kcbbs.gen.nz/~tonyg/
-
- , under the
- "cvszilla"
-
- link. You can find the project page for Bugzilla and Teamtrack Perforce
integration (p4dti) at:
@@ -189,7 +172,7 @@ CLASS="section"
> We need Tinderbox integration information. Instead of typing
patch < patchfile.
+>.)
Then, run these commands to finish the installation of the GD
@@ -182,7 +182,7 @@ CLASS="command"
>exit
- to get back to cpan.NextGeneral Installation NotesTroubleshooting3. Bugzilla Installation
3. Bugzilla Security4. Bugzilla Security
5. Bugzilla Email
4. Bugzilla Email6. Bugzilla Database
5. Bugzilla Database7. Bugzilla and Win32
6. Bugzilla and Win328. Bugzilla Usage
7. Bugzilla Usage9. Bugzilla Hacking
8. Bugzilla Hacking4.5.1. Modifying Your Running System
4.5.1. Modifying Your Running System4.5.2. Upgrading From Previous Versions
4.5.2. Upgrading From Previous Versions
+
+
-<Directory /usr/local/bugzilla/>
+>
<Directory /usr/local/bugzilla/>
Options +FollowSymLinks +Indexes +Includes +ExecCGI
AllowOverride All
</Directory>
-
-
bash# cd <your_bugzilla_dir>;
- for i in `ls *.cgi`; \ do
- cat $i | sed 's/Content-type\: text\/html/Content-Type: text\/html\;
- charset=ISO-8859-1/' >$i.tmp; \ mv $i.tmp $i;
- done
bash# perl -pi -e "s/Content-Type\: text\/html/Content-Type\: text\/html\; charset=ISO-8859-1/i" *.cgi *.pl
+ 0-9, high ascii
0-9, high ascii3.2.5. Filing Bugs
3.2.5. Filing Bugs5.8. Integrating Bugzilla with Third-Party Tools
5.9. Integrating Bugzilla with Third-Party Tools5.8.1. Bonsai
5.9.1. Bonsai5.8.2. CVS
5.9.2. CVS5.8.3. Perforce SCM
5.9.3. Perforce SCM5.8.4. Tinderbox/Tinderbox2
5.9.4. Tinderbox/Tinderbox2Next Next usebuggroups:
- Thisdictates whether or not to implement group-based security for
+ This dictates whether or not to implement group-based security for
Bugzilla. If set, Bugzilla bugs can have an associated 'group',
defining which users are allowed to see and edit the
bug.usebuggroupsentry:
- When set to "on", this
- puts all bugs be placed in the group for their product immediately
- after creation., this places all newly-created bugs in the
+ group for their product immediately.
Dear Lord, we have to get our users to do WHAT? |
- are the broadest category in Bugzilla, and you should have the least of - these. If your company makes computer games, you should have one - product per game, and possibly a few special products (website, - meetings...)
A Product (formerly called "Program", and still referred to that - way in some portions of the source code) controls some very important - functions. The number of "votes" available for users to vote for the - most important bugs is set per-product, as is the number of votes + are the broadest category in Bugzilla, and tend to represent real-world + shipping products. E.g. if your company makes computer games, + you should have one product per game, perhaps a "Common" product for + units of technology used in multiple games, and maybe a few special + products (Website, Administration...)
Many of Bugzilla's settings are configurable on a per-product + basis. The number of "votes" available to users is set per-product, + as is the number of votes required to move a bug automatically from the UNCONFIRMED status to the - NEW status. One can close a Product for further bug entry and define - various Versions available from the Edit product screen.
To create a new product:
Select "components" from the yellow footer
It may seem counterintuitive to click "components" when you - want to edit the properties associated with Products. This is one - of a long list of things we want in Bugzilla 3.0... |
Select the "Add" link to the right of "Add a new - product".
Select the "Add" link in the bottom rightEnter the name of the product and a description. The - Description field is free-form.
Don't worry about the "Closed for bug entry", "Maximum Votes - per person", "Maximum votes a person can put on a single bug", - "Number of votes a bug in this Product needs to automatically get out - of the UNCOMFIRMED state", and "Version" options yet. We'll cover - those in a few moments. |
Components are subsections of a Product. -
- - Each component has a owner and (if you turned it on in the parameters), +> Each component has a owner and (if you turned it on in the parameters), a QA Contact. The owner should be the primary person who fixes bugs in that component. The QA Contact should be the person who will ensure these bugs are completely fixed. The Owner, QA Contact, and Reporter @@ -250,10 +152,9 @@ NAME="AEN1426">default assignments - - ; the Owner and QA Contact fields in a bug are otherwise unrelated to - the Component.
; + these can be changed on bug submission, or at any later point in + a bug's life.To create a new Component:
Select the "Add" link to the right of the "Add a new - component" text on the "Select Component" page.
Select the "Add" link in the bottom right.Fill out the "Component" field, a short "Description", and - the "Initial Owner". The Component and Description fields are - free-form; the "Initial Owner" field must be that of a user ID - already existing in the database. If the initial owner does not - exist, Bugzilla will refuse to create the component. -
Is your "Default Owner" a user who is not yet in the - database? No problem. -
|
Either Edit more components or return to the Bugzilla Query - Page. To return to the Product you were editing, you must select - the Components link as before.
Versions are the revisions of the product, such as "Flinders - 3.1", "Flinders 95", and "Flinders 2000". Using Versions helps you - isolate code changes and are an aid in reporting. -
- - + 3.1", "Flinders 95", and "Flinders 2000". Version is not a multi-select + field; the usual practice is to select the most recent version with + the bug.To create and edit Versions:
You will notice that the product already has the default - version "undefined". If your product doesn't use version numbers, - you may want to leave this as it is or edit it so that it is "---". - You can then go back to the edit versions page and add new versions - to your product.
Otherwise, click the "Add" button to the right of the "Add a - new version" text.
Enter the name of the Version. This can be free-form - characters up to the limit of the text box. Then select the "Add" - button.
At this point you can select "Edit" to edit more Versions, or - return to the "Query" page, from which you can navigate back to the - product through the "components" link at the foot of the Query - page.
Enter the name of the Version. This field takes text only. + Then click the "Add" button.Milestones are "targets" that you plan to get a bug fixed by. For example, you have a bug that you plan to fix for your 3.0 release, it - would be assigned the milestone of 3.0. Or, you have a bug that you - plan to fix for 2.8, this would have a milestone of 2.8.
Milestone options will only appear for a Product if you turned - the "usetargetmilestone" field in the "Edit Parameters" screen - "On".
Select "edit milestones"
Select "Edit milestones" from the "Edit product" page.Select "Add" to the right of the "Add a new milestone" +>Select "Add" in the bottom right corner. text
Enter the name of the Milestone in the "Milestone" field. You - can optionally set the "Sortkey", which is a positive or negative + can optionally set the "sortkey", which is a positive or negative number (-255 to 255) that defines where in the list this particular - milestone appears. Select "Add".
If you want to add more milestones, select the "Edit" link. - If you don't, well shoot, you have to go back to the "query" page - and select "components" again, and make your way back to the - Product you were editing. -
This is another in the list of unusual user interface - decisions that we'd like to get cleaned up. Shouldn't there be a - link to the effect of "edit the Product I was editing when I - ended up here"? In any case, clicking "components" in the footer - takes you back to the "Select product" screen, from which you can - begin editing your product again. If you want your milestone document to be restricted so + that it can only be viewed by people in a particular Bugzilla + group, the best way is to attach the document to a bug in that + group, and make the URL the URL of that attachment. |
From the Edit product screen again (once you've made your way - back), enter the URL for a description of what your milestones are - for this product in the "Milestone URL" field. It should be of the - format "http://www.foo.com/bugzilla/product_milestones.html"
Some common uses of this field include product descriptions, - product roadmaps, and of course a simple description of the meaning - of each milestone.
If you're using Target Milestones, the "Default Milestone" - field must have some kind of entry. If you really don't care if - people set coherent Target Milestones, simply leave this at the - default, "---". However, controlling and regularly updating the - Default Milestone field is a powerful tool when reporting the - status of projects.
Select the "Update" button when you are done.
Putting your money in a wall safe is better protection than - depending on the fact that no one knows that you hide your money in a - mayonnaise jar in your fridge. |
Poorly-configured MySQL, Bugzilla, and FTP installations have +>Poorly-configured MySQL and Bugzilla installations have given attackers full access to systems in the past. Please take these guidelines seriously, even for Bugzilla machines hidden away behind your firewall. 80% of all computer trespassers are insiders, not @@ -129,9 +104,7 @@ VALIGN="TOP" > |
Secure your installation. -
To secure your installation: +
Ensure you are running at least MysQL version 3.22.32 or newer. - Earlier versions had notable security holes and poorly secured - default configuration choices.
The MySQL Privilege System - until you can recite it from memory!
At the very least, ensure you password the "mysql -u root" - account and the "bugs" account, establish grant table rights (consult - the Keystone guide in Appendix C: The Bugzilla Database for some - easy-to-use details) that do not allow CREATE, DROP, RELOAD, - SHUTDOWN, and PROCESS for user "bugs". I wrote up the Keystone advice - back when I knew far less about security than I do now : )
Ensure you have adequate access controls for the - $BUGZILLA_HOME/data/ and $BUGZILLA_HOME/shadow/ directories, as well - as the $BUGZILLA_HOME/localconfig and $BUGZILLA_HOME/globals.pl - files. The localconfig file stores your "bugs" user password, which - would be terrible to have in the hands of a criminal, while the - "globals.pl" stores some default information regarding your - installation which could aid a system cracker. In addition, some - files under $BUGZILLA_HOME/data/ store sensitive information, and - $BUGZILLA_HOME/shadow/ stores bug information for faster retrieval. - If you fail to secure these directories and this file, you will - expose bug information to those who may not be allowed to see - it.
Bugzilla provides default .htaccess files to protect the most - common Apache installations. However, you should verify these are - adequate according to the site-wide security policy of your web - server, and ensure that the .htaccess files are allowed to - "override" default permissions set in your Apache configuration - files. Covering Apache security is beyond the scope of this Guide; - please consult the Apache documentation for details. If you are using a web server that does not support the - .htaccess control method, - you are at risk! - After installing, check to see if you can view the file - "localconfig" in your web browser (e.g.: - http://bugzilla.mozilla.org/localconfig http://bugzilla.mozilla.org/localconfig - ). If you can read the contents of this file, your web server has - not secured your bugzilla directory properly and you must fix this - problem before deploying Bugzilla. If, however, it gives you a - "Forbidden" error, then it probably respects the .htaccess - conventions and you are good to go. |
When you run checksetup.pl, the script will attempt to modify various permissions on files which Bugzilla uses. If you do not have @@ -385,7 +322,7 @@ TARGET="_top" 65572 - for adequate protection in your data/ and shadow/ directories.
Note the instructions which follow are Apache-specific. If you
use IIS, Netscape, or other non-Apache web servers, please consult
@@ -407,15 +344,6 @@ CLASS="literallayout"
CLASS="literallayout"
><Files localconfig> deny from all </Files>
allow from all
Place the following text into a file named ".htaccess", - readable by your web server, in your $BUGZILLA_HOME/shadow directory. - -
deny from all
Bugzilla has been successfully installed under Solaris, Linux, and Win32. Win32 is not yet officially supported, but many people @@ -97,7 +97,7 @@ CLASS="section" >
If you are running the very most recent version of Perl and MySQL (both the executables and development libraries) on your system, you can skip these manual installation - steps for the Perl modules by using Bundle::Bugzilla in + steps for the Perl modules by using Bundle::Bugzilla; see Using Bundle::Bugzilla instead of manually installing Perl modules
Text::Wrap +> Text::Wrap (v2001.0131)
If you install from source or non-package (RPM, deb, etc.) - binaries you need to add - mysqldIf you install from something other than an RPM or Debian + package, you will need to add mysqld to your init scripts so the server daemon will come back up whenever your machine reboots. Further discussion of UNIX init sequences are @@ -625,10 +628,7 @@ CLASS="glossterm" >CPAN, - which installs all required modules for you. - If you wish to use - Bundle::Bugzilla, you must be using the latest version of - Perl.
4.1.5. Perl Modules
All Perl modules can be found on the - Comprehensive Perl Archive Network (CPAN) at http://www.cpan.org. The + Comprehensive Perl + Archive Network (CPAN). The CPAN servers have a real tendency to bog down, so please use mirrors.
Quality, general Perl module installation instructions can be found on the CPAN website, but the easy thing to do is to just use the - CPAN shell which does all the hard work for you.
To use the CPAN shell to install a module: -
- - To do it the hard way: -The DBI module is a generic Perl module used the MySQL-related modules. As long as your Perl installation was done @@ -848,7 +835,7 @@ CLASS="section" >
The Data::Dumper module provides data structure persistence for Perl (similar to Java's serialization). It comes with later @@ -860,7 +847,7 @@ CLASS="section" >
The Perl/MySQL interface requires a few mutually-dependent Perl modules. These modules are grouped together into the the @@ -884,7 +871,7 @@ CLASS="section" >
Many of the more common date/time/calendar related Perl modules have been grouped into a bundle similar to the MySQL modules bundle. @@ -898,7 +885,7 @@ CLASS="section" >
The GD library was written by Thomas Boutell a long while ago to programatically generate images in C. Since then it's become the @@ -951,7 +938,7 @@ CLASS="section" >
The Chart module provides Bugzilla with on-the-fly charting abilities. It can be installed in the usual fashion after it has been @@ -965,7 +952,7 @@ CLASS="section" >
You have a freedom of choice here - Apache, Netscape or any other server on UNIX would do. You can run the web server on a @@ -1009,7 +996,7 @@ VALIGN="TOP" >
You'll want to make sure that your web server will run any file with the .cgi extension as a CGI and not just display it. If you're - using Apache that means uncommenting the following line in the srm.conf + using Apache that means uncommenting the following line in the httpd.conf file: