buildrelease
authorTWikiContributor <TWikiContributor>
Sat, 3 Mar 2007 14:51:54 +0000 (14:51 +0000)
committerTWikiContributor <TWikiContributor>
Sat, 3 Mar 2007 14:51:54 +0000 (14:51 +0000)
16 files changed:
TWiki/CommentPlugin.mdwn
TWiki/SitePermissions.mdwn
TWiki/SlideShowPlugin.mdwn
TWiki/SourceCode.mdwn
TWiki/TWikiAccessControl.mdwn
TWiki/TWikiFuncDotPm.mdwn
TWiki/TWikiInstallationGuide.mdwn
TWiki/TWikiReleaseNotes04x01.mdwn
TWiki/TWikiRenderDotPm.mdwn
TWiki/TWikiStoreSearchAlgorithmsForkingDotPm.mdwn [new file with mode: 0644]
TWiki/TWikiStoreSearchAlgorithmsPurePerlDotPm.mdwn [new file with mode: 0644]
TWiki/TWikiTemplates.mdwn
TWiki/TWikiUpgradeGuide.mdwn
TWiki/VarWEBLIST.mdwn
TWiki/WebChanges.mdwn
TWiki/WebTopicCreator.mdwn

index 7523a4a..e8ad279 100644 (file)
@@ -487,4 +487,4 @@ These can be set in TWikiPreferences, in WebPreferences or in individual topics.
 
 **_Related Topics:_** [[TWikiPreferences]], [[TWikiPlugins]]
 
--- TWiki:Main/CrawfordCurrie - 01:11:36 05 February 2007
+-- TWiki:Main/CrawfordCurrie - 15:45:58 03 March 2007
index 4d96736..8564758 100644 (file)
@@ -6,6 +6,7 @@
     <th bgcolor="#99CCCC"><strong> Sitemap </strong></th>
     <th bgcolor="#99CCCC" colspan="2"><strong> VIEW </strong></th>
     <th bgcolor="#99CCCC" colspan="2"><strong> CHANGE </strong></th>
+    <th bgcolor="#99CCCC" colspan="2"><strong> RENAME </strong></th>
   </tr>
   <tr>
     <td> ^ </td>
@@ -14,6 +15,8 @@
     <th bgcolor="#99CCCC"><strong> ALLOW </strong></th>
     <th bgcolor="#99CCCC"><strong> DENY </strong></th>
     <th bgcolor="#99CCCC"><strong> ALLOW </strong></th>
+    <th bgcolor="#99CCCC"><strong> DENY </strong></th>
+    <th bgcolor="#99CCCC"><strong> ALLOW </strong></th>
   </tr>
 </table>
 
index b620477..05d432a 100644 (file)
@@ -246,6 +246,10 @@ The part between the rulers defines the default format of a slide:
     <td>  </td>
   </tr>
   <tr>
+    <td align="right"> 12 Feb 2007: </td>
+    <td> fixed construction of view urls (TWiki:Main/MichaelDaum) </td>
+  </tr>
+  <tr>
     <td align="right"> 19 Nov 2006: </td>
     <td> 12011: Preserve URL parameters in slideshow (suggested by TWiki:Main/ThomasWeigert); changed logo in default template to T-logo; fixed warning errors introduced by 1.005 </td>
   </tr>
index 7e3c974..5948a97 100644 (file)
     <li><a href="#TWiki::Store::_RcsLite"> TWiki::Store::RcsLite </a></li>
     <li><a href="#File format"> File format</a></li>
     <li><a href="#TWiki::Store::_RcsWrap"> TWiki::Store::RcsWrap </a></li>
+    <li><a href="#TWiki::Store::_SearchAlgorithms:"> TWiki::Store::SearchAlgorithms::Forking </a></li>
+    <li><a href="#search($searchString, $topics, $"> search($searchString, $topics, $options, $sDir) -&gt; \%seen</a></li>
+    <li><a href="#TWiki::Store::_SearchAlgorithms:"> TWiki::Store::SearchAlgorithms::Native </a></li>
+    <li><a href="#search($searchString, $topics, $"> search($searchString, $topics, $options, $sDir) -&gt; \%seen</a></li>
+    <li><a href="#TWiki::Store::_SearchAlgorithms:"> TWiki::Store::SearchAlgorithms::PurePerl </a></li>
+    <li><a href="#search($searchString, $topics, $"> search($searchString, $topics, $options, $sDir) -&gt; \%seen</a></li>
     <li><a href="#TWiki::Templates"> TWiki::Templates </a></li>
     <li><a href="#TWiki::Time"> TWiki::Time </a></li>
     <li><a href="#TWiki::UI::_ChangeForm"> TWiki::UI::ChangeForm </a></li>
@@ -350,7 +356,7 @@ The general contract of the methods on this class and its subclasses calls for e
 
 Refer to Store.pm for models of usage.
 
-This package has smell factor of **10**
+This package has smell factor of **9**
 
 ## <a name="TWiki::Store::_RcsLite"></a> [[TWiki::Store::RcsLite|Main/TWikiStoreRcsLiteDotPm]]
 
@@ -427,6 +433,38 @@ Wrapper around the RCS commands required by TWiki. There is one of these object
 
 This package has smell factor of **2**
 
+## <a name="TWiki::Store::_SearchAlgorithms:"></a> [[TWiki::Store::SearchAlgorithms::Forking|Main/TWikiStoreSearchAlgorithmsForkingDotPm]]
+
+Forking implementation of the RCS cache search.
+
+## <a name="search($searchString, $topics, $"></a> search($searchString, $topics, $options, $sDir) -&gt; \\%seen
+
+Search .txt files in $dir for $string. See [[RcsFile]]::searchInWebContent for details.
+
+This package has smell factor of **2**
+
+## <a name="TWiki::Store::_SearchAlgorithms:"></a> [[TWiki::Store::SearchAlgorithms::Native|Main/TWikiStoreSearchAlgorithmsNativeDotPm]]
+
+Native implementation of the RCS cache search. Requires tools/native\_search to be built and installed.
+
+## <a name="search($searchString, $topics, $"></a> search($searchString, $topics, $options, $sDir) -&gt; \\%seen
+
+Search .txt files in $dir for $string. See [[RcsFile]]::searchInWebContent for details.
+
+Rude and crude, this makes no attempt to handle UTF-8.
+
+This package doesn't smell
+
+## <a name="TWiki::Store::_SearchAlgorithms:"></a> [[TWiki::Store::SearchAlgorithms::PurePerl|Main/TWikiStoreSearchAlgorithmsPurePerlDotPm]]
+
+Pure perl implementation of the RCS cache search.
+
+## <a name="search($searchString, $topics, $"></a> search($searchString, $topics, $options, $sDir) -&gt; \\%seen
+
+Search .txt files in $dir for $string. See [[RcsFile]]::searchInWebContent for details.
+
+This package doesn't smell
+
 ## <a name="TWiki::Templates"></a> [[TWiki::Templates|Main/TWikiTemplatesDotPm]]
 
 Support for the TWiki template language.
@@ -561,4 +599,4 @@ Subclasses should be named 'XxxxUserMapping' so that configure can find them.
 
 This package has smell factor of **3**
 
-There were a total of **199** smells
+There were a total of **200** smells
index 664e527..7201c45 100644 (file)
@@ -14,7 +14,7 @@
             <li><a href="#Controlling access to a Web"> Controlling access to a Web</a></li>
             <li><a href="#Controlling access to a Topic"> Controlling access to a Topic</a></li>
             <li><a href="#Controlling access to Attachment"> Controlling access to Attachments</a></li>
-            <li><a href="#Controlling who can create top-l"> Controlling who can create top-level webs</a></li>
+            <li><a href="#Controlling who can manage top-l"> Controlling who can manage top-level webs</a></li>
             <li><a href="#How TWiki evaluates ALLOW/DENY s"> How TWiki evaluates ALLOW/DENY settings</a></li>
           </ul>
         </li>
@@ -47,7 +47,7 @@ Open, freeform editing is the essence of [[WikiCulture]] - what makes TWiki diff
 - **Peer influence** is enough to ensure that only relevant content is posted.
 - **Peer editing** - the ability for anyone to rearrange all content on a page - keeps topics focused.
 - In TWiki, content is transparently preserved under **revision control**:
