Commits

Anonymous committed 1da66ed

0.12dev: merge all 0.11.6rc1 related changes

Comments (0)

Files changed (40)

+Trac 0.11.6rc1 (November 22, 2009)
+http://svn.edgewall.org/repos/trac/tags/trac-0.11.6rc1
+
+ Trac 0.11.6rc1 contains two security fixes and a number of bug fixes,
+ performance improvements and minor enhancements. The following list
+ contains only a few highlights:
+
+Security fixes:
+ * Fixed the policy checks in report results when using alternate formats.
+ * Added a check for the "raw" role that is missing in docutils < 0.6.
+
+Performance improvements:
+ * Re-enabled connection pooling with SQLite (#3446).
+ * Added caching of configuration options (#8510).
+
+Bug fixes:
+ * Fixed the "database is locked" issue with SQLite (#3446, #8468).
+ * Deprecated SQLite 2.x support (#8625).
+ * Fixed hanlding of times in timezones with DST (#8240).
+ * Avoid corruption of trac.ini during write (#8623).
+
 Trac 0.11.5 (July 17, 2009)
 http://svn.edgewall.org/repos/trac/tags/trac-0.11.5
 
  * Fixed internal error when removing a wiki page version [8343].
  * Fixed display of merge properties for scoped repositories #7715.
 
-Trac 0.11.5rc1 (March 30, 2009)
+Trac 0.11.5rc1 (June 30, 2009)
 http://svn.edgewall.org/repos/trac/tags/trac-0.11.5rc1
 
  Trac 0.11.5rc1 contains a number of bug fixes and minor enhancements.
  * Python, version >= 2.4.
  * setuptools, version >= 0.6
  * Genshi, version >= 0.5
- * Optionally, Subversion, version >= 1.1.x and the Subversion SWIG Python bindings (not PySVN, that's something different).
+ * Optionally, Subversion, version >= 1.1.x and the Subversion SWIG Python 
+   bindings (not PySVN, that's something different).
  * One of the following Python bindings, depending on the database used:
-   * PySQLite version 2.x for SQLite 3.x (is part of the standard library starting with Python 2.5)
-   * psycopg2 version 2.0.x for the PostgreSQL database
-   * MySQLdb, version 1.2.2 for the MySQL database
+    * pysqlite version 2.x for SQLite 3.x (is part of the standard library 
+      starting with Python 2.5)
+    * psycopg2 version 2.0.x for the PostgreSQL database
+    * MySQLdb, version 1.2.2 for the MySQL database
  * A web server capable of executing CGI/FastCGI scripts, or Apache HTTPD with
    mod_python or mod_wsgi. (Trac also comes with a standalone server, tracd)
 
 Any of the above python library can usually be installed using easy_install,
 which itself can be installed using the following bootstrap script:
 
-  wget http://peak.telecommunity.com/dist/ez_setup.py
-  python ez_setup.py
+  $ wget http://peak.telecommunity.com/dist/ez_setup.py
+
+  $ python ez_setup.py
 
 After that, you can do for example: easy_install Genshi
 
+If you're using Python 2.3 or 2.4 and need pysqlite, you can download from
+http://code.google.com/p/pysqlite/downloads/list the Windows installers or the
+tar.gz archive for building from source:
+
+  $ tar xvfz <version>.tar.gz
+
+  $ cd <version>
+
+  $ python setup.py build_static install
+
+That way, the latest SQLite version will be downloaded and built into the
+bindings.
+
 
 Installing Trac
 ---------------
  * Alec Thomas                    alec@swapoff.org
  * Jani Tiainen                   redetin@luukku.com
  * Ghassem Tofighi                tofighi@gmail.com
+ * Andrea Tomasini                andrea.tomasini@agile42.com
  * Zilvinas Valinskas             zilvinas@gemtek.lt
  * Jason Vasquez                  jason@mugfu.com
  * Venčeslav Vezjak
          - $(basename)s the last path component of the current environment
          - $(project)s  the project name
 
-         Note the usage of `$(...)s` instead of `%(...)s` as the latter form
-         would be interpreted by the ConfigParser itself.
+        Note the usage of `$(...)s` instead of `%(...)s` as the latter form
+        would be interpreted by the ConfigParser itself.
 
-         Example:
-         ($(thread)d) Trac[$(basename)s:$(module)s] $(levelname)s: $(message)s
+        Example:
+        `($(thread)d) Trac[$(basename)s:$(module)s] $(levelname)s: $(message)s`
 
-         (since 0.10.5)""")
+        ''(since 0.10.5)''""")
 
     def __init__(self, path, create=False, options=[]):
         """Initialize the Trac environment.

trac/notification.py

         
         If the setting is not defined, then the [$project_name] prefix.
         If no prefix is desired, then specifying an empty option 
-        will disable it. (''since 0.10.1'')""")
+        will disable it. (''since 0.10.1'').""")
 
     def send_email(self, from_addr, recipients, message):
         """Send message to recipients via e-mail."""

trac/ticket/api.py

             (''since 0.11'').""")
 
     restrict_owner = BoolOption('ticket', 'restrict_owner', 'false',
-        """Make the owner field of tickets use a drop-down menu. See
+        """Make the owner field of tickets use a drop-down menu.
+        Be sure to understand the performance implications before activating
+        this option. See
         [TracTickets#Assign-toasDrop-DownList Assign-to as Drop-Down List]
         (''since 0.9'').""")
 

trac/ticket/notification.py

     ticket_subject_template = Option('notification', 'ticket_subject_template', 
                                      '$prefix #$ticket.id: $summary',
         """A Genshi text template snippet used to get the notification subject.
-        (since 0.11)""")
+
+        By default, the subject template is `$prefix #$ticket.id: $summary`.
+        `$prefix` being the value of the `smtp_subject_prefix` option.
+        ''(since 0.11)''""")
 
 
 class TicketNotifyEmail(NotifyEmail):

trac/versioncontrol/svn_fs.py

     implements(IRepositoryConnector)
 
     branches = ListOption('svn', 'branches', 'trunk,branches/*', doc=
-        """List of paths categorized as ''branches''.
-        If a path ends with '*', then all the directory entries found
-        below that path will be included.
+        """Comma separated list of paths categorized as branches.
+        If a path ends with '*', then all the directory entries found below 
+        that path will be included. 
+        Example: `/trunk, /branches/*, /projectAlpha/trunk, /sandbox/*`
         """)
 
     tags = ListOption('svn', 'tags', 'tags/*', doc=
-        """List of paths categorized as ''tags''.
-        If a path ends with '*', then all the directory entries found
-        below that path will be included.
+        """Comma separated list of paths categorized as tags.
+        
+        If a path ends with '*', then all the directory entries found below
+        that path will be included.
+        Example: `/tags/*, /projectAlpha/tags/A-1.0, /projectAlpha/tags/A-v1.1`
         """)
 
     error = None

trac/wiki/default-pages/InterMapTxt

 == Prefix Definitions ==
 
 {{{
-PEP     http://www.python.org/peps/pep-$1.html                                       # Python Enhancement Proposal 
-PythonBug http://bugs.python.org/issue$1                                             # Python Issue #$1
+PEP     http://www.python.org/peps/pep-$1.html    # Python Enhancement Proposal 
+PythonBug    http://bugs.python.org/issue$1       # Python Issue #$1
+Python-issue http://bugs.python.org/issue$1       # Python Issue #$1
+
 Trac-ML  http://thread.gmane.org/gmane.comp.version-control.subversion.trac.general/ # Message $1 in Trac Mailing List
 trac-dev http://thread.gmane.org/gmane.comp.version-control.subversion.trac.devel/   # Message $1 in Trac Development Mailing List
 
 MoinMoin         http://moinmoin.wikiwikiweb.de/
 WhoIs            http://www.whois.sc/
 Why              http://clublet.com/c/c/why?
-c2Wiki             http://c2.com/cgi/wiki?
+c2Wiki           http://c2.com/cgi/wiki?
 WikiPedia        http://en.wikipedia.org/wiki/
 }}}

trac/wiki/default-pages/InterTrac

 The aliases are defined in `trac.ini` (see below).
 The prefix is case insensitive.
 
+When a TracLink is enclosed in brackets, the alias is expanded.  That is, `[th:ticket:1]` is displayed as `trachacks:ticket:1`, since `th` is an alias for `trachacks`.  If the TracLink is not enclosed in brackets, then the alias is displayed as it is typed.
+
 For convenience, there's also some alternative short-hand form, 
 where one can use an alias as an immediate prefix 
 for the identifier of a ticket, changeset or report:

trac/wiki/default-pages/PageTemplates

 
 (Hint: one could even create a ''!PageTemplates/Template'' for facilitating the creation of new templates!)
 
-Available templates:
+After you have created your new template, a drop-down selection box will automatically appear on any new wiki pages that are created.  By default it is located on the right side of the 'Create this page' button.
+
+Available templates: 
 [[TitleIndex(PageTemplates/)]]
-
 ----
 See also: TracWiki

trac/wiki/default-pages/TracAccessibility

  * `4` - [wiki:TracSearch Search]
  * `6` - [wiki:TracGuide Trac Guide / Documentation]
  * `7` - [wiki:TracTickets New Ticket]
- * `9` - [../about About Trac]
+ * `9` - [/about About Trac]
  * `0` - This page
  * `e` - Edit this page
  * `f` - Search

trac/wiki/default-pages/TracBackup

 
 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.
+To restore an environment from a backup, stop the process running Trac (i.e. the Web server or [wiki:TracStandalone tracd]), restore the contents of your backup (path/to/backupdir) to your [wiki:TracEnvironment project environment] directory 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, TracEnvironment, TracGuide, TracMigrate
+See also: TracAdmin, TracEnvironment, TracGuide, [trac:TracMigrate TracMigrate]

trac/wiki/default-pages/TracBrowser

 = The Trac Repository Browser =
 [[TracGuideToc]]
 
-The Trac repository browser can be used to browse directories 
-and specific revisions of files stored in the repository of the configured
-version control system.
+The Trac repository browser can be used to browse specific revisions of directories 
+and files stored in the repository of the configured version control system.
 
 Directory entries are displayed in a list with sortable columns. The list 
 entries can be sorted by ''name'', ''size'' or ''age'' by clicking on the column
 to select some interesting places in the repository, for example branches or tags. 
 This is sometimes referred to as the ''browser quickjump'' facility.
 The precise meaning and content of this menu depends on your backend.
-For Subversion, this list contains by default a few branches (`trunk` and any sub-folder of the latest `branches` top-level folder) and a few tags (any sub-folder of the latest `tags` top-level folder). This can be [TracIni#svn-section configured] for more advanced cases.
+For Subversion, this list contains by default the top-level trunk directory and sub-directories of the top-level branches and tags directories (`/trunk`, `/branches/*`, and `/tags/*`).  This can be [TracIni#svn-section configured] for more advanced cases.
 
-If you're using a Javascript enabled brower, you'll be able to expand and collapse folders in-place by clicking on the arrow head at the right side of a folder. Alternatively, the [trac:TracKeys keyboard] can also be used for this: use 'j' and 'k' to go to the next or previous entry, and 'o' (or 'Enter') to toggle between expanded and collapsed state of the selected folder or for visiting the selected file.
+If you're using a Javascript enabled browser, you'll be able to expand and collapse folders in-place by clicking on the arrow head at the right side of a folder. Alternatively, the [trac:TracKeys keyboard] can also be used for this: use 'j' and 'k' to go to the next or previous entry, and 'o' (or 'Enter') to toggle between expanded and collapsed state of the selected folder or for visiting the selected file.
 
 For the Subversion backend, some additional features are available:
- - Support for the `svn:needs-lock` property
+ - Displays the `svn:needs-lock` property
  - Support for the `svn:externals` property (which can be [TracIni#svn:externals-section configured])
  - The `svn:mime-type` property is used to select the syntax highlighter for rendering the file. For example, setting `svn:mime-type` to `text/html` will ensure the file is highlighted as HTML, regardless of the file extension. It also allows selecting the character encoding used in the file content. For example, if the file content is encoded in UTF-8, set `svn:mime-type` to `text/html;charset=utf-8`. The `charset=` specification overrides the default encoding defined in the `default_charset` option of the `[trac]` section of [TracIni#trac-section trac.ini].
 

trac/wiki/default-pages/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.
-
 {{{
 #!div class=important
-  ''Please note that using Trac via CGI is significantly slower than any other deployment method, such as [TracModPython mod_python] or [TracFastCgi FastCGI] or even [trac:TracOnWindowsIisAjp IIS/AJP] on Windows.''
+  ''Please note that using Trac via CGI is the slowest deployment method available. It is slower than [TracModPython mod_python], [TracFastCgi FastCGI] and even [trac:TracOnWindowsIisAjp IIS/AJP] on Windows.''
 }}}
 
-If you're using [http://httpd.apache.org/ Apache HTTPD], there are a couple ways to do that:
+CGI script is the entrypoint that web-server calls when a web-request to an application is made. To generate the `trac.cgi` script run:
+{{{
+trac-admin /path/to/env deploy /path/to/www/trac
+}}}
+`trac.cgi` will be in the `cgi-bin` folder inside the given path. Make sure it is executable by your web server. This command also copies `static resource` files to a `htdocs` directory of a given destination.
 
- 1. Use a `ScriptAlias` to map a 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`). A word of warning, copying the file directly from the repository onto a windows server 2003 machine created difficulties. Rather create a new text file and cut and copy the text into the newly created file. You can also create a symbolic link, but in that case make sure that the `FollowSymLinks` option is enabled for the `cgi-bin` directory.
+== Apache web-server configuration ==
 
-The first option is recommended as it also allows you to map the CGI to a friendly URL.
+In [http://httpd.apache.org/ Apache] there are two ways to run Trac as CGI:
 
-Now, edit the Apache configuration file and add this snippet, file names and locations changed to match your installation:
+ 1. Use a `ScriptAlias` directive that maps an URL to the `trac.cgi` script (recommended)
+ 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.
+
+To make Trac available at `http://yourhost.example.org/trac` add `ScriptAlias` directive to Apache configuration file, changing `trac.cgi` path to match your installation:
 {{{
-ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
+ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.cgi
 }}}
 
- ''Note that this directive requires the `mod_alias` module to be installed and enabled.''
+ ''Note that this directive requires enabled `mod_alias` module.''
 
 If you're using Trac with a single project you need to set its location using the `TRAC_ENV` environment variable:
 {{{
 </Location>
 }}}
 
- ''Note that the `SetEnv` directive requires the `mod_env` module to be installed and enable. If not, you could set TRAC_ENV in trac.cgi. Just add the following code between "try:" and "from trac.web ...":''
+ ''Note that the `SetEnv` directive requires enabled `mod_env` module. It is also possible to set TRAC_ENV in trac.cgi. Just add the following code between "try:" and "from trac.web ...":''
 
 {{{
     import os
     os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/project/parent/dir"
 }}}
 
-This will make Trac available at `http://yourhost.example.org/trac`.
-
 If you are using the [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature please see [http://trac.edgewall.org/wiki/ApacheSuexec].
 
 On some systems, you ''may'' need to edit the shebang line in the `trac.cgi` file to point to your real Python installation path. On a Windows system you may need to configure Windows to know how to execute a .cgi file (Explorer -> Tools -> Folder Options -> File Types -> CGI).
 
 == 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 much more efficiently served by the web server directly.
+Out of the box, Trac will pass static resources such as style sheets or images through itself. For a CGI setup this is '''highly undesirable''', because this way CGI script is invoked for documents that could be much more efficiently served directly by 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.
+Web servers such as [http://httpd.apache.org/ Apache] allow you to create “Aliases” to resources, giving them a virtual URL that doesn't necessarily reflect the layout of the servers file system. We already used this capability by defining a `ScriptAlias` for the CGI script. We also can map requests for static resources directly to the directory on the file system, avoiding processing these requests by 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:
+Add the following snippet to Apache configuration '''before''' the `ScriptAlias` for the CGI script, changing paths to match your deployment:
 {{{
-Alias /trac/chrome/common /usr/share/trac/htdocs
-<Directory "/usr/share/trac/htdocs">
+Alias /trac/chrome/common /path/to/www/trac/htdocs
+<Directory "/path/to/www/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. 
+Note that we mapped `/trac` part of the URL to the `trac.cgi` script, and 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`.
 
-Similarly, if you have static resources in a projects htdocs directory, you can configure apache to serve those resources (again, put this '''before''' the `ScriptAlias` for the CGI script, and adjust names and locations to match your installation):
+Similarly, if you have static resources in a project's htdocs directory (which is referenced by /chrome/site URL in themes), you can configure Apache to serve those resources (again, put this '''before''' the `ScriptAlias` for the CGI script, and adjust names and locations to match your installation):
 
 {{{
 Alias /trac/chrome/site /path/to/projectenv/htdocs
 </Directory>
 }}}
 
-Alternatively, you can set the `htdocs_location` configuration option in [wiki:TracIni trac.ini]:
+Alternatively to hacking `/trac/chrome/site`, you can directly specify path to static resources using `htdocs_location` configuration option in [wiki:TracIni trac.ini]:
 {{{
 [trac]
-htdocs_location = /trac-htdocs
+htdocs_location = http://yourhost.example.org/trac-htdocs
 }}}
 
 Trac will then use this URL when embedding static resources into HTML pages. Of course, you still need to make the Trac `htdocs` directory available through the web server at the specified URL, for example by copying (or linking) the directory into the document root of the web server:
 {{{
-$ ln -s /usr/share/trac/htdocs /var/www/your_site.com/htdocs/trac-htdocs
+$ ln -s /path/to/www/trac/htdocs /var/www/yourhost.example.org/trac-htdocs
 }}}
 
 Note that in order to get this `htdocs` directory, you need first to extract the relevant Trac resources using the `deploy` command of TracAdmin:
 where the "trac" parameter above is the same as !AuthName above  ("Realm" in apache-docs). 
 
 ----
-See also:  TracGuide, TracInstall, wiki:TracModWSGI, TracFastCgi, TracModPython
+See also:  TracGuide, TracInstall, [wiki:TracModWSGI], TracFastCgi, TracModPython

trac/wiki/default-pages/TracEnvironment

 as you're not using the BDB file system. Also, it seems that project names
 with spaces can be problematic for authentication (see [trac:#7163]).''
 
+''Note: "initenv" when using svn repository does not imply that trac-admin will perform "svnadmin create" for the specified repository path. You need to perform the "svnadmin create" prior to trac-admin initenv if you're creating a new svn repository altogether with a new trac environment, otherwise you will see a message "Warning: couldn't index the repository" when initializing the environment.''
+
 == Database Connection Strings ==
 
 Since version 0.9, Trac supports both [http://sqlite.org/ SQLite] and

trac/wiki/default-pages/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.
+[http://www.fastcgi.com/ FastCGI] interface allows Trac to remain resident much like with [wiki:TracModPython mod_python]. It is faster than external CGI interfaces which must start a new process for each request. However, unlike mod_python, FastCGI supports [http://httpd.apache.org/docs/suexec.html Apache SuEXEC], i.e. run with different permissions than web server. Additionally, it is supported by much wider variety of web servers.
 
-'''Note for Windows:''' Trac's FCGI does not run under Windows, as Windows does not implement `Socket.fromfd`, which is used by `_fcgi.py`. If you want to connect to IIS, your choice may be [trac:TracOnWindowsIisAjp AJP].
+'''Note for Windows:''' Trac's FastCGI does not run under Windows, as Windows does not implement `Socket.fromfd`, which is used by `_fcgi.py`. If you want to connect to IIS, you may want to try [trac:TracOnWindowsIisAjp AJP].
 
 == Simple Apache configuration ==
 
 There are two FastCGI modules commonly available for Apache: `mod_fastcgi` and
-`mod_fcgid`.  The `FastCgiIpcDir` and `FastCgiConfig` directives discussed
-below are `mod_fastcgi` directives; the `DefaultInitEnv` is a `mod_fcgid`
-directive.
+`mod_fcgid` (preferred). The latter is more up-to-date.
 
-For `mod_fastcgi`, add the following to an appropriate Apache configuration
-file:
+==== setup with `mod_fastcgi` ====
+`mod_fastcgi` uses `FastCgiIpcDir` and `FastCgiConfig` directives that should be added to an appropriate Apache configuration file:
 {{{
 # Enable fastcgi for .fcgi files
 # (If you're using a distro package for mod_fcgi, something like
 FastCgiConfig -initial-env TRAC_ENV_PARENT_DIR=/parent/dir/of/projects
 }}}
 
-But neither of these will work for `mod_fcgid`.  A similar but partial
-solution for `mod_fcgid` is:
+==== setup with `mod_fcgid` ====
+Configure `ScriptAlias` (see TracCgi for details), but call `trac.fcgi`
+instead of `trac.cgi`. Note that slash at the end - it is important.
 {{{
-DefaultInitEnv TRAC_ENV /path/to/env/trac/
+ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.fcgi/
 }}}
-But this cannot be used in `Directory` or `Location` context, which makes it
-difficult to support multiple projects.
 
-A better method which works for both of these modules (and for  [http://www.lighttpd.net/ lighttpd] and CGI as well), because it involves
-no server configuration settings for environment variables, is to set one
-of the variables in `trac.fcgi`, e.g.:
+To setup Trac environment for `mod_fcgid` it is necessary to use
+`FCGIDDefaultInitEnv` directive. It cannot be used in `Directory` or
+`Location` context, so if you need to support multiple projects, try
+alternative environment setup below.
+
+{{{
+FCGIDDefaultInitEnv TRAC_ENV /path/to/env/trac/
+}}}
+
+==== alternative environment setup ====
+A better method to specify path to Trac environment it to embed the path
+into `trac.fcgi` script itself. That doesn't require configuration of server
+environment variables, works for both FastCgi modules
+(and for [http://www.lighttpd.net/ lighttpd] and CGI as well):
 {{{
 import os
 os.environ['TRAC_ENV'] = "/path/to/projectenv"
 os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/project/parent/dir"
 }}}
 
-Using this method, different projects can be supported by using different
-`.fcgi` scripts with different `ScriptAliases`, copying and appropriately
-renaming `trac.fcgi` and adding the above code to create each such script.
+With this method different projects can be supported by using different
+`.fcgi` scripts with different `ScriptAliases`.
 
 See [https://coderanger.net/~coderanger/httpd/fcgi_example.conf this fcgid example config] which uses a !ScriptAlias directive with trac.fcgi with a trailing / like this:
 {{{
 
 For using `trac.fcgi`(prior to 0.11) / fcgi_frontend.py (0.11) with lighttpd add the following to your lighttpd.conf:
 {{{
-#var.fcgi_binary="/path/to/fcgi_frontend.py" # 0.11 if installed with easy_setup, it is inside the egg directory
+#var.fcgi_binary="/usr/bin/python /path/to/fcgi_frontend.py" # 0.11 if installed with easy_setup, it is inside the egg directory
 var.fcgi_binary="/path/to/cgi-bin/trac.fcgi" # 0.10 name of prior fcgi executable
 fastcgi.server = ("/trac" =>
    

trac/wiki/default-pages/TracFineGrainedPermissions

  - Copy authz_policy.py into your plugins directory.
  - Put a [http://swapoff.org/files/authzpolicy.conf authzpolicy.conf] file somewhere (preferably on a secured location on the server, not readable for others than the webuser.
  - Update your `trac.ini`:
+   1. modify the [TracIni#trac-section permission_policies] entry in the `[trac]` section
 {{{
 [trac]
 ...
 permission_policies = AuthzPolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy
-
+}}}
+   2. add a new `[authz_policy]` section
+{{{
 [authz_policy]
 authz_file = /some/trac/env/conf/authzpolicy.conf
-
+}}}
+   3. enable the single file plugin
+{{{
 [components]
 ...
-authz_policy = enabled
+authz_policy.* = enabled
 }}}
 
 Note that the order in which permission policies are specified is quite critical, 
 At the time of this writing, the old fine grained permissions system from Trac 0.10 and before used for restricting access to the repository has not yet been converted to a permission policy component, but from the user point of view, this makes little if no difference.
 
 That kind of fine-grained permission control needs a definition file, which is the one used by Subversion's mod_authz_svn. 
-More information about this file format and about its usage in Subversion is available in the [http://svnbook.red-bean.com/svnbook/book.html#svn-ch-6-sect-4.4.2 Subversion Book (Per-Directory Access Control)].
+More information about this file format and about its usage in Subversion is available in the  [http://svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html Path-Based Authorization] section in the Server Configuration chapter of the svn book.
 
 Example:
 {{{

trac/wiki/default-pages/TracIni

 
 Trac configuration is done by editing the '''`trac.ini`''' config file, located in `<projectenv>/conf/trac.ini`.  Changes to the configuration are usually reflected immediately, though changes to the `[components]` or `[logging]` sections will require restarting the web server. You may also need to restart the web server after creating a global configuration file when none was previously present.
 
+The `trac.ini` configuration file should be writable by the web server, as Trac currently relies on the possibility to trigger a complete environment reload to flush its caches.
+
 == Global Configuration ==
 
-In versions prior to 0.11, the global configuration was by default located in `$prefix/share/trac/conf/trac.ini` or sometimes /etc/trac/trac.ini depending on the distribution. If you're upgrading, you may want to specify that file to inherit from.
-Literally, when you're upgrading to 0.11, you have to add an `inherit`-section to your project's `trac.ini` file. Additionally you have to move your customized templates and common images from `$prefix/share/trac/...` to the new location.
+In versions prior to 0.11, the global configuration was by default located in `$prefix/share/trac/conf/trac.ini` or /etc/trac/trac.ini, depending on the distribution. If you're upgrading, you may want to specify that file to inherit from.  Literally, when you're upgrading to 0.11, you have to add an `[inherit]` section to your project's `trac.ini` file. Additionally, you have to move your customized templates and common images from `$prefix/share/trac/...` to the new location.
 
 Global options will be merged with the environment-specific options, where local options override global options. The options file is specified as follows:
 {{{
 file = /usr/share/trac/conf/trac.ini
 }}}
 
-Note that you can also specify a global option file when creating a new project,  by adding the option
-`--inherit=/path/to/global/options` to [TracAdmin trac-admin]'s `initenv` command.
-If you would not do this but nevertheless intend to use a global option file with your new environment, 
-you would have to go through the newly generated conf/trac.ini file and delete the entries that would
-otherwise override those set in the global file.
+Note that you can also specify a global option file when creating a new project,  by adding the option `--inherit=/path/to/global/options` to [TracAdmin trac-admin]'s `initenv` command.  If do not do this but nevertheless intend to use a global option file with your new environment, you will have to go through the newly generated conf/trac.ini file and delete the entries that will otherwise override those set in the global file.
 
 
 == Reference ==
 
 This is a brief reference of available configuration options.
 
+ ''Note that the [bitten], [spam-filter] and [vote] sections below are added by plugins enabled on this Trac, and therefore won't be part of a default installation.''
+
 [[TracIni()]]
 
 
 Example configuration (the default only has closed and active):
 {{{
 closed = closed
-closed.order = 0                     # sequence number in the progress bar
-closed.query_args = group=resolution # optional extra param for the query
-closed.overall_completion = true     # indicates groups that count for overall completion percentage
+# sequence number in the progress bar
+closed.order = 0
+# optional extra param for the query (two additional columns: created and modified and sort on created)
+group=resolution,order=time,col=id,col=summary,col=owner,col=type,col=priority,col=component,col=severity,col=time,col=changetime
+# indicates groups that count for overall completion 
+closed.overall_completion = truepercentage
 
 new = new
 new.order = 1
 new.css_class = new
 new.label = new
 
-active = *                           # one catch-all group is allowed
-active.order = 1
-active.css_class = open              # CSS class for this interval
-active.label = in progress           # Displayed label for this group
+# one catch-all group is allowed
+active = *
+active.order = 2
+# CSS class for this interval
+active.css_class = open
+# Displayed label for this group
+active.label = in progress
 }}}
 
 The definition consists in a comma-separated list of accepted status.
 ''(since 0.11)''
 
 The TracBrowser for Subversion can interpret the `svn:externals` property of folders out of the box.
-However, if those externals are ''not'' using the `http:` protocol, or if a link to a different repository browser (such another Trac or [http://www.viewvc.org/ ViewVC]) is desired, then Trac needs to be able to map an external prefix to this other URL.
+However, if those externals are ''not'' using the `http:` or `https:` protocol, or if a link to a different repository browser such as another Trac or [http://www.viewvc.org/ ViewVC] is desired, then Trac needs to be able to map an external prefix to this other URL.
 
 This mapping is done in the `[svn:externals]` section of the TracIni
 
 1 = svn://server/repos1 http://trac/proj1/browser/$path?rev=$rev
 2 = svn://server/repos2 http://trac/proj2/browser/$path?rev=$rev
 3 = http://theirserver.org/svn/eng-soft       http://ourserver/viewvc/svn/$path/?pathrev=25914
-4 = svn://anotherserver.com/tools_repository  http://ourserver/trac/support/browser/$path?rev=$rev
+4 = svn://anotherserver.com/tools_repository  http://ourserver/tracs/tools/browser/$path?rev=$rev
 }}}
-With the above, the `svn://anotherserver.com/tools_repository/tags/1.1/tools` external will be mapped to `http://ourserver/trac/support/browser/tags/1.1/tools?rev=` (and `rev` will be set to the appropriate revision number if the external additionally specifies a revision, see the [http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html SVN Book on externals] for more details).
+With the above, the `svn://anotherserver.com/tools_repository/tags/1.1/tools` external will be mapped to `http://ourserver/tracs/tools/browser/tags/1.1/tools?rev=` (and `rev` will be set to the appropriate revision number if the external additionally specifies a revision, see the [http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html SVN Book on externals] for more details).
 
 Note that the number used as a key in the above section is purely used as a place holder, as the URLs themselves can't be used as a key due to various limitations in the configuration file parser.
 
+Finally, the relative URLs introduced in [http://subversion.tigris.org/svn_1.5_releasenotes.html#externals Subversion 1.5] are not yet supported.
+
 ----
 See also: TracGuide, TracAdmin, TracEnvironment

trac/wiki/default-pages/TracInstall

 {{{
 #!div style="margin-top: .5em; padding: 0 1em; background-color: #ffd; border:1px outset #ddc;"
 
-  '''NOTE: this page is for 0.12dev (trunk), for which development has started. For installing previous Trac versions, please refer to TracInstall (0.11)'''
+  '''NOTE: this page is for 0.12dev (trunk), the version currently in development. For installing previous Trac versions, please refer to TracInstall (0.11)'''
 }}}
 [[TracGuideToc]]
 
 
 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 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.
 
-== Short - Install a released version ==
-For the quick install, make sure you have [http://python.org Python-2.5], [http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install easy_install] and SQlite-3.3.4 installed (or above). (You also might want to install python-dev to build genshi)
+See TracUpgrade for instructions on how to upgrade an existing installation.
+
+== Quick Install a Released Version ==
+
+For a quick install, first make sure you have [http://python.org/download Python] (2.4-2.6) and [http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install easy_install].
+
+Then enter (''omitting 'sudo' if not applicable'')
 {{{
 sudo easy_install http://svn.edgewall.org/repos/trac/trunk
 }}}
+to install Trac, SQLite, and Genshi.
 
-== Requirements - also older versions possible ==
+== Requirements ==
 
 To install Trac, the following software packages must be installed:
 
- * [http://www.python.org/ Python], version >= 2.3
+ * [http://www.python.org/ Python], version >=2.4 (<3.0)
    * if using mod_python together with xml-related things, use python-2.5. expat is namespaced there and does not cause apache to crash any more(see [http://www.dscpl.com.au/wiki/ModPython/Articles/ExpatCausingApacheCrash here] for details).
    * For RPM-based systems you might also need the `python-devel` and `python-xml` packages.
-   * See instructions in ["TracOnWindows/Python2.5"]
- * [http://peak.telecommunity.com/DevCenter/setuptools setuptools], version >= 0.6
+   * See instructions in [trac:wiki:TracOnWindows/Python2.5 TracOnWindows/Python2.5]
+ * [wiki:setuptools], version >= 0.6
  * [http://genshi.edgewall.org/wiki/Download Genshi], version >= 0.4.1
  * You also need a database system and the corresponding python drivers for it.
-   The database can be either SQLite, PostgreSQL or ''MySQL (experimental)''.
+   The database can be either SQLite, PostgreSQL or MySQL.
 
 === For SQLite ===
 
- * [http://www.sqlite.org/ SQLite], version 3.3.4 and above preferred (note: it is preinstalled in Python 2.5.2).
- * If not using Python-2.5: [http://pysqlite.org/ PySQLite], version 1.x (for SQLite 2.x) or version 2.x (for SQLite 3.x), version 2.3.2 preferred. For details see [trac:PySqlite PySqlite]
+If you're using Python 2.5 or 2.6, you already have everything you need.
 
-''Note: It appears that PySQLite 2.x is required if you plan to use the 'trac-post-commit-hook.py' script available from the 'contrib' section of the source repository.''
+If you're using Python 2.4 and need pysqlite, you can download from 
+[http://code.google.com/p/pysqlite/downloads/list google code] the Windows
+installers or the tar.gz archive for building from source: 
+{{{
+$ tar xvfz <version>.tar.gz 
+$ cd <version> 
+$ python setup.py build_static install 
+}}}
+ 
+That way, the latest SQLite version will be downloaded and built into the 
+bindings. 
 
-''Note: Users of Mac OS X please take care; the Apple-supplied SQLite contains additional code to support file locking on network filesystems like AFP or SMB. This is not presently (3.3.6) in the mainline sources, so if you build your own SQLite from source it will not function correctly on such filesystems - typically it gives the error "{{{database is locked}}}". [http://www.alastairs-place.net/2006/07/sqlite_and_mac/ A patch] is available for version 3.3.6, based on Apple's code, otherwise you're probably best off using the Apple supplied version (presently 3.1.3).''
+SQLite 2.x is no longer supported. For SQLite 3.x, the pysqlite 1.1.x
+bindings are also no longer supported, use pysqlite 2.x.
+
+See additional information in [trac:PySqlite PySqlite].
 
 === For PostgreSQL ===
 
 
 === For MySQL ===
 
-'''Warning''': MySQL support is currently ''still'' experimental. That means it works for some people, but several issues remain, in particular regarding the use of unicode and the key length in the repository cache. See [trac:MySqlDb MySqlDb] for more detailed information.
+ * [http://mysql.com/ MySQL], version 4.1 or later ([http://askmonty.org/wiki/index.php/MariaDB MariaDB] might work as well)
+ * [http://sf.net/projects/mysql-python MySQLdb], version 1.2.2 or later
 
- * [http://mysql.com/ MySQL], version 4.1 or later
- * [http://sf.net/projects/mysql-python MySQLdb], version 1.2.2 or later
+See [trac:MySqlDb MySqlDb] for more detailed information.
+It is ''very'' important to read carefully that page before creating the database.
 
 === Optional Requirements ===
 
 ==== Version Control System ====
 
-'''Please note:''' if using Subversion, Trac must be installed on the '''same machine'''. Remote repositories are currently not supported.
+'''Please note:''' if using Subversion, Trac must be installed on the '''same machine'''. Remote repositories are currently not supported (although Windows UNC paths such as {{{\\machine_name\path\to\svn}}} do work).
 
  * [http://subversion.tigris.org/ Subversion], version >= 1.0. (versions recommended: 1.2.4, 1.3.2 or 1.4.2) and the '''''corresponding''''' Python bindings. For troubleshooting, check [trac:TracSubversion TracSubversion]
    * Trac uses the [http://svnbook.red-bean.com/svnbook-1.1/ch08s02.html#svn-ch-8-sect-2.3 SWIG] bindings included in the Subversion distribution, '''not''' [http://pysvn.tigris.org/ PySVN] (which is sometimes confused with the standard SWIG bindings).
  * A CGI-capable web server (see TracCgi), or
  * a [http://www.fastcgi.com/ FastCGI]-capable web server (see TracFastCgi), or
  * an [http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html AJP]-capable web server (see [trac:TracOnWindowsIisAjp TracOnWindowsIisAjp]), or
- * [http://httpd.apache.org/ Apache] with [http://code.google.com/p/modwsgi/ mod_wsgi] (see [wiki:TracModWSGI] or http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac)
+ * [http://httpd.apache.org/ Apache] with [http://code.google.com/p/modwsgi/ mod_wsgi] (see [wiki:TracModWSGI] or http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac) or
     * This should work with Apache 1.3, 2.0 or 2.2 and promises to deliver more performance than using mod_python. A little less mature than mod_python.
  * [http://httpd.apache.org/ Apache] with [http://modpython.org/ mod_python 3.1.3+] (see TracModPython)
     * When installing mod_python the development versions of Python and Apache are required (actually the libraries and header files)
 
-For those stuck with Apache 1.3, it is also possible to get Trac working with [http://modpython.org/ mod_python 2.7] (see [wiki:TracModPython2.7 TracModPython2.7]). This guide hasn't been updated since 0.84, so it may or may not work.
 
 ==== Other Python Utilities ====
  * [http://babel.edgewall.org Babel], version >= 0.9.2 for localization support
 
   chown -R apache.apache /path/to/myproject
 
-
 == Running the Standalone Server ==
 
 After having created a Trac environment, you can easily try the web interface by running the standalone server [wiki:TracStandalone tracd]:
 $ tracd -s --port 8000 /path/to/myproject
 }}}
 
-
 == 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.
 
 If you're not afraid of running development code, you can also try running Trac on [wiki:TracModWSGI mod_wsgi]. This should deliver even better performance than mod_python, but the module is not considered stable just yet.
 
+Trac also supports [trac:TracOnWindowsIisAjp AJP] which may be your choice if you want to connect to IIS.
+
+==== Generating the Trac cgi-bin directory ====
+
+In order for Trac to function properly with FastCGI or mod_python, you need to have a trac.cgi file. This is an executable which loads the appropriate Python code. It can be generated using the `deploy` option of [wiki:TracAdmin trac-admin].
+
+There is, however, a bit of a chicken-and-egg problem. The [wiki:TracAdmin trac-admin] command requires an existing environment to function, but complains if the deploy directory already exists. This is a problem, because environments are often stored in a subdirectory of the deploy. The solution is to do something like this:
+{{{
+mkdir -p /usr/share/trac/projects/my-project
+trac-admin /usr/share/trac/projects/my-project initenv
+trac-admin /usr/share/trac/projects/my-project deploy /tmp/deploy
+mv /tmp/deploy/* /usr/share/trac
+}}}
+
+==== Setting up the Plugin Cache ====
+
+Some Python plugins need to be extracted to a cache directory. By default the cache resides in the home directory of the current user. When running Trac on a Web Server as a dedicated user (which is highly recommended) who has no home directory, this might prevent the plugins from starting. To override the cache location you can set the PYTHON_EGG_CACHE environment variable. Refer to your server documentation for detailed instructions.
+
 == Configuring Authentication ==
 
 The process of adding, removing, and configuring user accounts for authentication depends on the specific way you run Trac. The basic procedure is described in the [wiki:TracCgi#AddingAuthentication "Adding Authentication"] section on the TracCgi page. To learn how to setup authentication for the frontend you're using, please refer to one of the following pages:
 [trac:TracTeam The Trac Team]
 
 ----
-See also:  TracInstallPlatforms, TracGuide, TracCgi, TracFastCgi, TracModPython, [wiki:TracModWSGI], TracUpgrade, TracPermissions
+See also: [trac:TracInstallPlatforms TracInstallPlatforms], TracGuide, TracCgi, TracFastCgi, TracModPython, [wiki:TracModWSGI], TracUpgrade, TracPermissions
+

trac/wiki/default-pages/TracLogging

  '''INFO''':: Diagnostic information, log information about all processing.
  '''DEBUG''':: Trace messages, profiling, etc.
 
+Note that starting with Trac 0.11.5 you can in addition enable logging of SQL statements, at debug level. This is turned off by default, as it's very verbose (set `[trac] debug_sql = yes` in TracIni to activate).
+
 == Log Format ==
 
-Starting with Trac 0.10.4 (see #2844), it is possible to set the output format for log entries. This can be done through the `log_format` option in [wiki:TracIni#logging-section trac.ini]. The format is a string which can contain any of the [http://docs.python.org/lib/node422.html Python logging Formatter variables]. Additonally, the following Trac-specific variables can be used:
+Starting with Trac 0.10.4 (see [trac:#2844 #2844]), it is possible to set the output format for log entries. This can be done through the `log_format` option in [wiki:TracIni#logging-section trac.ini]. The format is a string which can contain any of the [http://docs.python.org/lib/node422.html Python logging Formatter variables]. Additonally, the following Trac-specific variables can be used:
  '''$(basename)s''':: The last path component of the current environment.
  '''$(path)s''':: The absolute path for the current environment.
  '''$(project)s''':: The originating project's name.

trac/wiki/default-pages/TracModPython

 
 Trac supports [http://www.modpython.org/ mod_python], which speeds up Trac's response times considerably, especially compared to [TracCgi CGI], and permits use of many Apache features not possible with [wiki:TracStandalone tracd]/mod_proxy.
 
-These instructions are for Apache 2; if you are still using Apache 1.3, you may have some luck with [wiki:TracModPython2.7 TracModPython2.7].
+These instructions are for Apache 2; if you are still using Apache 1.3, you may have some luck with [trac:wiki:TracModPython2.7 TracModPython2.7].
 
 == Simple configuration ==
 
 PythonOption PYTHON_EGG_CACHE /var/trac/myprojects/egg-cache
 }}}
 
+or you can uncompress the Genshi egg to resolve problems extracting from it.
 === Configuring Authentication ===
 
 Creating password files and configuring authentication works similar to the process for [wiki:TracCgi#AddingAuthentication CGI]:
 Note 3: The directive "require ldap-group ..."  specifies an AD group whose members are allowed access.
 
 
+=== Setting the Python Egg Cache ===
+
+If the Egg Cache isn't writeable by your Web server, you'll either have to change the permissions, or point Python to a location where Apache can write. This can manifest itself as a ''500 internal server error'' and/or a complaint in the syslog. 
+
+{{{
+#!xml
+<Location /projects/myproject>
+  ...
+  PythonOption PYTHON_EGG_CACHE /tmp 
+  ...
+</Location>
+}}}
+
 
 === Setting the !PythonPath ===
 
 This does not seem to work in all cases. What you can do if it does not:
  * Try using `<LocationMatch>` instead of `<Location>`
  * <Location /> may, in your server setup, refer to the complete host instead of simple the root of the server. This means that everything (including the login directory referenced below) will be sent to python and authentication does not work (i.e. you get the infamous Authentication information missing error). If this applies to you, try using a sub-directory for trac instead of the root (i.e. /web/ and /web/login instead of / and /login).
+ * Depending on apache's `NameVirtualHost` configuration, you may need to use `<VirtualHost *:80>` instead of `<VirtualHost *>`.
 
 For a virtual host that supports multiple projects replace "`TracEnv`" /var/trac/myproject with "`TracEnvParentDir`" /var/trac/
 
 Require valid-user
 }}}
 
-The TracUriRoot is obviously the path you need to enter to the browser to get to the trac (e.g. domain.tld/projects/trac)
+The `TracUriRoot` is obviously the path you need to enter to the browser to get to the trac (e.g. domain.tld/projects/trac)
 
 === Additional .htaccess help ===
 
 chcon -R -h -t httpd_sys_content_t PATH_TO_REPOSITORY
 }}}
 
-See also [[http://subversion.tigris.org/faq.html#reposperms]]
+See also [http://subversion.tigris.org/faq.html#reposperms]
 
 === FreeBSD issues ===
 Pay attention to the version of the installed mod_python and sqlite packages. Ports have both the new and old ones, but earlier versions of pysqlite and mod_python won't integrate as the former requires threaded support in python, and the latter requires a threadless install.
 
 If you compiled and installed apache2, apache wouldn´t support threads (cause it doesn´t work very well on FreeBSD). You could force thread support when running ./configure for apache, using --enable-threads, but this isn´t recommendable.
-The best option [[http://modpython.org/pipermail/mod_python/2006-September/021983.html seems to be]] adding to /usr/local/apache2/bin/ennvars the line 
+The best option [http://modpython.org/pipermail/mod_python/2006-September/021983.html seems to be] adding to /usr/local/apache2/bin/ennvars the line 
 
 {{{
 export LD_PRELOAD=/usr/lib/libc_r.so
 
 If this is not the case, it's possible that you're using Subversion libraries that are binary incompatible with the apache ones (an incompatibility of the `apr` libraries is usually the cause). In that case, you also won't be able to use the svn modules for Apache (`mod_dav_svn`).
 
-You also need a recent version of `mod_python` in order to avoid a runtime error ({{{argument number 2: a 'apr_pool_t *' is expected}}}) due to the default usage of multiple sub-interpreters. 3.2.8 ''should'' work, though it's probably better to use the workaround described in #3371, in order to force the use of the main interpreter:
+You also need a recent version of `mod_python` in order to avoid a runtime error ({{{argument number 2: a 'apr_pool_t *' is expected}}}) due to the default usage of multiple sub-interpreters. 3.2.8 ''should'' work, though it's probably better to use the workaround described in [trac:#3371 #3371], in order to force the use of the main interpreter:
 {{{
 PythonInterpreter main_interpreter
 }}}
-This is anyway the recommended workaround for other well-known issues seen when using the Python bindings for Subversion within mod_python (#2611, #3455). See in particular Graham Dumpleton's comment in [comment:ticket:3455:9 #3455] explaining the issue.
+This is anyway the recommended workaround for other well-known issues seen when using the Python bindings for Subversion within mod_python ([trac:#2611 #2611], [trac:#3455 #3455]). See in particular Graham Dumpleton's comment in [trac:comment:9:ticket:3455 #3455] explaining the issue.
 
 === Page layout issues ===
 
 
 
 === Segmentation fault with php5-mhash or other php5 modules ===
-You may encounter segfaults (reported on debian etch) if php5-mhash module is installed. Try to remove it to see if this solves the problem. See debian bug report [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=411487]]
+You may encounter segfaults (reported on debian etch) if php5-mhash module is installed. Try to remove it to see if this solves the problem. See debian bug report [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=411487]
 
-Some people also have troubles when using php5 compiled with its own 3rd party libraries instead of system libraries. Check here [[http://www.djangoproject.com/documentation/modpython/#if-you-get-a-segmentation-fault]]
+Some people also have troubles when using php5 compiled with its own 3rd party libraries instead of system libraries. Check here [http://www.djangoproject.com/documentation/modpython/#if-you-get-a-segmentation-fault]
 
 ----
 See also:  TracGuide, TracInstall, [wiki:TracModWSGI ModWSGI], [wiki:TracFastCgi FastCGI], [wiki:TracModPython ModPython], [trac:TracNginxRecipe TracNginxRecipe]

trac/wiki/default-pages/TracModWSGI

 = Trac and mod_wsgi =
 
-'''Important note:''' ''Please use either version 1.3 or 2.3 or later of `mod_wsgi`. Version 2.0 has problems with downloading attachments (see [trac:ticket:7205 #7205]).''
+'''Important note:''' ''Please use either version 1.6, 2.4 or later of `mod_wsgi`. Versions prior to 2.4 in the 2.X branch have problems with some Apache configurations that use WSGI file wrapper extension. This extension is used in Trac to serve up attachments and static media files such as style sheets. If you are affected by this problem attachments will appear to be empty and formatting of HTML pages will appear not to work due to style sheet files not loading properly. See mod_wsgi tickets [http://code.google.com/p/modwsgi/issues/detail?id=100 #100] and [http://code.google.com/p/modwsgi/issues/detail?id=132 #132].''
 
-[http://code.google.com/p/modwsgi/ mod_wsgi] is an Apache module for running WSGI-compatible Python applications directly on top of Apache:
+[http://code.google.com/p/modwsgi/ mod_wsgi] is an Apache module for running WSGI-compatible Python applications directly on top of Apache. The mod_wsgi adapter is written completely in C and provides significantly better performance than using existing WSGI adapters for mod_python or CGI.
 
-  The mod_wsgi adapter is an Apache module that provides a WSGI compliant interface for hosting Python based web applications within Apache. The adapter is written completely in C code against the Apache C runtime and for hosting WSGI applications within Apache provides significantly better performance than using existing WSGI adapters for mod_python or CGI.
-
-It is already possible to run Trac on top of mod_wsgi. This can be done by writing the following application script, which is just a Python file, though usually saved with a .wsgi extension).
+Trac can be run on top of mod_wsgi with the help of the following application script, which is just a Python file, though usually saved with a .wsgi extension). This file can be created using '''trac-admin <env> deploy <dir>''' command which automatically substitutes required paths.
 
 {{{
+#!python
 import os
 
 os.environ['TRAC_ENV'] = '/usr/local/trac/mysite'
 application = trac.web.main.dispatch_request
 }}}
 
-The {{{TRAC_ENV}}} variable should naturally be the directory for your Trac environment (if you have several Trac environments in a directory, you can also use {{{TRAC_ENV_PARENT_DIR}}} instead), while the {{{PYTHON_EGG_CACHE}}} should be a directory where Python can temporarily extract Python eggs. [[BR]]
-For clarity, you should give this file a {{{.wsgi}}} extension. You should probably put the file in it's own directory, since you will open up its directory to Apache.
-You can create a .wsgi files which handles all this for you by running the TracAdmin command {{{deploy}}}.
+The `TRAC_ENV` variable should naturally be the directory for your Trac environment (if you have several Trac environments in a directory, you can also use `TRAC_ENV_PARENT_DIR` instead), while the `PYTHON_EGG_CACHE` should be a directory where Python can temporarily extract Python eggs.
+
+'''Important note:''' If you're using multiple `.wsgi` files (for example one per Trac environment) you must ''not'' use `os.environ['TRAC_ENV']` to set the path to the Trac environment. Using this method may lead to Trac delivering the content of another Trac environment. (The variable may be filled with the path of a previously viewed Trac environment.) To solve this problem, use the following `.wsgi` file instead:
+
+{{{
+#!python
+import os
+
+os.environ['PYTHON_EGG_CACHE'] = '/usr/local/trac/mysite/eggs'
+
+import trac.web.main
+def application(environ, start_response):
+  environ['trac.env_path'] = '/usr/local/trac/mysite' 
+  return trac.web.main.dispatch_request(environ, start_response)
+}}}
+
+For clarity, you should give this file a `.wsgi` extension. You should probably put the file in it's own directory, since you will open up its directory to Apache. You can create a .wsgi files which handles all this for you by running the TracAdmin command `deploy`.
 
 If you have installed trac and eggs in a path different from the standard one you should add that path by adding the following code on top of the wsgi script:
+
 {{{
+#!python
 import site
 site.addsitedir('/usr/local/trac/lib/python2.4/site-packages')
 }}}
+
 Change it according to the path you installed the trac libs at.
 
 After you've done preparing your wsgi-script, add the following to your httpd.conf.
 
 For troubleshooting tips, see the [TracModPython#Troubleshooting mod_python troubleshooting] section, as most Apache-related issues are quite similar, plus discussion of potential [http://code.google.com/p/modwsgi/wiki/ApplicationIssues application issues] when using mod_wsgi.
 
+''Note: using mod_wsgi 2.5 and Python 2.6.1 gave an Internal Server Error on my system (Apache 2.2.11 and Trac 0.11.2.1). Upgrading to Python 2.6.2 (as suggested [http://www.mail-archive.com/modwsgi@googlegroups.com/msg01917.html here]) solved this for me[[BR]]-- Graham Shanks''
+
 == Trac with PostgreSQL ==
 
 When using the mod_wsgi adapter with multiple Trac instances and PostgreSQL (or MySQL?) as a database back-end the server can get a lot of open database connections. (and thus PostgreSQL processes)

trac/wiki/default-pages/TracNotification

 = Email Notification of Ticket Changes =
 [[TracGuideToc]]
 
+[[PageOutline]]
+
 Trac supports notification about ticket changes via email. 
 
 Email notification is useful to keep users up-to-date on tickets/issues of interest, and also provides a convenient way to post all ticket changes to a dedicated mailing list. For example, this is how the [http://lists.edgewall.com/archive/trac-tickets/ Trac-tickets] mailing list is set up.
 Disabled by default, notification can be activated and configured in [wiki:TracIni trac.ini].
 
 == Receiving Notification Mails ==
-When reporting a new ticket or adding a comment, enter a valid email address in the ''reporter'', ''assigned to/owner'' or ''cc'' field. Trac will automatically send you an email when changes are made to the ticket (depending on how notification is configured).
+When reporting a new ticket or adding a comment, enter a valid email address or your username in the ''reporter'', ''assigned to/owner'' or ''cc'' field. Trac will automatically send you an email when changes are made to the ticket (depending on how notification is configured).
 
 This is useful to keep up-to-date on an issue or enhancement request that interests you.
 
+=== How to use your username to receive notification mails ===
+
+To receive notification mails, you can either enter a full email address or your username. To get notified with a simple username or login, you need to specify a valid email address in the ''Preferences'' page. 
+
+Alternatively, a default domain name ('''`smtp_default_domain`''') can be set in the TracIni file (see [#ConfigurationOptions Configuration Options] below). In this case, the default domain will be appended to the username, which can be useful for an "Intranet" kind of installation.
+
 == Configuring SMTP Notification ==
 
+'''Important:''' For TracNotification to work correctly, the `[trac] base_url` option must be set in [wiki:TracIni trac.ini]. 
+
 === Configuration Options ===
 These are the available options for the `[notification]` section in trac.ini.
 
  * `summary`: The ticket summary, with the old value if the summary was edited.
  * `ticket`: The ticket model object (see [trac:source:/trunk/trac/ticket/model.py model.py]). Individual ticket fields can be addressed by appending the field name separated by a dot, e.g. `$ticket.milestone`.
 
+=== Customizing the e-mail content ===
+
+The notification e-mail content is generated based on `ticket_notify_email.txt` in `trac/ticket/templates`.  The default looks like this:
+
+{{{
+$ticket_body_hdr
+$ticket_props
+#choose ticket.new
+  #when True
+$ticket.description
+  #end
+  #otherwise
+    #if changes_body
+Changes (by $change.author):
+
+$changes_body
+    #end
+    #if changes_descr
+      #if not changes_body and not change.comment and change.author
+Description changed by $change.author:
+      #end
+$changes_descr
+--
+    #end
+    #if change.comment
+
+Comment${not changes_body and '(by %s)' % change.author or ''}:
+
+$change.comment
+    #end
+  #end
+#end
+
+-- 
+Ticket URL: <$ticket.link>
+$project.name <${project.url or abs_href()}>
+$project.descr
+}}}
 == Sample Email ==
 {{{
 #42: testing
 from:(<smtp_from>) (("Reporter: <username>" -Changes) OR "Changes (by <username>)")
 }}}
 
+For Trac .10, use the filter:
+{{{
+from:(<smtp_from>) (("Reporter: <username>" -Changes -Comment) OR "Changes (by <username>)" OR "Comment (by <username>)")
+}}}
+
 to delete these notifications.
 
 In Thunderbird, there is no such solution if you use IMAP
 
 Relevant ML threads:
  * SELinux: http://article.gmane.org/gmane.comp.version-control.subversion.trac.general/7518
- 
+
+For SELinux in Fedora 10:
+{{{
+$ setsebool -P httpd_can_sendmail 1
+}}}
 === ''Suspected spam'' error ===
 
 Some SMTP servers may reject the notification email sent by Trac.
 
 Quoted printable encoding works better with languages that use one of the Latin charsets. For Asian charsets, it is recommended to stick with the Base64 encoding.
 
+=== ''501, 5.5.4 Invalid Address'' error ===
+
+On IIS 6.0 you could get a 
+{{{
+Failure sending notification on change to ticket #1: SMTPHeloError: (501, '5.5.4 Invalid Address')
+}}}
+in the trac log. Have a look [http://support.microsoft.com/kb/291828 here] for instructions on resolving it.
+
+
 ----
 See also: TracTickets, TracIni, TracGuide

trac/wiki/default-pages/TracPermissions

   $ trac-admin /path/to/projenv permission add bob TRAC_ADMIN
 }}}
 
-Then, the user will be able to see the Admin tab, and can then access the permissions menu. This menu will allow you to perform all the following actions, but from the browser without requiring root access to the server (just the correct permissions for your user account).
+Then, the user `bob` will be able to see the Admin tab, and can then access the permissions menu. This menu will allow you to perform all the following actions, but from the browser without requiring root access to the server (just the correct permissions for your user account).
 
 
 An easy way to quickly secure a new Trac install is to run the above command on the anonymous user, install the [http://trac-hacks.org/wiki/AccountManagerPlugin AccountManagerPlugin], create a new admin account graphically and then remove the TRAC_ADMIN permission from the anonymous user.
 || `TICKET_VIEW` || View existing [wiki:TracTickets tickets] and perform [wiki:TracQuery ticket queries] ||
 || `TICKET_CREATE` || Create new [wiki:TracTickets tickets] ||
 || `TICKET_APPEND` || Add comments or attachments to [wiki:TracTickets tickets] ||
-|| `TICKET_CHGPROP` || Modify [wiki:TracTickets ticket] properties (priority, assignment, keywords, etc.) except description field, cc field add/remove when logged in or set email to pref ||
-|| `TICKET_MODIFY` || Includes both `TICKET_APPEND` and `TICKET_CHGPROP`, and in addition allows resolving [wiki:TracTickets tickets] ||
+|| `TICKET_CHGPROP` || Modify [wiki:TracTickets ticket] properties (priority, assignment, keywords, etc.) with the following exceptions: edit description field, add/remove other users from cc field when logged in, and set email to pref ||
+|| `TICKET_MODIFY` || Includes both `TICKET_APPEND` and `TICKET_CHGPROP`, and in addition allows resolving [wiki:TracTickets tickets]. Tickets can be assigned to users through a [TracTickets#Assign-toasDrop-DownList drop-down list] when the list of possible owners has been restricted. ||
 || `TICKET_EDIT_CC` || Full modify cc field ||
 || `TICKET_EDIT_DESCRIPTION` || Modify description field ||
-|| `TICKET_ADMIN` || All `TICKET_*` permissions, plus the deletion of ticket attachments and modification of the description field ||
+|| `TICKET_ADMIN` || All `TICKET_*` permissions, plus the deletion of ticket attachments and modification of the reporter and description fields. It also allows managing ticket properties in the WebAdmin panel. ||
 
 Attention: the "view tickets" button appears with the `REPORT_VIEW` permission.
 
 === Roadmap ===
 
-|| `MILESTONE_VIEW` || View a milestone ||
+|| `MILESTONE_VIEW` || View milestones and assign tickets to milestones. ||
 || `MILESTONE_CREATE` || Create a new milestone ||
 || `MILESTONE_MODIFY` || Modify existing milestones ||
 || `MILESTONE_DELETE` || Delete milestones ||
 || `MILESTONE_ADMIN` || All `MILESTONE_*` permissions ||
-|| `ROADMAP_VIEW` || View the [wiki:TracRoadmap roadmap] page, is not (yet) the same as MILESTONE_VIEW, see #4292 ||
-|| `ROADMAP_ADMIN` || to be removed with #3022, replaced by MILESTONE_ADMIN ||
+|| `ROADMAP_VIEW` || View the [wiki:TracRoadmap roadmap] page, is not (yet) the same as MILESTONE_VIEW, see [trac:#4292 #4292] ||
+|| `ROADMAP_ADMIN` || to be removed with [trac:#3022 #3022], replaced by MILESTONE_ADMIN ||
 
 === Reports ===
 
 || `TIMELINE_VIEW` || View the [wiki:TracTimeline timeline] page ||
 || `SEARCH_VIEW` || View and execute [wiki:TracSearch search] queries ||
 || `CONFIG_VIEW` || Enables additional pages on ''About Trac'' that show the current configuration or the list of installed plugins ||
-|| `EMAIL_VIEW` || Shows email addresses even if [wiki:0.11/TracIni `trac show_email_addresses` configuration option is `false`] ||
+|| `EMAIL_VIEW` || Shows email addresses even if [trac:wiki:0.11/TracIni trac show_email_addresses configuration option is false] ||
 
 == Granting Privileges ==
 
 By default on a new Trac installation, the `anonymous` user will have ''view'' access to everything in Trac, but will not be able to create or modify anything.
 On the other hand, the `authenticated` users will have the permissions to ''create and modify tickets and wiki pages''.
 
- '''anonymous'''::
+'''anonymous'''
+{{{
  BROWSER_VIEW 
  CHANGESET_VIEW 
  FILE_VIEW 
  SEARCH_VIEW 
  TICKET_VIEW 
  TIMELINE_VIEW
- WIKI_VIEW 
+ WIKI_VIEW
+}}}
 
- '''authenticated'''::
+'''authenticated'''
+{{{
  TICKET_CREATE 
  TICKET_MODIFY 
  WIKI_CREATE 
  WIKI_MODIFY  
-
+}}}
 ----
 See also: TracAdmin, TracGuide and TracFineGrainedPermissions

trac/wiki/default-pages/TracQuery

 This is displayed as:
 [[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter)]]
 
+==== Full rows ====
+In ''table'' format you can also have full rows by using ''rows=<field>'' like below:
+
+{{{
+[[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter,rows=description)]]
+}}}
+
+This is displayed as:
+[[TicketQuery(max=3,status=closed,order=id,desc=1,format=table,col=resolution|summary|owner|reporter,rows=description)]]
+
 
 === Query Language ===
 

trac/wiki/default-pages/TracReports

   }}}
   ''This will make the query module the default handler for the “View Tickets” navigation item. We encourage you to try this configuration and report back what kind of features of reports you are missing, if any.''
 
-  '''''You will almost definitely need to restart your httpd at this point.'''''
 
 A report consists of these basic parts:
  * '''ID''' -- Unique (sequential) identifier 
 }}}
 Keep in mind that the integrity has to be maintained (i.e., ID has to be unique, and you don't want to exceed the max, since that's managed by SQLite someplace).
 
+You may also need to update or remove the report number stored in the report or query.
+
 == Navigating Tickets ==
 Clicking on one of the report results will take you to that ticket. You can navigate through the results by clicking the ''Next Ticket'' or ''Previous Ticket'' links just below the main menu bar, or click the ''Back to Report'' link to return to the report page.
 
 
 === Automatically formatted columns ===
  * '''ticket''' -- Ticket ID number. Becomes a hyperlink to that ticket. 
+ * '''id''' -- same as '''ticket''' above when '''realm''' is not set
+ * '''realm''' -- together with '''id''', can be used to create links to other resources than tickets (e.g. a realm of ''wiki'' and an ''id'' to a page name will create a link to that wiki page)
  * '''created, modified, date, time''' -- Format cell as a date and/or time.
-
  * '''description''' -- Ticket description field, parsed through the wiki engine.
 
 '''Example:'''
 SELECT id as ticket, created, status, summary FROM ticket 
 }}}
 
+Those columns can also be defined but marked as hidden, see [#column-syntax below].
+
 === Custom formatting columns ===
 Columns whose names begin and end with 2 underscores (Example: '''`__color__`''') are
 assumed to be ''formatting hints'', affecting the appearance of the row.
 '''Note:''' A table join is used to match ''ticket'' priorities with their
 numeric representation from the ''enum'' table.
 
-=== Changing layout of report rows ===
+=== Changing layout of report rows === #column-syntax
 By default, all columns on each row are display on a single row in the HTML
 report, possibly formatted according to the descriptions above. However, it's
 also possible to create multi-line report entries.
  * '''`_column_`''' -- ''Full row''. By adding an underscore ('_') both at the beginning and the end of a column name, the data will be shown on a separate row.
 
  * '''`_column`'''  --  ''Hide data''. Prepending an underscore ('_') to a column name instructs Trac to hide the contents from the HTML output. This is useful for information to be visible only if downloaded in other formats (like CSV or RSS/XML).
+   This can be used to hide any kind of column, even important ones required for identifying the resource, e.g. `id as _id` will hide the '''Id''' column but the link to the ticket will be present.
 
 '''Example:''' ''List active tickets, grouped by milestone, colored by priority, with  description and multi-line layout''
 

trac/wiki/default-pages/TracRoadmap

 
 == The Roadmap View ==
 
-Basically, the roadmap is just a list of future milestones. You can add a description to milestones (using WikiFormatting) describing main objectives, for example. In addition, tickets targeted for a milestone are aggregated, and the ratio between active and resolved tickets is displayed as a milestone progress bar.
+Basically, the roadmap is just a list of future milestones. You can add a description to milestones (using WikiFormatting) describing main objectives, for example. In addition, tickets targeted for a milestone are aggregated, and the ratio between active and resolved tickets is displayed as a milestone progress bar.  It is possible to further [wiki:TracRoadmapCustomGroups customise the ticket grouping] and have multiple ticket statuses shown on the progress bar.
 
 == The Milestone View ==
 
 
 More information about iCalendar can be found at [http://en.wikipedia.org/wiki/ICalendar Wikipedia].
 ----
-See also: TracTickets, TracReports, TracQuery, TracGuide
+See also: TracRoadmapCustomGroups, TracTickets, TracReports, TracQuery, TracGuide

trac/wiki/default-pages/TracStandalone

  * Fewer dependencies: You don't need to install apache or any other web-server.
  * Fast: Should be almost as fast as the [wiki:TracModPython mod_python] version (and much faster than the [wiki:TracCgi CGI]).
  * Automatic reloading: For development, Tracd can be used in ''auto_reload'' mode, which will automatically restart the server whenever you make a change to the code (in Trac itself or in a plugin).
+  * Options for tracd: `-r, --auto-reload`
 
 == Cons ==
 
 To create a .htpasswd file using htpasswd:
 
 {{{
-sudo htpasswd -c /path/to/env/.htpasswd username
+ $ sudo htpasswd -c /path/to/env/.htpasswd username
 }}}
 then for additional users:
 {{{
-sudo htpasswd /path/to/env/.htpasswd username2
+ $ sudo htpasswd /path/to/env/.htpasswd username2
 }}}
-then for starting the tracd:
+then for starting the tracd (on windows skip the "=" after --basic-auth):
 {{{
-tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname
+ $ tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname
 }}}
 
-
 Tracd provides support for both Basic and Digest authentication. The default is to use Digest; to use Basic authentication, replace `--auth` with `--basic-auth` in the examples below. (You must still specify a dialogic "realm", which can be an empty string by trailing the BASICAUTH with a comma.)
 
   ''Support for Basic authentication was added in version 0.9.''
 
-The general format for using authentication is:
+The general format for using authentication is (on windows skip the "=" after --auth):
 
 {{{
  $ tracd -p port --auth=base_project_dir,password_file_path,realm project_path
  * '''realm''' realm
  * '''project_path''' path of the project
 
-Example:
+Example (on windows skip the "=" after --auth):
 
 {{{
  $ tracd -p 8080 \
 Note: If you use the above script you must use the --auth option to tracd, not --basic-auth, and you must set the realm in the --auth value to 'trac' (without the quotes). Example usage (assuming you saved the script as trac-digest.py):
 
 {{{
-python trac-digest.py -u username -p password >> c:\digest.txt
-tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name
+ $ python trac-digest.py -u username -p password >> c:\digest.txt
+ $ tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name
 }}}
 
 Note: If you would like to use --basic-auth you need to use htpasswd tool from apache server to generate .htpasswd file. The remaining part is similar but make sure to use empty realm (i.e. coma after path). When using on Windows make sure to use -m option for it (did not tested it on *nix, so not sure if that is the case there).  If you do not have Apache, [trac:source:/tags/trac-0.11b2/contrib/htpasswd.py htpasswd.py] may help.  (Note that it requires a `crypt` or `fcrypt` module; see the source comments for details.)
 which in turn can be written using the relative link syntax
 in the Wiki: `[/<project_name>/chrome/site/software-0.1.tar.gz]` 
 
-The development version of Trac supports a new `htdocs:` TracLinks 
+Since 0.10, Trac supports a new `htdocs:` TracLinks 
 syntax for the above. With this, the example link above can be written simply 
 `htdocs:software-0.1.tar.gz`. 
 

trac/wiki/default-pages/TracSyntaxColoring

 
 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`.
 
-If you don't know why trac isnt detecting an installed library, try turning on Trac logging. It actually appears that Trac is broken with SilverCity 0.9.6. Either use the current 0.9.7 or the older 0.9.5 http://trac.edgewall.org/wiki/TracFaq#why-is-my-css-code-not-being-highlighted-even-though-i-have-silvercity-installed
+If you don't know why trac isnt detecting an installed library, try turning on Trac logging. It actually appears that Trac is broken with !SilverCity 0.9.6. Either use the current 0.9.7 or the older 0.9.5 http://trac.edgewall.org/wiki/TracFaq#why-is-my-css-code-not-being-highlighted-even-though-i-have-silvercity-installed
 
 When in use, Trac will automatically prioritize !SilverCity highlighting over Enscript if possible, (see note below). 
 
 
 Starting with trac 0.11 [http://pygments.org/ pygments] will be the new default highlighter. It's a highlighting library implemented in pure python, very fast, easy to extend and [http://pygments.org/docs/ well documented]. While it does not support as many languages as Enscript or Scintilla the overall output quality is much better.
 
-To use pygments in trac 0.11 you just have to install pygments 0.6 or higher (pygments_default_style = colorful under [mimeviewer] options has to be added).If you want to use it in trac 0.10 too you have to install the [http://trac-hacks.org/wiki/TracPygmentsPlugin TracPygmentsPlugin] from trac hacks. If you encounter any bugs, please file tickets regarding Pygments in [http://dev.pocoo.org/projects/pygments/ the pygments trac].
+To use pygments in trac 0.11 you just have to install pygments 0.6 or higher.  If you want to use it in trac 0.10 too you have to install the [th:TracPygmentsPlugin TracPygmentsPlugin] from trac hacks. If you encounter any bugs, please file tickets regarding Pygments at [http://dev.pocoo.org/projects/pygments/ the Pygments Trac site].
+
+The Pygments default style can specified in the [TracIni#mimeviewer-section mime-viewer] section of trac.ini. The default style can be over-ridden by setting a Style preference on the [/prefs/pygments preferences page]. 
 
 It's very likely that the list below is outdated because the list of supported pygments lexers is growing weekly. Just have a look at the page of [http://pygments.org/docs/lexers/ supported lexers] on the pygments webpage.
 
 || Diff     ||   || X || X ||
 || Eiffel   ||   || X || ||
 || Elisp    ||   || X || ||
-|| Fortran  ||   || X(3) || ||
+|| Fortran  ||   || X(3) || X ||
 || Haskell  ||   || X || X ||
 || Genshi || || || X ||
 || HTML     || X || X || X ||
 || Mako || || || X ||
 || Matlab   ||   || X (5) || ||
 || Mygthy || || || X ||
-|| Objective-C|| || X || ||
+|| Objective-C|| || X ||X ||
 || OCaml    ||   ||   || X ||
 || Pascal   ||   || X || X ||
 || * Perl   || X || X || X ||

trac/wiki/default-pages/TracTickets

 
 The option selected by default for the various drop-down fields can be set in [wiki:TracIni trac.ini], in the `[ticket]` section:
 
-
-
-
  * `default_component`: Name of the component selected by default
  * `default_milestone`: Name of the default milestone
  * `default_priority`: Default priority value
  * `default_severity`: Default severity value
  * `default_type`: Default ticket type
  * `default_version`: Name of the default version
+ * `default_owner`: Name of the default owner, ''if no owner for the component has been set''
 
-If any of these options are omitted, the default value will either be the first in the list, or an empty value, depending on whether the field in question is required to be set.
+If any of these options are omitted, the default value will either be the first in the list, or an empty value, depending on whether the field in question is required to be set.  Some of these can be chosen through the [trac:WebAdmin WebAdmin] plugin in the "Ticket System" section (others in the "trac.ini" section).  The default owner for a ticket will be the component owner, if that is set, or `default_owner`, if not.
 
 
 == Hiding Fields and Adding Custom Fields ==
 
 '''Note 2:''' If you need serious flexibility and aren't afraid of a little plugin coding of your own, see [http://trac-hacks.org/wiki/FlexibleAssignToPlugin FlexibleAssignTo] (disclosure: I'm the author)
 
+'''Note 3:''' Activating this option may cause some performance degradation, read more about this in the [trac:TracPerformance#Configuration Trac performance] page.
+
 == Preset Values for New Tickets ==
 
 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 &. 

trac/wiki/default-pages/TracUnicode

 ٹریک اردو بھی سپورٹ کرتا ہے۔
 
 === Vietnamese ===
-Viết tiếng Việt cũng được. Nhưng search từ tiếng Việt thì không bôi vàng được. (Keyword(s) in Vietnamese search result can not be hightlighted !!!!).
+Viết tiếng Việt cũng được.

trac/wiki/default-pages/TracUpgrade

 = Upgrade Instructions =
 [[TracGuideToc]]
 
-A [TracEnvironment Trac environment] needs to be upgraded before it can be used with Trac 0.11. This document describes the steps necessary to upgrade an environment.
-
-Environment upgrades are not necessary for minor version releases unless otherwise noted. 
-
 == Instructions ==
 
-Typically, there are four steps involved in upgrading to a newer version of Trac:
+Typically, there are five steps involved in upgrading to a newer version of Trac:
 
-=== Update the Trac Code ===
+=== 1. Update the Trac Code === #UpdatetheTracCode
 
 Get the new version as described in TracInstall, or your operating system specific procedure.
 
+If you installed a recent 0.11 version of Trac via {{{easy_install}}}, it might be the easiest to use it also to upgrade you Trac installation.
+
+{{{
+# easy_install --upgrade Trac
+}}}
+
 If you do a manual (not operating system specific) upgrade, you should also stop any running Trac server before the installation. Doing "hot" upgrades is not advised, especially not on Windows ([trac:ticket:7625 #7265]).
 
 You may also want to remove the pre-existing Trac code by deleting the `trac` directory from the Python `lib/site-packages` directory, or remove Trac .eggs from former versions.
 The location of the site-packages directory depends on the operating system, and the location in which Python was installed. However, the following locations are common:
- * If you’re using Linux: /usr/lib/python2.X/site-packages
- * If you’re using Windows: C:\Python2.X\lib\site-packages
- * If you’re using MacOSX: /Library/Python/2.X/site-packages
+ * on Linux: /usr/lib/python2.X/site-packages
+ * on Windows: C:\Python2.X\lib\site-packages
+ * on MacOSX: /Library/Python/2.X/site-packages
 
 You may also want to remove the Trac `cgi-bin`, `htdocs`, `templates` and `wiki-default` directories that are commonly found in a directory called `share/trac` (the exact location depends on your platform).
 
 
 If you had the webadmin plugin installed, you can now uninstall it as it is now part of the Trac code base.
 
-=== Upgrade the Trac Environment ===
+=== 2. Upgrade the Trac Environment === #UpgradetheTracEnvironment
+
+Environment upgrades are not necessary for minor version releases unless otherwise noted. 
 
 After restarting, Trac should show the instances which need a manual upgrade via the automated upgrade scripts to ease the pain. These scripts are run via [TracAdmin trac-admin]:
 {{{
 
 This command will do nothing if the environment is already up-to-date.
 
-Note that if you are using a PostgreSQL database, this command will fail with the message that the environment can only be backed up when you use an SQLite database. This means that you will have to backup the repository and the database manually. Then, to perform the actual upgrade, run:
+Note that a backup of your database will be performed automatically prior to the upgrade. 
+This feature is relatively new for the PostgreSQL or MySQL database backends, so if it fails, you will have to backup the database manually. Then, to perform the actual upgrade, run:
 {{{
 trac-admin /path/to/projenv upgrade --no-backup
 }}}
 
 If you are using custom CSS styles or modified templates in the templates directory of the TracEnvironment, you will need to convert them to the Genshi way of doing things. To continue to use your style sheet, follow the instructions at TracInterfaceCustomization#SiteAppearance.
 
-=== Update the Trac Documentation ===
+=== 3. Update the Trac Documentation === #UpdatetheTracDocumentation
 
 Every [TracEnvironment Trac environment] includes a copy of the Trac documentation for the installed version. As you probably want to keep the included documentation in sync with the installed version of Trac, [TracAdmin trac-admin] provides a command to upgrade the documentation:
 {{{
 
 Note that this procedure will of course leave your `WikiStart` page intact.
 
-=== Site Templates ===
+=== 4. Resynchronize the Trac Environment Against the Source Code Repository ===
+
+Each [TracEnvironment Trac environment] must be resynchronized against the source code repository in order to avoid errors such as "[http://trac.edgewall.org/ticket/6120 No changeset ??? in the repository]" while browsing the source through the Trac interface:
+
+{{{
+trac-admin /path/to/projenv resync
+}}}
+
+=== 5. Steps specific to a given Trac version  ===
+==== Upgrading to Trac 0.11 ====
+===== Site Templates =====
 The templating engine has changed in 0.11, please look at TracInterfaceCustomization for more information.
 
-=== Trac Macros, Plugins ===
+===== Trac Macros, Plugins =====
 The Trac macros will need to be adapted, as the old-style wiki-macros are not supported anymore (due to the drop of [trac:ClearSilver ClearSilver] and the HDF); they need to be converted to the new-style macros, see WikiMacros. When they are converted to the new style, they need to be placed into the plugins directory instead and not wiki-macros, which is no longer scanned for macros or plugins.
 
-=== For CGI users ===
-
-For those who run Trac under the CGI environment, run this command in order to obtain the trac.cgi file:
+===== For FCGI/WSGI/CGI users =====
+For those who run Trac under the CGI environment, run this command in order to obtain the trac.*gi file:
 {{{
 trac-admin /path/to/env deploy /deploy/directory/path
 }}}
 
 This will create a deploy directory with the following two subdirectories: `cgi-bin` and `htdocs`. Then update your Apache configuration file `httpd.conf` with this new `trac.cgi` location and `htdocs` location.
 
-=== Restart the Web Server ===
+=== 6. Restart the Web Server === #RestarttheWebServer
+
 If you are not running [wiki:TracCgi CGI], reload the new Trac code by restarting your web server.
 
 == Known Issues ==
+
 === parent dir ===
 If you use a trac parent env configuration and one of the plugins in one child does not work, none of the children work.
+
 === some core modules won't load === 
 This can happen in particular with Python 2.3 on Windows when upgrading without uninstalling first.
 Some modules were previously capitalized and were changed to lower case, e.g. trac/About.py became trac/about.py. You may find such messages in the Trac log:
 ERROR: Skipping "trac.about = trac.about": (can't import "No module named about")
 }}}
 Remove the `Lib/site-packages/trac` folder and reinstall.
+
 === Wiki Upgrade ===
-`trac-admin` will not delete or remove pages that were in version 0.10 but now are not in version 0.11, such as WikiMacros.
+`trac-admin` will not delete or remove default wiki pages that were present in a previous version but are no longer in the new version.
+
 
 == Changing Database Backend ==
-== SQLite to PostgreSQL ==
+=== SQLite to PostgreSQL ===
 
 The [http://trac-hacks.org/wiki/SqliteToPgScript sqlite2pg] script on [http://trac-hacks.org trac-hacks.org] has been written to assist in migrating a SQLite database to a PostgreSQL database
 

trac/wiki/default-pages/TracWorkflow

 
 == Additional Ticket Workflows ==
 
-There are several example workflows provided in the Trac source tree; look in [trac:source:trunk/contrib/workflow contrib/workflow] for `.ini` config sections.  One of those may be a good match for what you want. They can be pasted into the `[ticket-workflow]` section of your `trac.ini` file.
+There are several example workflows provided in the Trac source tree; look in [trac:source:trunk/contrib/workflow contrib/workflow] for `.ini` config sections.  One of those may be a good match for what you want. They can be pasted into the `[ticket-workflow]` section of your `trac.ini` file. However if you have existing tickets then there may be issues if those tickets have states that are not in the new workflow. 
 
 Here are some [http://trac.edgewall.org/wiki/WorkFlow/Examples diagrams] of the above examples.
 
 }}}
 And then open up the resulting `trac.pdf` file created by the script (it will be in the same directory as the `trac.ini` file).
 
+An online copy of the workflow parser is available at http://foss.wush.net/cgi-bin/visual-workflow.pl
+
 After you have changed a workflow, you need to restart apache for the changes to take effect. This is important, because the changes will still show up when you run your script, but all the old workflow steps will still be there until the server is restarted.
 
 == Example: Adding optional Testing with Workflow ==

trac/wiki/default-pages/WikiFormatting

 
 Example display: [[Image(htdocs:../common/trac_logo_mini.png)]]
 
-
 See WikiMacros for further documentation on the `[[Image()]]` macro.
 
 

trac/wiki/default-pages/WikiHtml

 
 Note that Trac sanitizes your HTML code before displaying it. That means that if you try to use potentially dangerous constructs such as Javascript event handlers, those will be removed from the output. 
 
-Since 0.11, the filtering is done by Genshi, and as such, the produced out will be a well-formed fragment of HTML. In other words, this mean that you can no longer use two HTML blocks, one for opening a <div>, the second for closing it, in order to wrap arbitrary wiki text.
-To achieve this, you need now to use the ''div'' Wiki processor:
+Since 0.11, the filtering is done by Genshi, and as such, the produced output will be a well-formed fragment of HTML. In other words, this mean that you can no longer use two HTML blocks, one for opening a <div>, the second for closing it, in order to wrap arbitrary wiki text.
+The new way to wrap any wiki content inside a <div> is to use the ''div'' Wiki  processor:
 
 {{{
 {{{
 This is the ''only'' way to go in Trac 0.11
 }}}
 
+Note that if you don't specify a CSS class, the `wikipage` class will be added, so that the special layout of headers is respected in the <div>. If you specify explicitly the padding property, you have to take this into account (tip: [http://getfirebug.com/ get FireBug]!).
+
 For spans, you should rather use the Macro call syntax:
 {{{
  Hello [[span(''WORLD'' (click [#world-anchor here]), style=color: green; font-size: 120%, id=world-anchor)]]!
  * http://www.w3.org/MarkUp/ -- HTML Markup Home Page
 
 ----
-See also:  WikiProcessors, WikiFormatting, WikiRestructuredText
+See also:  WikiProcessors, WikiFormatting, WikiRestructuredText

trac/wiki/default-pages/WikiMacros

 Another kind of macros are WikiProcessors. They typically deal with alternate markup formats and representation of larger blocks of information (like source code highlighting).
 
 == Using Macros ==
-Macro calls are enclosed in two ''square brackets''. Like Python functions, macros can also have arguments, a comma separated list within parentheses. 
+Macro calls are enclosed in two ''square brackets''. Like Python functions, macros can also have arguments, a comma separated list within parentheses.
 
 Trac macros can also be written as TracPlugins. This gives them some capabilities that macros do not have, such as being able to directly access the HTTP request.
 
 Also, have a look at [trac:source:tags/trac-0.11/sample-plugins/Timestamp.py Timestamp.py] for an example that shows the difference between old style and new style macros and at the [trac:source:tags/trac-0.11/wiki-macros/README macros/README] which provides a little more insight about the transition.
 
 === Macro without arguments ===
-It should be saved as `TimeStamp.py` as Trac will use the module name as the Macro name
+It should be saved as `TimeStamp.py` (in the TracEnvironment's `plugins/` directory) as Trac will use the module name as the Macro name.
 {{{
 #!python
 from datetime import datetime
 }}}
 
 === Macro with arguments ===
-It should be saved as `HelloWorld.py` (in the plugins/ directory) as Trac will use the module name as the Macro name
+It should be saved as `HelloWorld.py` (in the TracEnvironment's `plugins/` directory) as Trac will use the module name as the Macro name.
 {{{
 #!python
 from trac.wiki.macros import WikiMacroBase

trac/wiki/default-pages/WikiProcessors

  * '''rst''' -- Trac support for Restructured Text. See WikiRestructuredText.
  * '''textile''' -- Supported if [http://cheeseshop.python.org/pypi/textile Textile] is installed. See [http://www.textism.com/tools/textile/ a Textile reference].
  * '''comment''' -- Do not process the text in this section (i.e. contents exist only in the plain text - not in the rendered page).
+ * '''diff''' -- Pretty print patches and diffs.
 
 === Code Highlighting Support ===
 Trac includes processors to provide inline [wiki:TracSyntaxColoring syntax highlighting] for the following languages:
  * '''c''' -- C
  * '''cpp''' -- C++
+ * '''csharp''' --- C# (''use #!text/x-csharp'')
  * '''python''' -- Python
  * '''perl''' -- Perl
  * '''ruby''' -- Ruby

trac/wiki/default-pages/WikiRestructuredText

 From the reStucturedText webpage:
  "''reStructuredText is an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax and parser   system. It is useful for in-line program documentation (such as Python docstrings), for quickly creating  simple web pages, and for standalone documents. reStructuredText is designed for extensibility for  specific application domains. ''"
 
+If you want a file from your Subversion repository be displayed as reStructuredText in Trac's source browser, set `text/x-rst` as value for the Subversion property `svn:mime-type`. See [trac:source:/trunk/INSTALL this example].
+
 === Requirements ===
 Note that to activate RST support in Trac, the python docutils package must be installed. 
 If not already available on your operating system, you can download it at the [http://docutils.sourceforge.net/rst.html RST Website].