changeset 7919:e3b34d02c61a

doc: add html versions of man pages Also a minor change to prep for future inclusion of a generated version of config.ini in reference document. This would replace the incomplete description that is there.
author John Rouillard <rouilj@ieee.org>
date Mon, 29 Apr 2024 01:29:07 -0400
parents d5dfc152cd9d
children 6aa0525187cd
files doc/conf.py doc/html_extra/man_pages/roundup-admin.1.html doc/html_extra/man_pages/roundup-demo.1.html doc/html_extra/man_pages/roundup-mailgw.1.html doc/html_extra/man_pages/roundup-server.1.html doc/index.txt doc/man_pages.txt website/www/docs.txt
diffstat 8 files changed, 1509 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/doc/conf.py	Mon Apr 29 00:53:01 2024 -0400
+++ b/doc/conf.py	Mon Apr 29 01:29:07 2024 -0400
@@ -99,7 +99,7 @@
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
 # see https://issues.roundup-tracker.org/issue2550907:
-exclude_patterns = ['_build',
+exclude_patterns = ['_build', 'tracker_config.txt',
                     'announcement.txt', 'whatsnew-0.7.txt',
                     'whatsnew-0.8.txt']
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/html_extra/man_pages/roundup-admin.1.html	Mon Apr 29 01:29:07 2024 -0400
@@ -0,0 +1,665 @@
+<!-- Creator     : groff version 1.22.4 -->
+<!-- CreationDate: Mon Apr 29 04:19:48 2024 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<meta name="Content-Style" content="text/css">
+<style type="text/css">
+       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       h1      { text-align: center }
+</style>
+<title>ROUNDUP-ADMIN</title>
+
+</head>
+<body>
+
+<h1 align="center">ROUNDUP-ADMIN</h1>
+
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#OPTIONS">OPTIONS</a><br>
+<a href="#COMMANDS">COMMANDS</a><br>
+<a href="#READLINE SUPPORT">READLINE SUPPORT</a><br>
+<a href="#SECURITY NOTES">SECURITY NOTES</a><br>
+<a href="#ENVIRONMENT VARIABLES">ENVIRONMENT VARIABLES</a><br>
+<a href="#FURTHER HELP">FURTHER HELP</a><br>
+<a href="#AUTHOR">AUTHOR</a><br>
+
+<hr>
+
+
+<h2>NAME
+<a name="NAME"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">roundup-admin -
+administrate roundup trackers</p>
+
+<h2>SYNOPSIS
+<a name="SYNOPSIS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>roundup-admin</b>
+[<i>options</i>] <i>&lt;command&gt;
+&lt;arguments&gt;</i></p>
+
+<h2>OPTIONS
+<a name="OPTIONS"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><i><b>-i</b>
+instance home</i></p>
+
+<p style="margin-left:22%;">Specify the issue tracker
+&quot;home directory&quot; to administer</p>
+
+<p style="margin-left:11%;"><b>-u</b>
+<i>user</i>[<b>:</b><i>password</i>]</p>
+
+<p style="margin-left:22%;">The user and password to use
+for commands (partial implemention, see Security Notes
+below).</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-h</b></p></td>
+<td width="8%"></td>
+<td width="78%">
+
+
+<p>Print help text.</p></td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-d</b></p></td>
+<td width="8%"></td>
+<td width="78%">
+
+
+<p>Print full designators (e.g. issue1) not just id numbers
+(1).</p> </td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-c</b></p></td>
+<td width="8%"></td>
+<td width="78%">
+
+
+<p>When outputting lists of data, comma-separate them. Same
+as <b>-S &quot;,&quot;</b>.</p></td></tr>
+</table>
+
+<p style="margin-left:11%;"><b>-S</b> <i>string</i></p>
+
+<p style="margin-left:22%;">When outputting lists of data,
+separate items with given string.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-s</b></p></td>
+<td width="8%"></td>
+<td width="78%">
+
+
+<p>When outputting lists of data, space-separate them. Same
+as <b>-S &quot; &quot;</b>.</p></td></tr>
+</table>
+
+<p style="margin-left:11%;"><b>-P pragma=value</b></p>
+
+<p style="margin-left:22%;">Set a pragma on the command
+line. Multiple <b>-P</b> options can be specified to set
+multiple pragmas.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-V</b></p></td>
+<td width="8%"></td>
+<td width="67%">
+
+
+<p>Be verbose when importing data.</p></td>
+<td width="11%">
+</td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-v</b></p></td>
+<td width="8%"></td>
+<td width="67%">
+
+
+<p>Report Roundup and Python versions and quit.</p></td>
+<td width="11%">
+</td></tr>
+</table>
+
+<p style="margin-left:11%; margin-top: 1em">Only one of
+<b>-s</b>, <b>-c</b> or <b>-S</b> can be specified.</p>
+
+<h2>COMMANDS
+<a name="COMMANDS"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">If no command
+is provided on the command line, roundup-admin will enter an
+interactive mode. More details about these commands are
+available using the help command.</p>
+
+<p style="margin-left:11%; margin-top: 1em">A designator is
+a classname and a nodeid concatenated, eg. bug1, user10,
+....</p>
+
+<p style="margin-left:11%; margin-top: 1em">Roundup-admin
+takes a number of commands:</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="6%">
+
+
+<p style="margin-top: 1em"><b>help</b></p></td>
+<td width="5%"></td>
+<td width="36%">
+
+
+<p style="margin-top: 1em">prints help (same as
+<b>-h</b>)</p> </td>
+<td width="42%">
+</td></tr>
+</table>
+
+<p style="margin-left:11%;"><b>help</b>
+<i>&lt;subcommand&gt;</i></p>
+
+<p style="margin-left:22%;">Print command-specific help</p>
+
+<p style="margin-left:11%;"><b>help all</b></p>
+
+<p style="margin-left:22%;">Print available help for all
+commands.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="9%">
+
+
+<p><b>commit</b></p></td>
+<td width="2%"></td>
+<td width="78%">
+
+
+<p>Commit changes made to the database during an
+interactive session.</p></td></tr>
+</table>
+
+<p style="margin-left:22%; margin-top: 1em">The changes
+made during an interactive session are not automatically
+written to the database - they must be committed using this
+command.</p>
+
+<p style="margin-left:22%; margin-top: 1em">One-off
+commands on the command-line are automatically committed if
+they are successful. See also rollback.</p>
+
+<p style="margin-left:11%;"><b>create</b> <i>classname
+property=value ...</i></p>
+
+<p style="margin-left:22%;">This creates a new entry of the
+given class using the property name=value arguments provided
+on the command line after the &quot;create&quot;
+command.</p>
+
+<p style="margin-left:11%;"><b>display</b>
+<i>designator[,designator]*</i></p>
+
+<p style="margin-left:22%;">This lists the properties and
+their associated values for the given node. The pragma
+<b>display_header</b> can be used to add a header between
+designators that includes the active/retired status of the
+item.</p>
+
+<p style="margin-left:11%;"><b>export</b>
+<i>[[-]class[,class]] export_dir</i></p>
+
+<p style="margin-left:22%;">Export the database to
+colon-separated-value files. To exclude the files (e.g. for
+the msg or file class), use the exporttables command.</p>
+
+<p style="margin-left:22%; margin-top: 1em">Optionally
+limit the export to just the named classes or exclude the
+named classes, if the 1st argument starts with
+&rsquo;-&rsquo;.</p>
+
+<p style="margin-left:22%; margin-top: 1em">This action
+exports the current data from the database into
+colon-separated-value files that are placed in the nominated
+destination directory.</p>
+
+<p style="margin-left:11%;"><b>exporttables</b>
+<i>[[-]class[,class]] export_dir</i></p>
+
+<p style="margin-left:22%;">Export the database to
+colon-separated-value files, excluding the files below
+$TRACKER_HOME/db/files/ (which can be archived separately).
+To include the files, use the export command.</p>
+
+<p style="margin-left:11%;"><b>filter</b> <i>classname
+propname=value ...</i></p>
+
+<p style="margin-left:22%;">Find the nodes of the given
+class with a given property value. Multiple values can be
+specified by separating them with commas. If property is a
+string, all values must match. I.E. it&rsquo;s an matches.
+I.E. an &rsquo;or&rsquo; operation.</p>
+
+<p style="margin-left:11%;"><b>find</b> <i>classname
+propname=value ...</i></p>
+
+<p style="margin-left:22%;">Find the nodes of the given
+class with a given link property value.</p>
+
+<p style="margin-left:11%;"><b>genconfig</b>
+<i>&lt;filename&gt;</i></p>
+
+<p style="margin-left:22%;">Generate a new tracker config
+file (ini style) with default values in
+<i>&lt;filename&gt;</i>. Note that this does not preserve
+any settings from the current tracker. Use updateconfig for
+that.</p>
+
+<p style="margin-left:11%;"><b>get</b> <i>property
+designator[,designator]*</i></p>
+
+<p style="margin-left:22%;">Get the given property of one
+or more designator(s).</p>
+
+<p style="margin-left:22%; margin-top: 1em">Retrieves the
+property value of the nodes specified by the
+designators.</p>
+
+<p style="margin-left:11%;"><b>history</b> <i>designator
+[skipquiet] [raw]</i></p>
+
+<p style="margin-left:22%;">Lists the journal entries
+viewable by the user for the node identified by the
+designator. If skipquiet is added, journal entries for quiet
+properties are not shown. Without the raw option a more
+human readable output format is used.</p>
+
+<p style="margin-left:11%;"><b>import</b>
+<i>import_dir</i></p>
+
+<p style="margin-left:22%;">Import a database from the
+directory containing CSV files, two per class to import.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The imported
+nodes will have the same nodeid as defined in the import
+file, thus replacing any existing content.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The new nodes
+are added to the existing database - if you want to create a
+new database using the imported data, then create a new
+database (or, tediously, retire all the old data). See also
+export.</p>
+
+<p style="margin-left:11%;"><b>importtables</b>
+<i>import_dir</i></p>
+
+<p style="margin-left:22%;">Import a database from the
+directory containing CSV files, two per class to import.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The imported
+nodes will have the same nodeid as defined in the import
+file, thus replacing any existing content.</p>
+
+<p style="margin-left:22%; margin-top: 1em">This only
+imports database tables. It does not import files/message
+content. It is used to import data exported by exporttables.
+See also exporttables.</p>
+
+<p style="margin-left:11%;"><b>initialise</b>
+<i>[adminpw]</i></p>
+
+<p style="margin-left:22%;">Initialise a new Roundup
+tracker.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The
+administrator details will be set at this step.</p>
+
+<p style="margin-left:11%;"><b>install</b> <i>[template
+[backend [key=val[,key=val]]]]</i></p>
+
+<p style="margin-left:22%;">Install a new roundup
+tracker.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The command
+will prompt for the tracker home directory (if not supplied
+through TRACKER_HOME or the -i option). The template and
+backend may be specified on the command-line as arguments,
+in that order.</p>
+
+<p style="margin-left:22%; margin-top: 1em">Command line
+arguments following the backend allows you to pass initial
+values for config options. For example, passing
+&quot;web_http_auth=no,rdbms_user=dinsdale&quot; will
+override defaults for options http_auth in section [web] and
+user in section [rdbms]. Please be careful to not use spaces
+in this argument! (Enclose whole argument in quotes if you
+need spaces in option value).</p>
+
+<p style="margin-left:22%; margin-top: 1em">The initialise
+command must be called after this command in order to
+initialise the tracker&rsquo;s database. You may edit the
+tracker&rsquo;s initial database contents before running
+that command by editing the tracker&rsquo;s dbinit.py module
+init() function.</p>
+
+<p style="margin-left:22%; margin-top: 1em">See also
+initopts help.</p>
+
+<p style="margin-left:11%;"><b>list</b> <i>classname
+[property]</i></p>
+
+<p style="margin-left:22%;">Lists all instances of the
+given class. If the property is not specified, the
+&quot;label&quot; property is used. The label property is
+tried in order: the key, &quot;name&quot;, &quot;title&quot;
+and then the first property, alphabetically.</p>
+
+<p style="margin-left:22%; margin-top: 1em">With <b>-c</b>,
+<b>-S</b> or <b>-s</b> print a list of item id&rsquo;s if no
+property specified. If property specified, print list of
+that property for every class instance.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The pragma
+<b>show_retired</b> can be used to print only retired items
+or to print retired and active items. The default is to
+print only active items.</p>
+
+<p style="margin-left:11%;"><b>migrate</b></p>
+
+<p style="margin-left:22%;">Update a tracker&rsquo;s
+database to be compatible with the Roundup codebase.</p>
+
+<p style="margin-left:22%; margin-top: 1em">You should run
+the &quot;migrate&quot; command for your tracker once
+you&rsquo;ve installed the latest codebase.</p>
+
+<p style="margin-left:22%; margin-top: 1em">Do this before
+you use the web, command-line or mail interface and before
+any users access the tracker.</p>
+
+<p style="margin-left:22%; margin-top: 1em">This command
+will respond with either &quot;Tracker updated&quot; (if
+you&rsquo;ve not previously run it on an RDBMS backend) or
+&quot;No migration action required&quot; (if you have run
+it, or have used another interface to the tracker, or
+possibly because you are using anydbm).</p>
+
+<p style="margin-left:22%; margin-top: 1em">It&rsquo;s safe
+to run this even if it&rsquo;s not required, so just get
+into the habit.</p>
+
+<p style="margin-left:11%;"><b>pack</b> <i>period |
+date</i></p>
+
+<p style="margin-left:22%;">Remove journal entries older
+than a period of time specified or before a certain
+date.</p>
+
+<p style="margin-left:11%;"><b>perftest</b> <i>[mode]
+[arguments]*</i></p>
+
+<p style="margin-left:22%;">Run performance test. For
+example test the effect of changing password hashing
+parameters.</p>
+
+<p style="margin-left:11%;"><b>pragma</b>
+<i>setting=value</i>|<b>list</b></p>
+
+<p style="margin-left:22%;">Set internal settings to a
+value. E.G.</p>
+
+<p style="margin-left:22%; margin-top: 1em">pragma
+verbose=True <br>
+pragma verbose=yes <br>
+pragma verbose=on <br>
+pragma verbose=1</p>
+
+<p style="margin-left:22%; margin-top: 1em">will turn on
+verbose mode for roundup-admin.</p>
+
+<p style="margin-left:22%; margin-top: 1em">pragma list</p>
+
+<p style="margin-left:22%; margin-top: 1em">will show all
+settings and their current values. If verbose is enabled
+hidden settings and descriptions will be shown.</p>
+
+<p style="margin-left:11%;"><b>reindex</b>
+<i>[classname|classname:#-#|designator]*</i> This will</p>
+
+<p style="margin-left:22%;">re-generate the search indexes
+for a tracker. You can specify a specific item (or items)
+(e.g. issue23), range(s) of items (e.g. issue:1-1000),
+class(es) (e.g. issue) or reindex all items in the database
+if no arguments are supplied.</p>
+
+<p style="margin-left:11%;"><b>restore</b>
+<i>designator[,designator]*</i></p>
+
+<p style="margin-left:22%;">Restore the retired node
+specified by designator.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The given nodes
+will become available for users again.</p>
+
+<p style="margin-left:11%;"><b>retire</b>
+<i>designator[,designator]*</i></p>
+
+<p style="margin-left:22%;">This action indicates that a
+particular node is not to be retrieved by the list or find
+commands, and its key value may be re-used. See also
+restore.</p>
+
+<p style="margin-left:11%;"><b>rollback</b></p>
+
+<p style="margin-left:22%;">Undo all changes that are
+pending commit to the database.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The changes
+made during an interactive session are not automatically
+written to the database - they must be committed manually.
+This command undoes all those changes, so a commit
+immediately after would make no changes to the database.</p>
+
+<p style="margin-left:11%;"><b>security</b> <i>[Role
+name]</i></p>
+
+<p style="margin-left:22%;">Display the Permissions
+available to one or all Roles.</p>
+
+<p style="margin-left:11%;"><b>set</b> <i>items
+property=value property=value ...</i></p>
+
+<p style="margin-left:22%;">Set the given properties of one
+or more items(s).</p>
+
+<p style="margin-left:22%; margin-top: 1em">The items are
+specified as a class or as a comma-separated list of item
+designators (ie
+&quot;designator[,designator,...]&quot;).</p>
+
+<p style="margin-left:22%; margin-top: 1em">This command
+sets the properties to the values for all designators given.
+If the value is missing (ie. &quot;property=&quot;) then the
+property is un-set. If the property is a multilink, you
+specify the linked ids for the multilink as comma-separated
+numbers (ie &quot;1,2,3&quot;).</p>
+
+<p style="margin-left:11%;"><b>specification</b>
+<i>classname</i></p>
+
+<p style="margin-left:22%;">Show the properties for a
+classname.</p>
+
+<p style="margin-left:11%;"><b>templates</b>
+<i>[trace_search]]</i></p>
+
+<p style="margin-left:22%;">Lists the names, location and
+description of all known templates.</p>
+
+<p style="margin-left:11%;"><b>table</b> <i>classname
+[property[,property]*]</i></p>
+
+<p style="margin-left:22%;">Lists all instances of the
+given class. If the properties are not specified, all
+properties are displayed. By default, the column widths are
+the width of the largest value.</p>
+
+<p style="margin-left:22%; margin-top: 1em">The pragma
+<b>show_retired</b> can be used to print only retired items
+or to print retired and active items. The default is to
+print only active items.</p>
+
+<p style="margin-left:11%;"><b>updateconfig</b>
+<i>&lt;filename&gt;</i></p>
+
+<p style="margin-left:22%;">This is used when updating
+software. It merges the <b>config.ini</b> from the tracker
+with new settings from the new software. The merged/updated
+config file is written to <i>&lt;filename&gt;</i>.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Commands may be
+abbreviated as long as the abbreviation matches only one
+command, e.g. l == li == lis == list.</p>
+
+<h2>READLINE SUPPORT
+<a name="READLINE SUPPORT"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">You can edit
+the command line and interact with history in
+roundup-admin&rsquo;s interactive mode. On Linux like
+systems, GNU Readline is required. On Mac&rsquo;s libedit
+can be used as well. On Windows pyreadline3 is required.
+See: https://docs.python.org/3/library/readline.html for
+details on readline.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Roundup-admin
+will save the history between roundup-admin sessions. The
+commands are saved to the <b>.roundup_admin_history</b> file
+in the user&rsquo;s home directory. You can set the pragma
+<b>history_length</b> on the roundup-admin command line to
+change the amount of available and stored history for the
+session.</p>
+
+<p style="margin-left:11%; margin-top: 1em">If you are
+using GNU readline, you can persistently change the history
+size by adding: <b>set history-size 100</b> to the init file
+<b>.roundup_admin_rlrc</b> located in the user&rsquo;s home
+directory.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Mac users using
+libedit should be able to persistently save history and set
+the history size by adding <b>history size 100</b>.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Users of
+pyreadline3 can use: <b>history_length(100)</b>.</p>
+
+<h2>SECURITY NOTES
+<a name="SECURITY NOTES"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">The <b>-u
+user</b> setting does not currently operate like a user
+logging in via the web. The user running roundup-admin must
+have read access to the tracker home directory. As a result
+the user has access to the files and the database info
+contained in config.ini.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Using <b>-u
+user</b> sets the actor/user parameter in the journal.
+Changes that are made are attributed to that user. The
+password is ignored if provided. Any existing username has
+full access to the data just like the admin user. This is an
+area for further development so that roundup-admin could be
+used with sudo to provide secure command line access to a
+tracker.</p>
+
+<h2>ENVIRONMENT VARIABLES
+<a name="ENVIRONMENT VARIABLES"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>ROUNDUP_LOGIN</b></p>
+
+<p style="margin-left:22%;">Provides an alternate way to
+set the user.</p>
+
+<h2>FURTHER HELP
+<a name="FURTHER HELP"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">roundup-admin
+-h <br>
+roundup-admin help -- this help <br>
+roundup-admin help &lt;command&gt; -- command-specific help
+<br>
+roundup-admin help all -- all available help</p>
+
+<h2>AUTHOR
+<a name="AUTHOR"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">This manpage
+was written by Bastian Kleineidam &lt;calvin@debian.org&gt;
+for the Debian distribution of roundup.</p>
+
+<p style="margin-left:11%; margin-top: 1em">The main author
+of roundup is Richard Jones
+&lt;richard@users.sourceforge.net&gt;.</p>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/html_extra/man_pages/roundup-demo.1.html	Mon Apr 29 01:29:07 2024 -0400
@@ -0,0 +1,192 @@
+<!-- Creator     : groff version 1.22.4 -->
+<!-- CreationDate: Mon Apr 29 04:57:43 2024 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<meta name="Content-Style" content="text/css">
+<style type="text/css">
+       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       h1      { text-align: center }
+</style>
+<title>ROUNDUP-DEMO</title>
+
+</head>
+<body>
+
+<h1 align="center">ROUNDUP-DEMO</h1>
+
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#OPTIONS">OPTIONS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#SEE ALSO">SEE ALSO</a><br>
+<a href="#AUTHOR">AUTHOR</a><br>
+
+<hr>
+
+
+<h2>NAME
+<a name="NAME"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">roundup-demo -
+create a roundup &quot;demo&quot; tracker and launch its web
+interface</p>
+
+<h2>SYNOPSIS
+<a name="SYNOPSIS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>roundup_demo</b>
+[<b>-h</b>] [<b>-b</b> <i>BIND_ADDRESS</i>] [<b>-b</b>
+{<b>anydbm</b>,<b>mysql</b>,<b>sqlite</b>,<b>postgresql</b>}]
+[<b>-t {minimal,jinja2,classic,responsive,devel}] [-p</b>
+<i>PORT</i><b>] [-P</b> <i>URLPORT</i><b>] [-V]
+[</b><i>directory</i><b>] [</b><i>backend</i><b>]
+[nuke]</b></p>
+
+<h2>OPTIONS
+<a name="OPTIONS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b><i>directory</i></b></p>
+
+<p style="margin-left:22%; margin-top: 1em">The home
+directory for the new demo tracker. (*)</p>
+
+<p style="margin-left:11%;"><i>backend</i></p>
+
+<p style="margin-left:22%; margin-top: 1em">Choose backend
+database. Depricated, use <b>-b</b>.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="6%">
+
+
+<p><b>nuke</b></p></td>
+<td width="5%"></td>
+<td width="78%">
+
+
+<p>Create a fresh demo tracker (deleting the existing one
+if any). E.G.</p></td></tr>
+</table>
+
+<p style="margin-left:22%;">roundup-demo -b sqlite -t
+classic ./mytracker nuke <br>
+will remove an existing tracker (if present) from the
+directory <b>./mytracker</b>. Then it will create and serve
+a new empty classic tracker using the sqlite backend.</p>
+
+<p style="margin-left:11%;"><b>-h</b>, <b>--help</b></p>
+
+<p style="margin-left:22%; margin-top: 1em">Show the help
+message and exit</p>
+
+<p style="margin-left:11%;"><b>-b</b> <i>BIND_ADDRESS,</i>
+<b>--bind_address</b> <i>BIND_ADDRESS</i></p>
+
+<p style="margin-left:22%; margin-top: 1em">Choose address
+for server to listen at. Use 0.0.0.0 to bind to all
+addreses. Default: 127.0.0.1.</p>
+
+<p style="margin-left:11%;"><b>-b</b>
+{<b>anydbm</b>,<b>mysql</b>,<b>sqlite</b>,<b>postgresql</b>},
+<b>--backend_db</b> <br>
+
+{<b>anydbm</b>,<b>mysql</b>,<b>sqlite</b>,<b>postgresql</b>}</p>
+
+<p style="margin-left:22%; margin-top: 1em">Choose backend
+database. Default: sqlite. Available backends are subject to
+availability on your system.</p>
+
+<p style="margin-left:11%;"><b>-t</b>
+{<b>minimal</b>,<b>jinja2</b>,<b>classic</b>,<b>responsive</b>,<b>devel</b>},
+<b>--template <br>
+{minimal,jinja2,classic,responsive,devel}</b></p>
+
+<p style="margin-left:22%; margin-top: 1em">Use specified
+template when building tracker. (*)</p>
+
+<p style="margin-left:11%;"><b>-p</b> <i>PORT</i>,
+<b>--port</b> <i>PORT</i></p>
+
+<p style="margin-left:22%; margin-top: 1em">Listen at this
+port. Default: search for open port starting at 8917.</p>
+
+<p style="margin-left:11%;"><b>-P</b> <i>URLPORT</i>,
+<b>--urlport</b> <i>URLPORT</i> When using</p>
+
+<p style="margin-left:22%; margin-top: 1em">docker this
+option passes the docker external port to the demo instance.
+If using <b>docker ... -p 9090:8917 ...</b> this should be
+set to <b>-P 9090</b>. Default: as selected by
+<b>--port</b>.</p>
+
+<p style="margin-left:11%;"><b>-V</b>, <b>--version</b></p>
+
+<p style="margin-left:22%; margin-top: 1em">Show
+program&rsquo;s version number and exit</p>
+
+<p style="margin-left:11%; margin-top: 1em">If items marked
+with (*) are missing, they will be asked for interactively
+when setting up the tracker.</p>
+
+<h2>DESCRIPTION
+<a name="DESCRIPTION"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">This command
+creates a fresh demo tracker for you to experiment with. The
+email features of Roundup will be turned off (so the nosy
+feature won&rsquo;t send email). It does this by removing
+the <b>nosyreaction.py</b> module from the demo
+tracker&rsquo;s <i>detectors</i> directory. If you wish to
+send email to promote the tracker to production, you will
+need to copy <b>nosyreaction.py</b> from the default tracker
+templates directory. The <b>templates</b> command from
+roundup-admin(1) can help you locate a replacement.</p>
+
+<p style="margin-left:11%; margin-top: 1em">If you wish,
+you may modify the demo tracker by editing its configuration
+files and HTML templates. See the <i>customisation</i>
+manual for information about how to do that.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Once
+you&rsquo;ve fiddled with the demo tracker, you may use it
+as a template for creating your real, live tracker. Simply
+run the <i>roundup-admin</i> command to install the tracker
+from inside the demo tracker home directory, and it will be
+listed as an available template for installation. No data
+will be copied over.</p>
+
+<h2>SEE ALSO
+<a name="SEE ALSO"></a>
+</h2>
+
+
+<h2>AUTHOR
+<a name="AUTHOR"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">This manpage
+was written by Richard Jones and extensively modified by
+John Rouillard &lt;rouilj@users.sourceforge.net&gt;.</p>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/html_extra/man_pages/roundup-mailgw.1.html	Mon Apr 29 01:29:07 2024 -0400
@@ -0,0 +1,346 @@
+<!-- Creator     : groff version 1.22.4 -->
+<!-- CreationDate: Mon Apr 29 04:19:48 2024 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<meta name="Content-Style" content="text/css">
+<style type="text/css">
+       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       h1      { text-align: center }
+</style>
+<title>ROUNDUP-MAILGW</title>
+
+</head>
+<body>
+
+<h1 align="center">ROUNDUP-MAILGW</h1>
+
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#OPTIONS">OPTIONS</a><br>
+<a href="#DESCRIPTION">DESCRIPTION</a><br>
+<a href="#ENVIRONMENT VARIABLES">ENVIRONMENT VARIABLES</a><br>
+<a href="#EXAMPLE">EXAMPLE</a><br>
+<a href="#AUTHOR">AUTHOR</a><br>
+
+<hr>
+
+
+<h2>NAME
+<a name="NAME"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">roundup-mailgw
+- mail gateway for roundup</p>
+
+<h2>SYNOPSIS
+<a name="SYNOPSIS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>roundup-mailgw</b>
+[<i>-h|--help] [-v] [--version] [-c|--default-class
+default_class] [-S|--set-value [class.]field=value]
+[-O|--oauth-directory directory] [-T|--oauth-token-endpoint
+endpoint-url] [instance_home] [mail source
+[specification]]</i></p>
+
+<h2>OPTIONS
+<a name="OPTIONS"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><i><b>-v
+--version</b></i></p>
+
+<p style="margin-left:22%;">Print version and exit.</p>
+
+<p style="margin-left:11%;"><b>-c --default-class</b>
+<i>hyperdb class</i></p>
+
+<p style="margin-left:22%;">specify the default tracker
+class - one of issue (the default), msg, file, user etc.
+Overrides the tracker&rsquo;s mailgw <i>default_class</i>
+setting.</p>
+
+<p style="margin-left:11%;"><b>-S --set-value</b>
+<i>[class.]property</i><b>=</b><i>value</i>[<b>;</b><i>property</i><b>=</b><i>value</i>]</p>
+
+<p style="margin-left:22%;">specify the values to set on
+the class specified as prefix using the same format as the
+Subject line property manipulations. If the class prefix is
+left out it defaults to <i>msg</i>. Can also be specified
+with <b>--set-value</b> (and abbreviated to
+<b>--set</b>).</p>
+
+<p style="margin-left:11%;"><b>-O --oauth-directory</b>
+<i>directory</i></p>
+
+<p style="margin-left:22%;">Only with OAuth authentication
+specify the directory containing additional OAuth
+credentials.</p>
+
+<p style="margin-left:11%;"><b>-T
+--oauth-token-endpoint</b> <i>url</i></p>
+
+<p style="margin-left:22%;">Token endpoint URL of your
+cloud provider, only used with OAuth.</p>
+
+<h2>DESCRIPTION
+<a name="DESCRIPTION"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">The roundup
+mail gateway may be called in one of four ways:</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="10%"></td>
+<td width="78%">
+
+
+<p>without arguments which will use the env var
+ROUNDUP_INSTANCE,</p> </td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="10%"></td>
+<td width="78%">
+
+
+<p>with an <i>instance_home</i> as the only argument,</p></td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="10%"></td>
+<td width="78%">
+
+
+<p>with both an <i>instance_home</i> and a mail spool file,
+or</p> </td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="1%">
+
+
+<p>&bull;</p></td>
+<td width="10%"></td>
+<td width="78%">
+
+
+<p>with both an instance home and a mail source type and
+its specification.</p></td></tr>
+</table>
+
+<p style="margin-left:11%; margin-top: 1em"><b>PIPE</b>
+<br>
+If there is no mail source specified, the mail gateway reads
+a single message from the standard input and submits the
+message to the roundup.mailgw module.</p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>UNIX
+mailbox</b> <br>
+In this case, the gateway reads all messages from the UNIX
+mail spool file and submits each in turn to the
+roundup.mailgw module. The file is emptied once all messages
+have been successfully handled. The file is specified as:
+<b><br>
+mailbox</b> <i>/path/to/mailbox</i></p>
+
+<p style="margin-left:11%; margin-top: 1em">In all of the
+following mail source types, the username and password can
+be stored in a ~/.netrc file. If done so, only the server
+name needs to be specified on the command-line.</p>
+
+<p style="margin-left:11%; margin-top: 1em">The username
+and/or password will be prompted for if not supplied on the
+command-line or in ~/.netrc.</p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>POP</b> <br>
+For the mail source &quot;pop&quot;, the gateway reads all
+messages from the POP server specified and submits each in
+turn to the roundup.mailgw module. The server is specified
+as: <b><br>
+pop</b>
+<i>username</i><b>:</b><i>password</i><b>@</b><i>server</i>
+<br>
+The username and password may be omitted: <b><br>
+pop</b> <i>username</i><b>@</b><i>server</i> <b><br>
+pop</b> <i>server</i> <br>
+are both valid.</p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>POPS</b>
+<br>
+Connect to the POP server over ssl/tls. This supports the
+same notation as POP.</p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>APOP</b>
+<br>
+Same as POP, but using Authenticated POP: <b><br>
+apop</b>
+<i>username</i><b>:</b><i>password</i><b>@</b><i>server</i></p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>IMAP</b>
+<br>
+Connect to an IMAP server. This supports the same notation
+as that of POP mail. <b><br>
+imap</b>
+<i>username</i><b>:</b><i>password</i><b>@</b><i>server</i>
+<br>
+It also allows you to specify a specific mailbox other than
+INBOX using this format: <b><br>
+imap</b>
+<i>username</i><b>:</b><i>password</i><b>@</b><i>server
+mailbox</i></p>
+
+<p style="margin-left:11%; margin-top: 1em"><b>IMAPS</b>
+<br>
+Connect to an IMAP server over ssl/tls. This supports the
+same notation as IMAP. <b><br>
+imaps</b>
+<i>username</i><b>:</b><i>password</i><b>@</b><i>server</i>
+[<i>mailbox</i>]</p>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>IMAPS_CRAM</b>
+<br>
+Connect to an IMAP server over ssl/tls using CRAM-MD5
+authentication. This supports the same notation as IMAP.
+<b><br>
+imaps_cram</b>
+<i>username</i><b>:</b><i>password</i><b>@</b><i>server</i>
+[<i>mailbox</i>]</p>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>IMAPS_OAUTH</b>
+<br>
+Connect to an IMAP server over ssl/tls using OAUTH
+authentication. Note that this does not support a password
+in imaps URLs. Instead it uses only the user and server and
+a command-line option for the directory with the files
+<b>access_token</b>, <b>refresh_token</b>,
+<b>client_secret</b>, and <b>client_id</b>. By default this
+directory is <b>oauth</b> in your tracker home directory.
+The access token is tried first and, if expired, the refresh
+token together with the client secret is used to retrieve a
+new access token. Note that both token files need to be
+<i>writeable</i>, the access token is continuously replaced
+and some cloud providers may also renew the refresh token
+from time to time: <b><br>
+imaps_oauth</b> <i>username</i><b>@</b><i>server</i>
+[<i>mailbox</i>] <br>
+The refresh and access tokens (the latter can be left
+empty), the client id and the client secret need to be
+retrieved via cloud provider specific protocols or
+websites.</p>
+
+<h2>ENVIRONMENT VARIABLES
+<a name="ENVIRONMENT VARIABLES"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>ROUNDUP_INSTANCE</b>
+<br>
+This can be used to set the instance directory. If it is
+set, the <i>instance_home</i> argument is optional.</p>
+
+<h2>EXAMPLE
+<a name="EXAMPLE"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">If your msg
+class has a messsagetype property you can set up aliases to
+receive the different types of messages. Setting up an alias
+in your MTA Using:</p>
+
+<p style="margin-left:11%; margin-top: 1em">tracker:
+|/tools/roundup/bin/roundup-mailgw <br>
+-S &quot;msg.messagetype=reply - to all&quot;
+/var/roundup/sysadmin</p>
+
+<p style="margin-left:11%; margin-top: 1em">(the lines are
+split for readability. In the alias file they will be on the
+same line). Replace /tools/roundup/bin/roundup-mailgw by
+your path to the roundup-mailgw. This creates the email
+alias &quot;tracker&quot;. All messages sent to it have
+their messagetype property set to &quot;reply - to
+all&quot;. The roundup tracker instance is located at
+/var/roundup/sysadmin.</p>
+
+<p style="margin-left:11%; margin-top: 1em">A comment alias
+would receive emails at tracker_comment with:</p>
+
+
+<p style="margin-left:11%; margin-top: 1em">tracker_comment:
+|/tools/roundup/bin/roundup-mailgw <br>
+-S &quot;msg.messagetype=to tech&quot;
+/var/roundup/sysadmin</p>
+
+<p style="margin-left:11%; margin-top: 1em">which would be
+a technical message. These messages can trigger different
+workflows based on the messagetype.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Both examples
+use the default class specified in the tracker&rsquo;s
+config.ini (usually the issue class).</p>
+
+<p style="margin-left:11%; margin-top: 1em">You can also
+set properties directly on the issue class. If your
+tracker&rsquo;s issue has a &quot;private&quot; property
+that limits who can view an issue and its messages:</p>
+
+<p style="margin-left:11%; margin-top: 1em">security:
+|/tools/roundup/bin/roundup-mailgw <br>
+-S &quot;issue.private=true&quot; -S
+&quot;issue.keyword+=security&quot; <br>
+/var/roundup/sysadmin</p>
+
+<p style="margin-left:11%; margin-top: 1em">would set the
+private property on a issue to restrict visiblity and mark
+the issue as a security topic using a keyword.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Both examples
+use the default class specified in the tracker&rsquo;s
+config.ini (usually the issue class).</p>
+
+<h2>AUTHOR
+<a name="AUTHOR"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">This manpage
+was written by Bastian Kleineidam &lt;calvin@debian.org&gt;
+for the Debian distribution of roundup.</p>
+
+<p style="margin-left:11%; margin-top: 1em">The main author
+of roundup is Richard Jones
+&lt;richard@users.sourceforge.net&gt;.</p>
+
+<p style="margin-left:11%; margin-top: 1em">Updates by John
+Rouillard &lt;rouilj@users.sourceforge.net&gt; and Ralf
+Schlatterbeck &lt;rsc@runtux.com&gt;.</p>
+<hr>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/html_extra/man_pages/roundup-server.1.html	Mon Apr 29 01:29:07 2024 -0400
@@ -0,0 +1,285 @@
+<!-- Creator     : groff version 1.22.4 -->
+<!-- CreationDate: Mon Apr 29 04:13:49 2024 -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta name="generator" content="groff -Thtml, see www.gnu.org">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<meta name="Content-Style" content="text/css">
+<style type="text/css">
+       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
+       h1      { text-align: center }
+</style>
+<title>ROUNDUP-SERVER</title>
+
+</head>
+<body>
+
+<h1 align="center">ROUNDUP-SERVER</h1>
+
+<a href="#NAME">NAME</a><br>
+<a href="#SYNOPSIS">SYNOPSIS</a><br>
+<a href="#OPTIONS">OPTIONS</a><br>
+<a href="#EXAMPLES">EXAMPLES</a><br>
+<a href="#CONFIGURATION FILE">CONFIGURATION FILE</a><br>
+<a href="#AUTHOR">AUTHOR</a><br>
+
+<hr>
+
+
+<h2>NAME
+<a name="NAME"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">roundup-server
+- start roundup web server</p>
+
+<h2>SYNOPSIS
+<a name="SYNOPSIS"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>roundup-server</b>
+[<i>options</i>] [<b>name=</b><i>tracker home</i>]*</p>
+
+<h2>OPTIONS
+<a name="OPTIONS"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>-C</b>
+<i>file</i> or <b>--config</b> <i>file</i></p>
+
+<p style="margin-left:22%;">Use options read from the
+configuration file (see below).</p>
+
+<p style="margin-left:11%;"><b>-n</b> <i>hostname</i></p>
+
+<p style="margin-left:22%;">Sets the host name or IP
+address to listen on. Default is localhost (127.0.0.1). Use
+0.0.0.0 to listen on all interfaces on the system.</p>
+
+<p style="margin-left:11%;"><b>-p</b> <i>port</i></p>
+
+<p style="margin-left:22%;">Sets the port to listen on
+(default: 8080).</p>
+
+<p style="margin-left:11%;"><b>-d</b> <i>PIDfile</i></p>
+
+<p style="margin-left:22%;">Run the server in the
+background and write the server&rsquo;s PID to the file
+indicated by PIDfile. The -l (or -L) option <b>must</b> be
+specified if -d is used.</p>
+
+<p style="margin-left:11%;"><b>-t
+fork|thread|debug|none</b></p>
+
+<p style="margin-left:22%;">Control multi-process mode.
+<b>debug</b> and <b>none</b> are always available. If an
+invalid mode is specified the server starts in <b>none</b>
+(also called single) mode. Default fork.</p>
+
+<p style="margin-left:11%;"><b>-m</b>
+<i>max_children</i></p>
+
+<p style="margin-left:22%;">Set the maximum number of child
+processes (servers). This value may need to be increased on
+a heavily loaded site. Default 40.</p>
+
+<p style="margin-left:11%;"><b>-l</b> <i>file</i></p>
+
+<p style="margin-left:22%;">Sets a filename to log to
+(instead of stdout). This is required if the -d option is
+used.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-L</b></p></td>
+<td width="8%"></td>
+<td width="78%">
+
+
+<p>Have the server log using the Python logger with key
+roundup.http.</p> </td></tr>
+</table>
+
+<p style="margin-left:11%;"><b>-i</b> <i>file</i></p>
+
+<p style="margin-left:22%;">Sets a filename to use as a
+template for generating the tracker index page. The variable
+&quot;trackers&quot; is available to the template and is a
+dict of all configured trackers.</p>
+
+<p style="margin-left:11%;"><b>-I</b>
+<i>header1[,header2,...]</i></p>
+
+<p style="margin-left:22%;">Pass the header(s) and their
+values to the backend. This allow-list of header variables
+can be used by custom code in the tracker or with a
+tracker&rsquo;s <b>http_auth_header</b> configuration option
+to allows a front end server to authenticate a user and pass
+the user identity to roundup.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-s</b></p></td>
+<td width="8%"></td>
+<td width="78%">
+
+
+<p>Enables use of SSL. In most cases, you will want to run
+a real web server (Apache, Nginx) as a proxy to
+roundup-server running without SSL. The real web server can
+filter/rate limit/firewall requests to roundup-server.</p></td></tr>
+</table>
+
+<p style="margin-left:11%;"><b>-e</b> <i>file</i></p>
+
+<p style="margin-left:22%;">Sets a filename containing the
+PEM file to use for SSL. The PEM file must include both the
+private key and certificate with appropriate headers (e.g.
+&quot;-----BEGIN PRIVATE KEY-----&quot;, &quot;-----END
+PRIVATE KEY-----&quot; and &quot;-----BEGIN
+CERTIFICATE-----&quot;, &quot;-----END
+CERTIFICATE-----&quot;. If no file is specified, a temporary
+self-signed certificate will be used.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="3%">
+
+
+<p><b>-N</b></p></td>
+<td width="8%"></td>
+<td width="78%">
+
+
+<p>Log client machine names instead of IP addresses (much
+slower).</p> </td></tr>
+</table>
+
+<p style="margin-left:11%;"><b>-V</b> <i>HTTPVER</i></p>
+
+<p style="margin-left:22%;">By default roundup-server uses
+HTTP/1.1 to enable keepalives for faster response. HTTPVER
+can be set to <b>HTTP/1.0</b> to disable keepalives.</p>
+
+<table width="100%" border="0" rules="none" frame="void"
+       cellspacing="0" cellpadding="0">
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="9%">
+
+
+<p><b>-u</b> <i>UID</i></p></td>
+<td width="2%"></td>
+<td width="61%">
+
+
+<p>Runs the Roundup web server as this UID.</p></td>
+<td width="17%">
+</td></tr>
+<tr valign="top" align="left">
+<td width="11%"></td>
+<td width="9%">
+
+
+<p><b>-g</b> <i>GID</i></p></td>
+<td width="2%"></td>
+<td width="61%">
+
+
+<p>Runs the Roundup web server as this GID.</p></td>
+<td width="17%">
+</td></tr>
+</table>
+
+<p style="margin-left:11%;"><b>-v</b> or
+<b>--version</b></p>
+
+<p style="margin-left:22%;">Print version and exit.</p>
+
+<p style="margin-left:11%;"><b>-h</b> or <b>--help</b></p>
+
+<p style="margin-left:22%;">Print help and exit.</p>
+
+<p style="margin-left:11%;"><b>--save-config</b></p>
+
+<p style="margin-left:22%;">Create configuration file and
+exit. The old config.ini will be saved to config.bak. Note
+that this command doesn&rsquo;t attempt to load or verify an
+existing config.ini. Running this in a tracker home
+directory will move the existing config.ini to config.bak
+and replace it with the roundup-server&rsquo;s config.ini.
+This will make the tracker in the directory fail to start
+until the original config.ini is restored.</p>
+
+<p style="margin-left:11%;"><b>name=</b><i>tracker
+home</i></p>
+
+<p style="margin-left:22%;">Sets the tracker home(s) to
+use. The <b>name</b> variable is how the tracker is
+identified in the URL (it&rsquo;s the first part of the URL
+path). The <i>tracker home</i> variable is the directory
+that was identified when you did &quot;roundup-admin
+init&quot;. You may specify any number of these name=home
+pairs on the command-line. For convenience, you may edit the
+TRACKER_HOMES variable in the roundup-server file instead.
+Make sure the name part doesn&rsquo;t include any url-unsafe
+characters like spaces, as these confuse the cookie handling
+in browsers like IE.</p>
+
+<h2>EXAMPLES
+<a name="EXAMPLES"></a>
+</h2>
+
+
+
+<p style="margin-left:11%; margin-top: 1em"><b>roundup-server
+-p 9000 bugs=/var/tracker reqs=/home/roundup/group1</b></p>
+
+<p style="margin-left:22%;">Start the server on port
+<b>9000</b> serving two trackers; one under <b>/bugs</b> and
+one under <b>/reqs</b>.</p>
+
+<h2>CONFIGURATION FILE
+<a name="CONFIGURATION FILE"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">See the
+&quot;admin_guide&quot; in the Roundup &quot;doc&quot;
+directory.</p>
+
+<h2>AUTHOR
+<a name="AUTHOR"></a>
+</h2>
+
+
+<p style="margin-left:11%; margin-top: 1em">This manpage
+was written by Bastian Kleineidam &lt;calvin@debian.org&gt;
+for the Debian distribution of roundup.</p>
+
+<p style="margin-left:11%; margin-top: 1em">The main author
+of roundup is Richard Jones
+&lt;richard@users.sourceforge.net&gt;.</p>
+<hr>
+</body>
+</html>
--- a/doc/index.txt	Mon Apr 29 00:53:01 2024 -0400
+++ b/doc/index.txt	Mon Apr 29 01:29:07 2024 -0400
@@ -30,6 +30,7 @@
    glossary
 
    admin_guide
+   man pages <man_pages>
    license
    acknowledgements
 
@@ -39,6 +40,7 @@
 
    Design Overview <overview>
    Design (original) <design>
+   Software Carpentry and Papers <sc>
 
    developers
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/man_pages.txt	Mon Apr 29 01:29:07 2024 -0400
@@ -0,0 +1,17 @@
+.. meta::
+   :description:
+
+     Links to man pages for the top level commands provided by Roundup.
+
+
+====================
+Roundup Manual Pages
+====================
+
+Roundup man pages have been formated as html for your use.
+
+  * `roundup-admin <man_pages/roundup-admin.1.html>`_
+  * `roundup-demo <man_pages/roundup-demo.1.html>`_
+  * `roundup-mailgw <man_pages/roundup-mailgw.1.html>`_
+  * `roundup-server <man_pages/roundup-server.1.html>`_
+
--- a/website/www/docs.txt	Mon Apr 29 00:53:01 2024 -0400
+++ b/website/www/docs.txt	Mon Apr 29 01:29:07 2024 -0400
@@ -33,6 +33,7 @@
    Reference <docs/reference>
    Glossary <docs/glossary>
    docs/admin_guide
+   docs/man_pages
    docs/license
    docs/acknowledgements
    olderdocs

Roundup Issue Tracker: http://roundup-tracker.org/