-  - Edits can be undone by the [[TWikiAdminGroup]] (the default administrators group; see [[#ManagingGroups|Main/WebHome#ManagingGroups]]).
+  - Edits can be undone by the administrator (per default a member of [[TWikiAdminGroup]]; see [[#ManagingGroups|Main/WebHome#ManagingGroups]]).
   - Users are encouraged to edit and refactor (condense a long topic), since there's a safety net.
 
 As a **collaboration guideline**:
@@ -84,7 +84,9 @@ The default visitor name is [[TWikiGuest]]. This is the non-authenticated user.
 
 ### <a name="Managing Groups"></a> Managing Groups
 
-Groups are defined by group topics located in the <code>**Main**</code> web, such as the [[TWikiAdminGroup]]. To create a new group, visit [[TWikiGroups]] and enter the name of the new group ending in <code>**Group**</code> into the "new group" form field. This will create a new group topic with two important settings:
+The following describes the standard TWiki support for groups. Your local TWiki may have an alternate group mapping manager installed. Check with your TWiki administrator if you are in doubt.
+
+Groups are defined by group topics located in the <code>**Main**</code> web. To create a new group, visit [[TWikiGroups]] and enter the name of the new group ending in <code>**Group**</code> into the "new group" form field. This will create a new group topic with two important settings:
 
 - <code>**Set GROUP = &lt; list of Users and/or Groups &gt;**</code>
 - <code>**Set ALLOWTOPICCHANGE = &lt; list of Users and/or Groups &gt;**</code>
@@ -93,9 +95,9 @@ The GROUP setting is a comma-separated list of users and/or other groups. Exampl
 
 - <code>**Set GROUP = Main.SomeUser, Main.OtherUser, Main.SomeGroup**</code>
 
-The ALLOWTOPICCHANGE setting defines who is allowed to change the group topic; it is a comma delimited list of users and groups. You typically want to restrict that to the members of the group itself, so it should contain the name of the topic. This prevents users not in the group from editing the topic to give themselves or others access. For example, for the TWikiAdminGroup topic write:
+The ALLOWTOPICCHANGE setting defines who is allowed to change the group topic; it is a comma delimited list of users and groups. You typically want to restrict that to the members of the group itself, so it should contain the name of the topic. This prevents users not in the group from editing the topic to give themselves or others access. For example, for the KasabianGroup topic write:
 
-- <code>**Set ALLOWTOPICCHANGE = Main.TWikiAdminGroup**</code>
+- <code>**Set ALLOWTOPICCHANGE = Main.KasabianGroup**</code>
 
 **_%X% Note:_** TWiki has strict formatting rules. Make sure you have three spaces, an asterisk, and an extra space in front of any access control rule.
 
@@ -103,16 +105,23 @@ The ALLOWTOPICCHANGE setting defines who is allowed to change the group topic; i
 
 ### <a name="The Super Admin Group"></a> The Super Admin Group
 
-By mistyping a user or group name in the settings, it's possible to lock a topic so that no-one can edit it from a browser. To avoid this, add the [[WikiNames]] of registered administrators to the super admin group topic called <code>**TWikiAdminGroup**</code>. The name of this topic is defined by the \{SuperAdminGroup\} [configure](http://www.dementia.org/twiki/configure) setting. Example group setting:
+A number of TWiki functions (for example, renaming webs) are only available to administrators. Administrators are simply users who belong to the **SuperAdminGroup**. This is a standard user group, the name of which is defined by \{SuperAdminGroup\} setting in [configure](http://www.dementia.org/twiki/configure). The default name of this group is the `TWikiAdminGroup`. The system administrator may have chosen a different name for this group if your local TWiki uses an alternate group mapping manager but for simplicity we will use the default name TWikiAdminGroup in the rest of this topic.
+
+You can create new administrators simply by adding them to the [[TWikiAdminGroup]] topic. For example,
 
 - <code>**Set GROUP= Main.ElizabethWindsor, Main.TonyBlair**</code>
 
+A member of the Super Admin Group has unrestricted access throughout the TWiki, so only trusted staff should be added to this group.
+
 ## <a name="Restricting Access"></a> Restricting Access
 
 You can define who is allowed to read or write to a web or a topic. Note that some plugins may not respect access permissions.
 
 - Restricting VIEW blocks viewing and searching of content.
 - Restricting CHANGE blocks creating new topics, changing topics or attaching files.
+- Restricting RENAME prevents renaming of topics within a web.
+
+Note that there is an important distinction between CHANGE access and RENAME access. A user can CHANGE a topic, but thanks to version control their changes cannot be lost (the history of the topic before the change is recorded). However if a topic or web is renamed, that history may be lost. Typically a site will only give RENAME access to administrators and content owners.
 
 ### <a name="Controlling access to a Web"></a> Controlling access to a Web
 
@@ -126,16 +135,14 @@ You can define restrictions on who is allowed to view a %WIKITOOLNAME% web. You
   - <code>**Set ALLOWWEBVIEW = &lt; comma-delimited list of Users and Groups &gt;**</code>
   - <code>**Set DENYWEBCHANGE = &lt; comma-delimited list of Users and Groups &gt;**</code>
   - <code>**Set ALLOWWEBCHANGE = &lt; comma-delimited list of Users and Groups &gt;**</code>
+  - <code>**Set DENYWEBRENAME = &lt; comma-delimited list of Users and Groups &gt;**</code>
+  - <code>**Set ALLOWWEBRENAME = &lt; comma-delimited list of Users and Groups &gt;**</code>
 
-**Be careful** with empty values for any of these. In older versions of TWiki,
+If your site allows hierarchical webs, then access to sub-webs is determined from the access controls of the parent web, plus the access controls in the sub-web. So, if the parent web has <code>**ALLOWWEBVIEW**</code> set, this will also apply to the subweb.
 
-- <code>**Set ALLOWWEBVIEW = **</code>
+Creation and renaming of sub-webs is controlled by the WEBCHANGE setting on the parent web (or ROOTCHANGE for [[root webs|Main/WebHome#RootWebs]]). Renaming is additionally restricted by the setting of WEBRENAME in the web itself.
 
-meant the same as not setting it at all. However since TWiki Dakar release, it means _allow noone access_ i.e. prevent anyone from viewing the web. Similarly
-
-- <code>**Set DENYWEBVIEW = **</code>
-
-now means _do not deny anyone the right to view this web_. See "How TWiki evaluates ALLOW/DENY settings" below for more on this.
+**_Note:_** For Web level access rights Setting any of these settings to an empty value has the same effect as not setting them at all. Please note that the documentation of TWiki 4.0 and earlier versions of TWiki 4.1 did not reflect the actual implementation, e.g. an empty ALLOWWEBVIEW does _not_ prevent anyone from viewing the web, and an an empty DENYWEBVIEW does _not_ allow all to view the web.
 
 ### <a name="Controlling access to a Topic"></a> Controlling access to a Topic
 
@@ -144,18 +151,22 @@ now means _do not deny anyone the right to view this web_. See "How TWiki evalua
   - <code>**Set ALLOWTOPICVIEW = &lt; comma-delimited list of Users and Groups &gt;**</code>
   - <code>**Set DENYTOPICCHANGE = &lt; comma-delimited list of Users and Groups &gt;**</code>
   - <code>**Set ALLOWTOPICCHANGE = &lt; comma-delimited list of Users and Groups &gt;**</code>
+  - <code>**Set DENYTOPICRENAME = &lt; comma-delimited list of Users and Groups &gt;**</code>
+  - <code>**Set ALLOWTOPICRENAME = &lt; comma-delimited list of Users and Groups &gt;**</code>
 
 Remember when opening up access to specific topics within a restricted web that other topics in the web - for example, the [[WebLeftBar]] - may also be accessed when viewing the topics. The message you get when you are denied access should tell you what topic you were not permitted to access.
 
-**Be careful** with empty values for any of these. In older versions of TWiki,
+**Be careful** with empty values for any of these.
 
-- <code>**Set ALLOWTOPICVIEW = **</code>
+- <code>**Set ALLOWTOPICVIEW = **</code><br />This means the same as not setting it at all. (This was documented wrong in versions 4.0.X, 4.1.0 and 4.1.1)
 
-meant the same as not setting it at all. However since TWiki Dakar release, it means _allow no-one access_ i.e. prevent anyone from viewing the topic. Similarly
+- <code>**Set DENYTOPICVIEW = **</code><br />Since TWiki 4.0 this means _do not deny anyone the right to view this topic_. If DENYTOPICVIEW is set to an empty value anyone has access even if ALLOWTOPICVIEW or ALLOWWEBVIEW is defined. This allows to have very restrictive default access rights to an entire web and still allow individual topics to have more open access.
 
-- <code>**Set DENYTOPICVIEW = **</code>
+The same rules apply to ALLOWTOPICCHANGE/DENYTOPICCHANGE and APPLYTOPICRENAME/DENYTOPICRENAME. Setting ALLOWTOPICCHANGE or ALLOWTOPICRENAME to en empty value means the same as not defining it. Setting DENYTOPICCHANGE or DENYTOPICRENAME to an empty value means that anyone can edit or rename the topic.
 
-now means _do not deny anyone the right to view this topic_. See "How TWiki evaluates ALLOW/DENY settings" below for more on this.
+%X% _The setting to an empty has caused confusion and great debate and it has been decided that the empty setting syntax will be replaced by something which is easier to understand in the 4.2 version of TWiki. A method to upgrade will be provided. Please read the release notes carefully when you upgrade._
+
+See "How TWiki evaluates ALLOW/DENY settings" below for more on how ALLOW and DENY interacts.
 
 ### <a name="Controlling access to Attachment"></a> Controlling access to Attachments
 
@@ -174,7 +185,9 @@ That way all the controls that apply to the topic also apply to attachments to t
 
 **_Note:_** Images embedded in topics will load much slower since each image will be delivered by the `viewfile` script.
 
-### <a name="Controlling who can create top-l"></a> Controlling who can create top-level webs
+<a name="RootWebs"></a>
+
+### <a name="Controlling who can manage top-l"></a> Controlling who can manage top-level webs
 
 Top level webs are a special case, because they don't have a parent web with a [[WebPreferences]]. So there has to be a special control just for the root level.
 
@@ -186,24 +199,22 @@ Note that you do **not** require `ROOTCHANGE` access to rename an existing top-l
 
 ### <a name="How TWiki evaluates ALLOW/DENY s"></a> How TWiki evaluates ALLOW/DENY settings
 
-When deciding whether to grant access, TWiki evaluates the following rules in order (read from the top of the list; if the logic arrives at **PERMITTED** or **DENIED** that applies immediately and no more rules are applied). You need to read the rules bearing in mind that VIEW and CHANGE access may be granted/denied separately.
+When deciding whether to grant access, TWiki evaluates the following rules in order (read from the top of the list; if the logic arrives at **PERMITTED** or **DENIED** that applies immediately and no more rules are applied). You need to read the rules bearing in mind that VIEW, CHANGE and RENAME access may be granted/denied separately.
 
-1. If the user is a [[super-user|Main/WebHome#SuperAdminGroup]]
+1. If the user is an [[administrator|Main/WebHome#SuperAdminGroup]]
   - access is **PERMITTED**.
 2. If DENYTOPIC is set to a list of wikinames
   - people in the list will be **DENIED**.
 3. If DENYTOPIC is set to _empty_ ( i.e. `Set DENYTOPIC =` )
-  - access is **PERMITTED** _i.e_ no-one is denied access to this topic
+  - access is **PERMITTED** _i.e_ no-one is denied access to this topic.%BR% %X% **_Attention:_** Use this with caution. This is **_deprecated_** and will likely change in the next release.
 4. If ALLOWTOPIC is set
   1. people in the list are **PERMITTED**
   2. everyone else is **DENIED**
-    - Note that this means that setting ALLOWTOPIC to empty _denies access to everyone except admins_ (unless DENYTOPIC is also set to empty, as described above)
-5. If DENYWEB is set to a list of wikiname
+5. If DENYWEB is set to a list of wikinames
   - people in the list are **DENIED** access
 6. If ALLOWWEB is set to a list of wikinames
   - people in the list will be **PERMITTED**
   - everyone else will be **DENIED**
-    - Note that setting ALLOWWEB to empty _denies access to everyone except admins_
 7. If you got this far, access is **PERMITTED**
 
 ## <a name="Access Control quick recipes"></a> Access Control quick recipes
index ce19420..d8fe6ba 100644 (file)
@@ -62,7 +62,7 @@ will work happily.
             <li><a href="#user_ToWikiName( $loginName, $do"> userToWikiName( $loginName, $dontAddWeb ) -&gt; $wikiName</a></li>
             <li><a href="#isGuest( ) -> $boolean"> isGuest( ) -&gt; $boolean</a></li>
             <li><a href="#permissionsSet( $web ) -> $boole"> permissionsSet( $web ) -&gt; $boolean</a></li>
-            <li><a href="#check_AccessPermission( $type, $"> checkAccessPermission( $type, $wikiName, $text, $topic, $web ) -&gt; $boolean</a></li>
+            <li><a href="#check_AccessPermission( $type, $"> checkAccessPermission( $type, $wikiName, $text, $topic, $web, $meta ) -&gt; $boolean</a></li>
           </ul>
         </li>
         <li><a href="#Webs, Topics and Attachments"> Webs, Topics and Attachments</a><ul>
@@ -453,18 +453,30 @@ Test if any access restrictions are set for this web, ignoring settings on indiv
 
 **Since:** TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
 
-### <a name="check_AccessPermission( $type, $"></a> checkAccessPermission( $type, $wikiName, $text, $topic, $web ) -&gt; $boolean
+### <a name="check_AccessPermission( $type, $"></a> checkAccessPermission( $type, $wikiName, $text, $topic, $web, $meta ) -&gt; $boolean
 
 Check access permission for a topic based on the [[TWiki.TWikiAccessControl|TWiki/TWikiAccessControl]] rules
 
-- `$type` - Access type, e.g. `'VIEW'`, `'CHANGE'`, `'CREATE'`
-- `$wikiName` - [[WikiName]] of remote user, e.g. `"PeterThoeny"`. If `$wikiName` is '', 0 or undef then access is always **permitted**.
-- `$text` - Topic text, optional. If 'perl false' (undef, 0 or ''), topic `$web.$topic` is consulted
+- `$type` - Access type, required, e.g. `'VIEW'`, `'CHANGE'`.
+- `$wikiName` - [[WikiName]] of remote user, required, e.g. `"PeterThoeny"`. If `$wikiName` is '', 0 or `undef` then access is **always permitted**.
+- `$text` - Topic text, optional. If 'perl false' (undef, 0 or ''), topic `$web.$topic` is consulted. `$text` may optionally contain embedded `%META:PREFERENCE` tags. Provide this parameter if:
+  1. You are setting different access controls in the text to those defined in the stored topic,
+  2. You already have the topic text in hand, and want to help TWiki avoid having to read it again,
+  3. You are providing a `$meta` parameter.
 - `$topic` - Topic name, required, e.g. `'PrivateStuff'`
 - `$web` - Web name, required, e.g. `'Sandbox'`
+- `$meta` - Meta-data object, as returned by `readTopic`. Optional. If `undef`, but `$text` is defined, then access controls will be parsed from `$text`. If defined, then metadata embedded in `$text` will be ignored. This parameter is always ignored if `$text` is undefined. Settings in `$meta` override `Set` settings in $text.
 
 A perl true result indicates that access is permitted.
 
+**Note** the wierd parameter order is due to compatibility constraints with earlier TWiki releases.
+
+**Tip** if you want, you can use this method to check your own access control types. For example, if you:
+
+- Set ALLOWTOPICSPIN = [[IncyWincy]]
+
+in `ThatWeb.ThisTopic`, then a call to `checkAccessPermissions('SPIN', 'IncyWincy', undef, 'ThisTopic', 'ThatWeb', undef)` will return `true`.
+
 **Since:** TWiki::Plugins::VERSION 1.000 (27 Feb 2001)
 
 ## <a name="Webs, Topics and Attachments"></a> Webs, Topics and Attachments
index d0397d2..b02fad2 100644 (file)
+# <a name="TWiki Installation Guide"></a><a name=" TWiki Installation Guide"></a> TWiki Installation Guide
+
+**The following is installation instructions for the TWiki 4.1 production release on an Apache web server on Linux.** Visit TWiki:TWiki.InstallingTWiki for the latest updates to this guide and supplemental information for installing or upgrading TWiki, including notes on installing TWiki on different platforms, environments and web hosting sites.
+
+If you are upgrading from a previous version of TWiki, you probably want to read [[TWikiUpgradeGuide]] instead (both this document and the TWikiUpgradeGuide are also available in the root of the distribution as HTML files)
+
 <div>
   <ul>
-    <li><a href="#TWiki Installation Guide"> TWiki Installation Guide</a><ul>
-        <li><a href="#Basic Installation"> Basic Installation</a></li>
-        <li><a href="#Next Steps"> Next Steps</a></li>
-        <li><a href="#Troubleshooting"> Troubleshooting</a></li>
+    <li><a href="#Preparing to install TWiki"> Preparing to install TWiki</a></li>
+    <li><a href="#Basic Installation"> Basic Installation</a></li>
+    <li><a href="#Important Server Security Settin"> Important Server Security Settings</a></li>
+    <li><a href="#Next Steps"> Next Steps</a></li>
+    <li><a href="#Enable Authentication of Users"> Enable Authentication of Users</a></li>
+    <li><a href="#Set TWiki Preferences"> Set TWiki Preferences</a></li>
+    <li><a href="#Enable Email Notification"> Enable Email Notification</a></li>
+    <li><a href="#Enable _WebStatistics"> Enable WebStatistics</a></li>
+    <li><a href="#Automate removal of expired sess"> Automate removal of expired sessions and lease files</a></li>
+    <li><a href="#Enable Localisation"> Enable Localisation</a></li>
+    <li><a href="#Tailor New Users Home Topic"> Tailor New Users Home Topic</a></li>
+    <li><a href="#Install Plugins"> Install Plugins</a></li>
+    <li><a href="#Customize your TWiki!"> Customize your TWiki!</a></li>
+    <li><a href="#Troubleshooting"> Troubleshooting</a></li>
+    <li><a href="#Appendixes"> Appendixes</a></li>
+    <li><a href="#TWiki System Requirements"> TWiki System Requirements</a><ul>
+        <li><a href="#Server Requirements"> Server Requirements</a></li>
+        <li><a href="#Required CPAN Modules"> Required CPAN Modules</a></li>
+        <li><a href="#Optional CPAN Modules"> Optional CPAN Modules</a></li>
+        <li><a href="#Client Requirements"> Client Requirements</a></li>
+        <li><a href="#Important note about TWiki Plugi"> Important note about TWiki Plugins</a></li>
       </ul>
     </li>
+    <li><a href="#Notes on Installing TWiki on Non"> Notes on Installing TWiki on Non-Root Account</a></li>
+    <li><a href="#Installing Manually Without Conf"> Installing Manually Without Configure</a></li>
   </ul>
 </div>
 
-# <a name="TWiki Installation Guide"></a> TWiki Installation Guide
+## <a name="Preparing to install TWiki"></a> Preparing to install TWiki
+
+Before attempting to install TWiki, you are encouraged to review the TWiki:TWiki.AdminSkillsAssumptions. This guide assumes the person installing TWiki has, at a minimum, basic knowledge of server administration and cgi script management on the system on which TWiki is to be installed. While it is possible to install TWiki with FTP access alone (for example, on a hosted site), it is tricky and may require additional support from your hosting service (for example, in setting file ownership).
+
+To help setup a correct Apache configuration, you can use the automatic TWiki:TWiki.ApacheConfigGenerator which generates the contents for an Apache config file for TWiki based on your inputs.
 
-_Installation instructions for the TWiki 4.1 production release._
+While this installation guide specifically describes installation on an Apache web server on Linux, TWiki should be fine with any web server and OS that meet the system requirements (see below). For additional notes on installing TWiki on other systems, see TWiki:TWiki.InstallingTWiki#OtherPlatforms.
 
-If you are upgrading from a previous version of TWiki, you probably want to read [[TWikiUpgradeGuide]] instead.
+If you are installing TWiki without Unix/Linux root (administrator) privileges (for example, on a hosted domain), see "Notes on Installing TWiki on Non-Root Account" below for supplemental instructions to the basic steps presented below.
 
-TWiki should be fine with any web server and OS that meet the [[system requirements|Main/TWikiSystemRequirements]]. The following installation instructions are written for experienced system administrators; please review the [[AdminSkillsAssumptions]] before you install TWiki. If you need help, ask a question in the TWiki:Support web or on TWiki:Codev.TWikiIRC (irc.freenode.net, channel #twiki)
+If you are upgrading from an earlier major version of TWiki such a Cairo (TWiki 3) you will need the information found in TWiki:TWiki.TWikiUpgradeGuide which includes a description of both an automated and a manual procedure. The manual procedure is probably the safest to follow but takes more time. The upgrade guide describes essential steps needed to avoid problems with locked topics.
 
-**_%H% Hint:_** TWiki:TWiki.InstallingTWiki on TWiki.org has supplemental documentation that help you install TWiki on different platforms, environments and web hosting sites.
+Upgrading from a recent TWiki4 release is much simpler. Upgraders from earlier TWiki4 versions can with advantage follow the steps described in TWiki:TWiki.UpgradingTWiki04x00PatchReleases to ensure a safe upgrade without accidently overwriting customizations.
+
+If you need help, ask a question in the TWiki:Support web or on TWiki:Codev.TWikiIRC (irc.freenode.net, channel #twiki)
 
 <a name="StandardInstallation"></a>
 
 ## <a name="Basic Installation"></a> Basic Installation
 
 1. **Download** the TWiki distribution from <http://TWiki.org/download.html>.
-2. **Make a directory** for the installation and **unpack the distribution** in it.
-3. **Make sure** the user that runs CGI scripts on your system can read and write all files in the distribution. %BR% Detailed instructions on file permissions are beyond the scope of this guide, but in general:
-  - During installation and configuration, the CGI user needs to be able to read and write _everything_ in the distribution,
-  - Once installation and configuration is complete, the CGI user needs write access to everything under the `data` and `pub` directories and to `lib/LocalSite.cfg`. _Everything else_ should be read-only.
+2. **Make a directory** for the installation and **unpack the distribution** in it. In the rest of this document we assume this directory is called `twiki`.
+3. **Make sure** the user that runs CGI scripts on your system can read and write all files in the distribution. <br /> Detailed instructions on file permissions are beyond the scope of this guide, and the best and safest set of file and directory permissions depend on the actual server environment. For Unix/Linux see TWiki:TWiki.SettingFileAccessRightsLinuxUnix which contains scripts to setup the right file and directory access rights.<br /> The general rules for access rights are:
+  - During installation and configuration, the CGI user needs to be able to read and write _everything_ in the distribution.
+  - Once installation and configuration is complete, the CGI user needs write access to everything under the `data` and `pub` directories and to `twiki/lib/LocalSite.cfg`. _Everything else_ should be read-only.
   - Everybody else should be denied access to everything, always.
-4. **Make sure** Perl 5 and the Perl CGI library are installed on your system. %BR% The default location of Perl is `/usr/bin/perl`. **If it's somewhere else**, change the path to Perl in the first line of each script in the `twiki/bin` directory. %BR% %H% Some systems require a special extension on perl scripts (e.g. `.cgi` or `.pl`). If necessary, rename all files in `twiki/bin` (i.e. rename `view` to `view.pl` etc). If you do this, make sure you set the `ScriptSuffix` option in [configure](http://www.dementia.org/twiki/configure) (Step 6).
-5. **Create the file** `/twiki/bin/LocalLib.cfg`. %BR% There is a template for this file in `/twiki/bin/LocalLib.cfg.txt`. %BR% The file must contain a setting for `$twikiLibPath`, which must point to the absolute file path of your `twiki/lib` e.g. `/home/httpd/twiki/lib`. %BR% %H% If you need to install additional CPAN modules, but can't update the main Perl installation files on the server, you can set `$CPANBASE` to point to your personal CPAN install. Don't forget that the webserver user has to be able to read those files as well.
-6. **Configure the webserver** so you can execute the `bin/configure` script from your browser.
-  - Explicit instructions for doing this are beyond the scope of this document, though there is a lot of advice on TWiki.org covering different configurations of webserver. To help you out, there's an example Apache `httpd.conf` file in `twiki_httpd_conf.txt` at the root of the package. This file also contains advice on securing your installation. Additionally, see TWiki:TWiki.ApacheConfigGenerator. There's also a script called `tools/rewriteshebang.pl` to help you in fixing up the shebang lines in your CGI scripts.
-7. Run the `configure` script from your browser, and resolve any errors or warnings it tells you about.
+4. **Make sure** Perl 5 and the Perl CGI library are installed on your system.<br /> The default location of Perl is `/usr/bin/perl`. **If it's somewhere else**, change the path to Perl in the first line of each script in the `twiki/bin` directory.<br /> %H% Some systems require a special extension on perl scripts (e.g. `.cgi` or `.pl`). If necessary, rename all files in `twiki/bin` (i.e. rename `view` to `view.pl` etc). If you do this, make sure you set the `ScriptSuffix` option in `configure` (Step 6).
+5. **Create the file** `twiki/bin/LocalLib.cfg`.<br /> There is a template for this file in `twiki/bin/LocalLib.cfg.txt`.<br /> The file `twiki/bin/LocalLib.cfg.txt` must contain a setting for `$twikiLibPath`, which must point to the absolute file path of your `twiki/lib` e.g. `/home/httpd/twiki/lib`.<br /> %H% If you need to install additional [CPAN](http://cpan.perl.org/) modules, but can't update the main Perl installation files on the server, you can set `$CPANBASE` to point to your personal [CPAN](http://cpan.perl.org/) install. Don't forget that the webserver user has to be able to read those files as well.
+6. **Configure the webserver** so you can execute the `bin/configure` script from your browser. But limit the access to either localhost, an IP address or a specific user using basic Apache authentication. You should never leave the `configure` script open to the public. See TWiki:TWiki.ApacheConfigGenerator which contains a tool that can generate a safe and working config file for TWiki on Apache.
+  - If you are unsure about how to do this on your system, see TWiki:TWiki.InstallingTWiki#OtherPlatforms for links to information about various server setups. There is an example Apache `httpd.conf` file in `twiki_httpd_conf.txt` at the root of the package. This file also contains advice on securing your installation. There's also a script called `tools/rewriteshebang.pl` to help you in fixing up the shebang lines in your CGI scripts.
+7. **Run the `configure` script** from your browser (i.e. enter `http://yourdomain/twiki/bin/configure` into your browser address bar) and resolve any errors or warnings it tells you about.<br /> %X% When you run `configure` for the first time, you can only edit the section `General Path Settings`. Save these settings, and then return to `configure` to continue configuration.<br /> When you return to configure you now need to setup _Mail and Proxies_. Especially the `{WebMasterEmail}`, and `{SMTP}{MAILHOST}` must be defined to enable TWiki to send registration emails. Many ISPs have introduced authentication when sending emails to fight spam so you may also have to set `{SMTP}{Username}` and `{SMTP}{Password}`.
 
 You now have a basic, unauthenticated installation running. At this point you can just point your Web browser at `http://yourdomain.com/twiki/bin/view` and start TWiki-ing away!
 
-<a name="AuthenticationOfUsers"></a>
+## <a name="Important Server Security Settin"></a> Important Server Security Settings
+
+Before you continue any further there are some basic and very important security settings you have to make sure are set correctly.
+
+- You should protect the configure script from general access. The configure script the tool is designed for use by administrators only and should be restricted to invocation by them only, by using the basic Apache authentication. Because of this there has not been put much effort into hardening the script. The configure script cannot save any settings once the password has been saved the first time, but the script could still be vulnerable to specially crafted field values and the script reveals many details about the webserver that you should not display in public.
+- You absolutely must turn off any kind of PHP, Perl, Python, Server Side Includes etc in the `pub` directory. TWiki has some builtin protection which renames files with dangerous filenames by appending .txt to the filename. But this is a secondary security measure. The essential action that you must take is to turn off any possible execution of any of the attached files.<br /> Most Linux distributions have a default Apache installation which has PHP and server side include (SSI) enabled. The `twiki_httpd_conf.txt` file provided in the root of the twiki directory is an example of an Apache config file which you would normally include from httpd.conf. In many distributions this happens automatically if the file is copied to a specific directory (Example RedHat/Fedora/Centos: /etc/httpd/conf.d) and has suffix `.conf`. This example file shows how to protect the `pub` directory from executing both PHP scripts and server side includes.<br /> If you do not have access to the apache config files you can normally control control access by placing a file called `.htaccess` in the directory you want to protect. The `pub-htaccess.txt` file provided in the root of the twiki directory is an example of an Apache `.htaccess` file which protects against execusion of PHP and SSI scripts.
+- Make sure that you deny access to all other twiki directories than the `bin` and `pub` directories. When you have access to the Apache config files the `twiki_httpd_conf.txt` file mentioned above also contains protection of these directories.<br /> For those that do not have access to the Apache config files a sample `subdir-htaccess.txt` file can be copied as `.htaccess` to the data, lib, locale, templates and tools directories.
+
+The TWIki:TWiki.ApacheConfigGenerator will help you address all 3 security elements.
 
 ## <a name="Next Steps"></a> Next Steps
 
-Once you have your TWiki running, you can move on to customise it for your users.
-
-- **Review [[TWikiPreferences]] settings** - read through it and set any additional settings you think you might need (you can click the 'Edit' button near the top to edit the settings in place)
-  - %I% It is recommended to **copy** any settings or variables that you want to customize from [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] and **paste** them into [[Main.TWikiPreferences|Main/TWikiPreferences]]. This will protect your local customizations from being overwritten in later upgrades. See notes at top of [[TWiki.TWikiPreferences|TWiki/TWikiPreferences]] for more information.
-- **Customize user home pages** - read and change [[NewUserTemplate]].
-- **Enable authentication** - read [[TWikiUserAuthentication]].
-- **Clear admin notes** - some pages are meant to be customized after choice of authentication - check and update these topics (remove notice):
-  - [[ChangePassword]]
-  - [[ResetPassword]]
-  - [[ChangeEmailAddress]]
-  - [[TWikiRegistration]] fields can be customzied to the needs of your organization
-  - [[TWikiAdminGroup]]
-- **Enable e-mail notification** - read [[TWikiSiteTools#WebNotify]] to get [[WebChangesAlerts]].
-- **Automate update of site statistics** - read [[TWikiSiteTools#WebStatistics]]
-- **Automate removal of expired sessions and lease files** - read [[TWikiScripts#tick_twiki_pl]].
-- **Enable internationalization** if needed - read TWiki:TWiki/InstallationWithI18N (supplemental documentation on TWiki.org)
-- **Install Plugins** if needed - TWiki:Plugins is an extensive library of Plugins for TWiki, that enhance functionality in a huge number of ways. A few Plugins are pre-installed in the TWiki distribution. Installation instructions are included in Plugins you download from TWiki:Plugins.PluginPackage on TWiki.org.
-- **Review known issues** - visit TWiki:Codev.KnownIssuesOfTWiki04x01 and fix issues that apply to you.
+Once you have TWiki installed and running, you might consider the following optional steps for setting up and customizing your TWiki site. Many of the references below refer to topics within your TWiki installation. For example, `TWiki.TWikiSkins` refers to the `TWikiSkins` topic in your TWiki web. If not available locally, you can find these topics in the on-line reference copy of [[TWiki Release 4.1|TWiki:TWiki04x01/WebHome]].
+
+<a name="AuthenticationOfUsers"></a>
+
+## <a name="Enable Authentication of Users"></a> Enable Authentication of Users
+
+This step provides for site access control and user activity tracking on your TWiki site. **_This is particularly important for sites that are publicly accessible on the web._** This guide describes only the most common of several possible authentication setups for TWiki and is suitable for public web sites. For information about other setups, see `TWiki.TWikiUserAuthentication`, and TWiki:TWiki.TWikiUserAuthenticationSupplement.
+
+These are the steps for enabling "Template Login" which asks for a username and password in a web page, and processes them using the Apache 'htpasswd' password manager. Users can log in and log out.
+
+1. Under the `Security Settings` pane of `configure` :
+  1. Select `TWiki::Client::TemplateLogin` for `{LoginManager}`.
+  2. Select `TWiki::Users::HtPasswdUser` for `{PasswordManager}`.
+  3. Save your `configure` settings.
+  4. Register yourself using the `TWiki.TWikiRegistration` topic.<br /> %H% Check that the password manager recognizes the new user. Check that a new line with the username and encrypted password is added to the `data/.htpasswd` file. If not, you probably got a path wrong, or the permissions may not allow the webserver user to write to that file.
+2. Edit a topic (by clicking on the `Edit` link at beginning or end of topic) to check if authentication works.
+3. Edit the `Main/TWikiAdminGroup` topic to include users with system administrator status. Additional instructions are provided in that topic.<br /> %X% This is a very important step, as users in this group can access all topics, independent of TWiki access controls.
+4. Clear admin notes: Some pages are meant to be customized after choice of authentication - check and update these topics (remove notice): `Main.TWikiAdminGroup`, `TWiki.ChangePassword`, `TWiki.ResetPassword`, and `TWiki.ChangeEmailAddress`.
+
+You are strongly encouraged to read `TWiki.TWikiUserAuthentication`, TWiki:TWiki.TWikiUserAuthenticationSupplement, and TWiki:TWiki.SecuringTWikiSite for further information about managing users and security of your TWiki site.
+
+<a name="SetPreferences"></a>
+
+## <a name="Set TWiki Preferences"></a> Set TWiki Preferences
+
+Preferences for customizing many aspects of TWiki are set simply by editing a special topic with TWiki.
+
+- Edit `TWiki.TWikiPreferences`. Read through it and set any additional settings you think you might need. (You can click the 'Edit' button near the top to edit the settings in place).
+- %T% Alternately, you can copy any settings or variables that you want to customize from `TWiki.TWikiPreferences` and paste them into `Main.TWikiPreferences`. This will protect your local customizations from being overwritten in later upgrades. See notes at top of `TWiki.TWikiPreferences` for more information.
+
+## <a name="Enable Email Notification"></a> Enable Email Notification
+
+Each TWiki web has an automatic email notification service that sends you an email with links to all of the topics modified since the last alert. To enable this service:
+
+1. Confirm the Mail and Proxies settings in the Configure interface.
+2. Setup a cron job (or equivalent) to call the `bin/mailnotify` script as described in the `TWiki.MailerContrib` topic.
+
+## <a name="Enable _WebStatistics"></a> Enable WebStatistics
+
+You can generate a listing manually, or on an automated schedule, of visits to individual pages, on a per web basis. For information on setting up this feature, see the `TWiki.TWikiSiteTools` topic.
+
+## <a name="Automate removal of expired sess"></a> Automate removal of expired sessions and lease files
+
+Per default TWiki cleans out expired session and lease files each time any topic is viewed. This however cost performance. It is an advantage to define a negative value in `configure` for \{Sessions\}\{ExpireAfter\} and install let cron run the `tools/tick_twiki.pl` script. Read The topic [[TWikiScripts#tick_twiki_pl]] for details how to do this.
+
+## <a name="Enable Localisation"></a> Enable Localisation
+
+TWiki now supports displaying of national (non-ascii) characters and presentation of basic interface elements in different languages. To enable these features, see the `Localisation` section of `configure`. For more information about these features, see [TWiki:TWiki.InternationalizationSupplement](http://twiki.org/cgi-bin/view/TWiki.InternationalizationSupplement 'TWiki.InternationalizationSupplement' on TWiki.org).
+
+## <a name="Tailor New Users Home Topic"></a> Tailor New Users Home Topic
+
+When a new users registers on your TWiki a home topic is created for him based on the `TWiki/NewUserTemplate` template topic. This can be tailored. It contains additional resources you can use to:
+
+- Localise the user topic.
+- Add a default ALLOWTOPICCHANGE so only the user can edit his own home topic. We do not encourage this for Intranet sites as it sends a wrong signal to new users, but it can be necessary on a public TWiki to avoid that the user topics get spammed.
+
+## <a name="Install Plugins"></a> Install Plugins
+
+TWiki:Plugins is an extensive library of Plugins for TWiki, that enhance functionality in a huge number of ways. A few plugins are pre-installed in the TWiki distribution. For more information on these, see `TWiki.InstalledPlugins`.
+
+You activate installed plugin in the _Plugins_ section of `configure`. In this section you also find a _Find More Extensions_ button which opens an application which can install additional plugins from the TWiki.org website. If you are behind a firewall or your server has no access to the Internet it is also possible to install plugins manually. Manual installation instructions for the plugins can be found in the plugin topics on TWiki.org. Additional documenation on TWiki plugins can be found at TWiki:TWiki.TWikiPluginsSupplement.
+
+Some plugins require that you define their settings in `configure`. You fill find these under the _Extensions_ section of configure.
+
+## <a name="Customize your TWiki!"></a> Customize your TWiki!
+
+The real power of TWiki lies in it's flexibility to be customized to meet your needs. A good place to start for exploring what's possible is [TWiki:TWiki.TWikiAdminCookBook](http://twiki.org/cgi-bin/view/TWiki/TWikiAdminCookBook 'TWiki/TWikiAdminCookBook' on TWiki.org) which offers tips and tricks for customizing your TWiki site. Many of these are appropriate to implement immediately after installing TWiki and before adding content so now's a good time to look at these. If you would like to customize the look of your TWiki, see [TWiki:TWiki.TWikiSkinsSupplement](http://twiki.org/cgi-bin/view/TWiki.TWikiSkinsSupplement 'TWiki.TWikiSkinsSupplement' on TWiki.org).
 
 ## <a name="Troubleshooting"></a> Troubleshooting
 
-- The first step is to re-run the `configure` script and make sure you have resolved all errors, and are happy that you understand any warnings.
-- TWiki:TWiki.InstallingTWiki on TWiki.org has supplemental documentation that help you install TWiki on different platforms, environments and web hosting sites.
-- If you need help, ask a question in the TWiki:Support web or on TWiki:Codev.TWikiIRC (irc.freenode.net, channel #twiki)
+The first step is to re-run the `configure` script and make sure you have resolved all errors, and are satisfied that you understand any warnings.
+
+Failing that, please check **[TWiki:TWiki.InstallingTWiki](http://twiki.org/cgi-bin/view/TWiki.InstallingTWiki 'TWiki.InstallingTWiki' on TWiki.org)** on TWiki.org, the supplemental documentation that help you **install TWiki on different platforms, environments and web hosting sites**. For example:
+
+- For Unix or Linux, check [TWiki:Codev.TWikiOnUnix](http://twiki.org/cgi-bin/view/Codev/TWikiOnUnix 'Codev/TWikiOnUnix' on TWiki.org) and [TWiki:Codev.TWikiOnLinux](http://twiki.org/cgi-bin/view/Codev/TWikiOnLinux 'Codev/TWikiOnLinux' on TWiki.org).
+- For Windows, check the [TWiki:Codev.WindowsInstallCookbook](http://twiki.org/cgi-bin/view/Codev/WindowsInstallCookbook 'Codev/WindowsInstallCookbook' on TWiki.org).
+- For MacOS X, check TWiki:Codev.TWikiOnMacOSX.
+
+It is also advisable to review TWiki:Codev.KnownIssuesOfTWiki04x01.
+
+If you need help, ask a question in the TWiki:Support web or on TWiki:Codev/TWikiIRC (irc.freenode.net, channel #twiki)
+
+## <a name="Appendixes"></a> Appendixes
+
+<a name="SystemRequirements"></a>
+
+## <a name="TWiki System Requirements"></a> TWiki System Requirements
+
+Low client and server base requirements are core features that keep TWiki widely deployable, particularly across a range of browser platforms and versions.
+
+### <a name="Server Requirements"></a> Server Requirements
+
+TWiki is written in Perl 5, uses a number of shell commands, and requires [RCS (Revision Control System)](http://www.gnu.org/software/rcs/rcs.html), a GNU Free Software package. TWiki is developed in a basic Linux/Apache environment. It also works with Microsoft Windows, and should have no problem on any other platform that meets the requirements.
+
+<table border="1" cellpadding="0" cellspacing="0">
+  <tr>
+    <th bgcolor="#99CCCC"><strong> Resource </strong></th>
+    <th bgcolor="#99CCCC"><strong> Required Server Environment </strong></th>
+  </tr>
+  <tr>
+    <td> Perl </td>
+    <td> 5.8.4 or higher is recommended </td>
+  </tr>
+  <tr>
+    <td> RCS </td>
+    <td> 5.7 or higher (including GNU <code>diff</code>) <br /> Optional, TWiki includes a pure perl implementation of RCS that can be used instead (although it's slower) </td>
+  </tr>
+  <tr>
+    <td> GNU <code>diff</code></td>
+    <td> GNU <code>diff</code> 2.7 or higher is required when not using the all-Perl [[Main/RcsLite]]. <br /> Install on PATH if not included with RCS (check version with <code>diff -v</code>) <br /> Must be the version used by RCS, to avoid problems with binary attachments - RCS may have hard-coded path to <code>diff</code></td>
+  </tr>
+  <tr>
+    <td> Other external programs </td>
+    <td><code>fgrep, egrep</code></td>
+  </tr>
+  <tr>
+    <td> Cron/scheduler </td>
+    <td> • Unix: <code>cron</code><br />• Windows: <code>cron</code> equivalents </td>
+  </tr>
+  <tr>
+    <td> Web server </td>
+    <td> Apache is well supported; for information on other servers, see <a href="http://twiki.org/cgi-bin/view/TWiki.InstallingTWiki#OtherWebServers" title="'TWiki.InstallingTWiki#OtherWebServers' on TWiki.org">TWiki:TWiki.InstallingTWiki#OtherWebServers</a>. </td>
+  </tr>
+</table>
+
+### <a name="Required CPAN Modules"></a> Required CPAN Modules
+
+The following Perl [CPAN](http://cpan.perl.org/) modules are used by TWiki:
+
+<table border="1" cellpadding="0" cellspacing="0">
+  <tr>
+    <th bgcolor="#99CCCC"><strong> Module </strong></th>
+    <th bgcolor="#99CCCC"><strong> Preferred version </strong></th>
+  </tr>
+  <tr>
+    <td> Algorithm::Diff (included) </td>
+    <td>   </td>
+  </tr>
+  <tr>
+    <td> CGI::Carp </td>
+    <td> &gt;=1.26 </td>
+  </tr>
+  <tr>
+    <td> Config </td>
+    <td> &gt;=0 </td>
+  </tr>
+  <tr>
+    <td> Cwd </td>
+    <td> &gt;=3.05 </td>
+  </tr>
+  <tr>
+    <td> Data::Dumper </td>
+    <td> &gt;=2.121 </td>
+  </tr>
+  <tr>
+    <td> Error (included) </td>
+    <td>   </td>
+  </tr>
+  <tr>
+    <td> File::Copy </td>
+    <td> &gt;=2.06 </td>
+  </tr>
+  <tr>
+    <td> File::Find </td>
+    <td> &gt;=1.05 </td>
+  </tr>
+  <tr>
+    <td> File::Spec </td>
+    <td> &gt;=3.05 </td>
+  </tr>
+  <tr>
+    <td>[[Main/FileHandle]]</td>
+    <td> &gt;=2.01 </td>
+  </tr>
+  <tr>
+    <td> IO::File </td>
+    <td> &gt;=1.10 </td>
+  </tr>
+  <tr>
+    <td> Text::Diff (included) </td>
+    <td>   </td>
+  </tr>
+  <tr>
+    <td> Time::Local </td>
+    <td> &gt;=1.11 </td>
+  </tr>
+</table>
+
+### <a name="Optional CPAN Modules"></a> Optional CPAN Modules
+
+The following Perl modules may be used by TWiki:
+
+<table border="1" cellpadding="0" cellspacing="0">
+  <tr>
+    <th bgcolor="#99CCCC"><strong> Module </strong></th>
+    <th bgcolor="#99CCCC"><strong> Preferred version </strong></th>
+    <th bgcolor="#99CCCC"><strong> Description </strong></th>
+  </tr>
+  <tr>
+    <td> Archive::Tar </td>
+    <td>   </td>
+    <td> May be required by the Extensions Installer in configure if command line tar or unzip is not available </td>
+  </tr>
+  <tr>
+    <td> CGI::Cookie </td>
+    <td> &gt;=1.24 </td>
+    <td> Used for session support </td>
+  </tr>
+  <tr>
+    <td> CGI::Session </td>
+    <td> &gt;=3.95 </td>
+    <td> Highly recommended! Used for session support </td>
+  </tr>
+  <tr>
+    <td> Digest::base </td>
+    <td>   </td>
+    <td>   </td>
+  </tr>
+  <tr>
+    <td> Digest::SHA1 </td>
+    <td>   </td>
+    <td>   </td>
+  </tr>
+  <tr>
+    <td> Jcode </td>
+    <td>   </td>
+    <td> Used for I18N support with perl 5.6 </td>
+  </tr>
+  <tr>
+    <td> Locale::Maketext::Lexicon </td>
+    <td> &gt;=0 </td>
+    <td> Used for I18N support </td>
+  </tr>
+  <tr>
+    <td> Net::SMTP </td>
+    <td> &gt;=2.29 </td>
+    <td> Used for sending mail </td>
+  </tr>
+  <tr>
+    <td> Unicode::Map </td>
+    <td>   </td>
+    <td> Used for I18N support with perl 5.6 </td>
+  </tr>
+  <tr>
+    <td> Unicode::Map8 </td>
+    <td>   </td>
+    <td> Used for I18N support with perl 5.6 </td>
+  </tr>
+  <tr>
+    <td> Unicode::MapUTF8 </td>
+    <td>   </td>
+    <td> Used for I18N support with perl 5.6 </td>
+  </tr>
+  <tr>
+    <td> Unicode::String </td>
+    <td>   </td>
+    <td> Used for I18N support with perl 5.6 </td>
+  </tr>
+  <tr>
+    <td> URI </td>
+    <td>   </td>
+    <td> Used for configure </td>
+  </tr>
+</table>
+
+Most of them will probably already be available in your installation. You can check version numbers with the `configure` script, or if you're still trying to get to that point, check from the command line like this:
+
+    perl -e 'use FileHandle; print $FileHandle::VERSION."\n"'
+
+<a name="ClientRequirements"></a>
+
+### <a name="Client Requirements"></a> Client Requirements
+
+The TWiki standard installation has relatively low browser requirements:
+
+- HTML 3.2 compliant
+- Cookies, if persistent sessions are required
+
+CSS and Javascript are used in most skins, although there is a low-fat skin (Classic skin) available that minimises these requirements. Some skins will require more recent releases of browsers. The default skin (Pattern) is tested on IE 6, Safari, and Mozilla 5.0 based browsers (such as Firefox).
+
+You can easily select a balance of browser capability versus look and feel. Try the installed skins at `TWiki/TWikiSkinBrowser` and more at TWiki:Plugins.SkinPackage.
+
+### <a name="Important note about TWiki Plugi"></a> Important note about TWiki Plugins
+
+- Plugins can require just about anything - browser-specific functions, stylesheets (CSS), Java applets, cookies, specific Perl modules,... - check the individual Plugin specs.
+  - **_%T% Note:_** Plugins included in the TWiki distribution do not add requirements, except for the [[CommentPlugin]] which requires Perl 5.6.1.
+
+<a name="NonRootInstallNotes"></a>
+
+## <a name="Notes on Installing TWiki on Non"></a> Notes on Installing TWiki on Non-Root Account
+
+The following supplemental notes to the [Basic Installation](#StandardInstallation) instructions apply to installing TWiki on a system where you don't have Unix/Linux root (administrator) privileges, for example, on a hosted Web account or an intranet server administered by someone else.
+
+Referring to the [Basic Installation](#StandardInstallation) steps presented above:
+
+- **Step 2:** If you cannot unpack the TWiki distribution directly in your installation directory, you can unpack the distribution on your local PC and then manually create the directory structure on your host server and upload the files as follows:
+  - Using the table below, create a directory structure on your host server
+  - Upload the TWiki files by FTP (transfer as text except for the image files in `pub` directory.)
+  - **_Note:_** Don't worry if you are not able to put the twiki/lib directory at the same level as the `twiki/bin` directory (e.g. because CGI bin directories can't be under your home directory and you don't have root access). You can create this directory elsewhere and configure the `twiki/bin/setlib.cfg` file (done in Step 2).
+
+> <table border="1" cellpadding="0" cellspacing="0">
+>   <tr>
+>     <th bgcolor="#99CCCC"><strong> TWiki dir: </strong></th>
+>     <th bgcolor="#99CCCC"><strong> What it is: </strong></th>
+>     <th bgcolor="#99CCCC"><strong> Where to copy: </strong></th>
+>     <th bgcolor="#99CCCC"><strong> Example: </strong></th>
+>   </tr>
+>   <tr>
+>     <td><code>twiki</code></td>
+>     <td> start-up pages </td>
+>     <td> root TWiki dir </td>
+>     <td><code>/home/smith/twiki/</code></td>
+>   </tr>
+>   <tr>
+>     <td><code>twiki/bin</code></td>
+>     <td> CGI bin </td>
+>     <td> CGI-enabled dir </td>
+>     <td><code>/home/smith/twiki/bin</code></td>
+>   </tr>
+>   <tr>
+>     <td><code>twiki/lib</code></td>
+>     <td> library files </td>
+>     <td> same level as <code>twiki/bin</code></td>
+>     <td><code>/home/smith/twiki/lib</code></td>
+>   </tr>
+>   <tr>
+>     <td><code>twiki/locale</code></td>
+>     <td> language files </td>
+>     <td> dir secure from public access </td>
+>     <td><code>/home/smith/twiki/locale</code></td>
+>   </tr>
+>   <tr>
+>     <td><code>twiki/pub</code></td>
+>     <td> public files </td>
+>     <td> htdoc enabled dir </td>
+>     <td><code>/home/smith/twiki/pub</code></td>
+>   </tr>
+>   <tr>
+>     <td><code>twiki/data</code></td>
+>     <td> topic data </td>
+>     <td> dir secure from public access </td>
+>     <td><code>/home/smith/twiki/data</code></td>
+>   </tr>
+>   <tr>
+>     <td><code>twiki/templates</code></td>
+>     <td> web templates </td>
+>     <td> dir secure from public access </td>
+>     <td><code>/home/smith/twiki/templates</code></td>
+>   </tr>
+>   <tr>
+>     <td><code>twiki/tools</code></td>
+>     <td> TWiki utlilities </td>
+>     <td> dir secure from public access </td>
+>     <td><code>/home/smith/twiki/tools</code></td>
+>   </tr>
+> </table>
+
+- **Step 3:** Files in the pub directory must be readable as a url. This means that directory permissions should be set to `755` (or `775` ) and file permissions should be set to `644` (or `664`). If you can run a `chmod` command, you can accomplish this in two quick steps by running these commands from the root direct:
+  - `chmod -R 755 pub`
+  - ``chmod 644 `find pub -type f -print```
+  - In addition, you should create a `.htaccess` file in the pub directory, using the template included in the root level of the distribution entitled `pub-htaccess.txt`.
+  - Note: This setup does not provide for absolute security for TWiki attachments. For more information, see TWiki:Codev.SecuringYourTWiki.
+
+- **Step 6:** In order to run the configure script, create a file called `.htaccess` in the bin directory that includes the following single line: `SetHandler cgi-script` . This informs the server to treat all the perl scripts in the bin directory as scripts.
+
+For additional information about installing TWiki on a hosted accounts, see TWiki:TWiki.InstallingTWiki#WebHostingSites
+
+## <a name="Installing Manually Without Conf"></a> Installing Manually Without Configure
+
+It is highly recommended to use run configure from the browser when setting up TWiki. Configure does a lot of the hard work for you.
+
+But there may be instances where you do not want to use configure or where configure simply won't run because of a missing dependency.
+
+The manual steps you have to take are:
+
+- Copy the file `lib/TWiki.spec` to `lib/LocalSite.cfg`
+- Remove the comment # in front of `$TWiki::cfg{DefaultUrlHost}`, `$TWiki::cfg{ScriptUrlPath}`, `$TWiki::cfg{PubUrlPath}`, `$TWiki::cfg{PubDir}`, `$TWiki::cfg{TemplateDir}`, `$TWiki::cfg{DataDir}`, `$TWiki::cfg{LocalesDir}`, and `$TWiki::cfg{OS}` and make sure these settings have the correct values.
+- Make sure to define at least these settings: `$TWiki::cfg{LoginManager}`, `$TWiki::cfg{WebMasterEmail}`, `$TWiki::cfg{SMTP}{MAILHOST}`, `$TWiki::cfg{SMTP}{SENDERHOST}`.
 
 **_Related Topics:_** [[AdminDocumentationCategory]], TWiki:TWiki.InstallingTWiki
index 6312dc0..8307fa9 100644 (file)
@@ -1,4 +1,4 @@
-# <a name="TWiki Release 4.1.1 (Edinburgh),"></a><a name=" TWiki Release 4.1.1 (Edinburgh)"></a> TWiki Release 4.1.1 (Edinburgh), 05 Feb 2007
+# <a name="TWiki Release 4.1.2 (Edinburgh),"></a><a name=" TWiki Release 4.1.2 (Edinburgh)"></a> TWiki Release 4.1.2 (Edinburgh), 15:45:54 03 March 2007
 
 <div>
   <ul>
       </ul>
     </li>
     <li><a href="#Important Changes since 4.1.0"> Important Changes since 4.1.0</a></li>
-    <li><a href="#Deprecation Notice"> Deprecation Notice</a></li>
+    <li><a href="#Important Changes since 4.1.1"> Important Changes since 4.1.1</a><ul>
+        <li><a href="#TWiki works again on Perl 5.6.X"> TWiki works again on Perl 5.6.X</a></li>
+        <li><a href="#An upgrader should note the foll"> An upgrader should note the following important changes.</a></li>
+      </ul>
+    </li>
+    <li><a href="#Deprecation Notices"> Deprecation Notices</a></li>
     <li><a href="#Bug Fix Highlights"> Bug Fix Highlights</a></li>
     <li><a href="#TWiki 4.1.0 Minor Release - Deta"> TWiki 4.1.0 Minor Release - Details</a><ul>
         <li><a href="#TWiki 4.1.0 Fixes"> TWiki 4.1.0 Fixes</a></li>
     </li>
     <li><a href="#TWiki 4.1.1 Patch Release - Deta"> TWiki 4.1.1 Patch Release - Details</a><ul>
         <li><a href="#TWiki 4.1.1 Fixes"> TWiki 4.1.1 Fixes</a></li>
-        <li><a href="#TWiki 4.1.0 Enhancements"> TWiki 4.1.0 Enhancements</a></li>
+        <li><a href="#TWiki 4.1.1 Enhancements"> TWiki 4.1.1 Enhancements</a></li>
+      </ul>
+    </li>
+    <li><a href="#TWiki 4.1.2 Patch Release Detail"> TWiki 4.1.2 Patch Release Details</a><ul>
+        <li><a href="#TWiki 4.1.2 Enhancements"> TWiki 4.1.2 Enhancements</a></li>
       </ul>
     </li>
   </ul>
@@ -139,9 +148,27 @@ An upgrader should note the following important changes.
 - The directory for passthrough files and session files have been replaced by a common directory for temporary files used by TWiki. Previously the two configure settings `{PassthroughDir}` and `{Sessions}{Dir}` were by default set to `/tmp`. These config settings have been replaced by `{TempfileDir}` with the default setting value `/tmp/twiki`. If the `twiki` directory does not exist twiki will create it first time it needs it. It is highly recommended no longer to use the tmp directory common to other web applications and the new default will work fine for most. You may want to delete all the old session files in /tmp after the upgrade to 4.1.1. They all start with cgisess\_. It is additionally highly recommended to limit write access to the `{TempfileDir}` for security reasons if you have non-admin users with login access to the webserver just like you would do with the other webserver directories.
 - Many bugs fixed. If you had to implement work arounds to make things work chances are that they are fixed now. See the detailed bugfix list below.
 
-## <a name="Deprecation Notice"></a> Deprecation Notice
+## <a name="Important Changes since 4.1.1"></a> Important Changes since 4.1.1
+
+### <a name="TWiki works again on Perl 5.6.X"></a> TWiki works again on Perl 5.6.X
+
+TWiki has now been tested and a few small code changes made so that TWiki now runs on Perl 5.6.X
+
+TWiki 4.1.2 has been confirmed working on the combination [[RedHat]] 7.3, Apache 1.3.23, Perl 5.6.1. Note that many plugins requires Perl 5.8 or at least additional CPAN libraries.
+
+### <a name="An upgrader should note the foll"></a> An upgrader should note the following important changes.
+
+- The twisty that used to hide the attachment table has been removed because the Javascript code triggers a bug in Internet Explorer when a topic is long making page rendering take up to 1 minute. The twisty may return in later versions of TWiki when the bug has been resolved.
+- Users of mod\_perl should notice a new experimental feature that speeds up searching by a large factor. The feature is described in the [NativeSearch](http://twiki.org/cgi-bin/view/Codev/NativeSearch) topic at the TWiki website. In configure look for the \{RCS\}\{SearchAlgorithm\} setting. Normal mode is Forking. The new mode for mod\_perl is Native and is a C program which needs to be compiled with a C-compiler like gcc, and this new mode works faster than forking on mod\_perl. If you do not run mod\_perl stick to the default Forking.
+- /tmp/twiki directory which was introduced with 4.1.1 is now auto created also with older versions of the CGI::Session library. This is important for distributions that cleans out /tmp when rebooting.
+- Configure has gotten much better at installing extensions such as plugins.
+- Configure is now more friendly to a new administator. Configure now only shows the important "General Path Settings" until you have saved and created the [[LocalSite]].cfg file. This prevents a number of false errors from being wrongly fixed by a first time installer.
+- The documented bahavior of "\* Set ALLOWTOPICCHANGE = (nothing)" does not match the code. Documentation has been updated to match actual behavior in 4.1.2. See also deprecation notice below. You should review your use of access rights settings in topics.
+
+## <a name="Deprecation Notices"></a> Deprecation Notices
 
 - Usage of [[TWikiForms]] for setting preferences has been deprecated in favor of TWiki:Plugins.PreferencesPlugin. PreferencesPlugin has been included since TWiki 4.0.0 to allow more convenient editing of preferences. This plugin provides input controls, such as menus, radio buttons, and checkboxes to select preference settings.
+- From TWiki 4.0.0 the syntax "\* Set DENYTOPICVIEW = " (nothing) in a topic means deny noone. Even if ALLOWTOPICVIEW is set to people or group setting DENYTOPICCHANGE to nothing means allow anyone. You have to remove the DENYTOPICVIEW or comment it out to have the ALLOWTOPICVIEW working. The reason for this behavior is that it enables limiting access to an entire web by setting a blank DENYTOPICVIEW setting. Same rule applies for DENYTOPICCHANGE and DENYTOPICRENAME. The rule does not apply for access rights defined for webs. Ie. "\*Set DENYWEBCHANGE = " does not allow anyone to edit topics in the web. There has been strong oppinions against the _syntax_ "\* Set DENYTOPICXXXX = " meaning giving all access. So please be warned that we will change the syntax to a more transparent and logical syntax in future but we will ensure that it is still possible to secure a web and open up individual topics in future also.
 
 ## <a name="Bug Fix Highlights"></a> Bug Fix Highlights
 
@@ -187,6 +214,7 @@ An upgrader should note the following important changes.
   - `WEBMANAGE` permission no longer required (removed.)
   - Context not authenticated despite Apache Require valid-user Login.
   - INCLUDE of URL on subdomain returns wrong pages.
+  - Combined hidden and mandatory form fields were not hidden in 4.1.0 and 4.1.1.
 
 The full list of bug fixes can be seen below
 
@@ -1365,7 +1393,164 @@ The 4.1.1 release was built from SVN <http://svn.twiki.org/svn/twiki/Patch04x01>
   </tr>
 </table>
 
-### <a name="TWiki 4.1.0 Enhancements"></a> TWiki 4.1.0 Enhancements
+### <a name="TWiki 4.1.1 Enhancements"></a> TWiki 4.1.1 Enhancements
+
+None
+
+## <a name="TWiki 4.1.2 Patch Release Detail"></a> TWiki 4.1.2 Patch Release Details
+
+The 4.1.2 release was built from SVN <http://svn.twiki.org/svn/twiki/Patch04x01> revision 13046 (15:45:54 03 March 2007).
+
+TWiki 4.1.1 Fixes
+
+<table border="1" cellpadding="0" cellspacing="0">
+  <tr>
+    <td>[[BUGS/Item3701]]</td>
+    <td> Mailing groups is broken </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3699]]</td>
+    <td> Document ACLs as actually implemented </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3687]]</td>
+    <td> Wrong table formatting in attachment version history </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3685]]</td>
+    <td> Hidden mandatory form fields are no longer hidden in 4.1.1 </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3666]]</td>
+    <td> Not declaring $/ local in unit test cases and DelimitedFile.pm causes errors in perl 5.6.1 </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3664]]</td>
+    <td> error in regex for square bracket links </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3663]]</td>
+    <td> Typo in twiki.js </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3654]]</td>
+    <td> Remove <code>lib/LocalSite.cfg.txt</code></td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3652]]</td>
+    <td> I18N: Attachments to topic with umlauts in it are lost </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3648]]</td>
+    <td> Configure extensions installer fails when plugin has no install script. </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3642]]</td>
+    <td> Documentation of DENYWEBRENAME and ALLOWWEBRENAME is missing </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3640]]</td>
+    <td> Configure extensions installer does not install anything </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3629]]</td>
+    <td> Configure breaks when it is unable to set a locale. Suggestion for fix included. </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3622]]</td>
+    <td> Changes and search broken on Windows install </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3617]]</td>
+    <td> Deleting form values of type "select+values" (hot fix candidate) </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3616]]</td>
+    <td> SlideShowPlugin: incompatible construction of view urls </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3597]]</td>
+    <td> Extension installer not working </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3590]]</td>
+    <td> Broken link in include warning </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3588]]</td>
+    <td> Tinker with ENV{SCRIPT_FILENAME} to get the right </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3587]]</td>
+    <td> Don't override the empty string with 'NOT SET' in TWiki::cfg (patch candidate) </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3585]]</td>
+    <td> call docco for TWiki::User::setEmails is wrong </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3584]]</td>
+    <td> Sandbox.WebHome create topic with AUTOINC is missing a hidden t field </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3582]]</td>
+    <td> Page loads unreasonable slow under IE with Twisty enabled </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3576]]</td>
+    <td> When creating a new topic, the template is always "Default template", even when the web has a WebTopicEditTemplate properly configured in the preferences. </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3573]]</td>
+    <td> Fatal Error Creating Wiki Group (Windows 2003) </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3572]]</td>
+    <td> Typo in bin/.htaccess template that breaks authentication </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3571]]</td>
+    <td> WebChanges shows TWiki web in headline instead of current Web. </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3568]]</td>
+    <td> Not all Linuxes allows TWiki to create a /tmp/twiki </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3564]]</td>
+    <td> TWiki should support at least Perl 5.6.1 </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3559]]</td>
+    <td> The newbies experience in Configure is .... challenging </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3557]]</td>
+    <td> TempfileDir checker is useless </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3509]]</td>
+    <td> initializeUserHandler receives no loginName </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3491]]</td>
+    <td> META:TOPICMOVED is copied from a topic template to any topic created from it </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3443]]</td>
+    <td> SEARCH performance under mod_perl is awful </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item3431]]</td>
+    <td> The verbatim block munges text with &lt;literal&gt; tags </td>
+  </tr>
+  <tr>
+    <td>[[BUGS/Item2953]]</td>
+    <td> Meta data ignored by TWiki::Func::checkAccessPermission </td>
+  </tr>
+</table>
+
+### <a name="TWiki 4.1.2 Enhancements"></a> TWiki 4.1.2 Enhancements
 
 None
 
