starting to work...
[freeside.git] / rt / UPGRADING
diff --git a/rt/UPGRADING b/rt/UPGRADING
deleted file mode 100644 (file)
index 6466a36..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-UPGRADING
-
-Detailed information about upgrading can be found in the README file.
-This document is intended to supplement the instructions in that file.
-
-Additional information about upgrading from specific versions of RT is
-contained below.
-
-*******
-WARNING
-*******
-
-Before making any changes to your database, always ensure that you have a 
-complete current backup. If you don't have a current backup, you could 
-accidentally damage your database and lose data or worse.
-
-If you are using MySQL, please read the instructions in UPGRADING.mysql as
-well.
-
-*******
-UPGRADING FROM 3.8.8 and earlier - Changes:
-
-Previous versions of RT used a password hashing scheme which was too
-easy to reverse, which could allow attackers with read access to the
-RT database to possibly compromise users' passwords.  Even if RT does
-no password authentication itself, it may still store these weak
-password hashes -- using ExternalAuth does not guarantee that you are
-not vulnerable!  To upgrade stored passwords to a stronger hash, run:
-
-    perl etc/upgrade/vulnerable-passwords
-
-
-We've proved that it's possible to delete set of records
-from Transactions table without losing functionality. To delete
-records run the following script:
-
-    perl -I /opt/rt3/local/lib -I /opt/rt3/lib etc/upgrade/shrink_transactions_table.pl
-
-If you chose not to run the shrink_cgm_table.pl script when you upgraded to 3.8,
-you should read more about it below and run it at this point.
-
-UPGRADING FROM 3.8.7 and earlier - Changes:
-
-RT's ChartFont option has been changed from a string to a hash which
-lets you specify per-language fonts. RT now comes with a better default
-font for charts, too.
-
-You should either update your 'ChartFont' option to match the new format
-or consider trying the new default
-
-RT now gives you more precise control over the order in which custom fields
-are displayed.  This change requires some small changes to your currently saved
-custom field orders.
-
-RT will automatically clean up your existing custom fields when you run:
-
-
-  /opt/rt3/sbin/rt-setup-database --dba root --prompt-for-dba-password --action upgrade
-
-After that cleanup, you should make sure that custom fields are ordered in
-a way that you and your users find pleasing.
-
-UPGRADING FROM 3.8.6 and earlier - Changes:
-
-For MySQL and Oracle users:
-If you upgraded from a version of RT earlier than 3.7.81 you should
-already have a CachedGroupMembers3 index on your CachedGroupMembers table.
-If you did a clean install of RT somewhere in the 3.8 release series, you 
-most likely don't have this index.  You can add it manually with
-
-  CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
-UPGRADING FROM 3.8.5 and earlier - Changes:
-
-You can now forward an entire Ticket history (in addition to specific transactions)
-but this requires a new Template called forward ticket.  This template will be added
-when you run.
-
-/opt/rt3/sbin/rt-setup-database --dba root --prompt-for-dba-password --action upgrade
-
-Custom fields with categories can optionally be split out into
-hierarchical custom fields.  If you wish to convert your old
-category-based custom fields, run:
-
-    perl etc/upgrade/split-out-cf-categories
-
-It will prompt you for each custom field with categories that it
-finds, and the name of the custom field to create to store the
-categories.
-
-If you were using the LocalizedDateTime RT::Date formatter from code
-and passing a DateFormat or TimeFormat argument, you need to switch from 
-the strftime methods to the cldr methods (ie full_date_format becomes date_format_full)
-You may have done this from your RT_SiteConfig.pm by using
-Set($DateTimeFormat, { Format => 'LocalizedDateTime', DateFormat => 'medium_date_format' );
-
-UPGRADING FROM 3.8.3 and earlier - Changes:
-
-Arguments to the NotifyGroup Scrip Action need
-to be corrected in the database using 
-
-/opt/rt3/sbin/rt-setup-database --dba root --prompt-for-dba-password --action upgrade
-
-
-UPGRADING FROM 3.8.2 and earlier - Changes:
-
-New scrip condition 'On Reject'.
-
-UPGRADING FROM 3.8.1 and earlier - Changes:
-
-= Oracle configuration =
-
-$DatabaseName is used as SID, so RT can connect without environment variables
-or tnsnames.ora file. Because of this change your RT instance may loose ability
-to connect to your DB, you have to update options and restart your web server.
-Example configuration:
-
-    Set($DatabaseType, 'Oracle');
-    Set($DatabaseHost, '192.168.0.1');
-    # undefined port => will try both 1526 and 1521
-    Set($DatabasePort, undef);
-    # ORACLE SID
-    Set($DatabaseName, 'XE');
-    # user for RT in Oracle, RT's tables in his schema
-    Set($DatabaseUser, 'test');
-    # above user's password
-    Set($DatabasePassword, 'test');
-
-= Rights changes =
-
-Now, if you want any user to be able to access the Approvals tools (a.k.a.  the
-Approvals tab), you must grant that user the "ShowApprovalsTab" right.
-
-UPGRADING FROM 3.8.0 and earlier - Changes:
-
-Searches for bookmarked tickets have been reimplemented and syntax has
-been changed a little. Database upgrade script handles global 'Bookmarked Tickets'
-search only. New Ticket SQL "id = '__Bookmarked__'" is more flexible than
-old "__Bookmarks__". Old version is not valid Ticket SQL query, so people
-can not use it in the query builder and as well admins couldn't not edit
-format and other properties of the global saved search. Old version's been
-left for backwards compatibility.
-
-
-UPGRADING FROM 3.7.85 and earlier - Changes:
-
-We've proved that it's possible to delete pretty big set of records
-from CachedGroupMembers table without losing functionality. To delete
-record run the following script.  If you don't run this, you may
-occasionally see problems where RT miscounts users, particularly in the
-chart functionality.
-
-    perl -I /opt/rt3/local/lib -I /opt/rt3/lib etc/upgrade/shrink_cgm_table.pl
-
-After you run this, you'll have significantly reduced the number of
-records in your CachedGroupMembers table and may need to tell your
-database to refresh indexes/statistics.  Please consult your DBA for
-specific instructions for your database.
-
-UPGRADING FROM 3.7.81 and earlier - Changes:
-
-RT::Extension::BrandedQueues has been integrated into core, so you MUST read
-upgrading instructions docs/queue_subject_tag.pod EVEN IF you have not used
-that extension.
-
-RT::Action::LinearEscalate extension has been integrated into core,
-so you MUST uninstall it before upgrading.
-
-RT::Extension::iCal has been integrated into core, so you MUST uninstall
-it before upgrading. In addition, you must run etc/upgrade/3.8-ical-extension
-script to convert old data.
-
-UPGRADING FROM 3.7.80 and earlier - Changes:
-
-Added indexes to CachedGroupMembers for MySQL and Oracle.
-If you have previously installed RTx-Shredder, you may already
-have these indexes.  You can see the indexes by looking at
-etc/upgrade/3.7.81/schema.*
-
-These indexes may take a very long time to create.
-
-UPGRADING FROM 3.6.X and earlier - Changes:
-
-There are a lot of changes all over the code, so it's highly recommended to
-use fresh directory and then reinstalling your customizations.
-
-New schema for mysql 4.1 and greater, read more in UPGRADING.mysql.
-
-Config format has been made stricter. All options MUST be set using Set
-function, no more "@XXX = (...) unless @XXX;". Use "Set(@XXX, ...);" instead.
-
-RTx::Shredder extension has been integrated into core and features have been
-added, so you MUST uninstall it before upgrading or use a fresh directory for
-installation.
-
-New interface for making links in text clickable and doing other replacements
-has been integrated into RT.
-Read more in `perldoc docs/extending_clickable_links.pod`.
-
-New feature that allow users to forward messages. There is a new option in
-the config ($ForwardFromUser), new rights and a template.
-
-New global templates with "Error: " prefix in the name to make it possible
-to configure error messages sent to users.
-
-Read about GnuPG integration in `perldoc docs/gnupg_integration.pod`.
-
-New scrip conditions 'On Close' and 'On Reopen'.
-
-UPGRADING FROM 3.5.7 and earlier - Changes:
-
-Scrips are now prepared and committed in order alphanumerically by description.
-This means that you can prepend a number (00, 07, 15, 24) to the beginning of
-each scrip's description, and they will run in that order.  Depending on your
-database, the old ordering may have been by scrip id number -- if that is the
-case, simply prepend the scrip id number to the beginning of its description.
-
-
-UPGRADING FROM 3.5.1 and earlier - Changes:
-
-The default for $RedistributeAutoGeneratedMessages has changed to
-'privileged', to make out-of-the-box installations more resistant
-to mail loops. If you rely on the old default of redistributing to
-all watchers, you'll need to set it explicitly now.
-
-
-UPGRADING FROM 3.3.14 and earlier - Changes:
-
-The "ModifyObjectCustomFieldValues" right name was too long. It's been changed to
-"ModifyCustomField"
-
-
-UPGRADING FROM 3.3.11 and earlier - Changes:
-
-= Rights Changes =
-
-Custom Fields now have an additional right "ModifyCustomField". 
-This right governs whether a user can modify an object's custom field values
-for a particular custom field. This includes adding, deleting and changing values.
-
-
-UPGRADING FROM 3.2 and earlier - Changes:
-
-= Rights changes =
-
-Now, if you want any user to be able to access the Admin tools (a.k.a. 
-the Configuration tab), you must grant that user the "ShowConfigTab" 
-right.  Making the user a privileged user is no longer sufficient.
-
-"SuperUser" users are no longer automatically added to the list of users who can own tickets in a queue. You now need to explicitly give them the "own tickets" right.
-
-
-
-UPGRADING FROM 3.0.x - Changes:
-
-= Installation =
-
-We recommend you move your existing /opt/rt3 tree completely out
-of the way before installing the new version of RT, to make sure
-that you don't inadvertently leave old files hanging around.
-
-= Rights changes =
-
-Now, if you want RT to automatically create new users upon ticket
-submission, you MUST grant 'Everyone' the right to create tickets.
-Granting this right only to "Unprivileged Users" is now insufficient.
-
-
-= FastCGI configuration =
-
-This section is a snapshot of the documentation available at:
-
-http://wiki.bestpractical.com/index.cgi?FastCGIConfiguration
-
-It's worth checking out that resource if these instructions don't 
-work right for you
-
-
-RT 3.2 includes a significant change to the FastCGI handler. It is
-no longer "setgid" to the RT group.  Perl's setid support has been
-deprecated for the last several releases and a number of platforms
-don't bundle the "sperl" or "suidperl" executable by default.
-Additionally, when perl is run SetUID or SetGID, the interpreter
-is automatically switched into /taint mode/, in which all incoming
-data, no matter the source is considered suspect. At first, this
-seems like a great idea. But perl's taint mode is a big sledgehammer
-used to hit small nails.  Many perl libraries aren't tested in taint
-mode and will fail when least expected.  Moving away from a SetGID
-FastCGI handler will enable more users to have a smoother RT
-experience.  It does require some changes in how you set up and
-configure RT.
-
-Beginning with RT 3.2, you have several choices about how to configure
-RT to run as a FastCGI:
-
-
-== Install RT as the user your webserver runs as ==
-
-Pros: Very easy to configure
-
-Cons: Your webserver has access to RT's private database password
-
-=== How To
-
-When installing RT, run:
-
- ./configure --with-web-user="webuser"  --with-web-group="webgroup"  \ 
-    --with-rt-user="webuser" --with-rt-group="webgroup"
-
-(Don't forget to include other configuration options that matter to you)
-
-If you're using apache, you'll want to add something like the following 
-to your httpd.conf:
-
- <VirtualHost rt.example.com>
-
-    # Pass through requests to display images
-    Alias /NoAuth/images/ /opt/rt3/share/html/NoAuth/images/
-    
-    # Tell FastCGI to put its temporary files somewhere sane.
-    FastCgiIpcDir /tmp
-
-    FastCgiServer /opt/rt3/bin/mason_handler.fcgi -idle-timeout 120
-
-    AddHandler fastcgi-script fcgi
-    ScriptAlias / /opt/rt3/bin/mason_handler.fcgi/
-    
- </VirtualHost>
-
-
-== Make your webserver user a member of the "rt" group ==
-
-Pros: Easy to configure
-
-Cons: Your webserver has access to RT's private database password
-
-
-=== How To
-
-Install RT normally. Add whichever user your webserver runs as
-(whatever you set --with-web-user to) to the "rt" group (whatever
-you set --with-rt-group to) in /etc/groups.
-
-To find out what user your webserver runs as, look for the line
-
-  User some-user-name
-
-in your apache httpd.conf. Common values are www, www-data, web and nobody.
-
-
-
-== Run RT using _suexec_ or a similar mechanism
-
-
-Pros: More secure
-
-Cons: Sometimes very difficult to configure
-
-Apache's _suexec_ utility allows you run CGI programs as specific
-users. Because that's a relatively heavy responsibility, it's very,
-very conservative about what it's willing to do for you. On top of
-that, Apache's mod_fastcgi plugin doesn't respect all of suexec's
-features.  While suexec is designed to execute CGI scripts in a
-given virtual host's !DocumentRoot, It can only execute FastCGI
-scripts in the system's *main* !DocumentRoot.
-
-This means you have to copy the RT FastCGI handler into your main
-!DocumentRoot
-
-The following example !VirtualHost will run RT as a FastCGI on
-Apache 1.3 on a Debian Linux server.
-
-
- <VirtualHost rt.example.com>
-   DocumentRoot /opt/rt3/share/html
-    # Set the rt user and group as the executing user for this virtual host
-    User rt
-    Group rt
-
-
-    # Pass through requests to display images
-    Alias /NoAuth/images/ /opt/rt3/share/html/NoAuth/images/
-    
-    # Tell FastCGI to put its temporary files somewhere sane.
-    FastCgiIpcDir /tmp
-
-    # Tell FastCGI that it should use apache's "suexec" binary to call any 
-    # FastCGI script.
-    # This is a GLOBAL setting
-    FastCgiWrapper /usr/lib/apache/suexec
-
-    # You need to copy the rt mason_handler.fcgi into a directory inside 
-    # the main server DocumentRoot
-    # That directory must be owned by the user and group that will execute 
-    # the FastCGI script
-    # In this case, that directory is /var/www/rt
-
-    # To find the local DocumentRoot, run "suexec -V" as root and look for the 
-    #  -D DOC_ROOT parameter.
-
-    # Apache 1.3 discards the user and group parameters on the FastCgiServer 
-    # line. Apache 2.0 requires them.
-
-    FastCgiServer /var/www/rt/mason_handler.fcgi -idle-timeout 120 -user rt -group rt
-
-    AddHandler fastcgi-script fcgi
-    ScriptAlias / /var/www/rt/mason_handler.fcgi/
-    
- </VirtualHost>
-
-UPGRADING FROM 2.x:
-
-See http://search.cpan.org/dist/RT-Extension-RT2toRT3/
-