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">Next
5.1. Post-Installation ChecklistBugzilla Configuration
5.2.
5.7.1. What to Edit
5.7.2. Particular Templates
5.7.3. Template Formats
5.8. Upgrading to New Releases
5.9. Integrating Bugzilla with Third-Party Tools
5.8.1. 5.9.1. Bonsai
5.8.2. 5.9.2. CVS
5.8.3. 5.9.3. Perforce SCM
5.8.4. 5.9.4. Tinderbox/Tinderbox2
NextPost-Installation ChecklistBugzilla ConfigurationC.2. Command-line Bugzilla Queries

There 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.

  1. Download three files:

    1. bash$ - - wget -O query.conf - 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26157' - -

    2. bash$ - - wget -O buglist - 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26944' - -

    3. bash# - - wget -O bugs - 'http://bugzilla.mozilla.org/showattachment.cgi?attach_id=26215' - -

  2. Make your utilities executable: - bash$ - - chmod u+x buglist bugs - -

There are a suite of Unix utilities for querying Bugzilla from the + command line. They live in the + contrib/cmdline + directory. However, they + have not yet been updated to work with 2.16 (post-templatisation.). + There are three files - query.conf, + buglist and 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 Next

5.7.1. What to Edit

5.7.1. What to Edit

There 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. +

5.7.2. Particular Templates

5.7.2. Particular Templates

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">
+        
+ and then your comment.txt.tmpl had +

        BuildID: [% form.buildid %]
+        
+ then +

        BuildID: 20020303
+        
+ would appear in the initial checkin comment. +

MySQL Bugzilla Database Introduction
B.3. MySQL Permissions & Grant Tables
Next

B.2.1. Bugzilla Database Basics