index 0f6f3d2..362fa28 100644 (file)
@@ -18,7 +18,7 @@ This module provides most of the actual HTML rendering code in TWiki.
         <li><a href="#ObjectMethod *protect_PlainText*"> ObjectMethod protectPlainText <tt>($text) -&gt; $tml</tt></a></li>
         <li><a href="#ObjectMethod *make_TopicSummary*"> ObjectMethod makeTopicSummary <tt>($theText,$theTopic,$theWeb,$theFlags) -&gt; $tml</tt></a></li>
         <li><a href="#ObjectMethod *take_OutProtected*"> ObjectMethod takeOutProtected <tt>(\$text,$re,\%map) -&gt; $text</tt></a></li>
-        <li><a href="#ObjectMethod *put_BackProtected*"> ObjectMethod putBackProtected <tt>(\$text,\%map,$tag,$newtag,$callBack) -&gt; $text</tt></a></li>
+        <li><a href="#ObjectMethod *put_BackProtected*"> ObjectMethod putBackProtected <tt>(\$text,\%map,$callback) -&gt; $text</tt></a></li>
         <li><a href="#ObjectMethod <strong>take_OutBlocks</strong> (\"> ObjectMethod takeOutBlocks <tt>(\$text,$tag,\%map) -&gt; $text</tt></a></li>
         <li><a href="#ObjectMethod <strong>put_BackBlocks</strong> (\"> ObjectMethod putBackBlocks <tt>(\$text,\%map,$tag,$newtag,$callBack) -&gt; $text</tt></a></li>
         <li><a href="#ObjectMethod *render_RevisionInf"> ObjectMethod renderRevisionInfo <tt>($web,$topic,$meta,$rev,$format) -&gt; $string</tt></a></li>
