Commits

Anonymous committed 183a9e2

Updated wiki pages and bumped version number.

Comments (0)

Files changed (43)

 # parameters for various rpm distributions
 rpm_distros = {
     'suse_options': { 'version_suffix': 'SuSE',
-                      'requires': """python >= 2.1
+                      'requires': """python >= 2.3
                         subversion >= 1.0.0
                         pysqlite >= 0.4.3
                         clearsilver >= 0.9.3
 """
 __docformat__ = 'epytext en'
 
-__version__ = '0.9.pre'
+__version__ = '0.9b1'
 __url__ = 'http://trac.edgewall.com/'
 __copyright__ = '(C) 2003-2005 Edgewall Software'
 __license__ = 'BSD'

wiki-default/CamelCase

+= !CamelCase =
 New words created by smashing together capitalized words.
 
-CamelCase is the original wiki convention for creating hyperlinks, with the additional requirement that the capitals are followed by a lower-case letter, hence AlabamA and ABc will not be links.
+CamelCase is the original wiki convention for creating hyperlinks, with the additional requirement that the capitals are followed by a lower-case letter; hence “AlabamA” and “ABc” will not be links.
 
-See also: WikiPageNames, WikiNewPage, WikiFormatting, TracWiki
+== More information on !CamelCase ==
 
-== More information on CamelCase ==
  * http://c2.com/cgi/wiki?WikiCase
- * http://en.wikipedia.org/wiki/CamelCase
+ * http://en.wikipedia.org/wiki/CamelCase
+
+----
+See also: WikiPageNames, WikiNewPage, WikiFormatting, TracWiki

wiki-default/TracAccessibility

 = Accessibility Support in Trac =
+
 Not every user has a graphic environment with a mouse or other pointing device. Some users rely on keyboard, alternative keyboard or voice input to navigate links, activate form controls, etc. In Trac, we work to assure users may interact with devices other than a pointing device.
 
-Trac supports accessibility keys for the most common operations.
+Trac supports accessibility keys for the most common operations. On Windows and Linux platforms, press any of the keys listed below in combination with the `<Ctrl>` key; on a Mac, use the `<alt>` key instead.
 
-== Accessibility Keys ==
- * 1 - WikiStart
- * 2 - Timeline
- * 3 - Roadmap
- * 4 - Search
- * 5 - TracFaq
- * 6 - TracGuide / Documentation
- * 7 - New Ticket
- * 9 - About Trac
- * 0 - TracAccessibility 
+== Global Access Keys ==
+
+ * `1` - WikiStart
+ * `2` - [wiki:TracTimeline Timeline]
+ * `3` - [wiki:TracRoadmap Roadmap]
+ * `4` - [wiki:TracSearch Search]
+ * `5` - TracFaq
+ * `6` - TracGuide / Documentation
+ * `7` - [wiki:TracTickets New Ticket]
+ * `9` - About Trac
+ * `0` - TracAccessibility 
 
 ----
 See also: TracGuide

wiki-default/TracAdmin

 
 == Usage ==
 
+You can get a comprehensive list of the available options, commands and sub-commands by invoking `trac-admin` with the `help` command:
 {{{
-Usage: trac-admin </path/to/projenv> [command [subcommand] [option ...]]
+trac-admin help
+}}}
 
-Invoking trac-admin without command starts interactive mode.
-
-about                                             -- Shows information about trac-admin                    
-help                                              -- Show documentation                                    
-initenv                                           -- Create and initialize a new environment interactively 
-initenv <projectname> <repospath> <templatepath>  -- Create and initialize a new environment from arguments
-hotcopy <backupdir>                               -- Make a hot backup copy of an environment.             
-resync                                            -- Re-synchronize trac with the repository               
-upgrade                                           -- Upgrade database to current version.                  
-wiki list                                         -- List wiki pages                                       
-wiki export <page> [file]                         -- Export wiki page to file or stdout                    
-wiki import <page> [file]                         -- Import wiki page from file or stdin                   
-wiki dump <directory>                             -- Export all wiki pages to files named by title         
-wiki load <directory>                             -- Import all wiki pages from directory                  
-wiki upgrade                                      -- Upgrade default wiki pages to current version         
-permission list                                   -- List permission rules                                 
-permission add <user> <action> [action] [...]     -- Add a new permission rule                             
-permission remove <user> <action> [action] [...]  -- Remove permission rule                                
-component list                                    -- Show available components                             
-component add <name> <owner>                      -- Add a new component                                   
-component rename <name> <newname>                 -- Rename a component                                    
-component remove <name>                           -- Remove/uninstall component                            
-component chown <name> <owner>                    -- Change component ownership                            
-priority list                                     -- Show possible ticket priorities                       
-priority add <value>                              -- Add a priority value option                           
-priority change <value> <newvalue>                -- Change a priority value                               
-priority remove <value>                           -- Remove priority value                                 
-severity list                                     -- Show possible ticket priorities                       
-severity add <value>                              -- Add a severity value option                           
-severity change <value> <newvalue>                -- Change a severity value                               
-severity remove <value>                           -- Remove severity value                                 
-version list                                      -- Show versions                                         
-version add <name> [time]                         -- Add version                                           
-version rename <name> <newname>                   -- Rename version                                        
-version time <name> <time>                        -- Set version date (Format: "Jun 3, 2003")              
-version remove <name>                             -- Remove version                                        
-milestone list                                    -- Show milestones                                       
-milestone add <name> [time]                       -- Add milestone                                         
-milestone rename <name> <newname>                 -- Rename milestone                                      
-milestone time <name> <time>                      -- Set milestone date (Format: "Jun 3, 2003")            
-milestone remove <name>                           -- Remove milestone                                      
+Unless you're executing the `help`, `about` or `version` sub-commands, you'll need to specify the path to the TracEnvironment that you want to administer as the first argument, for example:
+{{{
+trac-admin /path/to/projenv wiki list
 }}}
 
 == Interactive Mode ==
 
-When passed the database filename as only argument, '''trac-admin''' starts in interactive mode.
-Commands can then be executed on the selected database using the prompt, which offers tab-completion
-(on non-Windows environments) and automatic repetition of the last command issued.
+When pass the environment path as only argument, `trac-admin` starts in interactive mode.
+Commands can then be executed on the selected environment using the prompt, which offers tab-completion
+(on non-Windows environments, and when the Python `readline` module is available) and automatic repetition of the last command issued.
 
-== A Note on Configuration ==
-For configuration of the Trac environment, Trac 0.7 introduced a new storage format, including a separate config file used for settings. See TracIni for details.
+Once you're in interactive mode, you can also get help on specific commands or subsets of commands:
 
+For example, to get an explanation of the `resync` command, run:
+{{{
+> help resync
+}}}
+
+To get help on a all the Wiki-related commands, run:
+{{{
+> help wiki
+}}}
 
 ----
-See Also: TracGuide, TracBackup, TracPermissions. TracEnvironment, TracIni
+See Also: TracGuide, TracBackup, TracPermissions. TracEnvironment, TracIni

wiki-default/TracBackup

 = Trac Backup =
-Since Trac uses a database backend, it requires some extra care to safely create a backup of a TracEnvironment. Luckily, TracAdmin has a command to make backups easier - '''hotcopy'''.
+[[TracGuideToc]]
 
-'''Note:''' Trac uses the ''hotcopy'' nomenclature to match that of [http://subversion.tigris.org/ Subversion], to make it easier to remember when managing both Trac and Subversion servers.
+Since Trac uses a database backend, some extra care is required to safely create a backup of a [wiki:TracEnvironment project environment]. Luckily, [wiki:TracAdmin trac-admin] has a command to make backups easier: `hotcopy`.
+
+  ''Note: Trac uses the `hotcopy` nomenclature to match that of [http://subversion.tigris.org/ Subversion], to make it easier to remember when managing both Trac and Subversion servers.''
 
 == Creating a Backup ==
+
 To create a backup of a live TracEnvironment, simply run:
 {{{
-  $ trac-admin /some/where/mytracenv hotcopy /my/vault/mytracenv-backup
+  $ trac-admin /path/to/projenv hotcopy /path/to/backupdir
 }}}
 
-'''Note:''' TracAdmin will lock the database while copying.
+[wiki:TracAdmin trac-admin] will lock the database while copying.''
 
-The resulting backup copy is safe to handle using standard file-based backup tools like tar or dump/restore.
-
+The resulting backup directory is safe to handle using standard file-based backup tools like `tar` or `dump`/`restore`.
 
 === Restoring a Backup ===
-Backups are simply a copied snapshot of the entire TracEnvironment directory structure, including the SQLite database. 
 
-To restore an environment from a backup, simply shut down your Trac service (Web server or tracd), restore the directory structure from backup and restart the service.
+Backups are simply a copied snapshot of the entire [wiki:TracEnvironment project environment] directory, including the SQLite database. 
+
+To restore an environment from a backup, simply stop the process running Trac (i.e. the Web server or [wiki:TracStandalone tracd]), restore the directory structure from the backup and restart the service.
+
+  ''Note: Automatic backup of environments that don't use SQLite as database backend is not supported at this time. As a workaround, we recommend that you stop the server, copy the environment directory, and make a backup of the database using whatever mechanism is provided by the database system.''
 
 ----
-See also: TracAdmin, TracGuide
+See also: TracAdmin, TracEnvironment, TracGuide

wiki-default/TracBrowser

 and specific revisions of files stored in a subversion repository.
 
 Directory entries are displayed in a list with sortable columns. The list 
-entries can be sorted by '''name''', '''size''' or '''date''' by clicking on the column headers.
-The sort order can be reversed by clicking on a given column header again.
+entries can be sorted by ''name'', ''size'' or ''age'' by clicking on the column
+headers. The sort order can be reversed by clicking on a given column
+header again.
 
 The browser can be used to navigate through the directory structure 
-by clicking on the directory names. Clicking on filenames on the other 
-hand will display the files change log.
+by clicking on the directory names. Clicking on a file name will show
+the contents of the file. Clicking on the revision number of a file or
+directory will take you to the revision history for that file.
 
-It's also possible to browse directories as they were in history, at any given repository revision.
-
-The default behavior is to display the latest revision but
-another revision number can easily be selected using the form at the top of the
-page.
-
-'''Note:''' The browser does not use the Subversion access configuration so if you restrict read access to part of the repository in Subversion that same restriction will not be in place in the Trac browser. (Support for this functionality '''is''' being worked on for future Trac versions)
+It's also possible to browse directories or files as they were in history,
+at any given repository revision. The default behavior is to display the
+latest revision but another revision number can easily be selected using
+the ''View revision'' input field at the top of the page.
 
 == RSS Support ==
 
-The browser module supports RSS syndication to monitor changes to a file. To subscribe to an RSS feed of the revision log for a file, open its revision log in the browser and click the orange 'XML' icon at the bottom of the page. For more information on RSS support in Trac, see TracRss.
+The browser module provided RSS feeds to monitor changes to a file or
+directory. To subscribe to an RSS feed for a file or directory, open its
+revision log in the browser and click the orange 'XML' icon at the bottom
+of the page. For more information on RSS support in Trac, see TracRss.
 
 ----
-See also: TracGuide, TracChangeset
+See also: TracGuide, TracChangeset, FineGrainedPermissions

wiki-default/TracCgi

+= Installing Trac as CGI =
+
+To install Trac as a CGI script, you need to make the `trac.cgi` executable as a CGI by your web server. If you're using [http://httpd.apache.org/ Apache HTTPD], there are a couple ways to do that:
+
+ 1. Use a `ScriptAlias` to map an URL to the `trac.cgi` script
+ 2. Copy the `trac.cgi` file into the directory for CGI executables used by your web server (commonly named `cgi-bin`). You can also create a symbolic link, but in that case make sure that the `FollowSymLinks` option is enabled for the `cgi-bin` directory.
+
+The first option is recommended as it also allows you to map the CGI to a friendly URL.
+
+Now, edit the Apache configuration file and add this snippet, file names and locations changed to match your installation:
+{{{
+ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
+
+# Trac need to know where the database is located
+<Location "/trac">
+  SetEnv TRAC_ENV "/path/to/projectenv"
+</Location>
+}}}
+
+This will make Trac available at `http://yourhost.example.org/trac`.
+
+ ''Note: Make sure that the modules mod_alias and mod_env modules are available and enabled in your Apache configuration, otherwise Apache will complain about the above snippet.''
+
+ ''Note: If you are using the [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature see [http://projects.edgewall.com/trac/wiki/ApacheSuexec ApacheSuexec] (on the main Trac site).''
+
+== Mapping Static Resources ==
+
+Out of the box, Trac will serve static resources such as style sheets or images itself. For a CGI setup, though, this is highly undesirable, because it results in the CGI script being invoked for documents that could be more efficiently served by the web server.
+
+Web servers such as [http://httpd.apache.org/ Apache HTTPD] allow you to create “Aliases” to resources, thereby giving them a virtual URL that doesn't necessarily bear any resemblance to the layout of the servers file system. We already used this capability above when defining a `ScriptAlias` for the CGI script, and we'll use it now to map requests to the static resources to the directory on the file system that contains them, thereby bypassing the processing of such requests by the CGI script.
+
+Edit the Apache configuration file again and add the following snippet '''before''' the `ScriptAlias` for the CGI script , file names and locations changed to match your installation:
+{{{
+Alias /trac/chrome/common /usr/share/trac/htdocs
+<Directory "/usr/share/trac/htdocs">
+  Order allow,deny
+  Allow from all
+</Directory>
+}}}
+
+Note that whatever URL path you mapped the `trac.cgi` script to, the path `/chrome/common` is the path you have to append to that location to intercept requests to the static resources.
+
+For example, if Trac is mapped to `/cgi-bin/trac.cgi` on your server, the URL of the Alias should be `/cgi-bin/trac.cgi/chrome/common`.
+
+== Adding Authentication ==
+
+The simplest way to enable authentication with Apache is to create a password file. Use the `htpasswd` program to create the password file:
+{{{
+$ htpasswd -c /somewhere/trac.htpasswd admin
+New password: <type password>
+Re-type new password: <type password again>
+Adding password for user admin
+}}}
+
+After the first user, you dont need the "-c" option anymore:
+{{{
+$ htpasswd /somewhere/trac.htpasswd john
+New password: <type password>
+Re-type new password: <type password again>
+Adding password for user john
+}}}
+
+  ''See the man page for `htpasswd` for full documentation.''
+
+After you've created the users, you can set their permissions using TracPermissions.
+
+Now, you'll need to enable authentication against the password file in the Apache configuration:
+{{{
+<Location "/cgi-bin/trac.cgi/login">
+  AuthType Basic
+  AuthName "Trac"
+  AuthUserFile /somewhere/trac.htpasswd
+  Require valid-user
+</Location>
+}}}
+
+For better security, it is recommended that you either enable SSL or at least use the “Digest” authentication scheme instead of “Basic”. Please read the [http://httpd.apache.org/docs/2.0/ Apache HTTPD documentation] to find out more.
+
+----
+See also:  TracGuide, TracInstall, TracFastCgi, TracModPython

wiki-default/TracChangeset

 = Trac Changeset Module =
 [[TracGuideToc]]
 
-Trac has a built-in functionality for visualizing diffs - changes to files.
+Trac has a built-in functionality for visualizing diffs - changes to files.
 
-== The Changeset View ==
+When viewing a repository check-in, such as when following a
+changeset [wiki:TracLinks link] or a changeset event in the 
+[wiki:TracTimeline timeline], Trac will display the exact changes
+made by the check-in.
 
-When viewing a commited changeset, such as when clicking a changeset
-[wiki:TracLinks TracLink] or a changeset event-line in the 
-[wiki:TracTimeline timeline], Trac will display what changes this current set of patches imposes.
+The changeset view consists of two parts, the ''header'' and the ''diff views''.
 
-The changeset view consists of two parts, the '''header''' and the '''diff view'''.
-
-=== Changeset Header ===
+== Changeset Header ==
 
 The header shows an overview of the whole changeset.
 Here you will find information such as:
  * Green: Added
  * Red: Removed
  * Yellow: Modified
+ * Blue: Copied
+ * Gray: Moved
 
 The color legend is located below the header as a reminder.
 
-=== Diff View ===
+== Diff Views ==
 
 Below the header is the main part of the changeset, the diff view. Each file is shown in a separate section, each of which will contain only the regions of the file that are affected by the changeset. There are two different styles of displaying the diffs: ''inline'' or ''side-by-side'' (you can switch between those styles using the preferences form):
 
- * The ''inline'' style shows the changed regions of a file underneath eachother. A region removed from the file will be colored red, an added region will be colored green. If a region was modified, the old version is displayed above the new version. Line numbers on the left side indicate the exact position of the change in both the old and the new version of the file.
- * The ''side-by-side'' style shows the old version of the left and the new version on the right (this will typically require more screen width than the inline style.) Added and removed regions will be colored in the same way as with the inline style (green and red, respectively), but modified regions will have a yellow background.
+ * The ''inline'' style shows the changed regions of a file underneath each other. A region removed from the file will be colored red, an added region will be colored green. If a region was modified, the old version is displayed above the new version. Line numbers on the left side indicate the exact position of the change in both the old and the new version of the file.
+ * The ''side-by-side'' style shows the old version on the left and the new version on the right (this will typically require more screen width than the inline style.) Added and removed regions will be colored in the same way as with the inline style (green and red, respectively), but modified regions will have a yellow background.
 
 In addition, various advanced options are available in the preferences form for adjusting the display of the diffs:
  * You can set how many lines are displayed before and after every change

wiki-default/TracEnvironment

 = Trac Storage - The Environment =
-Trac uses a directory structure and an embedded [http://www.sqlite.org/ SQLite] database as storage.
+
+Trac uses a directory structure and a database for storing project data.
 
 == Creating an Environment ==
-A new Trac environment is created using [wiki:TracAdmin trac-admin], like:
 
+A new Trac environment is created using [wiki:TracAdmin trac-admin]:
 {{{
 $ trac-admin /path/to/projectenv initenv
 }}}
 
-[wiki:TracAdmin trac-admin] will ask you where your subversion repository is located and
-where it can find the trac templates directory (the default value should work for a typical install).
+[wiki:TracAdmin trac-admin] will ask you for the name of the project, the
+database connection string (explained below), and where your subversion
+repository is located.
 
-'''Note:''' The web server user will require file system write permission to the environment
-directory and all the files inside. '''Remember to set the appropriate permissions.''
+  ''Note: The web server user will require file system write permission to
+the environment directory and all the files inside. Please remember to set
+the appropriate permissions. The same applies to the Subversion
+repository, although Trac will only require read access as long as you're
+not using the BDB file system.''
 
-The same applies for the subversion repository files (unless using the [http://svn.collab.net/repos/svn/trunk/notes/fsfs FSFS Subversion backend], something we highly recommend. 
+== Database Connection Strings ==
 
+Since version 0.9, Trac supports both [http://sqlite.org/ SQLite] and
+[http://www.postgresql.org/ PostgreSQL] as database backends.  The default
+is to use SQLite, which is probably sufficient for most projects. The database file
+is then stored in the environment directory, and can easily be
+[wiki:TracBackup backed up] together with the rest of the environment.
 
+The connection string for an embedded SQLite database is:
+{{{
+sqlite:db/trac.db
+}}}
+
+If you want to use PostgreSQL instead, you'll have to use a different
+connection string. For example, to connect to a database on the same
+machine called `trac`, that allows access to the user `johndoe` with
+the password `letmein`, use:
+{{{
+postgres://johndoe:letmein@localhost/trac
+}}}
+
+If PostgreSQL is running on a non-standard port (for example 9431), use:
+{{{
+postgres://johndoe:letmein@localhost:9342/trac
+}}}
+
+Note that with PostgreSQL you will have to create the database before running
+`trac-admin initenv`.
 
 == Directory Structure ==
-{{{
- EnvDir
-   |-- README
-   |-- VERSION
-   |-- attachments
-   |   |-- ticket
-   |   `-- wiki
-   |-- conf
-   |   `-- trac.ini
-   |-- db
-   |   `-- trac.db
-   |-- log
-   |   `-- trac.log
-   |-- templates
-   |   |-- site_css.cs
-   |   |-- site_footer.cs
-   |   `-- site_header.cs
-   `-- wiki-macros
-}}}
 
- * '''README''' - Brief description of the environment.
- * '''VERSION''' - Contains the environment version identifier.
- * '''attachments''' - All attached files go in here.
-   * '''ticket''' - Ticket attachments.
-   * '''wiki''' - Wiki attachments.
- * '''conf'''
-   * '''trac.ini''' - Main configuration file. See TracIni.
- * '''db'''
-   * '''trac.db''' - SQLite database.
- * '''templates''' - Custom (environment-specific) templates.
-   * '''site_css.cs''' - Custom CSS stylesheet.
-   * '''site_footer.cs''' - Custom footer.
-   * '''site_header.cs''' - Custom header.
- * '''wiki-macros''' - Environment-specific WikiMacros.
+An environment directory will usually consist of the following files and directories:
+
+ * `README` - Brief description of the environment.
+ * `VERSION` - Contains the environment version identifier.
+ * `attachments` - Attachments to wiki pages and tickets are stored here.
+ * `conf`
+   * `trac.ini` - Main configuration file. See TracIni.
+ * `db`
+   * `trac.db` - The SQLite database (if you're using SQLite).
+ * `plugins` - Environment-specific [wiki:TracPlugins plugins] (Python eggs)
+ * `templates` - Custom environment-specific templates.
+   * `site_css.cs` - Custom CSS rules.
+   * `site_footer.cs` - Custom page footer.
+   * `site_header.cs` - Custom page header.
+ * `wiki-macros` - Environment-specific [wiki:WikiMacros Wiki macros].
 
 ----
-See also: TracBackup, TracIni, TracGuide
+See also: TracAdmin, TracBackup, TracIni, TracGuide

wiki-default/TracFastCgi

+= Trac with FastCGI =
+
+Since version 0.9, Trac supports being run through the [http://www.fastcgi.com/ FastCGI] interface. Like [wiki:TracModPython mod_python], this allows Trac to remain resident, and is faster than external CGI interfaces which must start a new process for each request. However, unlike mod_python, it is able to support [http://httpd.apache.org/docs/suexec.html SuEXEC]. Additionally, it is supported by much wider variety of web servers.
+
+== Simple Apache configuration ==
+{{{
+# Enable fastcgi for .fcgi files
+# (If you're using a distro package for mod_fcgi, something like
+# this is probably already present)
+<IfModule mod_fastcgi.c>
+   AddHandler fastcgi-script .fcgi
+   FastCgiIpcDir /var/lib/apache2/fastcgi 
+</IfModule>
+LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so
+}}}
+
+You can either setup the `TRAC_ENV` as an overall default:
+{{{
+FastCgiConfig -initial-env TRAC_ENV=/path/to/env/trac
+}}}
+
+Or you can serve multiple Trac projects in a directory like:
+{{{
+FastCgiConfig -initial-env TRAC_ENV_PARENT_DIR=/parent/dir/of/projects
+}}}
+
+Configure `ScriptAlias` or similar options as described in TracCgi, but calling `trac.fcgi` instead of `trac.cgi`.
+
+== Simple Lighttpd Configuration ==
+
+The FastCGI front-end was developed primarily for use with alternative webservers, such as [http://www.lighttpd.net/ lighttpd].
+
+lighttpd a secure, fast, compliant and very flexible web-server which has been optimized for high-performance
+environments.  It has a very low memory footprint compared to other web servers and takes care of CPU load.
+
+For using `trac.fcgi` with lighttpd add the following to your lighttpd.conf:
+{{{
+fastcgi.server = ("/trac" =>
+                   ("trac" =>
+                     ("socket" => "/tmp/trac-fastcgi.sock",
+                      "bin-path" => "/path/to/cgi-bin/trac.fcgi",
+                      "bin-environment" =>
+                        ("TRAC_ENV" => "/path/to/projenv")
+                     )
+                   )
+                 )
+}}}
+
+Note that you will need to add a new entry to `fastcgi.server` for each separate Trac instance that you wish to run. Alternatively, you may use the `TRAC_ENV_PARENT_DIR` variable instead of `TRAC_ENV` as described  above.
+
+Relaunch lighttpd, and browse to `http://yourhost.example.org/trac` to access Trac.
+
+----
+See also TracCgi, TracModPython, TracInstall, TracGuide

wiki-default/TracGuide

  * TracGuide (This page)  -- Documentation starting point.
    * TracInstall -- How to install and run Trac.
    * TracUpgrade -- How to upgrade existing installations.
-   * TracMultipleProjects -- Multiple projects on a single host.
    * TracAdmin -- Administrating a Trac project.
    * TracImport -- Importing tickets from other bug databases.
    * TracIni -- Trac configuration file reference. 
    * TracPermissions -- Access control and permissions.
+   * TracPlugins -- Installing and managing Trac extensions.
    * TracWiki -- How to use the built-in Wiki.
    * TracBrowser -- Browsing source code with Trac.
    * TracChangeset -- Viewing changes to source code.
 == Support and Other Sources of Information ==
 If you are looking for a good place to ask a question about Trac, look no further than the [http://projects.edgewall.com/trac/wiki/MailingList MailingList]. It provides a friendly environment to discuss openly among Trac users and developers.
 
-See also the TracSupport page for more information resources.
-
-If you are interested in commercial support, please [http://www.edgewall.com/contact/ contact Edgewall Software].
+See also the TracSupport page for more information resources.

wiki-default/TracImport

 
 == Bugzilla ==
 
-Ticket data can be imported from Bugzilla using the bugzilla2trac.py script, available in the contrib/ directory of the Trac distribution.
+Ticket data can be imported from Bugzilla using the [source:trunk/contrib/bugzilla2trac.py bugzilla2trac.py] script, available in the contrib/ directory of the Trac distribution.
 
 {{{
 $ bugzilla2trac.py
 
 == Sourceforge ==
 
-Ticket data can be imported from Sourceforge using the sourceforge2trac.py script, available in the contrib/ directory of the Trac distribution.
+Ticket data can be imported from Sourceforge using the [source:http://projects.edgewall.com/trac/file/trunk/contrib/sourceforge2trac.py sourceforge2trac.py] script, available in the contrib/ directory of the Trac distribution.
+
+== Mantis ==
+
+Mantis bugs can be imported using the attached script.  
+Currently, the following data is imported from Mantis:
+  * bugs
+  * bug comments
+  * bug activity (field changes)
+
+Attachments are NOT imported.  If you use the script, please read the NOTES section (at the top of the file) and make sure you adjust the config parameters for your environment.
+
+mantis2trac.py has the same parameters as the bugzilla2trac.py script:
+{{{
+mantis2trac - Imports a bug database from Mantis into Trac.
+
+Usage: mantis2trac.py [options]
+
+Available Options:
+  --db <MySQL dbname>              - Mantis database
+  --tracenv /path/to/trac/env      - Full path to Trac db environment
+  -h | --host <MySQL hostname>     - Mantis DNS host name
+  -u | --user <MySQL username>     - Effective Mantis database user
+  -p | --passwd <MySQL password>   - Mantis database user password
+  -c | --clean                     - Remove current Trac tickets before importing
+  --help | help                    - This help info
+
+Additional configuration options can be defined directly in the script.
+}}} 

wiki-default/TracIni

 
 This is a brief reference of available configuration options.
 
+== [trac] ==
+|| database        || Database connection string for this project ||
+|| default_charset || Charset used in text files in the subversion repository (default is `iso-8859-15`) ||
+|| default_handler || Name of the component that handles requests to the base URL (default is `WikiHandler`) ||
+|| repository_dir  || Path to local Subversion repository ||
+|| authz_file      || Path to Subversion [http://svnbook.red-bean.com/en/1.1/ch06s04.html#svn-ch-6-sect-4.4.2 authorization (authz) file]. ||
+|| check_auth_ip || Whether the IP address of the user should be checked for authentication (true, false) ||
+|| ignore_auth_case || Whether case should be ignored for login names (true, false) ||
+|| templates_dir   || Path to the !ClearSilver templates ||
+
 == [project] ==
 || name   || Project name ||
 || descr  || Short project description ||
 || icon   || URL to icon file to use as shortcut icon (favicon) ||
 || footer || Page footer text (right-aligned) ||
 
-== [trac] ==
-|| repository_dir  || Path to local Subversion repository ||
-|| htdocs_location || Base URL for static Trac graphics and CSS files ||
-|| database        || Database to use for this project ||
-|| templates_dir   || Path of Clearsilver templates ||
-|| default_charset || Source files uses this charset ||
+== [header_logo] ==
+|| src    || URL to image to use as header logo ||
+|| link   || Destination URL to link to from header logo ||
+|| alt    || ''alt'' text for header logo ||
+|| width  || Header logo width in pixels ||
+|| height || Header logo height in pixels ||
 
 == [logging] ==
 || log_type  || Logging facility to use. (none, file, stderr, syslog, winlog) ||
 || log_file  || If ''log_type'' is ''file'', this should be a path to the log-file ||
 || log_level || Level of verbosity in log (CRITICAL, ERROR, WARN, INFO, DEBUG) ||
+See also: TracLogging
 
-See also: TracLogging
+== [attachment] ==
+|| max_size || Maximum allowed file size for ticket and wiki attachments ||
+
+== [notification] ==
+|| smtp_enabled   || Enable SMTP (email) notification (true, false) ||
+|| smtp_server    || SMTP server to use for email notifications ||
+|| smtp_user      || (''requires [milestone:0.9 0.9]'') Username for SMTP server ||
+|| smtp_password  || (''requires [milestone:0.9 0.9]'') Password for SMTP server ||
+|| smtp_from      || Sender address to use in notification emails ||
+|| smtp_replyto   || Reply-To address to use in notification emails ||
+|| smtp_always_cc || Email address(es) to always send notifications to ||
+|| always_notify_reporter || Always send notifications to any address in the ''reporter'' field ||
+|| always_notify_owner || (''requires [milestone:0.9 0.9]'') Always send notifications to the ticketowner  ||
+See also: TracNotification
+
+== [mimeviewer] ==
+|| enscript_path || Path to the Enscript program ||
+|| php_path || Path to the PHP program ||
+|| max_preview_size || Maximum file size for HTML preview ||
+|| tab_width || Displayed tab width in file preview ||
 
 == [ticket] ==
 || default_version   || Default version for newly created tickets ||
 || default_priority  || Default priority for newly created tickets ||
 || default_milestone || Default milestone for newly created tickets ||
 || default_component || Default component for newly created tickets ||
+|| restrict_owner    || Optionally allow the owner field of tickets to use a drop-down menu (<select>) ||
 
-See also: TracTicketsCustomFields
-
-== [attachment] ==
-|| max_size || Maximum allowed file size for ticket and wiki attachments ||
-
-== [notification] ==
-|| smtp_enabled   || Enable SMTP (email) notification (true, false) ||
-|| smtp_server    || SMTP server to use for email notifications ||
-|| smtp_from      || Sender address to use in notification emails ||
-|| smtp_replyto   || Reply-To address to use in notification emails ||
-|| smtp_always_cc || Email address(es) to always send notifications to ||
-|| always_notify_reporter || Always send notifications to any address in the ''reporter'' field ||
-
-See also: TracNotification
-
-== [header_logo] ==
-|| src    || URL to image to use as header logo ||
-|| link   || Destination URL to link to from header logo ||
-|| alt    || ''alt'' text for header logo ||
-|| width  || Header logo width in pixels ||
-|| height || Header logo height in pixels ||
-
-== [mimeviewer] ==
-|| enscript_path || Path to Enscript program ||
+== [ticket-custom] ==
+Creates user-defined ticket fields.
+See TracTicketsCustomFields.
 
 == [timeline] ==
 || changeset_show_files || Number of files to show (-1 for unlimited, 0 to disable) ||
+|| default_daysback || (''requires [milestone:0.9 0.9]'') Default "depth" of the Timeline, in days ||
 
-== [diff] ==
-|| tab_width || Displayed tab width in changeset diffs ||
+== [browser] ==
+|| hide_properties || List of Subversion properties to hide from the repository browser and changesets ||
 
-[[BR]]
+== [wiki] ==
+|| ignore_missing_pages || enable/disable highlighting CamelCase links to missing pages ||
+
+== [disabled_components] ==
+You can disable any Trac component by listing its name in this section and assigning a truth value (e.g. ''yes''). See the ''Plugins'' page on ''About Trac'' to get the list of active components.
+
 ----
-See also: TracGuide, TracAdmin
+See also: TracGuide, TracAdmin, TracEnvironment

wiki-default/TracInstall

-= Trac Installation Guide =
+= Trac Installation Guide = 
 [[TracGuideToc]]
 
-The Trac web-based project management tool is implemented as a CGI- or standalone program. Trac is written in the [http://www.python.org/ Python] programming language
-and uses the [http://www.sqlite.org/ SQLite] embedded database for persistant storage. For HTML rendering, Trac uses the [http://www.clearsilver.net/ Clearsilver] template system.
+Trac is a lightweight project management tool that is implemented as a web-based application. Trac is written in the Python programming language and can use [http://sqlite.org/ SQLite] or [http://www.postgresql.org/ PostgreSQL] as  database. For HTML rendering, Trac uses the [http://www.clearsilver.net/ Clearsilver] templating system.
 
+What follows are generic instructions for installing and setting up Trac and its requirements. While you can find instructions for installing Trac on specific systems at [http://projects.edgewall.com/trac/wiki/TracInstallPlatforms TracInstallPlatforms] on the main Trac site, please be sure to first read through these general instructions to get a good understanding of the tasks involved.
 
 == Requirements ==
 
 To install Trac, the following software packages must be installed:
 
- * [http://www.python.org/ Python], version >= 2.1 (>=2.3 recommended).
-   * Please keep in mind, that for RPM-based systems you will also need python-devel and python-xml packages.
- * [http://subversion.tigris.org/ Subversion], version >= 1.0. (>=1.1 recommended)
- * [http://svnbook.red-bean.com/svnbook-1.1/ch08s02.html#svn-ch-8-sect-2.3 Subversion Python bindings] (Caveat: Trac uses the [http://www.swig.org/ SWIG] bindings included in the Subversion distribution,  '''not''' the  [http://pysvn.tigris.org/ PySVN] package!)
- * [http://www.sqlite.org/ SQLite], version 2.8.x or 3.0.x
- * [http://pysqlite.sf.net/ PySQLite], version >= 0.5 but < 1.1.0 (for SQLite 2.8.x), version >= 1.1.1 (for SQLite 3.0.x) 
- * [http://clearsilver.net/ Clearsilver], version >= 0.9.3
- * [http://docutils.sourceforge.net/ docutils], version >= 0.3.3 (??)
- * A CGI-capable web server (tested on [http://httpd.apache.org/ Apache] )
+ * [http://www.python.org/ Python], version >= 2.3.
+   * Python 2.4 is not supported on Windows since there are no Subversion bindings available for it.
+   * For RPM-based systems you might also need the `python-devel` and `python-xml` packages.
+ * [http://subversion.tigris.org/ Subversion], version >= 1.0. (>= 1.1 recommended) and corresponding [http://svnbook.red-bean.com/svnbook-1.1/ch08s02.html#svn-ch-8-sect-2.3 Python bindings]
+   * Trac uses the [http://www.swig.org/ SWIG] bindings included in the Subversion distribution, '''not''' [http://pysvn.tigris.org/ PySVN] (which is sometimes confused with the standard SWIG bindings).
+   * If Subversion was already installed without the SWIG bindings, you'll need to re-`configure` Subversion and `make swig-py`, `make install-swig-py`.
+ * [http://www.clearsilver.net/ ClearSilver], version >= 0.9.3
 
-=== Optional Packages ===
+=== For SQLite ===
 
- * [http://www.modpython.org/ mod_python] (see TracModPython)
+ * [http://www.sqlite.org/ SQLite], version 2.8.x or 3.x
+ * [http://pysqlite.org/ PySQLite]
+   * version 1.0.x (for SQLite 2.8.x)
+   * version 1.1.x or 2.x (for SQLite 3.x)
+
+''Note: Versions of Trac prior to [milestone:0.9] do '''not''' work with PySQLite 2.x.''
+
+=== For PostgreSQL ===
+
+ * [http://www.postgresql.org/ PostgreSQL]
+ * [http://initd.org/projects/psycopg1 psycopg1], [http://initd.org/projects/psycopg2 psycopg2], or [http://pypgsql.sourceforge.net/ pyPgSQL]
+
+=== Optional Requirements ===
+
+ * A CGI-capable web server (see TracCgi), or
+ * a [http://www.fastcgi.com/ FastCGI]-capable web server (see TracFastCgi), or
+ * [http://httpd.apache.org/ Apache] with [http://www.modpython.org/ mod_python 3.1.3+] (see TracModPython)
+ * [http://docutils.sourceforge.net/ docutils], version >= 0.3.3 for WikiRestructuredText.
+ * [http://peak.telecommunity.com/DevCenter/setuptools setuptools], version >= 0.5a13 for using plugins (see TracPlugins)
+
+'''Attention''': The various available versions of these dependencies are not necessarily interchangable, so please pay attention to the version numbers above. If you are having trouble getting Trac to work please double-check all the dependencies before asking for help on the MailingList or IrcChannel.
+
+Please refer to the documentation of these packages to find out how they are best installed. In addition, most of the [http://projects.edgewall.com/trac/wiki/TracInstallPlatforms platform-specific instructions] also describe the installation of the dependencies.
 
 == Installing Trac ==
-Like most Python programs, install the Trac python modules by running the following command at the top of the source directory:
+
+Like most Python programs, install the Trac Python package by running the following command at the top of the source directory:
 {{{
 $ python ./setup.py install
 }}}
 
-This will byte-compile the python source code and install it in the {{{site-packages}}} directory
-of your python installation. The directories {{{cgi-bin}}}, {{{templates}}}, {{{htdocs}}} and {{{wiki-default}}} are all copied to $prefix/share/trac/ . 
+''Note: you'll need root permissions or equivalent for this step.''
 
-The script will also install the [wiki:TracAdmin trac-admin] command-line tool, used to create and maintain [wiki:TracEnvironment project environments]. 
+This will byte-compile the python source code and install it in the `site-packages` directory
+of your Python installation. The directories `cgi-bin`, `templates`, `htdocs` and `wiki-default` are all copied to `$prefix/share/trac/.`
 
-The [wiki:TracAdmin trac-admin] program is the ''control center'' for Trac.
-
-'''Note:''' you'll need root permissions or equivalent for this step.
-
-For more information on installing Trac on specific platforms, see the [http://projects.edgewall.com/trac/wiki/TracInstallPlatforms TracInstallPlatforms] page (on the main project web site).
+The script will also install the [wiki:TracAdmin trac-admin] command-line tool, used to create and maintain [wiki:TracEnvironment project environments], as well as the [wiki:TracStandalone tracd] standalone server.
 
 === Advanced Users ===
-To install Trac in a custom location, and view other advanced install options, run:
+
+To install Trac to a custom location, or find out about other advanced installation options, run:
 {{{
 $ python ./setup.py --help
 }}}
 
+Specifically, you might be interested in:
+{{{
+$ python ./setup.py install --prefix=/path/you/want
+}}}
+
+
 == Creating a Project Environment ==
 
-TracEnvironment is the backend storage format where Trac stores
-information like wiki pages, tickets, reports, settings, etc.
-An environment consist of a directory containing an SQLite database, 
-human-readable configuration file, log-files and attachments.
+A [wiki:TracEnvironment Trac environment] is the backend storage where Trac stores information like wiki pages, tickets, reports, settings, etc. An environment is basically a directory that contains a human-readable configuration file and various other files and directories.
 
-A new Trac environment is created using [wiki:TracAdmin trac-admin], like:
-
+A new environment is created using [wiki:TracAdmin trac-admin]:
 {{{
-$ trac-admin /path/to/projectenv initenv
+$ svnadmin create --fs-type=fsfs /path/to/svn_project_env
+$ trac-admin /path/to/trac_project_env initenv
 }}}
 
-[wiki:TracAdmin trac-admin] will ask you where your subversion repository is located and
-where it can find the trac templates directory (the default value should work for a typical install).
+[wiki:TracAdmin trac-admin] will prompt you for the information it needs to create the environment, such as the name of the project, the database connection string, and so on.
 
-'''Note:''' The web server user will require file system write permission to the environment
-directory and all the files inside. '''Remember to set the appropriate permissions.''
+''Note: The user account under which the web server runs will require write permissions to the environment
+directory and all the files inside.''
 
-The same applies for the subversion repository files (unless using the [http://svn.collab.net/repos/svn/trunk/notes/fsfs FSFS Subversion backend], something we highly recommend. 
 
-== Configuring Apache ==
+== Running the Standalone Server ==
 
-Make "{{{trac/cgi-bin/trac.cgi}}}" accessible to your web server at {{{/cgi-bin/}}}, either by copying/symlinking or use the "{{{trac/cgi-bin/}}}" directory directly.
-
-Edit the apache config and add this snippet, filenames edited to match your installation:
- 
+After having created a Trac environment, you can easily try the web interface by running the standalone server [wiki:TracStandalone tracd]:
 {{{
-Alias /trac/ "/usr/share/trac/htdocs/" #or where you installed the trac htdocs
-#You have to allow people to read the files in htdocs
-<Directory "/usr/share/trac/htdocs">
-	Options Indexes MultiViews
-	AllowOverride None
-	Order allow,deny
-	Allow from all
-</Directory>
-
-
-# Trac need to know where the database is located
-<Location "/cgi-bin/trac.cgi">
-	SetEnv TRAC_ENV "/path/to/projectenv"
-</Location>
-
-# You need this to allow users to authenticate
-# trac.htpasswd can be created with 
-# cmd 'htpasswd -c trac.htpasswd' (UNIX)
-# do 'man htpasswd' to see all the options
-<Location "/cgi-bin/trac.cgi/login">
-	AuthType Basic
-	AuthName "trac"
-	AuthUserFile /somewhere/trac.htpasswd
-	Require valid-user
-</Location>
+$ tracd --port 8000 /path/to/projectenv
 }}}
 
-'''Note:''' If Apache complains about the Set''''''Env line make sure you have the Load''''''Module for mod_env uncommented (Apache 1.3).
+Then, fire up a browser and visit `http://localhost:8000/`. You should get a simple listing of all environments that tracd knows about. Follow the link to the environment you just created, and you should see Trac in action.
 
-'''Note:''' When creating a new environment, {{{trac-admin}}} will print a config snippet customized for your project.
 
-'''Note:''' If you are using [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature see [http://projects.edgewall.com/trac/wiki/ApacheSuexec ApacheSuexec] (on the project web site).
+== Running Trac on a Web Server ==
+
+Trac provides three options for connecting to a “real” web server: [wiki:TracCgi CGI], [wiki:TracFastCgi FastCGI] and [wiki:TracModPython mod_python]. For decent performance, it is recommended that you use either FastCGI or mod_python.
+
 
 == Using Trac ==
 
-'''Congratulations!''' You should now have a running Trac installation at:
+Once you have your Trac site up and running, you should be able to browse your subversion repository, create tickets, view the timeline, etc.
 
-http://<yourhostname>/cgi-bin/trac.cgi
-
-You should be able to browse your subversion repository, create tickets,
-view the timeline and use all the features of Trac.
-
-Keep in mind that anonymous users (not logged in) can only access a restricted subset of all Trac features by default. 
-
-'''Note:''' If you don't want long, and relatively ugly, URLs, you can prettify them by changing your Apache config. See [http://projects.edgewall.com/trac/wiki/TracPrettyUrls TracPrettyUrls] (on the project website).
-
-Please continue to TracPermissions to learn how to grant additional privileges to authenticated users.
-
-For user documentation, see TracGuide.
+Keep in mind that anonymous (not logged in) users can by default access most but not all of the features. You will need to configure authentication and grant additional [wiki:TracPermissions permissions] to authenticated users to see the full set of features.
 
 ''Enjoy!''
 
 [http://projects.edgewall.com/trac/wiki/TracTeam The Trac Team]
 
 ----
-See also:  TracGuide, TracUpgrade, TracPermissions, TracInstallPlatforms, TracModPython
+See also:  TracGuide, TracCgi, TracFastCgi, TracModPython, TracUpgrade, TracPermissions

wiki-default/TracInstallPlatforms

-= Platform-specific Documentation =
-This is an index of pages describing how to install and run Trac on specific platforms and operating systems.
-
-All pages are on the [http://projects.edgewall.com/trac/wiki/TracProject TracProject] website, since they tend to be edited quite often.
-
- * [http://projects.edgewall.com/trac/wiki/TracOnOsx TracOnOsx]
- * [http://projects.edgewall.com/trac/wiki/TracOnMandrakelinux TracOnMandrakelinux]
- * [http://projects.edgewall.com/trac/wiki/TracOnGentoo TracOnGentoo]
- * [http://projects.edgewall.com/trac/wiki/TracOnFreeBsd TracOnFreeBsd]
- * [http://projects.edgewall.com/trac/wiki/TracOnNetBsd TracOnNetBsd]
- * [http://projects.edgewall.com/trac/wiki/TracOnDebian TracOnDebian]
- * [http://projects.edgewall.com/trac/wiki/TracOnWindows TracOnWindows]
- * [http://projects.edgewall.com/trac/wiki/TracOnWindowsIis TracOnWindowsIis]
- * [http://projects.edgewall.com/trac/wiki/TracOnWindowsIis6 TracOnWindowsIis6]
- * [http://projects.edgewall.com/trac/wiki/TracOnRedhat TracOnRedhat]
- * [http://projects.edgewall.com/trac/wiki/TracOnFedoraCore TracOnFedoraCore]
- * [http://projects.edgewall.com/trac/wiki/TracOnSuSE TracOnSuSE]
- * [http://projects.edgewall.com/trac/wiki/TracOnSlackware TracOnSlackware]
-
-----
-See also: TracInstall, TracGuide, [http://projects.edgewall.com/trac/wiki/TracFaq TracFaq]

wiki-default/TracLogging

 = Trac Logging =
 [[TracGuideToc]]
 
-Trac supports logging of system messages using the standard ''logging'' module part of Python 2.3 and newer.
-
-'''Note:''' If you are using a Python version older than 2.3, the Trac logging mechanism will be silently disabled.
+Trac supports logging of system messages using the standard [http://docs.python.org/lib/module-logging.html logging module] that comes with Python.
 
 Logging is configured in the {{{[logging]}}} section in [wiki:TracIni trac.ini].
 
-== Python 2.2 Workaround ==
-If you are using Python 2.2, however, note that the logging package from Python 2.3 works perfectly under 2.2 as well; you can just copy the entire {{{logging}}} directory from the Python 2.3 library into the Python 2.2 lib directory. Perhaps not the most elegant solution, but it works.
+== Supported Logging Methods ==
 
-
-== Supported Logging Methods ==
- * '''none''' -- Suppress all log messages.
- * '''file''' -- Log messages to a file, specified with the ''log_file'' directive in [wiki:TracIni trac.ini]. 
- * '''stderr''' -- Output all log entries to console ([wiki:TracStandalone tracd] only).
- * '''syslog''' -- (UNIX) Send messages to local syslogd via named pipe '/dev/log'.
- * '''winlog''' -- (Windows) Use the system's NT eventlog for Trac logging.
+The log method is set using the `log_type` configuration option, which takes any of the following values:
+ '''none'':: Suppress all log messages.
+ '''file''':: Log messages to a file, specified with the `log_file` option in [wiki:TracIni trac.ini]. 
+ '''stderr''':: Output all log entries to console ([wiki:TracStandalone tracd] only).
+ '''syslog''':: (UNIX) Send messages to local syslogd via named pipe `/dev/log`.
+ '''eventlog''':: (Windows) Use the system's NT eventlog for Trac logging.
 
 == Log Levels ==
-The level of verbosity of logged messages can be set using the ''log_level'' directive in [wiki:TracIni trac.ini]. The log level defines the minimum level of urgency required for a message to be logged.
+
+The verbosity level of logged messages can be set using the ''log_level'' directive in [wiki:TracIni trac.ini]. The log level defines the minimum level of urgency required for a message to be logged.
 
 The levels are:
- * ''CRITICAL'' -- Log only the most critical, typically fatal, messages.
- * ''ERROR'' -- Request failures, bugs and errors. 
- * ''WARN'' -- Warnings, non-interrupting events.
- * ''INFO'' -- Diagnostic information, log information about all requests.
- * ''DEBUG'' -- Development messages, profiling, etc. Not fit for human consumption.
+ '''CRITICAL''':: Log only the most critical (typically fatal) errors.
+ '''ERROR''':: Log failures, bugs and errors. 
+ '''WARN''':: Log warnings, non-interrupting events.
+ '''INFO''':: Diagnostic information, log information about all processing.
+ '''DEBUG''':: Trace messages, profiling, etc.
 
 ----
-See also: TracIni, TracGuide, TracEnvironment
+See also: TracIni, TracGuide, TracEnvironment

wiki-default/TracModPython

 
 Trac 0.7.1 and later supports [http://www.modpython.org/ mod_python], which speeds up Trac's response times considerably and permits use of many Apache features not possible with tracd/mod_proxy.
 
+Be sure to grab mod_python 3.1.3 and later for ''SetHandler'' ''mod_python'' directive to work.  Also, older versions may generate an internal error.  [http://projects.edgewall.com/trac/ticket/1090 #1090]
+
+== Trac Trunk Configuration ==
+
+The examples below are written for Trac 0.8.x.  If you are running Trac from the trunk source you will need to make a modification to the configuration.
+
+The mod_python handler class is changed in trunk revision [1287] and later, so you'll need to substitute the following line:
+
+{{{
+   PythonHandler trac.ModPythonHandler
+}}}
+
+with this one:
+
+{{{
+   PythonHandler trac.web.modpython_frontend
+}}}
+
 == Simple configuration ==
 
 Here's a typical Trac CGI/Apache setup:
 </Location>
 }}}
 
-Note that the option ''TracUriRoot'' may or may not be necessary in your setup. Try without first, and if the URLs produced by Trac look wrong, add the ''TracUriRoot'' option.
+Note that the option ''TracUriRoot'' may or may not be necessary in your setup. Try without first, and if the URLs produced by Trac look wrong or if Trac does not seem to recognize the URLs correctly, add the ''TracUriRoot'' option.
+
+Authentication works the same as for CGI:
+
+{{{
+<Location "/projects/myproject/login">
+  AuthType Basic
+  AuthName "myproject"
+  AuthUserFile /var/trac/myproject/.htaccess
+  Require valid-user
+</Location>
+}}}
+
+If your trac installation isn't installed in your Python path, you'll have to tell Apache where to find the {{{trac.ModPythonHandler}}} module by adding this line to the {{{<Location>}}} section:
+
+{{{
+<Location "/projects/myproject">
+  PythonPath "sys.path+['/path/to/trac']"
+  ...
+</Location>
+}}}
+
+== Setting up a project on the root of the webserver ==
+
+To install Trac on the root of the webserver (in a virtual host context for example) and make it available at the ''!http://some-hostname/'' URL, use the following:
+
+{{{
+<VirtualHost trac.example.org>
+  ServerName trac.example.org
+  Alias /trac /var/www/trac.example.org/htdocs/trac
+  <Location />
+    SetHandler mod_python
+    PythonHandler trac.ModPythonHandler
+
+
+    PythonOption TracUriRoot "/"
+    PythonOption TracEnv /var/trac/myproject
+  </Location>
+  <Location /login>
+    AuthType Basic
+    AuthName "My Project"
+    AuthUserFile /var/trac/myproject/.htaccess
+    Require valid-user
+  </Location>
+  <Location /trac>
+    SetHandler None
+  </Location>
+</VirtualHost>
+}}}
+
+
+The path in the last {{{<Location>}}} block should match your {{{htdocs_location}}}. The directive "{{{SetHandler None}}}" allows us to escape mod_python and have Apache serve the static files (located at {{{/var/www/trac.example.org/htdocs/trac/}}} on the filesystem in this example). Any other URLs will be handled by mod_python.
 
 == Setting up multiple projects ==
 
   PythonHandler trac.ModPythonHandler
   PythonOption TracUriRoot /projects
   PythonOption TracEnvParentDir "/var/trac"
+</Location>
+}}}
+
+When you request the {{{/projects}}} URL, you will get a (currently very simple) listing of all subdirectories of the directory you set as {{{TracEnvParentDir}}}. Selecting any project in the list will bring you to the corresponding Trac instance. You should make sure that the configured directory only contains Trac environment directories that match the currently installed Trac version, because that is not checked prior to the generation of the project list.
+
+If you don't want to have the subdirectory listing as your projects home page you can use a
+
+{{{
+<LocationMatch "/.+/">
+}}}
+
+This will instruct Apache to use mod_python for all locations different from root while having the possibility of placing a custom home page for root in yuor !DocumentRoot folder.
+
+
+=== Use different locations for htdocs and mod_python ===
+The mod_python location must be different than the trac htdocs location. For example, if you map Trac's htdocs location to {{{/trac}}} and then map your mod_python handler to {{{/trac}}} as well, you will encounter strange problems.  Configuration for the location of the htdocs is in the environment's ini file.
+
+== Setting up multiple projects as the root URL ==
+
+Let's say you want something like http://projects.yourdomain.com which has a list of all of the projects hosted on it.  However, you don't want to do manual configuration every time a new project is added.  Or, you'd like to minimize it.  Here's a quick sample:
+
+{{{
+Alias /trac/ /usr/share/trac/htdocs/
+<Directory "/usr/share/trac/htdocs">
+   Order allow,deny
+   Allow from all
+</Directory>
+
+<Location />
+   SetHandler mod_python
+   PythonHandler trac.ModPythonHandler
+   PythonOption TracEnvParentDir "/var/trac"
+   PythonOption TracUriRoot /
+</Location>
+
+<Location /project1/login>
+   AuthType Basic
+   AuthName "Project1"
+   AuthUserFile /var/www/projects.yourdomain.com/security/users
+   AuthGroupFile /var/www/projects.yourdomain.com/security/groups
+   Require group project1-users
+</Location>
+
+<Location /project2/login>
+   AuthType Basic
+   AuthName "Project2"
+   AuthUserFile /var/www/projects.yourdomain.com/security/users
+   AuthGroupFile /var/www/projects.yourdomain.com/security/groups
+   Require group project2-users
+</Location>
+
+<Location /trac>
+   SetHandler none
+</Location>
+}}}
+
+A few things to note about this example:  all of the users are stored in one file, {{{/var/www/projects.yourdomain.com/security/users}}}.  Groups for these users are defined in the groups file, {{{/var/www/projects.yourdomain.com/security/groups}}}.  The Trac projects are all stored under {{{/var/trac}}}.
+
+To add a new project, you'll have to create a new user in the user file.  Then, create a new group for the project in the group file.  Finally, create a new <Location> block with a new {{{Require group}}} directive.  That's about it.
+
+You can also use the same authentication realm for all of the projects using a {{{<LocationMatch>}}} directive:
+
+{{{
+<LocationMatch "/[^/]+/login">
+   ...
 </LocationMatch>
 }}}
 
-When you request the {{{/projects}}} URL, you will get a (currently very simple) listing of all subdirectories of the directory you set as {{{TracEnvParentDir}}}. Selecting any project in the list will bring you to the corresponding Trac instance. You should make sure that the configured directory only contains Trac environment directories that match the currently installed Trac version, because that is not checked prior the the generation of the project list.
+== Troubleshooting ==
 
-
-=== Adding authentication ===
-
-Adding authentication is straightforward in both cases. For example:
+=== Setting up plugin cache directory ===
 
 {{{
-<LocationMatch /projects/[[:alnum:]]+/login>
-  AuthType Basic
-  AuthName "Trac"
-  AuthUserFile /var/www/passwd
-  Require valid-user
-</LocationMatch>
+SetEnv PYTHON_EGG_CACHE /path/to/dir
 }}}
 
+=== Form submission problems ===
+
+If you're experiencing problems submitting some of the forms in Trac (a common problem is that you get redirected to the start page after submission), check whether your {{{DocumentRoot}}} contains a folder or file with the same path that you mapped the mod_python handler to. For some reason, mod_python gets confused when it is mapped to a location that also matches a static resource.
+
+=== Using .htaccess ===
+
+Although it may seem trivial to rewrite the above configuration as a directory in your document root with a {{{.htaccess}}} file, this does not work. Apache will append a "/" to any Trac URLs, which interferes with its correct operation.
+
+It may be possible to work around this with mod_rewrite, but I failed to get this working. In all, it is more hassle than it is worth. Stick to the provided instructions. :)
+
+=== mod_python does caching: beware ===
+
+When using mod_python you have to reload apache before changes to a trac.ini of a project or a projects templates take effect!
+
+ ''Note: This doesn't apply to the current development version (0.9pre), where the configuration is reloaded automatically if it has changed.''
+
 === Win32 Issues ===
 
 If you run trac with mod_python on Windows, attachments will not work.
 There is a (simple) workaround for this which is to apply the patch attached to 
 ticket [http://projects.edgewall.com/trac/ticket/554 #554].
 
+=== OS X issues ===
 
+There is a mod_python issue on OSX: Look at the end of its README. 
+You need to either define the environment variable DYLD_FORCE_FLAT_NAMESPACE before starting httpd 
+or apply [http://www.dscpl.com.au/projects/vampire/PATCHES this patch] to mod_python.
+
+Also note that there is an error in the module when you build it from source.  Basically an unpatched version will not respond correctly to the 'apachectl restart' command.  If you issue this command on an unpatched module your client will receive a 500 error from apache.  The patch needed to fix this problem is included below:
+
+{{{
+--- src/mod_python.c	Mon Feb 16 20:47:27 2004
++++ /Usersjkp/mod_python.c	Wed Mar 16 21:15:49 2005
+@@ -31,6 +31,10 @@
+  * (In a Python dictionary) */
+ static PyObject * interpreters = NULL;
+ 
++#ifdef WITH_THREAD
++static apr_thread_mutex_t* interpreters_lock = 0;
++#endif
++
+ apr_pool_t *child_init_pool = NULL;
+ 
+ /**
+@@ -124,6 +128,8 @@
+         name = MAIN_INTERPRETER;
+ 
+ #ifdef WITH_THREAD
++    apr_thread_mutex_lock(interpreters_lock);
++
+     PyEval_AcquireLock();
+ #endif
+ 
+@@ -149,6 +155,8 @@
+ 
+ #ifdef WITH_THREAD
+     PyEval_ReleaseLock();
++
++    apr_thread_mutex_unlock(interpreters_lock);
+ #endif
+ 
+     if (! idata) {
+@@ -469,6 +477,9 @@
+     const char *userdata_key = "python_init";
+     apr_status_t rc;
+ 
++    /* fudge for Mac OS X with Apache where Py_IsInitialized() broke */
++    static int initialized = 0;
++
+     apr_pool_userdata_get(&data, userdata_key, s->process->pool);
+     if (!data) {
+         apr_pool_userdata_set((const void *)1, userdata_key,
+@@ -490,13 +501,16 @@
+     }
+ 
+     /* initialize global Python interpreter if necessary */
+-    if (! Py_IsInitialized()) 
++    if (initialized == 0 || ! Py_IsInitialized()) 
+     {
++        initialized = 1;
+ 
+         /* initialze the interpreter */
+         Py_Initialize();
+ 
+ #ifdef WITH_THREAD
++        apr_thread_mutex_create(&interpreters_lock,APR_THREAD_MUTEX_UNNESTED,p);
++
+         /* create and acquire the interpreter lock */
+         PyEval_InitThreads();
+ #endif
+}}}
+
+
+''Mar. 25/05''
+
+The patch listed above causes complaints when attempting to apply it; also, the URL for the OS X patch is broken. I found that patch as well as an additional one for mod_python for use with a multithreaded MPM [http://www.dscpl.com.au/projects/vampire/patches.html here] (same site; pages have been shuffled around).
 ----
 See also TracGuide, TracInstall, TracMultipleProjects

wiki-default/TracMultipleProjects

 = Configure Apache for multiple projects =
+By following these instructions, you will set up Apache to automatically serve multiple Trac projects for you. There are two different ways of setting this up: with and without global authentication. And with Apache 2 there are even two ways to do both.
 
-By following these instructions, you will set up Apache to automatically serve multiple Trac projects for you. 
+== Easiest method for hosting multiple projects in one domain with Apache 2 ==
+The first way to support multiple projects is to add the following to the Apache 2 config file, per project (myproj in this case):
 
-Start out by creating a project directory in your documentroot (/var/www in this example). Projects will be accessed as http://hostname/projects/projectname. Copy (or symlink) trac.cgi to this directory together with a file named index.html. This will be shown when users try to access nonexistent projects.
+{{{
+ScriptAlias /myproj /path/to/trac.cgi
 
-Then create your trac projects with trac-admin. It's important that they are all placed in the same directory. In this example we'll use /var/lib/trac. Add to your Apache configuration:
+<Location "/myproj">
+    SetEnv TRAC_ENV "/var/trac/myproj"
+</Location>
+
+<Location "/myproj/login">
+    AuthType basic
+    AuthName "myproj - trac"
+    AuthUserFile "/var/svn/svn-auth-file"
+    Require valid-user
+</Location>
+}}}
+
+This is in addition to the global line:
+
+{{{
+Alias /trac "/usr/share/trac/htdocs"
+}}}
+
+If you want different users per project, just edit the !AuthUserFile line for each one.
+
+== Harder method: URL Rewriting ==
+In this case both ways use Apache's URL rewriting module : {{{mod_rewrite}}}. You have to make sure you have it loaded or compiled in Apache.
+
+=== Apache 1.x ===
+In 1.x versions of the Apache web server, you must uncomment the following line in the main Apache configuration file, generally found at {{{/etc/apache/apache.conf}}} or {{{/etc/httpd/httpd.conf}}} :
+
+{{{
+LoadModule rewrite_module modules/mod_rewrite.so
+}}}
+
+=== Apache 2.x ===
+Newer versions of Apache (> 2.x) uses a cleaner configuration system. In the directory {{{/etc/apache2/mods-available/}}} are all modules loading and configuration snippets available. In {{{/etc/apache2/mods-enabled/}}} are all enabled modules. You just need to check that a symlink to the rewrite module loading file is present. If not, create it :
+
+{{{
+cd /etc/apache2/mods-enabled/
+ln -s ../mods-available/rewrite.load .
+}}}
+
+Don't forget to check that the {{{LoadModule}}} line in this file ({{{rewrite.load}}}) is uncommented :
+
+{{{
+LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
+}}}
+
+This is Debian and Gentoo(?) specific. On SuSE you edit /etc/sysconfig/apache2 and add rewrite to APACHE_MODULES. Depending on your SuSE version you have to run "SuSEconfig --module apache2" or just "rcapache2 restart"
+
+== The wimp way for multiple projects ==
+For those of using simply the cgi solution, the trac.cgi can be copied/symlinked to other directories
+
+{{{
+<Location "/cgi-bin/project1/trac.cgi">
+        SetEnv TRAC_ENV "/home/trac/project1"
+</Location>
+
+<Location "/cgi-bin/project2/trac.cgi">
+        SetEnv TRAC_ENV "/home/trac/project2"
+</Location>
+}}}
+
+The same works also for the authentication:
+{{{
+<Location "/cgi-bin/project1/trac.cgi/login">
+AuthType Basic
+AuthName "Project1"
+AuthUserFile /home/web/.access-files/trac.project1.htpasswd
+Require valid-user
+</Location>
+
+<Location "/cgi-bin/project2/trac.cgi/login">
+AuthType Basic
+AuthName "Project2"
+AuthUserFile /home/web/.access-files/trac.project2.htpasswd
+Require valid-user
+</Location>
+}}}
+
+== Global authentication ==
+This is the simplest case. With this procedure, you will be able to serve multiple Trac projects, using the same user accounts for every projects (permissions are still per project, but authentication is not). This is the original procedure provided by the Trac team.
+
+Start out by creating a {{{projects}}} directory in your !DocumentRoot (/var/www in this example). Projects will be accessed as http://hostname/projects/projectname. Copy (or symlink) trac.cgi to this {{{projects/}}} directory together with a file named index.html. This will be shown when users try to access nonexistent projects.
+
+Then create your Trac projects with trac-admin. It's important that they are all placed in the same directory. In this example we'll use /var/lib/trac. Add to your Apache configuration:
 
 {{{
 RewriteEngine on
 RewriteRule ^/projects/([[:alnum:]]+)(/?.*)	/projects/trac.cgi$2 [S=1,E=TRAC_ENV:/var/lib/trac/$1]
 RewriteRule ^/projects/(.*)			/projects/index.html
 
+Alias /trac/ /usr/share/trac/htdocs/
+#or where you installed the trac htdocs
+
+#You have to allow people to read the files in htdocs
+<Directory "/usr/share/trac/htdocs">
+        Options Indexes MultiViews
+        AllowOverride None
+        Order allow,deny
+        Allow from all
+</Directory>
+
 <Directory "/var/www/projects">
 	AllowOverride None
 	Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
 </LocationMatch>
 }}}
 
-Make sure you have the rewrite module loaded or compiled in Apache.
-
-{{{LoadModule rewrite_module modules/mod_rewrite.so}}}
-
 Now, when you add another project, you don't need to edit any apache config. The only file you may want to edit is index.html to make it list the new project. If you think this is too much work, replace it with a python cgi script that does it for you.
 
 [wiki:TracStandalone tracd] and TracModPython can also serve multiple projects.
 
+'''Suggestion:''' In the second ''RewriteRule'' directive and in the ''LocationMatch'' directive, change {{{[[:alnum:]]}}} to {{{[^/.]}}} because while {{{[[:alnum:]]}}} only matches an alpha-numeric character, {{{[^/.]}}} matches any character that is not a slash or a dot.  This change allows for, among other things, hyphens in project/directory names. It doesn't allow dots, because we don't want to match ".." for security reasons.  Another possibility is to replace {{{[[:alnum:]]}}} with {{{[[:alnum:]\-]}}}, which matches only an alphanumeric character or a hyphen (the backslash "escapes" the hyphen, which would otherwise have special meaning).  The [http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html Apache 2.0 mod_rewrite documentation] suggests referencing the Perl regular expression manual page (run {{{perldoc perlre}}} on a system where Perl is installed) for details on regular expressions.  Note that it may be preferable to use a pattern that matches only characters suitable for directory names (and, thus, project names) that are valid for your particular installation.
 
-----
-See also: TracGuide, TracInstall
+== Per-project authentication ==
+As you problably noticed, the global procedure described above uses the same {{{AuthUserFile}}}, so every user you create in this file can log in every Trac project you host. Of course, in a non-configured Trac env, this user will be considered as ''anonymous'', but you might not want this too. Using a per-project authentification also allows you to use a different authentification greater for each project.
+
+The procedure we are going to explain here is a bit more complicated than the previous one as it imply Perl scripting, and that you'll need to reload the Apache configuration when you add a new project. But it's also much more ''tweakable''.
+
+=== Preparation ===
+As for the first procedure, you'll need a {{{projects}}} directory into your !DocumentRoot. Copy or symlink {{{trac.cgi}}} to this project :
+
+{{{
+mkdir projects
+ln -s /usr/share/trac/cgi-bin/trac.cgi projects/trac.cgi
+}}}
+
+We will also use an {{{index.cgi}}} file (a Perl script) to list available projects. We will discuss its creation later. We will also take for granted that your Trac environments live in {{{/var/lib/trac/}}}.
+
+=== Apache configuration ===
+The begining is exactly the same than for the global authentification installation :
+
+{{{
+RewriteEngine On
+
+RewriteRule ^/projects/+$                       /projects/index.cgi [L]
+RewriteCond /var/lib/trac/$1                    -d
+
+RewriteRule ^/projects/([[:alnum:]]+)(/?.*)     /projects/trac.cgi$2 [S=1,E=TRAC_ENV:/var/lib/trac/$1]
+RewriteRule ^/projects/(.*)                     /projects/index.cgi
+
+Alias /trac "/usr/share/trac/htdocs"
+<Directory "/var/www/projects">
+  AddHandler cgi-script .cgi
+  Options Indexes MultiViews SymLinksIfOwnerMatch +ExecCGI
+  AllowOverride None
+  Order allow,deny
+  Allow from all
+</Directory>
+}}}
+
+But here comes the magic. For each directory found in {{{/var/lib/trac/}}}, we create the appropriate {{{<Location>}}} section in the Apache configuration, using an automated Perl loop(mod_perl is required). Paste in the following right after the {{{<Directory>}}} section in your Apache config file:
+
+{{{
+#!perl
+<Perl>
+#!/usr/bin/perl
+
+# trac environments location
+my $trac_path = "/var/lib/trac";
+
+# trac base url
+my $trac_location = "/projects";
+
+opendir(TRAC_ROOT, $trac_path) or die "Unable to open Trac root directory ($trac_path)";
+
+while (my $name = readdir(TRAC_ROOT))
+{
+  if ($name =~ /^[[:alnum:]]+$/)
+  {
+    $Location{"$trac_location/$name/login"} = {
+      AuthType => "Basic",
+      AuthName => "\"Trac authentification for $name\"",
+      AuthUserFile => "$trac_path/access.user",
+      AuthGroupFile => "$trac_path/access.group",
+      Require => "group $name",
+    };
+  }
+}
+
+closedir(TRAC_ROOT);
+
+__END__
+</Perl>
+}}}
+
+=== Auth files and project listing ===
+In order to complete this setup, you will need two authentification files :
+
+ * {{{/var/lib/trac/access.user}}}, an htpasswd file listing all user logins and passwords. You can of course use one file per project (use {{{$trac_path/$name.htpasswd}}} as AuthUserFile for example).
+ * {{{/var/lib/trac/access.group}}}, a group file, listing all authorized user per project, following this syntax :
+   {{{
+proj1: user1 user2
+proj2: user1 user3
+proj3: user4
+   }}}
+
+For the project listing, we create another Perl script which will basically do the same as in the static Apache configuration above. Cut and paste the following into /projects/index.cgi:
+
+{{{
+#!perl
+#!/usr/bin/perl
+
+use strict;
+
+my $trac_path = "/var/lib/trac";
+my $trac_location = "/projects";
+
+# Send header
+print "Content-Type: text/html\n\n";
+
+# Send content
+print "<html>\n";
+print " <head>\n";
+print "  <title>Project listing</title>\n";
+print " </head>\n\n";
+print " <body>\n";
+print "   <h1>Project listing</h1>\n";
+print "   <ul id=\"trac\">\n";
+
+opendir(ROOT, $trac_path)
+        or die "Unable to open root directory ($trac_path)";
+
+while (my $name = readdir(ROOT))
+{
+  if ($name =~ /^[[:alnum:]]+$/)
+  {
+    print "   <li><a href=\"$trac_location/$name\">" . ucfirst($name) . "</a></li>\n";
+  }
+}
+
+closedir(ROOT);
+
+print "   </ul>\n";
+print " </body>\n";
+print "</html>\n";
+
+__END__
+}}}
+
+Here you are ! Don't forget to ''chown'' these files to {{{www-data}}}, and it should work !
+
+-------
+See also: TracGuide, TracInstall, TracMultipleProjectsWindows

wiki-default/TracNotification

 Disabled by default, notification can be activated and configured in [wiki:TracIni trac.ini].
 
 == Receiving Notification ==
-When reporting a new ticket or adding a comment, enter a validing email address in the ''reporter'', ''editor'' or ''cc'' field. Trac will automatically send you an email when changes are made to the ticket.
+When reporting a new ticket or adding a comment, enter a valid email address in the ''reporter'', ''editor'' or ''cc'' field. Trac will automatically send you an email when changes are made to the ticket.
 
 This is useful to keep up-to-date on an issue or enhancement request that interests you.
 
 These are the available options for the ''[notification]'' section in trac.ini.
  * '''smtp_enabled''': Enable notification.
  * '''smtp_server''': SMTP server used for notification messages.
+ * '''smtp_user''': (''requires [milestone:0.9 0.9]'') user name for authentication SMTP account.
+ * '''smtp_password''': (''requires [milestone:0.9 0.9]'') password for authentication SMTP account.
  * '''smtp_from''': Email address to use for ''Sender''-headers in notification emails.
  * '''smtp_replyto''': Email address to use for ''Reply-To''-headers in notification emails.
  * '''smtp_always_cc''': List of email addresses to always send notifications to. ''Typically used to post ticket changes to a dedicated mailing list.''
  * '''always_notify_reporter''':  Always send notifications to any address in the reporter field.
+ * '''always_notify_owner''': (''requires [milestone:0.9 0.9]'') Always send notifications to the address in the owner field.
 
 Either '''smtp_from''' or '''smtp_replyto''' (or both) ''must'' be set, otherwise Trac refuses to send notification mails.
 

wiki-default/TracPermissions

 
 Trac uses a simple but flexible permission system to control what users can and can't access.
 
-Permission privilegies are managed using the [wiki:TracAdmin trac-admin] tool.
+Permission privileges are managed using the [wiki:TracAdmin trac-admin] tool.
 
 Regular visitors, non-authenticated users, accessing the system are assigned the default 
 role (''user'') named {{{anonymous}}}. 
-Assign permissions to the {{{anonymous}}} user to set privilegies for non-authenticated/guest users.
+Assign permissions to the {{{anonymous}}} user to set privileges for non-authenticated/guest users.
 
 In addition to these privileges users can be granted additional individual 
 rights in effect when authenticated and logged into the system.

wiki-default/TracReports

 
 === Comma-delimited - CSV (Comma Separated Values) ===
 Export the report as plain text, each row on its own line, columns separated by a single comma (',').
-'''Note:''' Column data is stripped from carriage returns, line feeds and commas to preserve structure.
+'''Note:''' Carriage returns, line feeds, and commas are stripped from column data to preserve the CSV structure.
 
 === Tab-delimited ===
 Like above, but uses tabs (\t) instead of comma.
 
 === RSS - XML Content Syndication ===
-All reports support syndication using XML/RSS 2.0. To subscribe to a , click the the orange 'XML' icon at the bottom of the page. See TracRss for general information on RSS support in Trac.
+All reports support syndication using XML/RSS 2.0. To subscribe to an RSS feed, click the orange 'XML' icon at the bottom of the page. See TracRss for general information on RSS support in Trac.
 
 ----
 == Creating Custom Reports ==
  http://projects.edgewall.com/trac/reports/14?PRIORITY=high
 }}}
 
+To use multiple variables, separate them with an '&'.
+
+Example:
+{{{
+ http://projects.edgewall.com/trac/reports/14?PRIORITY=high&SEVERITY=critical
+}}}
+
 
 === Special/Constant Variables ===
 There is one ''magic'' dynamic variable to allow practical reports, its value automatically set without having to change the URL. 
   ORDER BY t.milestone, p.value, t.severity, t.time
 }}}
 
+=== Reporting on custom fields ===
+
+If you have added custom fields to your tickets (experimental feature in v0.8, see TracTicketsCustomFields), you can write a SQL query to cover them. You'll need to make a join on the ticket_custom table, but this isn't especially easy.
+
+If you have tickets in the database ''before'' you declare the extra fields in trac.ini, there will be no associated data in the ticket_custom table. To get around this, use SQL's "LEFT OUTER JOIN" clauses. See TracIniReportCustomFieldSample for some examples.
 
 ----
 See also: TracTickets, TracQuery, TracGuide

wiki-default/TracRss

  * http://sage.mozdev.org -- Sage RSS and Atom feed aggregator for Mozilla Firefox
  * http://www.rssreader.com/ -- Free and powerful RSS Reader for Windows
  * http://liferea.sourceforge.net/ -- Open source GTK2 RSS Reader for Linux
+ * http://akregator.sourceforge.net/ -- Open source KDE RSS Reader (will be part of KDE-PIM 3.4)
+ * http://www.sharpreader.net/ -- A free RSS Reader written in .NET for Windows
 ----
 See also: TracGuide, TracTimeline, TracReports, TracBrowser

wiki-default/TracStandalone

 == Pros ==
 
  * Fewer dependencies: You don't need to install apache or any other web-server.
- * Fast: Should be as fast as the ModPython version (much faster than the cgi).
+ * Fast: Should be as fast as the TracModPython version (much faster than the cgi).
 
 == Cons ==
 
 {{{
  $ tracd -p 8080 --auth project1,/tmp/users.htdigest,mycompany.com /path/to/project1
 }}}
+htdigest authentication can also be used for more than one project.
+The digest file can be shared:
+{{{
+ $ tracd -p 8080 \
+   --auth project1,/tmp/users.htdigest,mycompany.com \
+   --auth project2,/tmp/users.htdigest,mycompany.com \
+   /path/to/project1 /path/to/project2
+}}}
 
+== Tracd on Windows ==
+
+tracd also works on Windows. But on that platform, 
+the sensitivity on multithread issues is high.
+tracd is not (yet!) very robust in multithread mode,
+see for example #1401 and #1721 for some of the issues...
+
+I recently found out that all the occasional problems 
+(i.e. crashes) I had can be avoided by telling tracd 
+to operate in single-threaded mode:
+{{{
+#!text/x-diff
+Index: trac/web/standalone.py
+===================================================================
+--- trac/web/standalone.py      (revision 1862)
++++ trac/web/standalone.py      (working copy)
+@@ -124,7 +124,7 @@
+         return auth['username']
+
+
+-class TracHTTPServer(ThreadingMixIn, HTTPServer):
++class TracHTTPServer(HTTPServer):
+
+     projects = None
+}}}
+
+== Generating passwords on Windows ==
+
+If you don't have Apache available, you can use this Python script to generate your passwords (code borrowed heavily from #845):
+
+{{{
+from optparse import OptionParser
+import md5
+
+# build the options
+usage = "usage: %prog [options]"
+parser = OptionParser(usage=usage)
+parser.add_option("-u", "--username",action="store", dest="username", type = "string",
+                  help="the username for whom to generate a password")
+parser.add_option("-p", "--password",action="store", dest="password", type = "string",
+                  help="the password to use")
+(options, args) = parser.parse_args()
+
+# check options
+if (options.username is None) or (options.password is None):
+   parser.error("You must supply both the username and password")
+   
+# Generate the string to enter into the htdigest file
+realm = 'trac'
+kd = lambda x: md5.md5(':'.join(x)).hexdigest()
+print ':'.join((options.username, realm, kd([options.username, realm, options.password])))
+}}}
 
 ----
-See also: TracGuide, TracInstall, TracModPython
+See also: [source:trunk/README.tracd#latest README.tracd], TracGuide, TracInstall, TracModPython

wiki-default/TracSupport

 
 There is also an [http://projects.edgewall.com/trac/wiki/IrcChannel IRC channel], where people might be able to help out. Much of the 'live' development discussions also happen there.
 
-== Commercial Support ==
-Edgewall also offers commercial support to individuals and organizations who desire it. 
-
-For more information, visit our [http://www.edgewall.com/products/trac/support.html commercial support page] for Trac.
-
-You can of course also [http://www.edgewall.com/contact/ contact us directly] at any time at if you have any questions.
-
 ----
 See also: [http://projects.edgewall.com/trac/wiki/MailingList MailingList], 

wiki-default/TracSyntaxColoring

  * [http://people.ssh.fi/mtr/genscript/ GNU Enscript]
  * [http://silvercity.sourceforge.net/ SilverCity]
 
-To activate syntax coloring, simply install either one (or more) of these packages. No additional configuration is needed.
+To activate syntax coloring, simply install either one (or more) of these packages. No additional configuration is required, however to modify the colors, have a look at trac/htdocs/css/code.css.
 
 When in use, Trac will automatically prioritize !SilverCity highlighting over Enscript if possible, (see note below). 
 
 || HTML     || X || X ||
 || IDL      ||   || X ||
 || Javascript || X || X ||
+
 || m4       ||   || X ||
 || Makefile ||   || X ||
 || Matlab   ||   || X ||
 || PSP      || X ||   ||
 || Pyrex    ||   || X ||
 || * Python || X || X ||
-|| * Ruby   || X || X ||
+|| * Ruby   || X || X (1) ||
 || Scheme   ||   || X ||
 || Shell    ||   || X ||
 || SQL      || X || X ||
 
 ''(*) Supported as inline code blocks in [wiki:WikiFormatting Wiki text] using WikiProcessors.''
 
+''(1) Ruby highlighting is not included in the Enscript distribution.  Highlighting rules for Ruby can be obtained from: http://neugierig.org/software/ruby/
+
 == Extra Software ==
  * GNU Enscript -- http://people.ssh.fi/mtr/genscript/
  * !SilverCity -- http://silvercity.sf.net/

wiki-default/TracTickets

 
 The Trac issue database provides simple but effective tracking of issues and bugs within a project.
 
-As the central project management element of Trac, tickets are used for '''bug reports''',  '''feature requests''', '''software support issues''' and '''project tasks'''. 
+As the central project management element of Trac, tickets are used for '''project tasks''', '''feature requests''', '''bug reports''' and '''software support issues'''. 
 
 As with the TracWiki, this subsystem has been designed with the goal of making user contribution and participation as simple as possible. It should be as easy as possible to report bugs, ask questions and suggest improvements.
 
 A  ticket contains the following information attributes:
  
  * '''Reporter''' - The author of the ticket.
+
  * '''Component''' - The project module or subsystem this ticket concerns.
  * '''Version''' - Version of the project that this ticket pertains to.
  * '''Severity''' - What are the effects the issue described? Ranges from an ''enhancement'' request to ''blocker'' (must be fixed before next milestone).
+ * '''Keywords''' - Keywords that a ticket is marked with.  Useful for searching and report generation.
+
  * '''Priority''' - The importance of is the issue relative to other tasks.
  * '''Milestone''' - When this issue should be resolved at the latest.
- * '''Resolution''' - Reason for why a ticket was closed, such as fixed, invalid, duplicate, etc.
- * '''Keywords''' - Keywords that a ticket is marked with.  Useful for searching and report generation.
  * '''Assigned to''' - Principal person responsible for handling the issue.
- * '''Cc''' - A list of other associated people. ''Note: this does '''not''' imply responsibility or any other policy. 
- * '''Status''' - What is the current status?
+ * '''Cc''' - A list of other associated people. ''note: this does '''not''' imply responsiblity or any other policy. 
+ 
+ * '''Resolution''' - Reason for why a ticket was closed, such as {{{fixed}}}, {{{invalid}}}, {{{duplicate}}}, etc.
+ * '''Status''' - What is the current status? (One of {{{new}}}, {{{assigned}}}, {{{closed}}}, {{{reopened}}}.)
  * '''Summary''' - A brief description summarizing the problem or issue.
  * '''Description''' - The body of the ticket. A good description should be '''specific, descriptive and to the point'''.
 
 
 == Advanced: Preset values for New Tickets from URL ==
 
-To create a link to the new-icket form filled with preset values, you need to call the /newticket? URL with variable=value separated by &. 
+To create a link to the new-ticket form filled with preset values, you need to call the /newticket? URL with variable=value separated by &. 
 
 Possible variables are :
 
  * '''keywords''' - The keywords 
  * '''priority''' - The priority droplist
  * '''milestone''' - The milestone droplist
- * '''owner''' - The responsable of the ticket
- * '''cc''' - The list of email for notify the ticket change
+ * '''owner''' - The person responsible for the ticket
+ * '''cc''' - The list of emails for notifying about the ticket change
 
 '''Example:''' ''/trac/newticket?summary=Compile%20Error&version=1.0&component=gui''
 

wiki-default/TracTicketsCustomFields

 = Custom Ticket Fields =
-Trac support adding custom, user-defined, fields to the ticket module. Using custom fields, you can add typed, site-specific, properties to tickets.
+Trac supports adding custom, user-defined fields to the ticket module. Using custom fields, you can add typed, site-specific properties to tickets.
 
 '''Note: In Trac 0.8, this feature is still experimental.'''
 
-== Configuriation ==
+== Configuration ==
 Configuring custom ticket fields is done in the TracIni config file.
 
-All field definitions should be under a section named [ticket-custom] in the ini-file.
+All field definitions should be under a section named '''{{{[ticket-custom]}}}''' in the ini-file.
 
 The syntax of each field definition is:
 {{{
  (FIELD_NAME.OPTION = VALUE)
  ...
 }}}
-Looking at the example below should help explain the syntax.
+The example below should help to explain the syntax.
 
 === Available Field Types and Options ===
  * '''text''': A simple (one line) text field.
  * '''textarea''': Multi-line text area.
    * label: Descriptive label.
    * value: Default text.
-   * width: Width in columns.
-   * height: Height in lines.
+   * cols: Width in columns.
+   * rows: Height in lines.
    * order: Sort order placement.
 
 === Sample Config ===
 {{{
 [ticket-custom]
+
 test_one = text
 test_one.label = Just a text box
 
 test_six = textarea
 test_six.label = This is a large textarea
 test_six.value = Default text
-test_six.width = 60
-test_six.height = 30
+test_six.cols = 60
+test_six.rows = 30
 }}}
 
+=== Notes ===
+Do not insert space characters between '{{{|}}}'-separated option values for ''radio'' and ''select'' fields.
+ * ok: {{{FIELD_NAME.options = un|deux|trois}}}
+ * invalid: {{{FIELD_NAME.options = un | deux | trois}}}
+
 ----
-See also: TracTickets, TracIni
+See also: TracTickets, TracIni, TracIniReportCustomFieldSample

wiki-default/TracTimeline

 It's important to note that WikiFormatting can be used in commit log messages,
 including TracLinks.
 
-This allows developers hyperlink and refer to issue tickets, wikipages and files
+This allows developers to hyperlink and refer to issue tickets, wikipages and files
 directly when committing a patch to the repository.
 
 Example:

wiki-default/TracUnicode