diff --git a/mozilla/webtools/bugzilla/docs/html/administration.html b/mozilla/webtools/bugzilla/docs/html/administration.html index 7d98020404e..df31d4ee4ec 100644 --- a/mozilla/webtools/bugzilla/docs/html/administration.html +++ b/mozilla/webtools/bugzilla/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/mozilla/webtools/bugzilla/docs/html/geninstall.html b/mozilla/webtools/bugzilla/docs/html/geninstall.html
index 8c34c434068..15d700a4cf8 100644
--- a/mozilla/webtools/bugzilla/docs/html/geninstall.html
+++ b/mozilla/webtools/bugzilla/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.
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
+>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". Enter 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.
- default assignments
-
- ; the Owner and QA Contact fields in a bug are otherwise unrelated to
- the Component. To create a new Component: Select the "Add" link to the right of the "Add a new
- component" text on the "Select Component" page. 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.
- Select the "Log out" link on the footer of the
- page. Select the "New Account" link on the footer of the
- "Relogin" page Type in the email address of the default owner you want
- to create in the "E-mail address" field, and her full name in
- the "Real name" field, then select the "Submit Query"
- button. Now select "Log in" again, type in your login
- information, and you can modify the product to use the
- Default Owner information you require. 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.
- 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. 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 "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. 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> 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:
- 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:
With Apache you'll also want to make sure that within the
- access.conf file the line:
+ httpd.conf file the line:
Users of newer versions of Apache will generally find both of
- the above lines will be in the httpd.conf file, rather than srm.conf
- or access.conf. You should untar the Bugzilla files into a directory that you're
willing to make writable by the default web server user (probably
@@ -1215,20 +1201,11 @@ CLASS="filename"
>/usr/bin/perl).
Otherwise you must hack all the .cgi files to change where they look
- for Perl. This can be done using the following Perl one-liner.
- I suggest using the symlink approach for future release
- compatibility.
-
- Example 4-1. Changing the path to Perl You can simply run this Perl one-liner to change
- your path to perl in all the files in your Bugzilla installation:
+>
You should run through the parameters on the Edit Parameters page
+ (link in the footer) and set them all to appropriate values.
+ They key parameters are documented in the Section 5.1
+ section.
+ This section gives solutions to common Bugzilla installation
problems.
@@ -83,7 +83,7 @@ CLASS="section"
>
The following error message may appear due to a bug in DBD::mysql
(over which the Bugzilla team have no control):
@@ -98,18 +98,22 @@ WIDTH="100%"
COLOR="#000000"
>
To fix this, go to <path-to-perl>/lib/DBD/sponge.pm in your Perl
- installation and replace
+>
To fix this, go to
+ <path-to-perl>/lib/DBD/sponge.pm
+ in your Perl installation and replace
If you are installing Bugzilla on SuSE Linux, or some other
distributions with
@@ -231,7 +235,7 @@ WIDTH="33%"
ALIGN="left"
VALIGN="top"
>PrevGeneral Installation NotesMac OS X Installation Notes User administration is one of the easiest parts of Bugzilla.
- Keeping it from getting out of hand, however, can become a
- challenge. When you first run checksetup.pl after installing Bugzilla, it
will prompt you for the administrative username (email address) and
- password for this "super user". If for some reason you were to delete
+ password for this "super user". If for some reason you delete
the "super user" account, re-running checksetup.pl will again prompt
you for this username and password. If you wish to add more administrative users, you must use the
MySQL interface. Run "mysql" from the command line, and use these
- commands ("mysql>" denotes the mysql prompt, not something you
- should type in):
- Open the index.html page for your Bugzilla installation in
- your browser window. Click the "Query Existing Bug Reports" link. Click the "Log In" link at the foot of the page. Type your email address, and the password which was emailed
- to you when you created your Bugzilla account, into the spaces
- provided. Congratulations, you are logged in! Your users can create their own user accounts by clicking the
- "New Account" link at the bottom of each page. However, should you
+ "New Account" link at the bottom of each page (assuming they
+ aren't logged in as someone else already.) However, should you
desire to create user accounts ahead of time, here is how you do
it. After logging in, click the "Users" link at the footer of
- the query page. To see a specific user, type a portion of their login name
- in the box provided and click "submit". To see all users, simply
- click the "submit" button. You must click "submit" here to be
- able to add a new user. More functionality is available via the list on the
- right-hand side of the text entry box. You can match what you
- type as a case-insensitive substring (the default) of all users
- on your system, a case-sensitive regular expression (please see
- the
- man regexp
-
- manual page for details on regular expression syntax), or a
- reverse
-
- regular expression match, where every user name which does NOT
- match the regular expression is selected. Click the "Add New User" link at the bottom of the user
- list Fill out the form presented. This page is self-explanatory.
- When done, click "submit". I bet you noticed that big "Disabled Text" entry box available
- from the "Add New User" screen, when you edit an account? By entering
- any text in this box and selecting "submit", you have prevented the
- user from using Bugzilla via the web interface. Your explanation,
- written in this text box, will be presented to the user the next time
- she attempts to use the system.
- Don't disable your own administrative account, or you will
- hate life! At this time,
- "Disabled Text"You can search in different ways the listbox to the right
+ of the text entry box. You can match by
+ case-insensitive substring (the default),
+ regular expression, or a
+ reverse
-
- does not prevent a user from using the email interface. If you have
- the email interface enabled, they can still continue to submit bugs
- and comments that way. We need a patch to fix this. Here I will attempt to describe the function of each option on
- the Edit User screen.
Login Name
-
- : This is generally the user's email address. However, if you
- have edited your system parameters, this may just be the user's
- login name or some other identifier.
- For compatability reasons, you should probably stick with
- email addresses as user login names. It will make your life
- easier.
Real Name
-
- : Duh!
Password
-
- : You can change the user password here. It is normal to only see
- asterisks.
Disable Text
-
- : If you type anything in this box, including just a space, the
- user account is disabled from making any changes to bugs via the
- web interface, and what you type in this box is presented as the
- reason.
+>:
+ If you type anything in this box, including just a space, the
+ user is prevented from logging in, or making any changes to
+ bugs via the web interface.
+ The HTML you type in this box is presented to the user when
+ they attempt to perform these actions, and should explain
+ why the account was disabled.
As of this writing, the user can still submit bugs via
- the e-mail gateway, if you set it up, despite the disabled text
- field. The e-mail gateway should
+>The user can still submit bugs via
+ the e-mail gateway, if you set it up, even if the disabled text
+ field is filled in. The e-mail gateway should
not
-
be enabled for secure installations of Bugzilla.
CanConfirm
-
- : This field is only used if you have enabled "unconfirmed"
- status in your parameters screen. If you enable this for a user,
- that user can then move bugs from "Unconfirmed" to "Confirmed"
- status (e.g.: "New" status). Be judicious about allowing users to
- turn this bit on for other users.
Creategroups
-
- : This option will allow a user to create and destroy groups in
- Bugzilla. Unless you are using the Bugzilla GroupSentry security
- option "usebuggroupsentry" in your parameters, this setting has
- no effect.
Editbugs
-
- : Unless a user has this bit set, they can only edit those bugs
- for which they are the assignee or the reporter.
- Leaving this option unchecked does not prevent users from
- adding comments to a bug! They simply cannot change a bug
- priority, severity, etc. unless they are the assignee or
- reporter.
Editcomponents
-
- : This flag allows a user to create new products and components,
+>canconfirm:
+ This field is only used if you have enabled the "unconfirmed"
+ status. If you enable this for a user,
+ that user can then move bugs from "Unconfirmed" to a "Confirmed"
+ status (e.g.: "New" status).
creategroups:
+ This option will allow a user to create and destroy groups in
+ Bugzilla.
editbugs:
+ Unless a user has this bit set, they can only edit those bugs
+ for which they are the assignee or the reporter. Even if this
+ option is unchecked, users can still add comments to bugs.
+
editcomponents:
+ This flag allows a user to create new products and components,
as well as modify and destroy those that have no bugs associated
with them. If a product or component has bugs associated with it,
those bugs must be moved to a different product or component
- before Bugzilla will allow them to be destroyed. The name of a
- product or component can be changed without affecting the
- associated bugs, but it tends to annoy the hell out of your users
- when these change a lot.
Editkeywords
-
- : If you use Bugzilla's keyword functionality, enabling this
- feature allows a user can create and destroy keywords. As always,
+>editkeywords:
+ If you use Bugzilla's keyword functionality, enabling this
+ feature allows a user to create and destroy keywords. As always,
the keywords for existing bugs containing the keyword the user
wishes to destroy must be changed before Bugzilla will allow it
- to die. You must be very careful about creating too many new
- keywords if you run a very large Bugzilla installation; keywords
- are global variables across products, and you can often run into
- a phenomenon called "keyword bloat". This confuses users, and
- then the feature goes unused.
Editusers
-
- : This flag allows a user do what you're doing right now: edit
+>editusers:
+ This flag allows a user to do what you're doing right now: edit
other users. This will allow those with the right to do so to
remove administrator privileges from other users or grant them to
themselves. Enable with care.
PRODUCT
-
- : PRODUCT bugs access. This allows an administrator, with
- product-level granularity, to specify in which products a user
- can edit bugs. The user must still have the "editbugs" privelege
- to edit bugs in this area; this simply restricts them from even
- seeing bugs outside these boundaries if the administrator has
- enabled the group sentry parameter "usebuggroupsentry". Unless
- you are using bug groups, this option has no effect.
<productname>:
+ This allows an administrator to specify the products in which
+ a user can see bugs. The user must still have the
+ "editbugs" privilege to edit bugs in these products.
URL:
+
http://www.perforce.com/perforce/technotes/note052.html
+
-
- http://www.perforce.com/perforce/technotes/note052.html Example 4-2. Installing ActivePerl ppd Modules on Microsoft
+>Example 4-1. Installing ActivePerl ppd Modules on Microsoft
Windows Example 4-3. Installing OpenInteract ppd Modules manually on Microsoft
+>Example 4-2. Installing OpenInteract ppd Modules manually on Microsoft
Windows From Andrew Pearson:
You can make Bugzilla work with Personal Web Server for
@@ -1616,9 +1616,9 @@ VALIGN="TOP"
3. 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 VersionsNext 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. 5.3.1. Products
Formerly, and in some spots still, called
- "Programs"
-
allow from all4.1.1. Introduction
4.1.1. Introduction4.1.2. Package List
4.1.2. Package List4.1.5.1. DBI
4.1.5.1. DBI4.1.5.2. Data::Dumper
4.1.5.2. Data::Dumper4.1.5.3. MySQL-related modules
4.1.5.3. MySQL-related modules4.1.5.4. TimeDate modules
4.1.5.4. TimeDate modules4.1.5.5. GD (optional)
4.1.5.5. GD (optional)4.1.5.6. Chart::Base (optional)
4.1.5.6. Chart::Base (optional)4.1.6. HTTP Server
4.1.6. HTTP ServerAllowOverride Limit allows the use of a Deny statement in the
.htaccess file generated by checksetup.pl
.htaccess files and security
for details on how to do this for Apache; the checksetup.pl
@@ -1140,7 +1126,7 @@ CLASS="section"
>4.1.7. Bugzilla
4.1.7. Bugzilla/usr/bin/perl to match the location
- of Perl on your machine.
+ of Perl on your machine.
4.1.11. Configuring Bugzilla
4.6. Troubleshooting
4.5. Troubleshooting4.6.1. DBD::Sponge::db prepare failed
4.5.1. DBD::Sponge::db prepare failed "DBD::Sponge::db prepare failed: Cannot determine NUM_OF_FIELDS at D:/Perl/site/lib/DBD/mysql.pm line 248.
+> DBD::Sponge::db prepare failed: Cannot determine NUM_OF_FIELDS at D:/Perl/site/lib/DBD/mysql.pm line 248.
SV = NULL(0x0) at 0x20fc444
REFCNT = 1
- FLAGS = (PADBUSY,PADMY)"
+ FLAGS = (PADBUSY,PADMY)
4.6.2. cannot chdir(/var/spool/mqueue)
4.5.2. cannot chdir(/var/spool/mqueue)Prev 5.2. User Administration5.2.1. Creating the Default User
mysql>
+
use bugs;
+
mysql>
- use bugs;
-
-
mysql>
update profiles set groupset=0x7ffffffffffffff where login_name =
+ "(user's login name)";
+
-
- update profiles set groupset=0x7ffffffffffffff where login_name =
- "(user's login name)"; 5.2.2.1. Logging In
5.2.2.2. Creating new users
5.2.2.1. Creating new users5.2.2.3. Disabling Users
5.2.2.2. Modifying Users5.2.2.4. Modifying Users
5.2.2.4. Modifying Users
3.3.2. Email Settings