@@ -121,12 +121,13 @@ used to extract from $text comment type tags like &lt;!DOCTYPE blah&gt;
 
 WARNING: if you want to take out &lt;!-- comments --&gt; you _will_ need to re-write all the takeOuts to use a different placeholder
 
-## <a name="ObjectMethod &lt;strong&gt;put_BackProtected*"></a> [[ObjectMethod]] \*putBackProtected `(\$text,\%map,$tag,$newtag,$callBack) -> $text`
+## <a name="ObjectMethod &lt;strong&gt;put_BackProtected*"></a> [[ObjectMethod]] \*putBackProtected `(\$text,\%map,$callback) -> $text`
 
 Return value: $text with blocks added back
 
 - `\$text` - reference to text to process
 - `\%map` - map placeholders to blocks removed by takeOutBlocks
+- `$callback` - Reference to function to call on each block being inserted (optional)
 
 Reverses the actions of takeOutProtected.
 
diff --git a/TWiki/TWikiStoreSearchAlgorithmsForkingDotPm.mdwn b/TWiki/TWikiStoreSearchAlgorithmsForkingDotPm.mdwn
new file mode 100644 (file)
index 0000000..b8339c3
--- /dev/null
@@ -0,0 +1,16 @@
+# <a name="Package &lt;code&gt;TWiki::Store::_SearchAl"></a> Package =TWiki::Store::SearchAlgorithms::Forking
+
+Forking implementation of the RCS cache search.
+
+## <a name="search($searchString, $topics, $"></a> search($searchString, $topics, $options, $sDir) -&gt; \\%seen
+
+Search .txt files in $dir for $string. See [[RcsFile]]::searchInWebContent for details.
+
+<div>
+  <ul>
+    <li><a href="#Package =TWiki::Store::_SearchAl"> Package TWiki::Store::SearchAlgorithms::Forking</a><ul>
+        <li><a href="#search($searchString, $topics, $"> search($searchString, $topics, $options, $sDir) -&gt; \%seen</a></li>
+      </ul>
+    </li>
+  </ul>
+</div>
diff --git a/TWiki/TWikiStoreSearchAlgorithmsPurePerlDotPm.mdwn b/TWiki/TWikiStoreSearchAlgorithmsPurePerlDotPm.mdwn
new file mode 100644 (file)
index 0000000..b6f727a
--- /dev/null
@@ -0,0 +1,16 @@
+# <a name="Package &lt;code&gt;TWiki::Store::_SearchAl"></a> Package =TWiki::Store::SearchAlgorithms::PurePerl
+
+Pure perl implementation of the RCS cache search.
+
+## <a name="search($searchString, $topics, $"></a> search($searchString, $topics, $options, $sDir) -&gt; \\%seen
+
+Search .txt files in $dir for $string. See [[RcsFile]]::searchInWebContent for details.
+
+<div>
+  <ul>
+    <li><a href="#Package =TWiki::Store::_SearchAl"> Package TWiki::Store::SearchAlgorithms::PurePerl</a><ul>
+        <li><a href="#search($searchString, $topics, $"> search($searchString, $topics, $options, $sDir) -&gt; \%seen</a></li>
+      </ul>
+    </li>
+  </ul>
+</div>
index a152607..3a986a4 100644 (file)
@@ -147,27 +147,27 @@ Master templates use the block definition directives (`%TMPL:DEF` and `%TMPL:END
 >     <th bgcolor="#99CCCC"><strong> Defines: </strong></th>
 >   </tr>
 >   <tr>
->     <td> %TMPL:DEF{"sep"}% </td>
+>     <td><code>%TMPL:DEF{"sep"}%</code></td>
 >     <td> "|" separator </td>
 >   </tr>
 >   <tr>
->     <td> %TMPL:DEF{"htmldoctype"}% </td>
+>     <td><code>%TMPL:DEF{"htmldoctype"}%</code></td>
 >     <td> Start of all HTML pages </td>
 >   </tr>
 >   <tr>
->     <td> %TMPL:DEF{"standardheader"}% </td>
+>     <td><code>%TMPL:DEF{"standardheader"}%</code></td>
 >     <td> Standard header (ex: view, index, search) </td>
 >   </tr>
 >   <tr>
->     <td> %TMPL:DEF{"simpleheader"}% </td>
+>     <td><code>%TMPL:DEF{"simpleheader"}%</code></td>
 >     <td> Simple header with reduced links (ex: edit, attach, oops) </td>
 >   </tr>
 >   <tr>
->     <td> %TMPL:DEF{"standardfooter"}% </td>
+>     <td><code>%TMPL:DEF{"standardfooter"}%</code></td>
 >     <td> Footer, excluding revision and copyright parts </td>
 >   </tr>
 >   <tr>
->     <td> %TMPL:DEF{"oops"}% </td>
+>     <td><code>%TMPL:DEF{"oops"}%</code></td>
 >     <td> Skeleton of oops dialog </td>
 >   </tr>
 > </table>
@@ -307,7 +307,7 @@ The above form asks for a topic name. A hidden input tag named <code>**templatet
          (date format is <nop>YYYYxMMxDD)
     </form>
 
-See [[TWikiScripts]] for details of the parameters that the `edit` script understands.
+See [[TWikiScripts#edit]] for details of the parameters that the `edit` script understands.
 
 %T% **TIP:** You can use the `%WIKIUSERNAME%` and `%DATE%` variables in your topic templates to include the signature of the person creating a new topic. The variables are expanded into fixed text when a new topic is created. The standard signature is: <br /><code>**-- %WIKIUSERNAME% - %DATE%**</code>
 
@@ -403,3 +403,5 @@ With URL: <code>**.../bin/oops/Sandbox/TestTopic2?template=oopstest&amp;param1=W
 <img src="http://www.dementia.org/twiki//view/testscreen.gif" width="589" height="304" alt="testscreen.gif" style="border: 1px solid #ddd" />
 
 **_Related Topics:_** [[TWikiSkins]], [[DeveloperDocumentationCategory]], [[AdminDocumentationCategory]]
+
+-- **_Contributors:_** TWiki:Main.CrawfordCurrie, TWiki:Main.PeterThoeny, TWiki:Main.MikeMannix, TWiki:Main.DavidLeBlanc
index 69ce00e..c759e71 100644 (file)
@@ -1,41 +1,38 @@
+# <a name="TWiki Upgrade Guide"></a><a name=" TWiki Upgrade Guide"></a> TWiki Upgrade Guide
+
+_This guide covers upgrading from a previous version of TWiki (such as Cairo or TWiki4.0) to TWiki 4.1\__
+
 <div>
   <ul>
-    <li><a href="#TWiki Upgrade Guide"> TWiki Upgrade Guide</a><ul>
-        <li><a href="#Overview"> Overview</a></li>
-        <li><a href="#Upgrade Requirements"> Upgrade Requirements</a></li>
-        <li><a href="#Major Changes Compared to TWiki"> Major Changes Compared to TWiki Release 01-Sep-2004 and TWiki Release 4.0.0</a></li>
-        <li><a href="#Upgrade Procedure"> Upgrade Procedure</a><ul>
-            <li><a href="#Installation"> Installation</a></li>
-            <li><a href="#Install Extensions"> Install Extensions</a></li>
-            <li><a href="#Copy your old webs to new TWiki"> Copy your old webs to new TWiki</a></li>
-            <li><a href="#Copy Users And Their Topics From"> Copy Users And Their Topics From Main Web</a></li>
-            <li><a href="#Apply Customizations To The Skin"> Apply Customizations To The Skin</a></li>
-            <li><a href="#Apply Preferences From Old Insta"> Apply Preferences From Old Installation</a></li>
-          </ul>
-        </li>
-        <li><a href="#Upgrading from Cairo to TWiki4 ("> Upgrading from Cairo to TWiki4 (additional advice)</a><ul>
-            <li><a href="#Favicon"> Favicon</a></li>
-            <li><a href="#!_TWikiUsers topic in Main web"> TWikiUsers topic in Main web</a></li>
-          </ul>
-        </li>
-        <li><a href="#Important Changes since 4.0.5"> Important Changes since 4.0.5</a><ul>
-            <li><a href="#Supported Perl version"> Supported Perl version</a></li>
-            <li><a href="#Template spec changed"> Template spec changed</a></li>
-          </ul>
-        </li>
-        <li><a href="#Important Changes since 4.1.0"> Important Changes since 4.1.0</a><ul>
-            <li><a href="#New location for session files"> New location for session files</a></li>
-          </ul>
-        </li>
+    <li><a href="#Overview"> Overview</a></li>
+    <li><a href="#Upgrade Requirements"> Upgrade Requirements</a></li>
+    <li><a href="#Major Changes Compared to TWiki"> Major Changes Compared to TWiki Release 01-Sep-2004 and TWiki Release 4.0.0</a></li>
+    <li><a href="#Upgrade Procedure"> Upgrade Procedure</a><ul>
+        <li><a href="#Installation"> Installation</a></li>
+        <li><a href="#Install Extensions"> Install Extensions</a></li>
+        <li><a href="#Copy your old webs to new TWiki"> Copy your old webs to new TWiki</a></li>
+        <li><a href="#Copy Users And Their Topics From"> Copy Users And Their Topics From Main Web</a></li>
+        <li><a href="#Apply Customizations To The Skin"> Apply Customizations To The Skin</a></li>
+        <li><a href="#Apply Preferences From Old Insta"> Apply Preferences From Old Installation</a></li>
+      </ul>
+    </li>
+    <li><a href="#Upgrading from Cairo to TWiki4 ("> Upgrading from Cairo to TWiki4 (additional advice)</a><ul>
+        <li><a href="#Favicon"> Favicon</a></li>
+        <li><a href="#!_TWikiUsers topic in Main web"> TWikiUsers topic in Main web</a></li>
+      </ul>
+    </li>
+    <li><a href="#Important Changes since 4.0.5"> Important Changes since 4.0.5</a><ul>
+        <li><a href="#Supported Perl version"> Supported Perl version</a></li>
+        <li><a href="#Template spec changed"> Template spec changed</a></li>
+      </ul>
+    </li>
+    <li><a href="#Important Changes since 4.1.0"> Important Changes since 4.1.0</a><ul>
+        <li><a href="#New location for session files"> New location for session files</a></li>
       </ul>
     </li>
   </ul>
 </div>
 
-# <a name="TWiki Upgrade Guide"></a> TWiki Upgrade Guide
-
-_Upgrade from the previous TWiki 01-Sep-2004 Production Release to TWiki-4.X_
-
 ## <a name="Overview"></a> Overview
 
 TWiki-4.0.0 was a major new release. TWiki-4.1.0 is a minor release without dramatic changes since 4.0.0
index 9d6ee91..76f607c 100644 (file)
@@ -41,6 +41,6 @@
     <td><code>section="%WEB%"</code></td>
   </tr>
 </table>
-- Example: `%WEBLIST{"   * [[$name.WebHome]]"}%` creates a bullet list of all webs.
-- Example: `%WEBLIST{"<option $marker value=$qname>$name</option>" webs="Trash, public" selection="%WEB%" separator=" "}%` creates a dropdown of all public webs + Trash web, with the current web highlighted.
+- Example: `%WEBLIST{"   * [[$name.WebHome]]"}%` - creates a bullet list of all webs.
+- Example: `<form><select name="web"> %WEBLIST{"<option $marker value=$qname>$name</option>" webs="Trash, public" selection="%WEB%" separator=" "}% </select></form>` - creates a dropdown of all public webs + Trash web, with the current web highlighted.
 - Related: [[TOPICLIST|Main/WebHome#VarTOPICLIST]], [[SEARCH|Main/WebHome#VarSEARCH]]
index cf78c4b..8f79d08 100644 (file)
@@ -1,4 +1,4 @@
-# <a name="50 Recent Changes in %WEB% Web r"></a> 50 Recent Changes in %WEB% Web <span><font>retrieved at 16:03 (GMT)</font></span>
+# <a name="50 Recent Changes in %INCLUDINGW"></a> 50 Recent Changes in %INCLUDINGWEB% Web <span><font>retrieved at 16:04 (GMT)</font></span>
 
 # <a name="TWiki Installation Error"></a> TWiki Installation Error
 
index dc5515a..4c09ed6 100644 (file)
@@ -16,7 +16,7 @@
     <div>
       <h3><a name="Use template:"></a> Use template: </h3>
       <p>
-      </p><select name="templatetopic"><option value="TWiki.WebTopicEditTemplate">Default template</option>
+      </p><select name="templatetopic"><option value="">Default template</option>
         <h1>TWiki Installation Error</h1>Incorrect format of searchformat template (missing sections? There should be 4 %SPLIT% tags)</select> [[TWiki/WebTemplateTopics?web=Main]]</div>
     <div>
       <p>