B.2.1. Bugzilla Database Basics

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.

  • @@ -276,7 +247,7 @@ CLASS="section" >

    B.2.1.1. Bugzilla Database Tables

    B.2.1.1. Bugzilla Database Tables

    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: - From the command issued above, ou should have some + output that looks like this: +
    +-------------------+ | Tables in bugs |
    -        +-------------------+ | attachments | | bugs | | bugs_activity | | cc
    -        | | components | | dependencies | | fielddefs | | groups | |
    -        keyworddefs | | keywords | | logincookies | | longdescs | |
    -        milestones | | namedqueries | | products | | profiles | |
    -        profiles_activity | | shadowlog | | tokens | | versions | | votes | |
    -        watch | +-------------------+
    +-------------------+ +| Tables in bugs | ++-------------------+ +| attachments | +| bugs | +| bugs_activity | +| cc | +| components | +| dependencies | +| fielddefs | +| groups | +| keyworddefs | +| keywords | +| logincookies | +| longdescs | +| milestones | +| namedqueries | +| products | +| profiles | +| profiles_activity | +| shadowlog | +| tokens | +| versions | +| votes | +| watch | ++-------------------+ +
    -

    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/


    +  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?
    +

    NextMySQL Permissions & Grant TablesUseful Patches and Utilities for Bugzilla

    4.2.1. Dependency Charts

    4.2.1. Dependency Charts

    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...

    1. A complete file path to the command 'dot' (part of + GraphViz) + will generate the graphs locally +

    2. A URL prefix pointing to an installation of the webdot package will + generate the graphs remotely +

    3. 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. +

    4.2.2. Bug Graphs

    4.2.2. Bug Graphs

    As long as you installed the GD and Graph::Base Perl modules you might as well turn on the nifty Bugzilla bug reporting graphs.

    4.2.3. The Whining Cron

    4.2.3. The Whining Cron

    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.

    4.2.5. Preventing untrusted Bugzilla content from executing malicious + Javascript code

    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".

    4.2.6. .htaccess + files and security

    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. +

    4.2.7. mod_throttle + + and Security

    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.

    3. Bugzilla Installation
    A.3.1. How do I download and install Bugzilla? -
    A.3.2. How do I install Bugzilla on Windows NT? -
    A.3.3. Is there an easy way to change the Bugzilla cookie name? -
    4. Bugzilla Security
    A.4.1. A.3.1. How do I completely disable MySQL security if it's giving me problems - (I've followed the instructions in the installation section of this guide!)? + (I've followed the instructions in the installation section of this guide)?
    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 problems with MySQL no longer working correctly. @@ -393,103 +335,103 @@ HREF="faq.html#AEN1931" >
    5. 4. Bugzilla Email
    A.5.1. A.4.1. I have a user who doesn't want to receive any more email from Bugzilla. How do I stop it entirely for this user?
    A.5.2. A.4.2. I'm evaluating/testing Bugzilla, and don't want it to send email to anyone but me. How do I do it?
    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?
    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?
    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?
    A.5.7. A.4.7. How come email from Bugzilla changes never reaches me?
    6. 5. Bugzilla Database
    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?
    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.5. I think I've set up MySQL permissions correctly, but bugzilla still can't +>A.5.5. I think I've set up MySQL permissions correctly, but Bugzilla still can't connect.
    A.6.6. A.5.6. How do I synchronize bug information among multiple different Bugzilla databases?
    7. 6. Bugzilla and Win32
    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?
    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.
    8. 7. Bugzilla Usage
    A.8.1. A.7.1. How do I change my user name (email address) in Bugzilla? +
    A.7.2. The query page is very confusing. Isn't there a simpler way to query?
    A.8.2. A.7.3. I'm confused by the behavior of the "accept" button in the Show Bug form. Why doesn't it assign the bug to me when I accept it?
    A.8.3. A.7.4. I can't upload anything into the database via the "Create Attachment" link. What am I doing wrong?
    A.8.4. A.7.5. Email submissions to Bugzilla that have attachments end up asking me to save it as a "cgi" file.
    A.8.5. A.7.6. How do I change a keyword in Bugzilla, once some bugs are using it?
    9. 8. Bugzilla Hacking
    A.9.1. A.8.1. What bugs are in Bugzilla right now?
    A.9.2. A.8.2. How can I change the default priority to a null value? For instance, have the default priority be "---" instead of "P2"?
    A.9.3. A.8.3. What's the best way to submit patches? What guidelines should I follow?

    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.5. Who maintains Bugzilla? @@ -837,7 +785,7 @@ CLASS="qandaentry" CLASS="question" >

    A.1.6. How does Bugzilla stack up against other bug-tracking databases? @@ -849,11 +797,9 @@ CLASS="answer" > - A year has gone by, and I still can't - find any head-to-head comparisons of Bugzilla against - other defect-tracking software. However, from my personal + We can't find any head-to-head comparisons of Bugzilla against + other defect-tracking software. If you know of one, please + get in touch. However, from the author's personal experience with other bug-trackers, Bugzilla offers superior performance on commodity hardware, better price (free!), more developer- friendly features (such as stored @@ -863,10 +809,9 @@ CLASS="answer"

    If you happen to be a commercial bug-tracker vendor, please - step forward with a rebuttal so I can include it in the - FAQ. We're not in pursuit of Bugzilla ueber alles; we - simply love having a powerful, open-source tool to get our - jobs done. + step forward with a list of advantages your product has over + Bugzilla. We'd be happy to include it in the "Competitors" + section.

    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.1.8. Why doesn't Bugzilla offer this or that feature or compatability with this other tracking software? @@ -937,11 +859,11 @@ CLASS="qandaentry" CLASS="question" >

    A.1.9. A.1.8. Why MySQL? I'm interested in seeing Bugzilla run on - Oracle/Sybase/Msql/PostgreSQL/MSSQL? + Oracle/Sybase/Msql/PostgreSQL/MSSQL.

    A.1.10. + Is there an easy way to change the Bugzilla cookie name? +

    + At present, no.

    A.2.1. - Is Bugzilla web-based or do you have to have specific software or - specific operating system on your machine? + Is Bugzilla web-based, or do you have to have specific software or + a specific operating system on your machine?

    A.2.3. Does Bugzilla allow the user to track multiple projects? @@ -1128,11 +1033,10 @@ CLASS="answer" > - Absolutely! You can track up to a "soft-limit" of around - 64 individual "Products", that can each be composed of as - many "Components" as you want. Check the Administration - section of the Bugzilla Guide for more information regarding - setting up Products and Components. + Absolutely! You can track any number of Products (although you + are limited to about 55 or so if + you are using Product-Based Groups), that can each be composed of any + number of Components.

    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.5. - Does Bugzilla allow attachments (text, screenshots, urls etc)? If yes, + Does Bugzilla allow attachments (text, screenshots, URLs etc)? If yes, are there any that are NOT allowed?

    A.2.6. Does Bugzilla allow us to define our own priorities and levels? Do we @@ -1227,30 +1131,8 @@ CLASS="qandaentry" CLASS="question" >

    A.2.7. - The index.html page doesn't show the footer. It's really annoying to have - to go to the querypage just to check my "my bugs" link. -

    If you upgrade to 2.16, the index page has a footer. -

    A.2.8. Does Bugzilla provide any reporting features, metrics, graphs, etc? You know, the type of stuff that management likes to see. :) @@ -1285,11 +1167,11 @@ CLASS="qandaentry" CLASS="question" >

    A.2.9. A.2.8. Is there email notification and if so, what do you see when you get an - email? Do you see bug number and title or is it only the number? + email?

    A.2.12. - If I just wanted to track certain bugs, as they go through life, can I - set it up to alert me via email whenever that bug changes, whether it be - owner, status or description etc.? -

    - 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. -

    A.2.17. - Can a user modify an existing report and then save it into another name? -

    - 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?

    A.2.23. A.2.18. What type of human resources are needed to be on staff to install and maintain Bugzilla? Specifically, what type of skills does the person need to @@ -1696,9 +1483,9 @@ CLASS="answer" > - If Bugzilla is set up correctly from the start, continuing maintenance needs - are minimal and can be completed by unskilled labor. Things like rotate - backup tapes and check log files for the word "error". + If Bugzilla is set up correctly from the start, continuing maintenance + needs + are minimal and can be completed by unskilled labor.

    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" >

    3. Bugzilla Installation

    3. Bugzilla Security

    - Check http://www.bugzilla.org/ for details. - Read the other parts of this Guide for installation instructions. -

    4. Bugzilla Security

    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" >

    5. Bugzilla Email

    4. Bugzilla Email

    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?

    6. Bugzilla Database

    5. Bugzilla Database

    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" >

    7. Bugzilla and Win32

    6. Bugzilla and Win32

    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" >

    8. Bugzilla Usage

    7. Bugzilla Usage

    A.8.3. A.7.4. I can't upload anything into the database via the "Create Attachment" link. What am I doing wrong? @@ -2600,8 +2331,8 @@ CLASS="qandaentry" CLASS="question" >

    A.8.4. A.7.5. Email submissions to Bugzilla that have attachments end up asking me to save it as a "cgi" file. @@ -2614,7 +2345,7 @@ CLASS="answer" > Yup. Just rename it once you download it, or save it under a different - filename. This will not be fixed anytime too soon, because it would + filename. This will not be fixed anytime soon, because it would cripple some other functionality.

    A.8.5. A.7.6. How do I change a keyword in Bugzilla, once some bugs are using it?

    9. Bugzilla Hacking

    8. Bugzilla Hacking

    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" >

    4.5.1. Modifying Your Running System

    4.5.1. Modifying Your Running System

    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.

    4.5.2. Upgrading From Previous Versions

    4.5.2. Upgrading From Previous Versions

    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.

    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.

    +
    
    -<Directory /usr/local/bugzilla/>
    +>
  <Directory /usr/local/bugzilla/>
       Options +FollowSymLinks +Indexes +Includes +ExecCGI
       AllowOverride All
     </Directory>
    -
    -        
    +

    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 - - .

    . +

    http://www.snert.com/Software/Throttle/ - - . Follow the instructions to install into your Apache install. +>. + Follow the instructions to install into your Apache install. This module only functions with the Apache web server! - - . You may use the + You may use the ThrottleClientIPModule Instructions - for more information.

    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 ascii
    5.5. Groups and Group Security

    Groups can be very useful in bugzilla, because they allow users +>Groups allow the administrator to isolate bugs or products that should only be seen by certain people. - Groups can also be a complicated minefield of interdependencies and - weirdness if mismanaged. -

    - - Groups only work if you enable the "usebuggroups" paramater. In - addition, if the "usebuggroupsentry" parameter is "On", one can - restrict access to products by groups, so that only members of a - product group are able to view bugs within that product. Group security - in Bugzilla can be divided into two categories: Generic and - Product-Based.

    Groups in Bugzilla are a complicated beast that evolved out of - very simple user permission bitmasks, apparently itself derived from - common concepts in UNIX access controls. A "bitmask" is a - fixed-length number whose value can describe one, and only one, set - of states. For instance, UNIX file permissions are assigned bitmask - values: "execute" has a value of 1, "write" has a value of 2, and - "read" has a value of 4. Add them together, and a file can be read, - written to, and executed if it has a bitmask of "7". (This is a - simplified example -- anybody who knows UNIX security knows there is - much more to it than this. Please bear with me for the purpose of - this note.) The only way a bitmask scheme can work is by doubling the - bit count for each value. Thus if UNIX wanted to offer another file - permission, the next would have to be a value of 8, then the next 16, - the next 32, etc.

    Product-Based Groups are matched with products, and allow you to restrict + access to bugs on a per-product basis. They are enabled using the + usebuggroups Param. Turning on the usebuggroupsentry + Param will mean bugs automatically get added to their product group when + filed. +

    Similarly, Bugzilla offers a bitmask to define group - permissions, with an internal limit of 64. Several are already - occupied by built-in permissions. The way around this limitation is - to avoid assigning groups to products if you have many products, - avoid bloating of group lists, and religiously prune irrelevant - groups. In reality, most installations of Bugzilla support far fewer - than 64 groups, so this limitation has not hit for most sites, but it - is on the table to be revised for Bugzilla 3.0 because it interferes - with the security schemes of some administrators.

    Generic Groups have no special relationship to products; + you create them, and put bugs in them + as required. One example of the use of Generic Groups + is Mozilla's "Security" group, + into which security-sensitive bugs are placed until fixed. Only the + Mozilla Security Team are members of this group. +

    To enable Generic Group Security ("usebuggroups"):

    To create Generic Groups:

    1. Turn "On" "usebuggroups" in the "Edit Parameters" - screen.

    2. You will generally have no groups set up. Select the "groups" +>Select the "groups" link in the footer.

    3. Take a moment to understand the instructions on the "Edit - Groups" screen. Once you feel confident you understand what is - expected of you, select the "Add Group" link.

    4. Fill out the "New Name" (remember, no spaces!), "New - Description", and "New User RegExp" fields. "New User RegExp" - allows you to automatically place all users who fulfill the Regular - Expression into the new group. -

    I created a group called DefaultGroup with a description - of - "This is simply a group to play with" - - , and a New User RegExp of - ".*@mydomain.tld" - - . This new group automatically includes all Bugzilla users with - "@mydomain.tld" at the end of their user id. When I finished, - my new group was assigned bit #128.

    To use Product-Based Groups:

  • - - When you have finished, select the Add button.

    1. To enable Product-Based Group Security - (usebuggroupsentry):

      Turn on "usebuggroups" and "usebuggroupsentry" in the "Edit + Parameters" screen.

      Don't forget that you only have 64 groups masks available, - total, for your installation of Bugzilla! If you plan on having more - than 50 products in your individual Bugzilla installation, and - require group security for your products, you should consider either - running multiple Bugzillas or using Generic Group Security instead of - Product-Based ("usebuggroupsentry") Group Security.

      XXX is this still true? + "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.

      1. Turn "On" "usebuggroups" and "usebuggroupsentry" in the "Edit - Parameters" screen.

        In future, when you create a Product, a matching group will be + automatically created. If you need to add a Product Group to + a Product which was created before you turned on usebuggroups, + then simply create a new group, as outlined above, with the + same name as the Product.

      "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.

      Bugzilla currently has a limit of 64 groups per installation. If + you have more than about 50 products, you should consider + running multiple Bugzillas. Ask in the newsgroup for other + suggestions for working around this restriction.

    2. 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. -

    Example 5-7. Bugzilla Groups

    Bugzilla Groups example ----------------------- For
    -      this example, let us suppose we have four groups, call them Group1,
    -      Group2, Group3, and Group4. We have 5 users, User1, User2, User3,
    -      User4, User5. We have 8 bugs, Bug1, ..., Bug8. Group membership is
    -      defined by this chart: (X denotes that user is in that group.) (I
    -      apologize for the nasty formatting of this table. Try viewing it in a
    -      text-based browser or something for now. -MPB) G G G G r r r r o o o
    -      o u u u u p p p p 1 2 3 4 +-+-+-+-+ User1|X| | | | +-+-+-+-+ User2|
    -      |X| | | +-+-+-+-+ User3|X| |X| | +-+-+-+-+ User4|X|X|X| | +-+-+-+-+
    -      User5| | | | | +-+-+-+-+ Bug restrictions are defined by this chart:
    -      (X denotes that bug is restricted to that group.) G G G G r r r r o o
    -      o o u u u u p p p p 1 2 3 4 +-+-+-+-+ Bug1| | | | | +-+-+-+-+ Bug2|
    -      |X| | | +-+-+-+-+ Bug3| | |X| | +-+-+-+-+ Bug4| | | |X| +-+-+-+-+
    -      Bug5|X|X| | | +-+-+-+-+ Bug6|X| |X| | +-+-+-+-+ Bug7|X|X|X| |
    -      +-+-+-+-+ Bug8|X|X|X|X| +-+-+-+-+ Who can see each bug? Bug1 has no
    -      group restrictions. Therefore, Bug1 can be seen by any user, whatever
    -      their group membership. This is going to be the only bug that User5
    -      can see, because User5 isn't in any groups. Bug2 can be seen by
    -      anyone in Group2, that is User2 and User4. Bug3 can be seen by anyone
    -      in Group3, that is User3 and User4. Bug4 can be seen by anyone in
    -      Group4. Nobody is in Group4, so none of these users can see Bug4.
    -      Bug5 can be seen by anyone who is in _both_ Group1 and Group2. This
    -      is only User4. User1 cannot see it because he is not in Group2, and
    -      User2 cannot see it because she is not in Group1. Bug6 can be seen by
    -      anyone who is in both Group1 and Group3. This would include User3 and
    -      User4. Similar to Bug5, User1 cannot see Bug6 because he is not in
    -      Group3. Bug7 can be seen by anyone who is in Group1, Group2, and
    -      Group3. This is only User4. All of the others are missing at least
    -      one of those group privileges, and thus cannot see the bug. Bug8 can
    -      be seen by anyone who is in Group1, Group2, Group3, and Group4. There
    -      is nobody in all four of these groups, so nobody can see Bug8. It
    -      doesn't matter that User4 is in Group1, Group2, and Group3, since he
    -      isn't in Group4.

    +> Note that group permissions are such that you need to be a member + of all the groups a bug is in, for whatever + reason, to see that bug.

    3.2.2. Quicksearch

    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" >

    3.2.5. Filing Bugs

    3.2.5. Filing Bugs

    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" >

    1. URL:*URL: A URL associated with the bug, if any.

    2. Status Whiteboard:*Status Whiteboard: (a.k.a. Whiteboard) A free-form text area for adding short notes and tags to a bug.

    3. 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" >

    4. 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" >

    5. 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" >

    6. Votes:*Votes: Whether this bug has any votes.

    7. 3.1.5. Filing Bugs Bug Writing Guidelines - - . While some of the advice is Mozilla-specific, the basic principles of +>. + While some of the advice is Mozilla-specific, the basic principles of reporting Reproducible, Specific bugs, isolating the Product you are using, the Version of the Product, the Component which failed, the Hardware Platform, and Operating System you were using at the time of diff --git a/docs/html/index.html b/docs/html/index.html index 417624abba..fc65513175 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -103,9 +103,9 @@ VALIGN="TOP" Changes are best submitted as plain text or SGML diffs, attached to a bug filed in bugzilla.mozilla.orgmozilla.org's Bugzilla.

      4.5. General Installation Notes
      4.6. Troubleshooting
      5.1. Post-Installation ChecklistBugzilla Configuration
      5.2.
      5.8. Upgrading to New Releases
      5.9. Integrating Bugzilla with Third-Party Tools
      MySQL Bugzilla Database Introduction
      B.3. MySQL Permissions & Grant Tables
    4-1. Changing the path to Perl
    4-2. Installing ActivePerl ppd Modules on Microsoft Windows
    4-3. 4-2. Installing OpenInteract ppd Modules manually on Microsoft Windows
    4-4. 4-3. Removing encrypt() for Windows NT Bugzilla version 2.12 or earlier
    5-1. Creating some Components
    5-2. Common Use of Versions
    5-3. A Different Use of Versions
    5-4. Using SortKey with Target Milestone
    5-5. When to Use Group Security
    5-6. Creating a New Group
    5-7. Bugzilla Groups
    4.1.1. Introduction
    4.1.2. Package List
    4.1.6. HTTP Server
    4.1.7. Bugzilla
    Securing MySQL
    4.1.11. Configuring Bugzilla
    4.2.1. Dependency Charts
    4.2.2. Bug Graphs
    4.2.3. The Whining Cron
    LDAP Authentication
    4.2.5. Preventing untrusted Bugzilla content from executing malicious + Javascript code
    4.2.6. .htaccess + files and security
    4.2.7. mod_throttle + + and Security
    4.5. General Installation Notes
    4.5.1. Modifying Your Running System
    4.5.2. Upgrading From Previous Versions
    4.5.3. .htaccess - - files and security
    4.5.4. mod_throttle - - and Security
    4.5.5. Preventing untrusted Bugzilla content from executing malicious - Javascript code
    4.6. Troubleshooting
    4.6.1. 4.5.1. DBD::Sponge::db prepare failed
    4.6.2. 4.5.2. cannot chdir(/var/spool/mqueue)
    Prev

    5.8. Integrating Bugzilla with Third-Party Tools

    5.9. Integrating Bugzilla with Third-Party ToolsPrevTemplate CustomisationUpgrading to New ReleasesNext

    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 NotesTroubleshootingPrevPrevMySQL Permissions & Grant TablesMySQL Bugzilla Database IntroductionNextusebuggroups: - 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.

  • NextUser AdministrationUpgrading to New Releases5.3. Product, Component, Milestone, and Version Administration
     

    Dear Lord, we have to get our users to do WHAT?

    5.3.1. Products

    Formerly, and in some spots still, called - "Programs"

    - 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 "products" from the footer

  • Select the "Add" link to the right of "Add a new - product".

    Select the "Add" link in the bottom right

  • 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.

    5.3.2. Components

    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. -

    1. Select the "Log out" link on the footer of the - page.

    2. Select the "New Account" link on the footer of the - "Relogin" page

    3. 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.

    4. Now select "Log in" again, type in your login - information, and you can modify the product to use the - Default Owner information you require.

    -

    +>Fill out the "Component" field, a short "Description", + the "Initial Owner" and "Initial QA Contact" (if enabled.) + The Component and Description fields may contain HTML; + the "Initial Owner" field must be a login name + already existing in the database.

  • 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.

  • 5.3.3. Versions

    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.

  • 5.3.4. Milestones

    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. -

  • 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.

  • 5.6. Bugzilla Security
     

    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: +

    1. 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.

    2. 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 : )

    3. 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

    4. 4.1.1. Introduction

      4.1.1. Introduction

      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" >

      4.1.2. Package List

      4.1.2. Package List

      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

    5. Text::Wrap +> Text::Wrap (v2001.0131)

    6. /var
      . On some Unix systems, this is part of a smaller root partition, - and may not have room for your bug database. If you decide to build - from sources you can easily set the dataDir as an option to - configure.

      + if you build MySQL from source yourself.

      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: -

      4.1.5.1. DBI

      4.1.5.1. DBI

      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" >

      4.1.5.2. Data::Dumper

      4.1.5.2. Data::Dumper

      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" >

      4.1.5.3. MySQL-related modules

      4.1.5.3. MySQL-related modules

      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" >

      4.1.5.4. TimeDate modules

      4.1.5.4. TimeDate modules

      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" >

      4.1.5.5. GD (optional)

      4.1.5.5. GD (optional)

      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" >

      4.1.5.6. Chart::Base (optional)

      4.1.5.6. Chart::Base (optional)

      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" >

      4.1.6. HTTP Server

      4.1.6. HTTP Server

      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:

      AllowOverride Limit allows the use of a Deny statement in the .htaccess file generated by checksetup.pl

      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.

      Users of older versions of Apache may find the above lines + in the srm.conf and access.conf files, respecitvely.

      .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

      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: +> /usr/bin/perl to match the location - of Perl on your machine.

      + of Perl on your machine.

      "localhost" - if the MySQL server is local

    7. "bugs" - if you're following these directions

    8. "bugs" - if you're following these directions

    9. "bugs" - - MySQL account (<bugs_password>) above

    10. @@ -1856,6 +1827,22 @@ TYPE="1" >

      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

      4.6.2. cannot chdir(/var/spool/mqueue)

      4.5.2. cannot chdir(/var/spool/mqueue)

      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

      5.2. User Administration

      User administration is one of the easiest parts of Bugzilla. - Keeping it from getting out of hand, however, can become a - challenge.

      5.2.1. Creating the Default User

      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): -

      Prev
      mysql> - - use bugs; - - 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

      1. Open the index.html page for your Bugzilla installation in - your browser window.

      2. Click the "Query Existing Bug Reports" link.

      3. Click the "Log In" link at the foot of the page.

      4. 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!

      5.2.2.2. Creating new users

      5.2.2.1. Creating new users

      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.

    11. After logging in, click the "Users" link at the footer of - the query page.

    12. 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.

    13. Click the "Add New User" link at the bottom of the user - list

    14. Fill out the form presented. This page is self-explanatory. - When done, click "submit".

      5.2.2.3. Disabling Users

      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. -

      5.2.2.2. Modifying Users

      Don't disable your own administrative account, or you will - hate life!

      To see a specific user, search for their login name + in the box provided on the "Edit Users" page. To see all users, + leave the box blank.

      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.

      man regexp
      + manual page for details on regular expression syntax.)

      5.2.2.4. Modifying Users

      Here I will attempt to describe the function of each option on - the Edit User screen.

      Once you have found your user, you can change the following + fields:

        5.2.2.4. Modifying Users

        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.

        +>: + This is generally the user's full email address. However, if you + have are using the emailsuffix Param, this may just be the user's + login name. Note that users can now change their login names + themselves (to any valid email address.)

      • Real Name - - : Duh!

        : The user's real name. Note that + Bugzilla does not require this to create an account.

      • Password - - : You can change the user password here. It is normal to only see - asterisks.

        : + You can change the user's password here. Users can automatically + request a new password, so you shouldn't need to do this often. + If you want to disable an account, see Disable Text below. +

      • 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.

        <groupname>: + If you have created some groups, e.g. "securitysensitive", then + checkboxes will appear here to allow you to add users to, or + remove them from, these groups. +

      • 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.

        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).

      • Editbugs - - : Unless a user has this bit set, they can only edit those bugs - for which they are the assignee or the reporter. -

        creategroups: + This option will allow a user to create and destroy groups in + Bugzilla.

      • 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.

      • +> 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, +>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.

        tweakparams: + This flag allows a user to change Bugzilla's Params + (using editparams.cgi.)

      • <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.

      PrevPost-Installation ChecklistBugzilla Configuration3.3.2. Email Settings
    functionality.

    URL: + http://www.perforce.com/perforce/technotes/note052.html + - - http://www.perforce.com/perforce/technotes/note052.html