import of rt 3.0.4
authorivan <ivan>
Tue, 15 Jul 2003 13:16:32 +0000 (13:16 +0000)
committerivan <ivan>
Tue, 15 Jul 2003 13:16:32 +0000 (13:16 +0000)
426 files changed:
rt/Changelog [new file with mode: 0644]
rt/HOWTO/README [new file with mode: 0644]
rt/HOWTO/change.txt [new file with mode: 0644]
rt/HOWTO/release.txt [new file with mode: 0644]
rt/HOWTO/version-control.txt [new file with mode: 0644]
rt/Makefile
rt/Makefile.in [new file with mode: 0644]
rt/README
rt/aclocal.m4 [new file with mode: 0644]
rt/autom4te.cache/output.0 [new file with mode: 0644]
rt/autom4te.cache/requests [new file with mode: 0644]
rt/autom4te.cache/traces.0 [new file with mode: 0644]
rt/bin/mason_handler.fcgi
rt/bin/mason_handler.fcgi.in [new file with mode: 0644]
rt/bin/mason_handler.scgi
rt/bin/mason_handler.scgi.in [new file with mode: 0644]
rt/bin/mason_handler.svc [new file with mode: 0644]
rt/bin/mason_handler.svc.in [new file with mode: 0644]
rt/bin/rt-commit-handler [new file with mode: 0644]
rt/bin/rt-commit-handler.in [new file with mode: 0644]
rt/bin/rt-crontool [new file with mode: 0644]
rt/bin/rt-crontool.in [new file with mode: 0644]
rt/bin/rt-mailgate
rt/bin/rt-mailgate.in [new file with mode: 0644]
rt/bin/webmux.pl
rt/bin/webmux.pl.in [new file with mode: 0644]
rt/config [new file with mode: 0644]
rt/config.layout [new file with mode: 0644]
rt/config.log [new file with mode: 0644]
rt/config.pld [new file with mode: 0644]
rt/config.status [new file with mode: 0755]
rt/configure [new file with mode: 0755]
rt/configure.ac [new file with mode: 0644]
rt/docs/design_docs/acls
rt/docs/design_docs/approval_notices [new file with mode: 0644]
rt/docs/design_docs/approval_template [new file with mode: 0644]
rt/docs/design_docs/cf_search [new file with mode: 0644]
rt/docs/design_docs/cli_spec
rt/docs/design_docs/delegation [new file with mode: 0644]
rt/docs/design_docs/evil_plans
rt/docs/design_docs/groups_notes [new file with mode: 0644]
rt/docs/design_docs/recursive_group_membership_algorithm [new file with mode: 0644]
rt/docs/design_docs/rql_parser_machine.graphviz [new file with mode: 0644]
rt/docs/design_docs/string-extraction-guide.txt [new file with mode: 0644]
rt/docs/design_docs/ticket_templates [new file with mode: 0644]
rt/etc/RT_Config.pm [new file with mode: 0644]
rt/etc/RT_Config.pm.in [new file with mode: 0644]
rt/etc/RT_SiteConfig.pm [new file with mode: 0644]
rt/etc/acl.Oracle
rt/etc/acl.Pg
rt/etc/acl.mysql
rt/etc/constraints.mysql [new file with mode: 0644]
rt/etc/initialdata [new file with mode: 0644]
rt/etc/schema.Pg
rt/etc/schema.SQLite [new file with mode: 0644]
rt/etc/schema.mysql
rt/etc/upgrade/2.1.71 [new file with mode: 0644]
rt/html/Admin/Elements/AddCustomFieldValue [new file with mode: 0644]
rt/html/Admin/Elements/CreateUserCalled [new file with mode: 0644]
rt/html/Admin/Elements/EditCustomField [new file with mode: 0644]
rt/html/Admin/Elements/EditCustomFieldValues [new file with mode: 0644]
rt/html/Admin/Elements/EditCustomFields [new file with mode: 0644]
rt/html/Admin/Elements/EditQueueWatchers [new file with mode: 0644]
rt/html/Admin/Elements/EditScrip [new file with mode: 0644]
rt/html/Admin/Elements/EditScrips [new file with mode: 0644]
rt/html/Admin/Elements/EditTemplates [new file with mode: 0644]
rt/html/Admin/Elements/EditUserComments [new file with mode: 0644]
rt/html/Admin/Elements/GroupTabs [new file with mode: 0644]
rt/html/Admin/Elements/Header [new file with mode: 0644]
rt/html/Admin/Elements/ListGlobalCustomFields [new file with mode: 0644]
rt/html/Admin/Elements/ListGlobalScrips [new file with mode: 0644]
rt/html/Admin/Elements/ModifyQueue [new file with mode: 0644]
rt/html/Admin/Elements/ModifyTemplate [new file with mode: 0644]
rt/html/Admin/Elements/ModifyUser [new file with mode: 0644]
rt/html/Admin/Elements/QueueRightsForUser [new file with mode: 0644]
rt/html/Admin/Elements/QueueTabs [new file with mode: 0644]
rt/html/Admin/Elements/SelectCustomFieldType [new file with mode: 0644]
rt/html/Admin/Elements/SelectGroups [new file with mode: 0644]
rt/html/Admin/Elements/SelectModifyGroup [new file with mode: 0644]
rt/html/Admin/Elements/SelectModifyQueue [new file with mode: 0644]
rt/html/Admin/Elements/SelectModifyUser [new file with mode: 0644]
rt/html/Admin/Elements/SelectNewGroupMembers [new file with mode: 0644]
rt/html/Admin/Elements/SelectRights [new file with mode: 0644]
rt/html/Admin/Elements/SelectScrip [new file with mode: 0644]
rt/html/Admin/Elements/SelectScripAction [new file with mode: 0644]
rt/html/Admin/Elements/SelectScripCondition [new file with mode: 0644]
rt/html/Admin/Elements/SelectSingleOrMultiple [new file with mode: 0644]
rt/html/Admin/Elements/SelectTemplate [new file with mode: 0644]
rt/html/Admin/Elements/SelectUsers [new file with mode: 0644]
rt/html/Admin/Elements/SystemTabs [new file with mode: 0644]
rt/html/Admin/Elements/Tabs [new file with mode: 0644]
rt/html/Admin/Elements/UserTabs [new file with mode: 0644]
rt/html/Admin/Global/CustomField.html [new file with mode: 0644]
rt/html/Admin/Global/CustomFields.html [new file with mode: 0644]
rt/html/Admin/Global/GroupRights.html [new file with mode: 0644]
rt/html/Admin/Global/Scrip.html [new file with mode: 0644]
rt/html/Admin/Global/Scrips.html [new file with mode: 0644]
rt/html/Admin/Global/Template.html [new file with mode: 0644]
rt/html/Admin/Global/Templates.html [new file with mode: 0644]
rt/html/Admin/Global/UserRights.html [new file with mode: 0644]
rt/html/Admin/Global/index.html [new file with mode: 0644]
rt/html/Admin/Groups/GroupRights.html [new file with mode: 0644]
rt/html/Admin/Groups/Members.html [new file with mode: 0644]
rt/html/Admin/Groups/Modify.html [new file with mode: 0644]
rt/html/Admin/Groups/UserRights.html [new file with mode: 0644]
rt/html/Admin/Groups/index.html [new file with mode: 0644]
rt/html/Admin/Queues/CustomField.html [new file with mode: 0644]
rt/html/Admin/Queues/CustomFields.html [new file with mode: 0644]
rt/html/Admin/Queues/GroupRights.html [new file with mode: 0644]
rt/html/Admin/Queues/Modify.html [new file with mode: 0644]
rt/html/Admin/Queues/People.html [new file with mode: 0644]
rt/html/Admin/Queues/Scrip.html [new file with mode: 0644]
rt/html/Admin/Queues/Scrips.html [new file with mode: 0644]
rt/html/Admin/Queues/Template.html [new file with mode: 0644]
rt/html/Admin/Queues/Templates.html [new file with mode: 0644]
rt/html/Admin/Queues/UserRights.html [new file with mode: 0644]
rt/html/Admin/Queues/index.html [new file with mode: 0644]
rt/html/Admin/Users/Modify.html [new file with mode: 0644]
rt/html/Admin/Users/Prefs.html [new file with mode: 0644]
rt/html/Admin/Users/index.html [new file with mode: 0644]
rt/html/Admin/index.html [new file with mode: 0644]
rt/html/Approvals/Display.html [new file with mode: 0644]
rt/html/Approvals/Elements/Approve [new file with mode: 0644]
rt/html/Approvals/Elements/PendingMyApproval [new file with mode: 0644]
rt/html/Approvals/Elements/ShowDependency [new file with mode: 0644]
rt/html/Approvals/Elements/Tabs [new file with mode: 0644]
rt/html/Approvals/index.html [new file with mode: 0644]
rt/html/Elements/BevelBoxRaisedEnd [new file with mode: 0644]
rt/html/Elements/BevelBoxRaisedStart [new file with mode: 0644]
rt/html/Elements/Callback [new file with mode: 0644]
rt/html/Elements/Checkbox [new file with mode: 0644]
rt/html/Elements/CreateTicket [new file with mode: 0644]
rt/html/Elements/Error [new file with mode: 0644]
rt/html/Elements/Footer [new file with mode: 0644]
rt/html/Elements/GotoTicket [new file with mode: 0644]
rt/html/Elements/Header [new file with mode: 0644]
rt/html/Elements/ListActions [new file with mode: 0644]
rt/html/Elements/Login [new file with mode: 0644]
rt/html/Elements/Menu [new file with mode: 0644]
rt/html/Elements/MessageBox [new file with mode: 0644]
rt/html/Elements/MyRequests [new file with mode: 0644]
rt/html/Elements/MyTickets [new file with mode: 0644]
rt/html/Elements/PageLayout [new file with mode: 0644]
rt/html/Elements/Quicksearch [new file with mode: 0644]
rt/html/Elements/Refresh [new file with mode: 0644]
rt/html/Elements/Section [new file with mode: 0644]
rt/html/Elements/SelectAttachmentField [new file with mode: 0644]
rt/html/Elements/SelectBoolean [new file with mode: 0644]
rt/html/Elements/SelectCustomFieldOperator [new file with mode: 0644]
rt/html/Elements/SelectCustomFieldValue [new file with mode: 0644]
rt/html/Elements/SelectDate [new file with mode: 0644]
rt/html/Elements/SelectDateRelation [new file with mode: 0644]
rt/html/Elements/SelectDateType [new file with mode: 0644]
rt/html/Elements/SelectEqualityOperator [new file with mode: 0644]
rt/html/Elements/SelectGroups [new file with mode: 0644]
rt/html/Elements/SelectLinkType [new file with mode: 0644]
rt/html/Elements/SelectMatch [new file with mode: 0644]
rt/html/Elements/SelectNewTicketQueue [new file with mode: 0644]
rt/html/Elements/SelectOwner [new file with mode: 0644]
rt/html/Elements/SelectQueue [new file with mode: 0644]
rt/html/Elements/SelectResultsPerPage [new file with mode: 0644]
rt/html/Elements/SelectSortOrder [new file with mode: 0644]
rt/html/Elements/SelectStatus [new file with mode: 0644]
rt/html/Elements/SelectTicketSortBy [new file with mode: 0644]
rt/html/Elements/SelectTicketTypes [new file with mode: 0644]
rt/html/Elements/SelectUsers [new file with mode: 0644]
rt/html/Elements/SelectWatcherType [new file with mode: 0644]
rt/html/Elements/SetupSessionCookie [new file with mode: 0644]
rt/html/Elements/ShadedBox [new file with mode: 0644]
rt/html/Elements/ShadedInputRow [new file with mode: 0644]
rt/html/Elements/ShadedRow [new file with mode: 0644]
rt/html/Elements/SimpleSearch [new file with mode: 0644]
rt/html/Elements/Submit [new file with mode: 0644]
rt/html/Elements/Tabs [new file with mode: 0644]
rt/html/Elements/TitleBoxEnd [new file with mode: 0644]
rt/html/Elements/TitleBoxStart [new file with mode: 0644]
rt/html/Elements/ViewUser [new file with mode: 0644]
rt/html/NoAuth/Logout.html [new file with mode: 0644]
rt/html/NoAuth/Reminder.html [new file with mode: 0644]
rt/html/NoAuth/images/back_home.gif [new file with mode: 0644]
rt/html/NoAuth/images/bplogo.gif [new file with mode: 0644]
rt/html/NoAuth/images/favicon.png [new file with mode: 0644]
rt/html/NoAuth/images/head_requestracker.gif [new file with mode: 0644]
rt/html/NoAuth/images/rt.jpg [new file with mode: 0644]
rt/html/NoAuth/images/space.gif [new file with mode: 0644]
rt/html/NoAuth/images/spacer.gif [new file with mode: 0644]
rt/html/NoAuth/images/squares_blue.gif [new file with mode: 0644]
rt/html/NoAuth/webrt.css [new file with mode: 0644]
rt/html/REST/1.0/NoAuth/mail-gateway [new file with mode: 0644]
rt/html/Search/Bulk.html [new file with mode: 0644]
rt/html/Search/Elements/PickRestriction [new file with mode: 0644]
rt/html/Search/Elements/TicketHeader [new file with mode: 0644]
rt/html/Search/Elements/TicketHeaderCell [new file with mode: 0644]
rt/html/Search/Elements/TicketRow [new file with mode: 0644]
rt/html/Search/Listing.html [new file with mode: 0644]
rt/html/SelfService/Attachment/dhandler [new file with mode: 0644]
rt/html/SelfService/Closed.html [new file with mode: 0644]
rt/html/SelfService/Create.html [new file with mode: 0644]
rt/html/SelfService/Display.html [new file with mode: 0644]
rt/html/SelfService/Elements/GotoTicket [new file with mode: 0644]
rt/html/SelfService/Elements/Header [new file with mode: 0644]
rt/html/SelfService/Elements/MyRequests [new file with mode: 0644]
rt/html/SelfService/Elements/Tabs [new file with mode: 0644]
rt/html/SelfService/Error.html [new file with mode: 0644]
rt/html/SelfService/Prefs.html [new file with mode: 0644]
rt/html/SelfService/Update.html [new file with mode: 0644]
rt/html/SelfService/index.html [new file with mode: 0644]
rt/html/Ticket/Attachment/dhandler [new file with mode: 0644]
rt/html/Ticket/Create.html [new file with mode: 0644]
rt/html/Ticket/Display.html [new file with mode: 0644]
rt/html/Ticket/Elements/AddWatchers [new file with mode: 0644]
rt/html/Ticket/Elements/BulkLinks [new file with mode: 0644]
rt/html/Ticket/Elements/EditBasics [new file with mode: 0644]
rt/html/Ticket/Elements/EditCustomField [new file with mode: 0644]
rt/html/Ticket/Elements/EditCustomFields [new file with mode: 0644]
rt/html/Ticket/Elements/EditDates [new file with mode: 0644]
rt/html/Ticket/Elements/EditLinks [new file with mode: 0644]
rt/html/Ticket/Elements/EditPeople [new file with mode: 0644]
rt/html/Ticket/Elements/EditWatchers [new file with mode: 0644]
rt/html/Ticket/Elements/ShowAttachments [new file with mode: 0644]
rt/html/Ticket/Elements/ShowBasics [new file with mode: 0644]
rt/html/Ticket/Elements/ShowCustomFields [new file with mode: 0644]
rt/html/Ticket/Elements/ShowDates [new file with mode: 0644]
rt/html/Ticket/Elements/ShowDependencies [new file with mode: 0644]
rt/html/Ticket/Elements/ShowHistory [new file with mode: 0644]
rt/html/Ticket/Elements/ShowLink [new file with mode: 0644]
rt/html/Ticket/Elements/ShowLinks [new file with mode: 0644]
rt/html/Ticket/Elements/ShowMemberOf [new file with mode: 0644]
rt/html/Ticket/Elements/ShowMembers [new file with mode: 0644]
rt/html/Ticket/Elements/ShowMessageHeaders [new file with mode: 0644]
rt/html/Ticket/Elements/ShowMessageStanza [new file with mode: 0644]
rt/html/Ticket/Elements/ShowPeople [new file with mode: 0644]
rt/html/Ticket/Elements/ShowReferences [new file with mode: 0644]
rt/html/Ticket/Elements/ShowRequestor [new file with mode: 0644]
rt/html/Ticket/Elements/ShowSummary [new file with mode: 0644]
rt/html/Ticket/Elements/ShowTransaction [new file with mode: 0644]
rt/html/Ticket/Elements/Tabs [new file with mode: 0644]
rt/html/Ticket/History.html [new file with mode: 0644]
rt/html/Ticket/Modify.html [new file with mode: 0644]
rt/html/Ticket/ModifyAll.html [new file with mode: 0644]
rt/html/Ticket/ModifyDates.html [new file with mode: 0644]
rt/html/Ticket/ModifyLinks.html [new file with mode: 0644]
rt/html/Ticket/ModifyPeople.html [new file with mode: 0644]
rt/html/Ticket/Update.html [new file with mode: 0644]
rt/html/User/Delegation.html [new file with mode: 0644]
rt/html/User/Elements/DelegateRights [new file with mode: 0644]
rt/html/User/Elements/GroupTabs [new file with mode: 0644]
rt/html/User/Elements/Tabs [new file with mode: 0644]
rt/html/User/Groups/Members.html [new file with mode: 0644]
rt/html/User/Groups/Modify.html [new file with mode: 0644]
rt/html/User/Groups/index.html [new file with mode: 0644]
rt/html/User/Prefs.html [new file with mode: 0644]
rt/html/autohandler [new file with mode: 0644]
rt/html/index.html [new file with mode: 0644]
rt/html/l [new file with mode: 0644]
rt/install-sh [new file with mode: 0644]
rt/lib/RT.pm
rt/lib/RT.pm.in [new file with mode: 0644]
rt/lib/RT/ACE.pm
rt/lib/RT/ACE_Overlay.pm [new file with mode: 0644]
rt/lib/RT/ACL.pm
rt/lib/RT/ACL_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Action/AutoOpen.pm [new file with mode: 0644]
rt/lib/RT/Action/Autoreply.pm
rt/lib/RT/Action/CreateTickets.pm [new file with mode: 0644]
rt/lib/RT/Action/EscalatePriority.pm [new file with mode: 0644]
rt/lib/RT/Action/Generic.pm
rt/lib/RT/Action/Notify.pm
rt/lib/RT/Action/NotifyAsComment.pm
rt/lib/RT/Action/ResolveMembers.pm
rt/lib/RT/Action/SendEmail.pm
rt/lib/RT/Action/SetPriority.pm [new file with mode: 0644]
rt/lib/RT/Action/UserDefined.pm [new file with mode: 0644]
rt/lib/RT/Attachment.pm
rt/lib/RT/Attachment_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Attachments.pm
rt/lib/RT/Attachments_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Base.pm [new file with mode: 0644]
rt/lib/RT/CachedGroupMember.pm [new file with mode: 0644]
rt/lib/RT/CachedGroupMember_Overlay.pm [new file with mode: 0644]
rt/lib/RT/CachedGroupMembers.pm [new file with mode: 0644]
rt/lib/RT/CachedGroupMembers_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Condition/AnyTransaction.pm
rt/lib/RT/Condition/BeforeDue.pm [new file with mode: 0644]
rt/lib/RT/Condition/Generic.pm
rt/lib/RT/Condition/Overdue.pm [new file with mode: 0644]
rt/lib/RT/Condition/OwnerChange.pm [new file with mode: 0644]
rt/lib/RT/Condition/PriorityExceeds.pm [new file with mode: 0644]
rt/lib/RT/Condition/QueueChange.pm [new file with mode: 0644]
rt/lib/RT/Condition/StatusChange.pm
rt/lib/RT/Condition/UserDefined.pm [new file with mode: 0644]
rt/lib/RT/CurrentUser.pm
rt/lib/RT/CustomField.pm [new file with mode: 0644]
rt/lib/RT/CustomFieldValue.pm [new file with mode: 0644]
rt/lib/RT/CustomFieldValues.pm [new file with mode: 0644]
rt/lib/RT/CustomFieldValues_Overlay.pm [new file with mode: 0644]
rt/lib/RT/CustomField_Overlay.pm [new file with mode: 0644]
rt/lib/RT/CustomFields.pm [new file with mode: 0644]
rt/lib/RT/CustomFields_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Date.pm
rt/lib/RT/EmailParser.pm [new file with mode: 0644]
rt/lib/RT/Group.pm
rt/lib/RT/GroupMember.pm
rt/lib/RT/GroupMember_Overlay.pm [new file with mode: 0644]
rt/lib/RT/GroupMembers.pm
rt/lib/RT/GroupMembers_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Group_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Groups.pm
rt/lib/RT/Groups_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Handle.pm
rt/lib/RT/I18N.pm [new file with mode: 0644]
rt/lib/RT/I18N/cs.pm [new file with mode: 0644]
rt/lib/RT/I18N/cs.po [new file with mode: 0644]
rt/lib/RT/I18N/de.po [new file with mode: 0644]
rt/lib/RT/I18N/en.po [new file with mode: 0644]
rt/lib/RT/I18N/es.po [new file with mode: 0644]
rt/lib/RT/I18N/fi.po [new file with mode: 0644]
rt/lib/RT/I18N/fr.po [new file with mode: 0644]
rt/lib/RT/I18N/he.po [new file with mode: 0644]
rt/lib/RT/I18N/i_default.pm [new file with mode: 0644]
rt/lib/RT/I18N/ja.po [new file with mode: 0644]
rt/lib/RT/I18N/nl.po [new file with mode: 0644]
rt/lib/RT/I18N/no.po [new file with mode: 0644]
rt/lib/RT/I18N/pt_br.po [new file with mode: 0644]
rt/lib/RT/I18N/ru.po [new file with mode: 0644]
rt/lib/RT/I18N/zh_cn.po [new file with mode: 0644]
rt/lib/RT/I18N/zh_tw.po [new file with mode: 0644]
rt/lib/RT/Interface/CLI.pm
rt/lib/RT/Interface/Email.pm
rt/lib/RT/Interface/Email/Auth/MailFrom.pm [new file with mode: 0644]
rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm [new file with mode: 0644]
rt/lib/RT/Interface/Web.pm
rt/lib/RT/Link.pm
rt/lib/RT/Link_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Links.pm
rt/lib/RT/Links_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Principal.pm [new file with mode: 0644]
rt/lib/RT/Principal_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Principals.pm [new file with mode: 0644]
rt/lib/RT/Principals_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Queue.pm
rt/lib/RT/Queue_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Queues.pm
rt/lib/RT/Queues_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Record.pm
rt/lib/RT/Scrip.pm
rt/lib/RT/ScripAction.pm
rt/lib/RT/ScripAction_Overlay.pm [new file with mode: 0644]
rt/lib/RT/ScripActions.pm
rt/lib/RT/ScripActions_Overlay.pm [new file with mode: 0644]
rt/lib/RT/ScripCondition.pm
rt/lib/RT/ScripCondition_Overlay.pm [new file with mode: 0644]
rt/lib/RT/ScripConditions.pm
rt/lib/RT/ScripConditions_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Scrip_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Scrips.pm
rt/lib/RT/Scrips_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Search/ActiveTicketsInQueue.pm [new file with mode: 0644]
rt/lib/RT/Search/Generic.pm [new file with mode: 0644]
rt/lib/RT/SearchBuilder.pm [new file with mode: 0644]
rt/lib/RT/System.pm [new file with mode: 0644]
rt/lib/RT/Template.pm
rt/lib/RT/Template_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Templates.pm
rt/lib/RT/Templates_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Ticket.pm
rt/lib/RT/TicketCustomFieldValue.pm [new file with mode: 0644]
rt/lib/RT/TicketCustomFieldValue_Overlay.pm [new file with mode: 0644]
rt/lib/RT/TicketCustomFieldValues.pm [new file with mode: 0644]
rt/lib/RT/TicketCustomFieldValues_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Ticket_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Tickets.pm
rt/lib/RT/Tickets_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Tickets_Overlay_SQL.pm [new file with mode: 0644]
rt/lib/RT/Transaction.pm
rt/lib/RT/Transaction_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Transactions.pm
rt/lib/RT/Transactions_Overlay.pm [new file with mode: 0644]
rt/lib/RT/URI.pm [new file with mode: 0644]
rt/lib/RT/URI/base.pm [new file with mode: 0644]
rt/lib/RT/URI/fsck_com_rt.pm [new file with mode: 0644]
rt/lib/RT/User.pm
rt/lib/RT/User_Overlay.pm [new file with mode: 0644]
rt/lib/RT/Users.pm
rt/lib/RT/Users_Overlay.pm [new file with mode: 0644]
rt/lib/t/00smoke.t [new file with mode: 0644]
rt/lib/t/00smoke.t.in [new file with mode: 0644]
rt/lib/t/01harness.t [new file with mode: 0644]
rt/lib/t/01harness.t.in [new file with mode: 0644]
rt/lib/t/02regression.t [new file with mode: 0644]
rt/lib/t/02regression.t.in [new file with mode: 0644]
rt/lib/t/03web.pl [new file with mode: 0644]
rt/lib/t/03web.pl.in [new file with mode: 0644]
rt/lib/t/04_send_email.pl [new file with mode: 0644]
rt/lib/t/04_send_email.pl.in [new file with mode: 0644]
rt/lib/t/data/8859-15-message-series/dir [new file with mode: 0644]
rt/lib/t/data/8859-15-message-series/msg1 [new file with mode: 0644]
rt/lib/t/data/8859-15-message-series/msg2 [new file with mode: 0644]
rt/lib/t/data/8859-15-message-series/msg3 [new file with mode: 0644]
rt/lib/t/data/8859-15-message-series/msg4 [new file with mode: 0644]
rt/lib/t/data/8859-15-message-series/msg5 [new file with mode: 0644]
rt/lib/t/data/8859-15-message-series/msg6 [new file with mode: 0644]
rt/lib/t/data/8859-15-message-series/msg7 [new file with mode: 0644]
rt/lib/t/data/multipart-alternative-with-umlaut [new file with mode: 0644]
rt/lib/t/data/nested-mime-sample [new file with mode: 0644]
rt/lib/t/data/nested-rfc-822 [new file with mode: 0644]
rt/lib/t/data/new-ticket-from-iso-8859-1 [new file with mode: 0644]
rt/lib/t/data/new-ticket-from-iso-8859-1-full [new file with mode: 0644]
rt/lib/t/data/russian-subject-no-content-type [new file with mode: 0644]
rt/lib/t/data/text-html-in-russian [new file with mode: 0644]
rt/lib/t/data/text-html-with-umlaut [new file with mode: 0644]
rt/lib/t/regression/00placeholder [new file with mode: 0644]
rt/lib/t/regression/mime_tests [new file with mode: 0644]
rt/m4/rt_enable_layout.m4 [new file with mode: 0644]
rt/m4/rt_expand_var.m4 [new file with mode: 0644]
rt/m4/rt_layout.m4 [new file with mode: 0644]
rt/m4/rt_subst_expanded_arg.m4 [new file with mode: 0644]
rt/sbin/extract-message-catalog [new file with mode: 0644]
rt/sbin/extract_pod_tests [new file with mode: 0644]
rt/sbin/factory [new file with mode: 0644]
rt/sbin/license_tag [new file with mode: 0644]
rt/sbin/regression_harness [new file with mode: 0644]
rt/sbin/rt-setup-database [new file with mode: 0644]
rt/sbin/rt-setup-database.in [new file with mode: 0644]
rt/sbin/rt-test-dependencies [new file with mode: 0644]
rt/sbin/rt-test-dependencies.in [new file with mode: 0644]

diff --git a/rt/Changelog b/rt/Changelog
new file mode 100644 (file)
index 0000000..d8d73fd
--- /dev/null
@@ -0,0 +1,1286 @@
+
+
+
+Project "rt.3", Branch 0                                                 Page 1
+Change Log                                             Sat Jul 12 04:24:41 2003
+
+rt.3.D000, C0, jesse, Thu Mar 13 20:43:23 2003, RT: Request Tracker, branch 3.0.
+    RT: Request Tracker, branch 3.0.
+
+    Change Delta  Brief Description
+      10      1          Bumping the version to rt.3.0.0rc0
+      11      2          Minor CSS update. rollback fix; new database indices;
+                 copyright update
+      15      3          removing the old REST API
+      16      4          Performance work on 'WhoHaveRight'; bumping to 3.0.0rc2
+      12      5          fixing indices for postgres
+      17      6          fixing fastcgi's ability to load webmux.pl on some platforms
+      18      7          More performance work; backing out 'enhancements' that killed
+                 system performance
+      19      8          Caving in to the masses and making 'notify sender'
+                 configurable
+      20      9          finishing the notify stuff
+      22     10          Bumping to RC3; fixing the display of 'This user's n highest
+                 priority tix'
+      23     11          New french translation
+      25     12          Brazilian Portuguese translation
+      26     13          Postgres fixes
+      27     14          Postgres schema tweak
+      28     15          Further postgres tweaks and fixes
+      29     16          RT should now be less overzealous about opening and then
+                 marking a ticket 'new' again
+      30     17          Bumping to 3.0.0rc4
+      31     18          Minor fixes - Bumped to 3.0.0;
+                 2266 - postgres scrip creation bug
+                 2267 - Tickets not reopened after being stalled
+                 2265 - Fixed css nits from blaise
+                 Unreported - Fixed quick-search bug
+      32     19          Added better error checking for failed ticket creation
+      33     20          A tiny bit of extra data passing for some callbacks
+      35     21          New czech translation
+      37     22          Updated dependencies
+      36     23          Updated Spanish translation
+      38     24          Updates for RT RPC interface from AMS
+      39     25          Many users should be able to have a blank address; neew test
+                 suite to ensure this
+      50     26          Integrating rafael's failing test suite and proposed fix from
+                 autrijus
+      51     27          Changing address used in example to not send mail to author
+      52     28          More I18N testing  for rafael
+      53     29          Added preliminary left to right hebrew translation
+      55     30          #2365 Removing outdated Mason setup parameter
+      56     31          Testing fixes for mail authentication/authorization
+      57     32          Testing and fixing binary attachment corruption
+      58     33          Better binary attachment handling fix from autrijus
+      59     34          Bumping to RT 3.0.1pre2
+      60     35          SMTP and I18N fixes from autrijus tang. Updated chinese
+                 translations
+      61     36          New speedycgi support from vivek khera
+      62     37          Bumping to version 3.0.1
+      63     38          Fixing a showmessagestanza bug found in RTIR
+      65     39          Fixing an untainting bug in 3.0.1
+      66     40          Quicksearch bug fix from Stan
+      67     41          updating autrijus' autohandler patch. seems to break lots of
+                 stuff
+      68     42          Bumping to 3.0.2pre1
+      69     43          make ids clicky
+      70     44          fixing utf8 tainting issue in autohandler; bumped to 3.0.2pre2
+      71     45          Another go at fixing the ARRAY()  issue; bumping to 3.0.2pre3
+      72     46          bulk links
+      73     47          I18N patches from autrijus; bouncing to 3.0.2pre4
+      75     48          bumped version to 3.0.2pre5; attachments performance fixes;
+                 utf-8 mailgateway fixes; more extension hooks; template
+                 updates for approvals
+      76     49          [#2437] CanonicalizeEmailAddress fixes; [# 2449] html fixes
+                 for right editing; [# 2457] email addresses weren't always
+                 being canonicalized
+      77     50          Fixing bogus anchor tags
+      78     51          More performance work on WhoHaveRight; removing an extra join
+      79     52          Cleaning up RT tag processing
+      80     53          Importing utf8 fixes, _Vendor overlay support from ourinternet
+      81     54          Bumping the version to 3.0.2pre6
+      82     55          Bumping the version to RT 3.0.2
+      83     56          merge from ourinternet; one CreateTickets fix and some utf8
+                 updates
+      85     57          Robert's updated search stuff
+      86     58          Fix for #2602 - make test fails on _Config.pm
+      87     59          Including norwegian bokmal translation
+      14     60          #2539: Re: [rt-users] unexpected usage: change sort order with
+                 column headers in search window
+      88     61          Fix to honor '$LogDir' for LogToFile
+      89     62          #2603: /opt/rt3/share/doc should not be a file.
+      90     63          Merging utf8 fixes from autrijus tang
+      91     64          Fixing an upgrade bug from 3.0.2->3.0.3
+      92     65          MIME::Words encoding fixes for mail sending
+      93     66          Additional work on the SQLite port
+      95     67          Merge from ourinternet: UTF8 fixes; more configurable apache
+                 sessions;
+      96     68          ACL HasRight system replaced with an algorithm that does more
+                 looking ahead
+      97     69          A fix to Tickets_Overlay.pm to make the 'Count' methods
+                 actually do a count, not a full SELECT
+      98     70          Further UTF8-fixed from autrijus
+      99     71          Bumping the version to 3.0.3pre1
+     100     72          update layout fix
+     101     73          #2662 Fixing an overly restrictive ACL check on group creation
+     102     74          #2657 Web UI Scrip creation bug
+     103     75          #2652 - de.po updates
+     105     76          #2658 Cosmetic issue with Scrip menu listing
+     106     77          fix for FastCGI and SpeedyCGI setgidness with weird
+                 environments
+     107     78          Continued performance improvements for caching
+     108     79          Log path enhancment to deal more gracefully with absolutely
+                 specified logfile paths
+     109     80          CF defaults; fix Starts set
+     110     81          ACL cache made postgres safe
+     111     82          Fixing an acl bug in Principal_Overlay introduced after 3.0.2
+                 and a possible 'Deep' transaction issue. now requires
+                 DBIx::SearchBuilder 0.83_05 or newer
+     112     83          #2678 Fixing crit messages in RT::User
+     113     84          Bumping DBIx::SearchBuilder requirement to 0.84
+     115     85          The "rt" program, branch 3.0.
+     117     86          pass title to Header
+     116     87          Better testing for internationalization of outoging messages;
+                 slight refactoring to SendEmail to be more testable; added
+                 missing deps to EmailParser
+     118     88          Bump to 3.0.3pre2; fix a misspelled right in Queue.pm (#2686)
+     119     89          #2721 - 'id' attribute had mixed casing. this bothers certain
+                 databases (Sybase)
+     120     90          Header & Logout take URL
+     121     91          Fixes for: Bogus message headers containing high-bit
+                 characters; database handle reconnections; postgres test suite
+                 failures
+     123     92          support group & queue acl setting from rt-setup-database
+     125     93          add TakeTicket, StealTicket rights
+     122     94          Bumping version to 3.0.3pre3, bumping searchbuilder dependency
+     126     95          Really bumping the version to 3.0.3pre3
+     129     96          Various fixes from a pull-up of the ourinternet branch
+     128     97          #2605 - SpamAssassin Filter returns the wrong codes on
+                 success/failure
+     127     98          Fixes the cascading style sheet to properly reference message
+                 bodies
+     130     99          Attempting to be smarter about guessing encodings for outgoing
+                 mail
+     131    100          Fixing search navigation links (they were made to disappear)
+     132    101          #2776 - 'new' ACL cache had bad behaviour. rolled back to
+                 older cache and added tests
+     133    102          On postgres, RT didn't previously cope well with multipart
+                 messages including non-plain parts containing non-ascii
+     135    103          Efficiency tweaks for WhoHaveRight
+     136    104          Bumping version to RT 3.0.3pre4
+     137    105          #2813 Duplicate tickets created at the same time could cause a
+                 user creation race condition
+     138    106          Importing minor bugfixes from ourinternet
+     139    107          #2816 new callback to ShowLinks
+     150    108          #2799: Display URIs instead of HREFs in ticket display
+     151    109          #2797 Clean up automatich chmodding on installation
+     152    110          ShowRequestor takes path
+     153    111          SystemInternal group ACLs in setup
+     155    112          Better encoding and error checking for message headers
+     156    113          better handle notification messages containing only text/html
+                 content.
+     157    114          Bumping to 3.0.3pre5
+     158    115          More I18N fixes from ourinternet
+     159    116          Bumping version to RC-1
+     160    117          Another shot at the header encoding fix
+     161    118          Mitya's failing processing of html email
+     162    119          Bumping to 3.0.3rc2
+     163    120          Anonymizing addresses in mitya's submitted testcases
+     165    121          Better handling of malformed email messages
+     166    122          Bumping version to 3.0rc3
+     167    123          #2850 - With some configurations, users could not create new
+                 tickets with 'new' requestors - Bumped to 3.0 RC 4
+     168    124          Scrip data updates weren't propagating to parent Ticket
+                 objects; Bumping to 3.0.3
+     169    125          CustomField rights checking was overly restrictive for users
+                 without queue-specific rights
+     170    126          I18N mail testing was was being cavalier with the state of
+                 acls after its testing.  (clone of 3.0.C167)
+     171    127          Ticket Update.html fix to not doubly load content
+     172    128          Fixing postgres sortorder bug unmased by searchbuilder fix
+     176    129          Applying POD patches from ourinternet (clone of 3.0.C173)
+     177    130          UTF8, Custom Field and text message rendering fixes from
+                 ourinternet
+     178    131          #2843 Date relations were too strict in RT::Tickets searches
+     179    132          #2847: allow URI Resolver to render itself
+     173    133          ShowMessageHeaders; make headers clicky
+     180    134          use RTIR callbacks
+     175    135          Updating rt-setup-database to take acl and schema file names
+                 on the commandline
+     181    136          Refactored Users::WhoHaveRight from Chris Audley at Blackrock
+     182    137          Download link in ShowTransaction
+     185    138          Fix for speedycgi disappearing database connections
+     183    139          #2873: Fix for insufficently agressive loop culling
+     186    140          Fix for nested email message parsing
+     187    141          Split the HasRight ACL query into two parts. It's now two
+                 small and light SQL queries, instead of one big one that
+                 overwhelmed databases
+     188    142          Stylistic cleanups for HasRight optimizations
+     189    143          Relationship transactions are recorded and displayed more
+                 robustly
+     190    144          Bumping the version to 3.0.4pre1
+     191    145          Updated french translation from Blaise Thauvin
+      13    146          Bumping to 3.0.4RC1
+     192    147          Attachment display bug fix from autrijus tang
+     193    148          Bumping the version to 3.0.4RC2
+     198    149          ShowAttachments had a relative path which hurt extensions
+     199    150          README updates to indicate deprecated dependencies
+     200    151          Debugging framework cleanup
+     201    152          Bumping version to 3.0.4
+
+  rt.3.0.D152, C201, jesse, Sat Jul 12 02:41:34 2003, Bumping version to 3.0.4
+      From: Jesse Vincent <jesse@localhost>
+      Date: Fri Jul 11 23:35:03 2003
+
+      none
+
+  rt.3.0.D151, C200, jesse, Sat Jul 12 01:34:41 2003, Debugging framework
+  cleanup
+      From: Jesse Vincent <jesse@localhost>
+      Date: Fri Jul 11 22:31:37 2003
+
+      none
+
+  rt.3.0.D150, C199, jesse, Sat Jul 12 01:17:57 2003, README updates to indicate
+  deprecated dependencies
+      From: Jesse Vincent <jesse@localhost>
+      Date: Fri Jul 11 22:14:37 2003
+
+      none
+
+  rt.3.0.D149, C198, leira, Sat Jul 12 01:17:08 2003, ShowAttachments had a
+  relative path which hurt extensions
+      From: Linda L. Julien <leira@starsong.org>
+      Date: Wed Jul  9 23:33:21 2003
+      Warning: the original change was in the 'being_developed' state
+
+      none
+
+  rt.3.0.D148, C193, jesse, Sat Jul  5 17:34:46 2003, Bumping the version to
+  3.0.4RC2
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Sat Jul  5 17:22:07 2003
+
+      none
+
+  rt.3.0.D147, C192, jesse, Sat Jul  5 17:11:25 2003, Attachment display bug fix
+  from autrijus tang
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Sat Jul  5 17:09:07 2003
+
+      none
+
+  rt.3.0.D146, C13, jesse, Fri Jul  4 14:54:43 2003, Bumping to 3.0.4RC1
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Jul  4 14:52:56 2003
+
+      none
+
+  rt.3.0.D145, C191, jesse, Fri Jul  4 14:50:26 2003, Updated french translation
+  from Blaise Thauvin
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Jul  4 14:48:56 2003
+
+      none
+
+  rt.3.0.D144, C190, jesse, Thu Jul  3 01:48:45 2003, Bumping the version to
+  3.0.4pre1
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Thu Jul  3 01:47:25 2003
+
+      none
+
+  rt.3.0.D143, C189, jesse, Thu Jul  3 01:44:51 2003, Relationship transactions
+  are recorded and displayed more robustly
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Thu Jul  3 01:44:08 2003
+
+      none
+
+  rt.3.0.D142, C188, jesse, Wed Jul  2 21:01:44 2003, Stylistic cleanups for
+  HasRight optimizations
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Wed Jul  2 20:58:51 2003
+
+      none
+
+  rt.3.0.D141, C187, jesse, Wed Jul  2 02:48:21 2003, Split the HasRight ACL
+  query into two parts. It's now two small and light SQL queries, instead of one
+  big one that overwhelmed databases
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Wed Jul  2 02:45:49 2003
+
+      none
+
+  rt.3.0.D140, C186, jesse, Wed Jul  2 02:19:47 2003, Fix for nested email
+  message parsing
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Wed Jul  2 02:17:38 2003
+
+      none
+
+  rt.3.0.D139, C183, jesse, Tue Jul  1 23:18:28 2003, #2873: Fix for
+  insufficently agressive loop culling
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun 30 21:12:50 2003
+
+      none
+
+  rt.3.0.D138, C185, jesse, Tue Jul  1 19:08:47 2003, Fix for speedycgi
+  disappearing database connections
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Tue Jul  1 19:05:19 2003
+
+      none
+
+  rt.3.0.D137, C182, leira, Tue Jul  1 16:10:33 2003, Download link in
+  ShowTransaction
+      From: Linda L. Julien <leira@starsong.org>
+      Date: Mon Jun 30 18:04:52 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D136, C181, jesse, Mon Jun 30 15:25:46 2003, Refactored
+  Users::WhoHaveRight from Chris Audley at Blackrock
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun 30 15:23:18 2003
+
+      none
+
+  rt.3.0.D135, C175, jesse, Mon Jun 30 15:24:56 2003, Updating rt-setup-database
+  to take acl and schema file names on the commandline
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun 30 13:41:12 2003
+
+      none
+
+  rt.3.0.D134, C180, leira, Mon Jun 30 02:19:05 2003, use RTIR callbacks
+      From: Linda Julien <leira@hawthorn.local.>
+      Date: Mon Jun 30 02:11:25 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D133, C173, leira, Mon Jun 30 02:17:05 2003, ShowMessageHeaders; make
+  headers clicky
+      From: Linda Julien <leira@hawthorn.local.>
+      Date: Sun Jun 29 23:31:39 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D132, C179, jesse, Sun Jun 29 03:06:36 2003, #2847: allow URI Resolver
+  to render itself
+      From: Jesse Vincent <jesse@eris>
+      Date: Sun Jun 29 03:04:30 2003
+
+      none
+
+  rt.3.0.D131, C178, jesse, Sun Jun 29 02:59:13 2003, #2843 Date relations were
+  too strict in RT::Tickets searches
+      From: Jesse Vincent <jesse@eris>
+      Date: Sun Jun 29 02:57:53 2003
+
+      none
+
+  rt.3.0.D130, C177, jesse, Sat Jun 28 18:17:28 2003, UTF8, Custom Field and
+  text message rendering fixes from ourinternet
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat Jun 28 18:15:09 2003
+
+      none
+
+  rt.3.0.D129, C176, jesse, Sat Jun 28 17:23:01 2003, Applying POD patches from
+  ourinternet (clone of 3.0.C173)
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat Jun 28 17:15:38 2003
+
+      none
+
+  rt.3.0.D128, C172, jesse, Sat Jun 28 17:17:53 2003, Fixing postgres sortorder
+  bug unmased by searchbuilder fix
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Jun 27 01:12:13 2003
+
+      none
+
+  rt.3.0.D127, C171, jesse, Tue Jun 24 16:42:07 2003, Ticket Update.html fix to
+  not doubly load content
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 24 16:28:49 2003
+
+      none
+
+  rt.3.0.D126, C170, jesse, Tue Jun 24 16:23:49 2003, I18N mail testing was was
+  being cavalier with the state of acls after its testing.  (clone of 3.0.C167)
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 24 16:22:16 2003
+
+      none
+
+  rt.3.0.D125, C169, jesse, Tue Jun 24 16:23:37 2003, CustomField rights
+  checking was overly restrictive for users without queue-specific rights
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 24 16:18:05 2003
+
+      none
+
+  rt.3.0.D124, C168, jesse, Sat Jun 21 13:01:18 2003, Scrip data updates weren't
+  propagating to parent Ticket objects; Bumping to 3.0.3
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat Jun 21 12:55:04 2003
+
+      none
+
+  rt.3.0.D123, C167, jesse, Thu Jun 19 22:23:01 2003, #2850 - With some
+  configurations, users could not create new tickets with 'new' requestors -
+  Bumped to 3.0 RC 4
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Jun 19 22:22:20 2003
+
+      none
+
+  rt.3.0.D122, C166, jesse, Thu Jun 19 14:25:03 2003, Bumping version to 3.0rc3
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Jun 19 14:18:19 2003
+
+      none
+
+  rt.3.0.D121, C165, jesse, Thu Jun 19 12:25:20 2003, Better handling of
+  malformed email messages
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Jun 19 12:21:56 2003
+
+      none
+
+  rt.3.0.D120, C163, jesse, Thu Jun 19 03:17:20 2003, Anonymizing addresses in
+  mitya's submitted testcases
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Jun 19 03:16:47 2003
+
+      none
+
+  rt.3.0.D119, C162, jesse, Thu Jun 19 03:03:16 2003, Bumping to 3.0.3rc2
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Jun 19 03:01:10 2003
+
+      none
+
+  rt.3.0.D118, C161, jesse, Thu Jun 19 02:58:24 2003, Mitya's failing processing
+  of html email
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Jun 19 02:56:48 2003
+
+      none
+
+  rt.3.0.D117, C160, jesse, Wed Jun 18 17:58:34 2003, Another shot at the header
+  encoding fix
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun 18 17:58:01 2003
+
+      none
+
+  rt.3.0.D116, C159, jesse, Wed Jun 18 01:27:03 2003, Bumping version to RC-1
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun 18 01:25:13 2003
+
+      none
+
+  rt.3.0.D115, C158, jesse, Wed Jun 18 01:01:22 2003, More I18N fixes from
+  ourinternet
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun 18 01:00:11 2003
+
+      none
+
+  rt.3.0.D114, C157, jesse, Tue Jun 17 22:24:03 2003, Bumping to 3.0.3pre5
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 17 22:20:51 2003
+
+      none
+
+  rt.3.0.D113, C156, jesse, Tue Jun 17 22:14:35 2003, better handle notification
+  messages containing only text/html content.
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 17 21:55:06 2003
+
+      none
+
+  rt.3.0.D112, C155, jesse, Tue Jun 17 21:55:16 2003, Better encoding and error
+  checking for message headers
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 17 21:26:27 2003
+      Warning: the original change was in the 'being_developed' state
+
+      none
+
+  rt.3.0.D111, C153, leira, Tue Jun 17 17:47:18 2003, SystemInternal group ACLs
+  in setup
+      From: Linda L. Julien <leira@starsong.org>
+      Date: Tue Jun 17 18:19:58 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D110, C152, leira, Tue Jun 17 16:46:34 2003, ShowRequestor takes path
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Tue Jun 17 12:53:35 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D109, C151, jesse, Mon Jun 16 23:48:53 2003, #2797 Clean up automatich
+  chmodding on installation
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun 16 23:48:19 2003
+
+      none
+
+  rt.3.0.D108, C150, jesse, Mon Jun 16 23:36:29 2003, #2799: Display URIs
+  instead of HREFs in ticket display
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun 16 23:35:00 2003
+
+      none
+
+  rt.3.0.D107, C139, jesse, Mon Jun 16 23:16:45 2003, #2816 new callback to
+  ShowLinks
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun 16 23:14:05 2003
+
+      none
+
+  rt.3.0.D106, C138, jesse, Mon Jun 16 23:16:29 2003, Importing minor bugfixes
+  from ourinternet
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun 16 23:06:00 2003
+
+      none
+
+  rt.3.0.D105, C137, jesse, Mon Jun 16 19:41:13 2003, #2813 Duplicate tickets
+  created at the same time could cause a user creation race condition
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun 16 19:39:57 2003
+
+      none
+
+  rt.3.0.D104, C136, jesse, Fri Jun 13 18:27:11 2003, Bumping version to RT
+  3.0.3pre4
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Jun 13 18:25:57 2003
+
+      none
+
+  rt.3.0.D103, C135, jesse, Fri Jun 13 18:22:33 2003, Efficiency tweaks for
+  WhoHaveRight
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Jun 13 18:19:02 2003
+
+      none
+
+  rt.3.0.D102, C133, jesse, Fri Jun 13 18:18:32 2003, On postgres, RT didn't
+  previously cope well with multipart messages including non-plain parts
+  containing non-ascii
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Jun 13 18:17:37 2003
+
+      none
+
+  rt.3.0.D101, C132, jesse, Fri Jun 13 01:41:24 2003, #2776 - 'new' ACL cache
+  had bad behaviour. rolled back to older cache and added tests
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Jun 13 01:40:26 2003
+
+      none
+
+  rt.3.0.D100, C131, jesse, Thu Jun 12 13:22:10 2003, Fixing search navigation
+  links (they were made to disappear)
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Jun 12 13:19:37 2003
+
+      none
+
+  rt.3.0.D099, C130, jesse, Wed Jun 11 16:44:16 2003, Attempting to be smarter
+  about guessing encodings for outgoing mail
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun 11 16:42:50 2003
+      Warning: the original change was in the 'being_developed' state
+
+      none
+
+  rt.3.0.D098, C127, jesse, Wed Jun 11 16:39:39 2003, Fixes the cascading style
+  sheet to properly reference message bodies
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun 11 15:43:39 2003
+      Warning: the original change was in the 'being_developed' state
+
+  rt.3.0.D097, C128, jesse, Wed Jun 11 16:37:38 2003, #2605 - SpamAssassin
+  Filter returns the wrong codes on success/failure
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun 11 15:53:58 2003
+
+      none
+
+  rt.3.0.D096, C129, jesse, Wed Jun 11 16:36:53 2003, Various fixes from a pull-
+  up of the ourinternet branch
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun 11 16:17:44 2003
+
+      none
+
+  rt.3.0.D095, C126, jesse, Tue Jun 10 16:17:50 2003, Really bumping the version
+  to 3.0.3pre3
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 10 16:17:08 2003
+
+      none
+
+  rt.3.0.D094, C122, jesse, Tue Jun 10 15:58:32 2003, Bumping version to
+  3.0.3pre3, bumping searchbuilder dependency
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 10 15:56:41 2003
+
+      none
+
+  rt.3.0.D093, C125, jesse, Tue Jun 10 15:54:52 2003, add TakeTicket,
+  StealTicket rights
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun 10 15:41:43 2003
+      Warning: the original change was in the 'being_developed' state
+
+      From: Jesse <jesse@fsck.com>
+      Date: Tue Jun 10 11:01:04 2003
+      Warning: the original change was in the 'being_reviewed' state
+
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Tue Jun 10 11:58:03 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D092, C123, leira, Tue Jun 10 15:54:10 2003, support group & queue acl
+  setting from rt-setup-database
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Tue Jun 10 14:13:46 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D091, C121, jesse, Sun Jun  8 00:41:47 2003, Fixes for: Bogus message
+  headers containing high-bit characters; database handle reconnections;
+  postgres test suite failures
+      From: Jesse Vincent <jesse@eris>
+      Date: Sun Jun  8 00:32:40 2003
+
+      none
+
+  rt.3.0.D090, C120, leira, Sun Jun  8 00:34:40 2003, Header & Logout take URL
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Fri Jun  6 19:06:41 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D089, C119, jesse, Fri Jun  6 17:33:37 2003, #2721 - 'id' attribute had
+  mixed casing. this bothers certain databases (Sybase)
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Jun  6 17:32:16 2003
+
+      none
+
+  rt.3.0.D088, C118, jesse, Wed Jun  4 17:21:24 2003, Bump to 3.0.3pre2; fix a
+  misspelled right in Queue.pm (#2686)
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun  4 17:19:39 2003
+      Warning: the original change was in the 'being_developed' state
+
+      The "rt" program, branch 3.0.
+
+  rt.3.0.D087, C116, jesse, Wed Jun  4 17:17:08 2003, Better testing for
+  internationalization of outoging messages; slight refactoring to SendEmail to
+  be more testable; added missing deps to EmailParser
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Jun  4 16:53:07 2003
+
+      none
+
+  rt.3.0.D086, C117, leira, Wed Jun  4 00:23:20 2003, pass title to Header
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Tue Jun  3 18:09:39 2003
+      Warning: the original change was in the 'being_developed' state
+
+      none
+
+  rt.3.0.D085, C115, jesse, Tue Jun  3 00:45:12 2003, The "rt" program, branch
+  3.0.
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun  3 00:43:15 2003
+      Warning: the original change was in the 'being_developed' state
+
+      The "rt" program, branch 3.0.
+
+  rt.3.0.D084, C113, jesse, Tue Jun  3 00:20:07 2003, Bumping
+  DBIx::SearchBuilder requirement to 0.84
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun  3 00:19:50 2003
+
+      none
+
+  rt.3.0.D083, C112, jesse, Tue Jun  3 00:18:43 2003, #2678 Fixing crit messages
+  in RT::User
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun  3 00:18:12 2003
+
+      none
+
+  rt.3.0.D082, C111, jesse, Tue Jun  3 00:04:45 2003, Fixing an acl bug in
+  Principal_Overlay introduced after 3.0.2 and a possible 'Deep' transaction
+  issue. now requires DBIx::SearchBuilder 0.83_05 or newer
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Jun  3 00:02:23 2003
+
+      none
+
+  rt.3.0.D081, C110, jesse, Mon Jun  2 22:40:34 2003, ACL cache made postgres
+  safe
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Jun  2 22:39:03 2003
+
+      none
+
+  rt.3.0.D080, C109, leira, Mon Jun  2 17:10:05 2003, CF defaults; fix Starts
+  set
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Mon Jun  2 17:32:11 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D079, C108, jesse, Sat May 31 00:28:37 2003, Log path enhancment to
+  deal more gracefully with absolutely specified logfile paths
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat May 31 00:27:38 2003
+
+      none
+
+  rt.3.0.D078, C107, jesse, Sat May 31 00:20:53 2003, Continued performance
+  improvements for caching
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat May 31 00:19:32 2003
+
+      none
+
+  rt.3.0.D077, C106, jesse, Sat May 31 00:20:32 2003, fix for FastCGI and
+  SpeedyCGI setgidness with weird environments
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat May 31 00:19:15 2003
+
+      none
+
+  rt.3.0.D076, C105, jesse, Fri May 30 16:21:14 2003, #2658 Cosmetic issue with
+  Scrip menu listing
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May 30 16:14:02 2003
+
+      none
+
+  rt.3.0.D075, C103, jesse, Fri May 30 16:20:57 2003, #2652 - de.po updates
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May 30 15:57:44 2003
+
+      none
+
+  rt.3.0.D074, C102, jesse, Fri May 30 16:18:57 2003, #2657 Web UI Scrip
+  creation bug
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May 30 15:50:16 2003
+
+      none
+
+  rt.3.0.D073, C101, jesse, Fri May 30 16:17:43 2003, #2662 Fixing an overly
+  restrictive ACL check on group creation
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May 30 15:46:22 2003
+
+      none
+
+  rt.3.0.D072, C100, leira, Fri May 30 16:17:05 2003, update layout fix
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Thu May 29 14:30:01 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D071, C99, jesse, Wed May 28 17:54:48 2003, Bumping the version to
+  3.0.3pre1
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed May 28 17:52:51 2003
+
+      none
+
+  rt.3.0.D070, C98, jesse, Wed May 28 17:54:40 2003, Further UTF8-fixed from
+  autrijus
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed May 28 17:49:32 2003
+
+      none
+
+  rt.3.0.D069, C97, jesse, Wed May 28 17:07:10 2003, A fix to Tickets_Overlay.pm
+  to make the 'Count' methods actually do a count, not a full SELECT
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed May 28 17:04:50 2003
+
+      none
+
+  rt.3.0.D068, C96, jesse, Wed May 28 17:06:43 2003, ACL HasRight system
+  replaced with an algorithm that does more looking ahead
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed May 28 16:36:10 2003
+
+      none
+
+  rt.3.0.D067, C95, jesse, Tue May 27 13:22:19 2003, Merge from ourinternet:
+  UTF8 fixes; more configurable apache sessions;
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Tue May 27 13:07:41 2003
+
+      none
+
+  rt.3.0.D066, C93, jesse, Sat May 24 18:05:36 2003, Additional work on the
+  SQLite port
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat May 24 18:04:50 2003
+
+      none
+
+  rt.3.0.D065, C92, jesse, Fri May 23 16:45:23 2003, MIME::Words encoding fixes
+  for mail sending
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May 23 16:44:28 2003
+
+      none
+
+  rt.3.0.D064, C91, jesse, Fri May 23 16:12:26 2003, Fixing an upgrade bug from
+  3.0.2->3.0.3
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May 23 15:57:50 2003
+
+      none
+
+  rt.3.0.D063, C90, jesse, Fri May 23 15:27:47 2003, Merging utf8 fixes from
+  autrijus tang
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May 23 15:25:23 2003
+
+      none
+
+  rt.3.0.D062, C89, jesse, Wed May 21 00:58:34 2003, #2603: /opt/rt3/share/doc
+  should not be a file.
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Wed May 21 00:29:55 2003
+
+      none
+
+  rt.3.0.D061, C88, jesse, Wed May 21 00:57:45 2003, Fix to honor '$LogDir' for
+  LogToFile
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Wed May 21 00:17:18 2003
+
+      none
+
+  rt.3.0.D060, C14, jesse, Wed May 21 00:56:31 2003, #2539: Re: [rt-users]
+  unexpected usage: change sort order with column headers in search window
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Tue May 20 23:19:46 2003
+
+      none
+
+  rt.3.0.D059, C87, jesse, Wed May 21 00:55:08 2003, Including norwegian bokmal
+  translation
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Tue May 20 23:05:17 2003
+
+      none
+
+  rt.3.0.D058, C86, jesse, Wed May 21 00:54:06 2003, Fix for #2602 - make test
+  fails on _Config.pm
+      From: Jesse Vincent <jesse@Jesse-Vincents-Computer.local.>
+      Date: Tue May 20 22:32:52 2003
+
+      none
+
+  rt.3.0.D057, C85, leira, Tue May 20 12:15:11 2003, Robert's updated search
+  stuff
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Mon May 19 18:19:14 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D056, C83, jesse, Sat May 17 17:34:32 2003, merge from ourinternet; one
+  CreateTickets fix and some utf8 updates
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat May 17 17:31:43 2003
+
+      none
+
+  rt.3.0.D055, C82, jesse, Mon May 12 20:30:45 2003, Bumping the version to RT
+  3.0.2
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue May 13 02:29:44 2003
+
+      none
+
+  rt.3.0.D054, C81, jesse, Wed May  7 09:18:28 2003, Bumping the version to
+  3.0.2pre6
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed May  7 15:16:55 2003
+      Warning: the original change was in the 'being_developed' state
+
+      none
+
+  rt.3.0.D053, C80, jesse, Wed May  7 09:02:24 2003, Importing utf8 fixes, _
+  Vendor overlay support from ourinternet
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed May  7 14:52:58 2003
+
+      none
+
+  rt.3.0.D052, C79, jesse, Wed May  7 07:05:14 2003, Cleaning up RT tag
+  processing
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed May  7 13:04:17 2003
+
+      none
+
+  rt.3.0.D051, C78, jesse, Wed May  7 07:03:27 2003, More performance work on
+  WhoHaveRight; removing an extra join
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed May  7 13:00:43 2003
+
+      none
+
+  rt.3.0.D050, C77, jesse, Fri May  2 11:23:23 2003, Fixing bogus anchor tags
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May  2 17:19:54 2003
+
+      none
+
+  rt.3.0.D049, C76, jesse, Fri May  2 10:26:30 2003, [#2437]
+  CanonicalizeEmailAddress fixes; [# 2449] html fixes for right editing; [#
+  2457] email addresses weren't always being canonicalized
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May  2 16:24:40 2003
+
+      none
+
+  rt.3.0.D048, C75, jesse, Fri May  2 08:35:38 2003, bumped version to
+  3.0.2pre5; attachments performance fixes; utf-8 mailgateway fixes; more
+  extension hooks; template updates for approvals
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri May  2 14:32:57 2003
+
+      none
+
+  rt.3.0.D047, C73, jesse, Sun Apr 27 19:06:46 2003, I18N patches from autrijus;
+  bouncing to 3.0.2pre4
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Apr 28 01:02:18 2003
+
+      none
+
+  rt.3.0.D046, C72, leira, Sun Apr 27 19:06:04 2003, bulk links
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Thu Apr 24 01:23:01 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D045, C71, jesse, Sat Apr 19 03:42:39 2003, Another go at fixing the
+  ARRAY()  issue; bumping to 3.0.2pre3
+      From: Jesse Vincent <jesse@eris>
+      Date: Sat Apr 19 08:39:19 2003
+
+      none
+
+  rt.3.0.D044, C70, jesse, Fri Apr 18 16:37:00 2003, fixing utf8 tainting issue
+  in autohandler; bumped to 3.0.2pre2
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Apr 18 21:32:04 2003
+
+      none
+
+  rt.3.0.D043, C69, leira, Thu Apr 17 18:51:41 2003, make ids clicky
+      From: Linda L. Julien <leira@oak.starsong.org>
+      Date: Thu Apr 17 18:31:40 2003
+      Warning: the original change was in the 'awaiting_integration' state
+
+      none
+
+  rt.3.0.D042, C68, jesse, Thu Apr 17 18:39:54 2003, Bumping to 3.0.2pre1
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr 17 23:37:59 2003
+
+      none
+
+  rt.3.0.D041, C67, jesse, Thu Apr 17 18:33:15 2003, updating autrijus'
+  autohandler patch. seems to break lots of stuff
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr 17 23:21:02 2003
+
+      none
+
+  rt.3.0.D040, C66, jesse, Thu Apr 17 18:32:24 2003, Quicksearch bug fix from
+  Stan
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr 17 23:16:58 2003
+
+      none
+
+  rt.3.0.D039, C65, jesse, Thu Apr 17 18:29:31 2003, Fixing an untainting bug in
+  3.0.1
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr 17 23:15:01 2003
+      Warning: the original change was in the 'being_developed' state
+
+      none
+
+  rt.3.0.D038, C63, jesse, Thu Apr 17 04:46:42 2003, Fixing a showmessagestanza
+  bug found in RTIR
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr 17 09:45:48 2003
+
+      none
+
+  rt.3.0.D037, C62, jesse, Tue Apr 15 11:53:58 2003, Bumping to version 3.0.1
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Apr 15 11:52:00 2003
+
+      none
+
+  rt.3.0.D036, C61, jesse, Mon Apr 14 18:18:03 2003, New speedycgi support from
+  vivek khera
+      From: Jesse Vincent <jesse@eris>
+      Date: Mon Apr 14 14:49:49 2003
+
+      none
+
+  rt.3.0.D035, C60, jesse, Sun Apr 13 21:43:32 2003, SMTP and I18N fixes from
+  autrijus tang. Updated chinese translations
+      From: Jesse Vincent <jesse@eris>
+      Date: Sun Apr 13 21:32:55 2003
+
+      none
+
+  rt.3.0.D034, C59, jesse, Fri Apr 11 21:58:36 2003, Bumping to RT 3.0.1pre2
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Apr 11 21:58:06 2003
+
+      none
+
+  rt.3.0.D033, C58, jesse, Fri Apr 11 21:56:11 2003, Better binary attachment
+  handling fix from autrijus
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Apr 11 21:52:12 2003
+
+      none
+
+  rt.3.0.D032, C57, jesse, Fri Apr 11 21:35:17 2003, Testing and fixing binary
+  attachment corruption
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Apr 11 21:34:28 2003
+
+      none
+
+  rt.3.0.D031, C56, jesse, Fri Apr 11 21:34:56 2003, Testing fixes for mail
+  authentication/authorization
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr 10 00:08:29 2003
+
+      none
+
+  rt.3.0.D030, C55, jesse, Wed Apr  9 13:55:18 2003, #2365 Removing outdated
+  Mason setup parameter
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Apr  9 13:54:43 2003
+
+      none
+
+  rt.3.0.D029, C53, jesse, Wed Apr  9 13:22:35 2003, Added preliminary left to
+  right hebrew translation
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Apr  9 13:18:16 2003
+
+      none
+
+  rt.3.0.D028, C52, jesse, Fri Apr  4 02:10:01 2003, More I18N testing for
+  rafael
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Apr  4 02:08:49 2003
+
+      none
+
+  rt.3.0.D027, C51, jesse, Thu Apr  3 19:33:34 2003, Changing address used in
+  example to not send mail to author
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr  3 19:29:02 2003
+      Warning: the original change was in the 'being_integrated' state
+
+      none
+
+  rt.3.0.D026, C50, jesse, Thu Apr  3 19:16:37 2003, Integrating rafael's
+  failing test suite and proposed fix from autrijus
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr  3 19:15:03 2003
+
+      none
+
+  rt.3.0.D025, C39, jesse, Thu Apr  3 19:16:15 2003, Many users should be able
+  to have a blank address; neew test suite to ensure this
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Apr  3 13:27:36 2003
+
+      none
+
+  rt.3.0.D024, C38, jesse, Thu Apr  3 13:30:37 2003, Updates for RT RPC
+  interface from AMS
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Apr  2 15:32:15 2003
+
+      none
+
+  rt.3.0.D023, C36, jesse, Wed Apr  2 14:14:07 2003, Updated Spanish translation
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Apr  1 14:02:36 2003
+
+      none
+
+  rt.3.0.D022, C37, jesse, Wed Apr  2 14:13:55 2003, Updated dependencies
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Apr  2 14:09:41 2003
+
+      none
+
+  rt.3.0.D021, C35, jesse, Tue Apr  1 13:00:22 2003, New czech translation
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Apr  1 12:58:57 2003
+
+      none
+
+  rt.3.0.D020, C33, jesse, Fri Mar 28 14:48:20 2003, A tiny bit of extra data
+  passing for some callbacks
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Mar 28 14:43:28 2003
+
+      none
+
+  rt.3.0.D019, C32, jesse, Fri Mar 28 14:35:10 2003, Added better error checking
+  for failed ticket creation
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Mar 28 14:32:52 2003
+
+      none
+
+  rt.3.0.D018, C31, jesse, Sun Mar 23 17:21:45 2003, Minor fixes - Bumped to
+  3.0.0;
+  2266 - postgres scrip creation bug
+  2267 - Tickets not reopened after being stalled
+  2265 - Fixed css nits from blaise
+  Unreported - Fixed quick-search bug
+      From: Jesse Vincent <jesse@eris>
+      Date: Sun Mar 23 17:17:55 2003
+
+      none
+
+  rt.3.0.D017, C30, jesse, Thu Mar 20 21:38:30 2003, Bumping to 3.0.0rc4
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Mar 20 21:28:01 2003
+
+      none
+
+  rt.3.0.D016, C29, jesse, Thu Mar 20 21:18:27 2003, RT should now be less
+  overzealous about opening and then marking a ticket 'new' again
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Mar 20 21:14:47 2003
+
+      none
+
+  rt.3.0.D015, C28, jesse, Thu Mar 20 15:21:49 2003, Further postgres tweaks and
+  fixes
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Mar 20 15:20:21 2003
+
+      none
+
+  rt.3.0.D014, C27, jesse, Thu Mar 20 01:48:42 2003, Postgres schema tweak
+      From: Jesse Vincent <jesse@eris>
+      Date: Thu Mar 20 01:47:20 2003
+
+      none
+
+  rt.3.0.D013, C26, jesse, Wed Mar 19 21:26:47 2003, Postgres fixes
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Mar 19 21:26:24 2003
+
+      none
+
+  rt.3.0.D012, C25, jesse, Wed Mar 19 16:27:29 2003, Brazilian Portuguese
+  translation
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Mar 19 16:25:48 2003
+
+      none
+
+  rt.3.0.D011, C23, jesse, Wed Mar 19 13:03:15 2003, New french translation
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Mar 19 13:02:47 2003
+
+      none
+
+  rt.3.0.D010, C22, jesse, Wed Mar 19 01:01:24 2003, Bumping to RC3; fixing the
+  display of 'This user's n highest priority tix'
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Mar 19 01:00:33 2003
+
+      none
+
+  rt.3.0.D009, C20, jesse, Wed Mar 19 00:46:17 2003, finishing the notify stuff
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Mar 19 00:45:09 2003
+
+      none
+
+  rt.3.0.D008, C19, jesse, Wed Mar 19 00:40:45 2003, Caving in to the masses and
+  making 'notify sender' configurable
+      From: Jesse Vincent <jesse@eris>
+      Date: Wed Mar 19 00:38:50 2003
+
+      none
+
+  rt.3.0.D007, C18, jesse, Tue Mar 18 16:29:45 2003, More performance work;
+  backing out 'enhancements' that killed system performance
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Mar 18 16:26:07 2003
+
+      none
+
+  rt.3.0.D006, C17, jesse, Tue Mar 18 11:29:28 2003, fixing fastcgi's ability to
+  load webmux.pl on some platforms
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Mar 18 11:28:11 2003
+
+      none
+
+  rt.3.0.D005, C12, jesse, Tue Mar 18 00:58:52 2003, fixing indices for postgres
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Mar 18 00:53:06 2003
+
+      none
+
+  rt.3.0.D004, C16, jesse, Tue Mar 18 00:41:26 2003, Performance work on
+  'WhoHaveRight'; bumping to 3.0.0rc2
+      From: Jesse Vincent <jesse@eris>
+      Date: Tue Mar 18 00:37:30 2003
+
+      none
+
+  rt.3.0.D003, C15, jesse, Fri Mar 14 17:07:28 2003, removing the old REST API
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Mar 14 16:50:38 2003
+
+      none
+
+  rt.3.0.D002, C11, jesse, Fri Mar 14 16:42:46 2003, Minor CSS update. rollback
+  fix; new database indices; copyright update
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Mar 14 16:35:01 2003
+
+      none
+
+  rt.3.0.D001, C10, jesse, Fri Mar 14 01:26:22 2003, Bumping the version to
+  rt.3.0.0rc0
+      From: Jesse Vincent <jesse@eris>
+      Date: Fri Mar 14 01:25:51 2003
+
+      none
diff --git a/rt/HOWTO/README b/rt/HOWTO/README
new file mode 100644 (file)
index 0000000..942096b
--- /dev/null
@@ -0,0 +1,14 @@
+Here you'll find plain text documentation of how to handle various
+project procedures.  Files contained herein:
+
+change.txt
+        How changes are integrated, including generating and
+        distributing aedist change sets, and updating the CVS repository.
+
+release.txt
+       Steps to go through when releasing a new version of RT.
+
+
+These procedures are based on documentation from the scons project
+as http://www.scons.org/
+
diff --git a/rt/HOWTO/change.txt b/rt/HOWTO/change.txt
new file mode 100644 (file)
index 0000000..de31645
--- /dev/null
@@ -0,0 +1,67 @@
+Handling a change set:
+
+    -- Start the change:
+
+               aedist -r       [if it's a remote submission]
+                
+                -or-
+
+               aedb {cnum}     [if it's initiated locally]
+
+    -- Normal development cycle:
+
+                aecd -c {cnum}                   
+                aecp .          # Copy the baseline to your working dir
+                # work on your change
+                aenf {new file names}
+
+                aecpu -unch   # Remove unchanged files, for faster diffs
+               aeb # Currently does nothing
+               aet # Currently does nothing
+               aed # Diff your change
+               aede # End the change
+
+    -- As the reviewer:
+               aerpass {cnum}
+
+    -- As the integrator:
+
+               aeib {cnum}
+               aeb
+               aet
+               aed
+                cd ~ # Get out of the current working directory
+               aeipass
+
+
+
+
+    -- Update the aedist baseline on the web site:
+
+               aedist -s -bl -p rt.2.1 > rt.2.1.ae
+               scp rt.2.1.ae jesse@fsck.com:/home/ftp/pub/rt/devel/rt.2.1.ae
+               rm rt.2.1.ae
+
+       [This will eventually be automated.]
+
+    -- Distribute the change to CVS:
+
+        WARNING. DOES NOT YET WORK
+
+               export CVS_RSH=ssh
+               ae2cvs -n -aegis -p rt.2.1 -c {cnum} -u ~/SCons/scons
+               ae2cvs -X -aegis -p rt.2.1 -c {cnum} -u ~/SCons/scons
+
+        If you need the "ae2cvs" Perl script, you can find a copy
+        checked in to the bin/subdirectory.
+
+       [This may eventually be automated.]
+
+
+
+       -- Grabbing the latest dev sources over ssh 
+
+       ssh fsck.com "aedist -s -p rt.2.1 -naa -bl -entire-source" | aedist -r
+
+
diff --git a/rt/HOWTO/release.txt b/rt/HOWTO/release.txt
new file mode 100644 (file)
index 0000000..285041c
--- /dev/null
@@ -0,0 +1,124 @@
+Things to do to release a new version of rt:
+
+       Build and test candidate packages
+
+       Read through the README and src/README.txt files for any updates
+
+       Prepare ChangeLog
+
+               date -R the latest release
+
+               should be current if this has been updated as each
+               change went in.
+
+                [ Should be automated ]
+
+
+        TODO: nothing below this line is accurate for RT
+
+       END THE BRANCH
+
+               ae_p rt.2
+               aede {5}
+               aerpass {5}
+               aeib {5}
+               aeb
+               aet
+               aet -reg
+               aed
+               aeipass
+
+       START THE NEW BRANCH
+
+               aenbr -p rt.2 {6}
+               aenc -p rt.2.{6}
+
+                        Call it something like, "Initialize the new
+                        branch."  Cause = internal_enhancement.  Exempt
+                        it from all tests (*_exempt = true).
+
+               ae_p rt.2.{6}
+
+               aedb 100
+
+               aecd
+
+               # Change the hard-coded package version numbers
+               # in the following files.
+               aecp rttruct debian/changelog rpm/rt.spec
+
+               vi rttruct debian/changelog rpm/rt.spec
+
+               # Optionally, do the same in the following:
+               [optional] aecp HOWTO/change.txt
+               [optional] aecp HOWTO/release.txt
+               [optional] aecp debian/rt.postinst
+
+               [optional] vi HOWTO/change.txt
+               [optional] vi HOWTO/release.txt
+               [optional] vi debian/rt.postinst
+
+               aeb
+
+               aet -reg
+
+               aed
+
+               aede
+
+               etc.
+
+
+       Read through the FAQ for any updates
+
+       Test downloading from the web site download page
+
+
+       In the Bugs Tracker, add a Group for the new release (0.05)
+
+       Announce to the following mailing lists (template below):
+
+               rt-announce@lists.fsck.com
+
+
+       Notify www.cmtoday.com/contribute.html
+
+                [This guy wants an announcement no more frequently than
+                once a month, so save it for a future release if it's
+                been too soon since the previous one.]
+
+       Notify freshmeat.net
+
+                [Wait until the morning so the announcement hits the
+                main freshmeat.net page while people in the U.S. are
+                awake and working]
+
+
+
+
+=======================
+
+Template release announcement:
+
+
+
+Version 2.1.XXX of rt has been released and is available for download
+from the rt web site:
+
+        http://bestpractical.com/rt/
+
+
+
+WHAT'S NEW IN THIS RELEASE?
+
+Version 2.1.XXX of rt contains the following important changes:
+
+  - XXX
+
+For a complete list of changes in version 2.1.XXX, see the CHANGES.txt
+file in the release itself.
+
+
+WHAT IS RT? 
+
+        FILL THIS IN
diff --git a/rt/HOWTO/version-control.txt b/rt/HOWTO/version-control.txt
new file mode 100644 (file)
index 0000000..06babfd
--- /dev/null
@@ -0,0 +1,41 @@
+Using Aegis for RT development
+
+   1. The main line of RT development will be under the control
+      of the Aegis change management system, as administered by
+       Best Practical Solutions, LLC
+
+   2. We will use aedist to generate change sets for each change
+      checked in to the main Aegis repository. These change sets will be
+      either distributed by a mailing list or made available via the web,
+      or both.
+
+   3. Remote developers using Aegis will send aedist output for
+      their changes to rt-patches@bestpractical.com for review and
+      integration.
+
+   4. The aedist output should be sent to rt-patches@bestpractical.com
+      after the change has completed its local aede, but before aerpass.
+
+   5. If the change is rejected, the developer can aedeu to reopen
+      the change and fix whatever problems caused the review to not pass.
+
+   6. A baseline snapshot (aedist -bl) of the main Aegis repository
+      will be generated at least daily and made available via http
+      to provide a central location for synchronizing remote Aegis
+      repositories.
+
+   7. Changes to the main Aegis repository will also be propagated
+      automatically to the tracking CVS repository.
+
+Using CVS for RT development
+
+   1. CVS is accessed via anonymous cvs with the following CVSROOT:
+
+      :pserver:anoncvs@cvs.fsck.com:/raid/cvsroot/rt-2-1
+
+   2. Remote developers using CVS will send patches (cvs -diff
+      output) to rt-patches@bestpractical.com  for integration into the
+      main Aegis repository. This allows anonymous CVS access to be used
+      for RT development by developers who are unable to use Aegis.
+
+
index fe01b71..6447221 100644 (file)
@@ -1,18 +1,49 @@
-# $Header: /home/cvs/cvsroot/freeside/rt/Makefile,v 1.1 2002-08-12 06:17:06 ivan Exp $
-# RT is Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>
-# It is distributed under the terms of the GNU General Public License, version 2
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2002 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
+
+
+#
+# DO NOT HAND-EDIT the file named 'Makefile'. This file is autogenerated.
+# Have a look at "configure" and "Makefile.in" instead
+#
+
 
 PERL                   =       /usr/bin/perl
 
-RT_VERSION_MAJOR       =       2
-RT_VERSION_MINOR       =       0
-RT_VERSION_PATCH       =       14
+CONFIG_FILE_PATH       =       /opt/rt3/etc
+CONFIG_FILE            =       $(CONFIG_FILE_PATH)/RT_Config.pm
+SITE_CONFIG_FILE               =       $(CONFIG_FILE_PATH)/RT_SiteConfig.pm
 
 
+RT_VERSION_MAJOR       =       3
+RT_VERSION_MINOR       =       0
+RT_VERSION_PATCH       =       4
+
 RT_VERSION =   $(RT_VERSION_MAJOR).$(RT_VERSION_MINOR).$(RT_VERSION_PATCH)
 TAG       =    rt-$(RT_VERSION_MAJOR)-$(RT_VERSION_MINOR)-$(RT_VERSION_PATCH)
 
-BRANCH                 =       HEAD
 
 # This is the group that all of the installed files will be chgrp'ed to.
 RTGROUP                        =       rt
@@ -27,7 +58,8 @@ LIBS_OWNER            =       root
 # Group that should own all of RT's libraries, generally root.
 LIBS_GROUP             =       bin
 
-
+WEB_USER               =       www
+WEB_GROUP              =       www
 
 # {{{ Files and directories 
 
@@ -37,33 +69,22 @@ LIBS_GROUP          =       bin
 DESTDIR                        =       
 
 
-# RT_PATH is the name of the directory you want make to install RT in
-# RT must be installed in its own directory (don't set this to /usr/local)
-
-RT_PATH                        =       /opt/rt2
-
-# The rest of these paths are all configurable, but you probably don't want to 
-# put them elsewhere
-
-RT_LIB_PATH            =       $(RT_PATH)/lib
-RT_ETC_PATH            =       $(RT_PATH)/etc
-RT_CONFIG_PATH         =       $(RT_ETC_PATH)
-RT_BIN_PATH            =       $(RT_PATH)/bin
-RT_MAN_PATH            =       $(RT_PATH)/man
-MASON_HTML_PATH                =       $(RT_PATH)/WebRT/html
-
-
-# RT allows sites to overlay the default web ui with 
-# local customizations Those files can be placed in MASON_LOCAL_HTML_PATH
-
-MASON_LOCAL_HTML_PATH  =       $(RT_PATH)/local/WebRT/html
-
-# RT needs to be able to write to MASON_DATA_PATH and MASON_SESSION_PATH
-# RT will create and chown these directories. Don't just set them to /tmp
-MASON_DATA_PATH                =       $(RT_PATH)/WebRT/data
-MASON_SESSION_PATH     =       $(RT_PATH)/WebRT/sessiondata
-
-RT_LOG_PATH             =       /tmp
+RT_PATH                        =       /opt/rt3
+RT_ETC_PATH            =       /opt/rt3/etc
+RT_BIN_PATH            =       /opt/rt3/bin
+RT_SBIN_PATH           =       /opt/rt3/sbin
+RT_LIB_PATH            =       /opt/rt3/lib
+RT_MAN_PATH            =       /opt/rt3/man
+RT_VAR_PATH            =       /opt/rt3/var
+RT_DOC_PATH            =       /opt/rt3/share/doc
+RT_LOCAL_PATH          =       /opt/rt3/local
+LOCAL_ETC_PATH         =       /opt/rt3/local/etc
+LOCAL_LEXICON_PATH     =       /opt/rt3/local/po
+MASON_HTML_PATH                =       /opt/rt3/share/html
+MASON_LOCAL_HTML_PATH  =       /opt/rt3/local/html
+MASON_DATA_PATH                =       /opt/rt3/var/mason_data
+MASON_SESSION_PATH     =       /opt/rt3/var/session_data
+RT_LOG_PATH        =       /opt/rt3/var/log
 
 # RT_READABLE_DIR_MODE is the mode of directories that are generally meant
 # to be accessable
@@ -71,25 +92,33 @@ RT_READABLE_DIR_MODE        =       0755
 
 
 
-# The location of your rt configuration file
-RT_CONFIG              =       $(RT_CONFIG_PATH)/config.pm
+
+# {{{ all these define the places that RT's binaries should get installed
 
 # RT_MODPERL_HANDLER is the mason handler script for mod_perl
 RT_MODPERL_HANDLER     =       $(RT_BIN_PATH)/webmux.pl
-
 # RT_FASTCGI_HANDLER is the mason handler script for FastCGI
-# THIS HANDLER IS NOT CURRENTLY SUPPORTED
 RT_FASTCGI_HANDLER     =       $(RT_BIN_PATH)/mason_handler.fcgi
+# RT_WIN32_FASTCGI_HANDLER is the mason handler script for FastCGI
+RT_WIN32_FASTCGI_HANDLER       =       $(RT_BIN_PATH)/mason_handler.svc
+# RT's admin CLI
+RT_CLI_ADMIN_BIN       =       $(RT_BIN_PATH)/rtadmin
+# RT's mail gateway
+RT_MAILGATE_BIN                =       $(RT_BIN_PATH)/rt-mailgate
+# RT's cron tool
+RT_CRON_BIN            =       $(RT_BIN_PATH)/rt-crontool
 
-# RT_SPEEDYCGI_HANDLER is the mason handler script for SpeedyCGI
-# THIS HANDLER IS NOT CURRENTLY SUPPORTED
-RT_SPEEDYCGI_HANDLER   =       $(RT_BIN_PATH)/mason_handler.scgi
+# }}}
 
-# The following are the names of the various binaries which make up RT 
+SETGID_BINARIES                =       $(DESTDIR)/$(RT_FASTCGI_HANDLER) \
+                               $(DESTDIR)/$(RT_WIN32_FASTCGI_HANDLER)
+
+BINARIES               =       $(DESTDIR)/$(RT_MODPERL_HANDLER) \
+                               $(DESTDIR)/$(RT_MAILGATE_BIN) \
+                               $(DESTDIR)/$(RT_CRON_BIN) \
+                               $(SETGID_BINARIES)
+SYSTEM_BINARIES                =       $(DESTDIR)/$(RT_SBIN_PATH)/
 
-RT_CLI_BIN             =       $(RT_BIN_PATH)/rt
-RT_CLI_ADMIN_BIN       =       $(RT_BIN_PATH)/rtadmin
-RT_MAILGATE_BIN                =       $(RT_BIN_PATH)/rt-mailgate
 
 # }}}
 
@@ -99,34 +128,19 @@ RT_MAILGATE_BIN            =       $(RT_BIN_PATH)/rt-mailgate
 # DB_TYPE defines what sort of database RT trys to talk to
 # "mysql" is known to work.
 # "Pg" is known to work
-# "Oracle" is in the early stages of working.
 
 DB_TYPE                        =       mysql
 
-# DB_HOME is where the Database's commandline tools live.  $DB_HOME/bin
-# should contain the binaries themselves, e.g. if "which mysql" gives
-# "/usr/local/mysql/bin/mysql", $DB_HOME should be "/usr/local/mysql"
-
-DB_HOME                        = /usr
-
 # Set DBA to the name of a unix account with the proper permissions and 
-# environment to run your commandline SQL tools
+# environment to run your commandline SQL sbin
 
 # Set DB_DBA to the name of a DB user with permission to create new databases 
-# Set DB_DBA_PASSWORD to that user's password (if you don't, you'll be prompted
-# later)
 
 # For mysql, you probably want 'root'
 # For Pg, you probably want 'postgres' 
 # For oracle, you want 'system'
 
 DB_DBA                 =       root
-DB_DBA_PASSWORD                =       
-#
-# Set this to the Fully Qualified Domain Name of your database server.
-# If the database is local, rather than on a remote host, using "localhost" 
-# will greatly enhance performance.
 
 DB_HOST                        =       localhost
 
@@ -136,6 +150,9 @@ DB_HOST                     =       localhost
 
 DB_PORT                        =       
 
+
+
+
 #
 # Set this to the canonical name of the interface RT will be talking to the 
 # database on.  If you said that the RT_DB_HOST above was "localhost," this 
@@ -149,81 +166,72 @@ DB_RT_HOST                =       localhost
 # set this to the name you want to give to the RT database in 
 # your database server. For Oracle, this should be the name of your sid
 
-DB_DATABASE            =       rt2
-
-# Set this to the name of the rt database user
-
+DB_DATABASE            =       rt3
 DB_RT_USER             =       rt_user
-
-# Set this to the password used by the rt database user
-# *** Change This Before Installation***
-
 DB_RT_PASS             =       rt_pass
 
 # }}}
 
-# {{{ Web configuration 
-
-# The user your webserver runs as. needed so that webrt can cache mason
-# objectcode
 
-WEB_USER               =       www
-WEB_GROUP              =       rt
-
-# }}}
-
-
-####################################################################
-# No user servicable parts below this line.  Frob at your own risk #
 ####################################################################
 
+all: default
+
 default:
        @echo "Please read RT's readme before installing. Not doing so could"
        @echo "be dangerous."
 
-install: dirs initialize.$(DB_TYPE) upgrade insert instruct
+
 
 instruct:
        @echo "Congratulations. RT has been installed. "
-       @echo "You must now configure it by editing $(RT_CONFIG)."
-       @echo "From here on in, you should refer to the users guide."
+       @echo ""
+       @echo ""
+       @echo "You must now configure RT by editing $(SITE_CONFIG_FILE)."
+       @echo ""
+       @echo "(You will definitely need to set RT's database password before continuing."
+       @echo " Not doing so could be very dangerous)"
+       @echo ""
+       @echo "After that, you need to initialize RT's database by running" 
+       @echo " 'make initialize-database'"
 
+#      @echo " or by executing "       
+#      @echo " '$(RT_SBIN_PATH)/rt-setup-database --action init \ "
+#      @echo "     --dba $(DB_DBA) --prompt-for-dba-password'"
 
-insert: insert-install
-       $(PERL) -I$(DESTDIR)/$(RT_ETC_PATH) -I$(DESTDIR)/$(RT_LIB_PATH) $(DESTDIR)/$(RT_ETC_PATH)/insertdata
 
-upgrade: dirs config-replace upgrade-noclobber  upgrade-instruct
 
 upgrade-instruct: 
        @echo "Congratulations. RT has been upgraded. You should now check-over"
-       @echo "$(RT_CONFIG) for any necessary site customization. Additionally,"
+       @echo "$(CONFIG_FILE) for any necessary site customization. Additionally,"
        @echo "you should update RT's system database objects by running "
-       @echo "    $(RT_ETC_PATH)/insertdata <version>"
-       @echo "where <version> is the version of RT you're upgrading from."
+       @echo "   ls etc/upgrade"
+       @echo "For each file in that directory whose name is greater than"
+       @echo "your previously installed RT version, run:"
+       @echo "    $(RT_SBIN_PATH)/rt-setup-database --action insert --datafile etc/upgrade/<version>"
 
-upgrade-noclobber: insert-install libs-install html-install bin-install nondestruct
 
-nondestruct: fixperms
+upgrade: dirs upgrade-noclobber upgrade-instruct
 
-testdeps:
-       $(PERL) ./tools/testdeps -warn $(DB_TYPE)
+upgrade-noclobber: config-install libs-install html-install bin-install local-install doc-install fixperms
 
-fixdeps:
-       $(PERL) ./tools/testdeps -fix $(DB_TYPE)
 
+# {{{ dependencies
+testdeps:
+       $(PERL) ./sbin/rt-test-dependencies --with-$(DB_TYPE)
 
+fixdeps:
+       $(PERL) ./sbin/rt-test-dependencies --install --with-$(DB_TYPE)
 
-all:
-       @echo "Read the readme."
+#}}}
 
+# {{{ fixperms
 fixperms:
        # Make the libraries readable
-       chmod -R $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_PATH)
+       chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_PATH)
        chown -R $(LIBS_OWNER) $(DESTDIR)/$(RT_LIB_PATH)
        chgrp -R $(LIBS_GROUP) $(DESTDIR)/$(RT_LIB_PATH)
-
-       chown -R $(BIN_OWNER) $(DESTDIR)/$(RT_BIN_PATH)
-       chgrp -R $(RTGROUP) $(DESTDIR)/$(RT_BIN_PATH)
+       chmod -R  u+rwX,go-w,go+rX      $(DESTDIR)/$(RT_LIB_PATH)
 
 
        chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_BIN_PATH)
@@ -237,36 +245,19 @@ fixperms:
        chown -R $(BIN_OWNER) $(DESTDIR)/$(RT_ETC_PATH)
        chgrp -R $(RTGROUP) $(DESTDIR)/$(RT_ETC_PATH)
 
-       chmod 0550 $(DESTDIR)/$(RT_CONFIG)
+       chmod 0550 $(DESTDIR)/$(CONFIG_FILE)
+       chmod 0550 $(DESTDIR)/$(SITE_CONFIG_FILE)
 
        # Make the interfaces executable and setgid rt
-       chown $(BIN_OWNER) $(DESTDIR)/$(RT_MAILGATE_BIN) \
-                       $(DESTDIR)/$(RT_FASTCGI_HANDLER) \
-                       $(DESTDIR)/$(RT_SPEEDYCGI_HANDLER) \
-                       $(DESTDIR)/$(RT_CLI_BIN) \
-                       $(DESTDIR)/$(RT_CLI_ADMIN_BIN)
-
-       chgrp $(RTGROUP) $(DESTDIR)/$(RT_MAILGATE_BIN) \
-                       $(DESTDIR)/$(RT_FASTCGI_HANDLER) \
-                       $(DESTDIR)/$(RT_SPEEDYCGI_HANDLER) \
-                       $(DESTDIR)/$(RT_CLI_BIN) \
-                       $(DESTDIR)/$(RT_CLI_ADMIN_BIN)
-
-       chmod 0755      $(DESTDIR)/$(RT_MAILGATE_BIN) \
-                       $(DESTDIR)/$(RT_FASTCGI_HANDLER) \
-                       $(DESTDIR)/$(RT_SPEEDYCGI_HANDLER) \
-                       $(DESTDIR)/$(RT_CLI_BIN) \
-                       $(DESTDIR)/$(RT_CLI_ADMIN_BIN)
-
-       chmod g+s       $(DESTDIR)/$(RT_MAILGATE_BIN) \
-                       $(DESTDIR)/$(RT_FASTCGI_HANDLER) \
-                       $(DESTDIR)/$(RT_SPEEDYCGI_HANDLER) \
-                       $(DESTDIR)/$(RT_CLI_BIN) \
-                       $(DESTDIR)/$(RT_CLI_ADMIN_BIN)
+       chown $(BIN_OWNER) $(BINARIES)
+       chgrp $(RTGROUP) $(BINARIES)
+       chmod 0755  $(BINARIES)
+       chmod g+s $(SETGID_BINARIES)
 
        # Make the web ui readable by all. 
        chmod -R  u+rwX,go-w,go+rX      $(DESTDIR)/$(MASON_HTML_PATH) \
-                                       $(DESTDIR)/$(MASON_LOCAL_HTML_PATH)
+                                       $(DESTDIR)/$(MASON_LOCAL_HTML_PATH) \
+                                       $(DESTDIR)/$(LOCAL_LEXICON_PATH)
        chown -R $(LIBS_OWNER)  $(DESTDIR)/$(MASON_HTML_PATH) \
                                $(DESTDIR)/$(MASON_LOCAL_HTML_PATH)
        chgrp -R $(LIBS_GROUP)  $(DESTDIR)/$(MASON_HTML_PATH) \
@@ -279,140 +270,216 @@ fixperms:
                                $(DESTDIR)/$(MASON_SESSION_PATH)
        chgrp -R $(WEB_GROUP)   $(DESTDIR)/$(MASON_DATA_PATH) \
                                $(DESTDIR)/$(MASON_SESSION_PATH)
+# }}}
+
+fixperms-nosetgid: fixperms
+       @echo "You should never be running RT this way. it's unsafe"
+       chmod 0555 $(SETGID_BINARIES)
+       chmod 0555 $(DESTDIR)/$(CONFIG_FILE)
+       chmod 0555 $(DESTDIR)/$(SITE_CONFIG_FILE)
+
+# {{{ dirs
 dirs:
-       mkdir -p $(DESTDIR)/$(RT_BIN_PATH)
+       mkdir -p $(DESTDIR)/$(RT_LOG_PATH)
        mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)
+       mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/cache
+       mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/etc
+       mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/obj
        mkdir -p $(DESTDIR)/$(MASON_SESSION_PATH)
-       mkdir -p $(DESTDIR)/$(RT_ETC_PATH)
-       mkdir -p $(DESTDIR)/$(RT_LIB_PATH)
        mkdir -p $(DESTDIR)/$(MASON_HTML_PATH)
        mkdir -p $(DESTDIR)/$(MASON_LOCAL_HTML_PATH)
+       mkdir -p $(DESTDIR)/$(LOCAL_ETC_PATH)
+       mkdir -p $(DESTDIR)/$(LOCAL_LEXICON_PATH)
+# }}}
 
-libs-install: 
-       [ -d $(DESTDIR)/$(RT_LIB_PATH) ] || mkdir $(DESTDIR)/$(RT_LIB_PATH)
-       chown -R $(LIBS_OWNER) $(DESTDIR)/$(RT_LIB_PATH)
-       chgrp -R $(LIBS_GROUP) $(DESTDIR)/$(RT_LIB_PATH)
-       chmod -R $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_LIB_PATH)
-       ( cd ./lib; \
-         $(PERL) Makefile.PL INSTALLSITELIB=$(DESTDIR)/$(RT_LIB_PATH) \
-                             INSTALLMAN1DIR=$(DESTDIR)/$(RT_MAN_PATH)/man1 \
-                             INSTALLMAN3DIR=$(DESTDIR)/$(RT_MAN_PATH)/man3 \
-           && make \
-           && make test \
-           && $(PERL) -p -i -e " s'!!RT_VERSION!!'$(RT_VERSION)'g;" blib/lib/RT.pm ;\
-           make install \
-                          INSTALLSITEMAN1DIR=$(DESTDIR)/$(RT_MAN_PATH)/man1 \
-                          INSTALLSITEMAN3DIR=$(DESTDIR)/$(RT_MAN_PATH)/man3 \
-       )
+install: config-install dirs files-install fixperms instruct
 
-html-install:
-       cp -rp ./webrt/* $(DESTDIR)/$(MASON_HTML_PATH)
+files-install: libs-install etc-install bin-install sbin-install html-install local-install doc-install
+
+config-install:
+       mkdir -p $(DESTDIR)/$(CONFIG_FILE_PATH) 
+       cp etc/RT_Config.pm $(DESTDIR)/$(CONFIG_FILE)
+       [ -f $(DESTDIR)/$(SITE_CONFIG_FILE) ] || cp etc/RT_SiteConfig.pm $(DESTDIR)/$(SITE_CONFIG_FILE) 
+
+       chgrp $(RTGROUP) $(DESTDIR)/$(CONFIG_FILE)
+       chown $(BIN_OWNER) $(DESTDIR)/$(CONFIG_FILE)
 
+       chgrp $(RTGROUP) $(DESTDIR)/$(SITE_CONFIG_FILE)
+       chown $(BIN_OWNER) $(DESTDIR)/$(SITE_CONFIG_FILE)
 
+       @echo "Installed configuration. about to install rt in  $(RT_PATH)"
 
-genschema:
-       $(PERL) tools/initdb '$(DB_TYPE)' '$(DB_HOME)' '$(DB_HOST)' '$(DB_PORT)' '$(DB_DBA)' '$(DB_DATABASE)' generate
+test: 
+       $(PERL) -Ilib lib/t/00smoke.t
 
+regression-nosetgid-quiet: config-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db  testify-pods fixperms-nosetgid apachectl
+       $(PERL) sbin/regression_harness
 
-initialize.Pg: createdb initdb.dba acls 
+regression-nosetgid: config-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db  testify-pods fixperms-nosetgid apachectl
+       $(PERL) lib/t/02regression.t
 
-initialize.mysql: createdb acls initdb.rtuser
+regression: config-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db  testify-pods apachectl
+       $(PERL) lib/t/02regression.t
 
-initialize.Oracle: acls initdb.rtuser
+regression-quiet:
+       $(PERL) sbin/regression_harness
 
-acls:
-       cp etc/acl.$(DB_TYPE) '$(DESTDIR)/$(RT_ETC_PATH)/acl.$(DB_TYPE)'
-       $(PERL) -p -i -e " s'!!DB_TYPE!!'"$(DB_TYPE)"'g;\
-                               s'!!DB_HOST!!'"$(DB_HOST)"'g;\
-                               s'!!DB_RT_PASS!!'"$(DB_RT_PASS)"'g;\
-                               s'!!DB_RT_HOST!!'"$(DB_RT_HOST)"'g;\
-                               s'!!DB_RT_USER!!'"$(DB_RT_USER)"'g;\
-                               s'!!DB_DATABASE!!'"$(DB_DATABASE)"'g;" $(DESTDIR)/$(RT_ETC_PATH)/acl.$(DB_TYPE)
-       bin/initacls.$(DB_TYPE) '$(DB_HOME)' '$(DB_HOST)' '$(DB_PORT)' '$(DB_DBA)' '$(DB_DBA_PASSWORD)' '$(DB_DATABASE)' '$(DESTDIR)/$(RT_ETC_PATH)/acl.$(DB_TYPE)' 
+regression-instruct:
+       @echo "About to wipe your database for a regression test. ABORT NOW with Control-C"
 
 
+# {{{ database-installation
+
+regression-reset-db:
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action drop --dba $(DB_DBA) --dba-password ''
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action init --dba $(DB_DBA) --dba-password ''
+
+initialize-database: 
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action init --dba $(DB_DBA) --prompt-for-dba-password
 
 dropdb: 
-       $(PERL) tools/initdb '$(DB_TYPE)' '$(DB_HOME)' '$(DB_HOST)' '$(DB_PORT)' '$(DB_DBA)' '$(DB_DATABASE)' drop
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action drop --dba $(DB_DBA) --prompt-for-dba-password
+
+insert-approval-data: 
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/insert_approval_scrips
+# }}}
+
+# {{{ libs-install
+libs-install: 
+       [ -d $(DESTDIR)/$(RT_LIB_PATH) ] || mkdir $(DESTDIR)/$(RT_LIB_PATH)
+       -cp -rp lib/* $(DESTDIR)/$(RT_LIB_PATH)
+# }}}
+
+# {{{ html-install
+html-install:
+       [ -d $(DESTDIR)/$(MASON_HTML_PATH) ] || mkdir $(DESTDIR)/$(MASON_HTML_PATH)
+       -cp -rp ./html/* $(DESTDIR)/$(MASON_HTML_PATH)
+# }}}
+
+# {{{ doc-install
+doc-install:
+       # RT 3.0.0 - RT 3.0.2 would accidentally create a file instead of a dir
+       -[ -f $(DESTDIR)/$(RT_DOC_PATH) ] && rm $(DESTDIR)/$(RT_DOC_PATH) 
+       [ -d $(DESTDIR)/$(RT_DOC_PATH) ] || mkdir $(DESTDIR)/$(RT_DOC_PATH)
+       -cp -rp ./README $(DESTDIR)/$(RT_DOC_PATH)
+# }}}
 
+# {{{ etc-install
 
-createdb: 
-       $(PERL) tools/initdb '$(DB_TYPE)' '$(DB_HOME)' '$(DB_HOST)' '$(DB_PORT)' '$(DB_DBA)' '$(DB_DATABASE)' create
-initdb.dba:
-       $(PERL) tools/initdb '$(DB_TYPE)' '$(DB_HOME)' '$(DB_HOST)' '$(DB_PORT)' '$(DB_DBA)' '$(DB_DATABASE)' insert
+etc-install:
+       mkdir -p $(DESTDIR)/$(RT_ETC_PATH)
+       -cp -rp \
+               etc/acl.* \
+               etc/initialdata \
+               etc/schema.* \
+               $(DESTDIR)/$(RT_ETC_PATH)
+# }}}
 
-initdb.rtuser:
-       $(PERL) tools/initdb '$(DB_TYPE)' '$(DB_HOME)' '$(DB_HOST)' '$(DB_PORT)' '$(DB_RT_USER)' '$(DB_DATABASE)' insert
+# {{{ sbin-install
 
+sbin-install:
+       mkdir -p $(DESTDIR)/$(RT_SBIN_PATH)
+       chmod +x sbin/rt-setup-database \
+               sbin/rt-test-dependencies
+       -cp -rp \
+               sbin/rt-setup-database \
+               sbin/rt-test-dependencies \
+               $(DESTDIR)/$(RT_SBIN_PATH)
 
+# }}}
 
-insert-install:
-       cp -rp ./tools/insertdata \
-                $(DESTDIR)/$(RT_ETC_PATH)
-       $(PERL) -p -i -e " s'!!RT_ETC_PATH!!'$(RT_ETC_PATH)'g;\
-                          s'!!RT_LIB_PATH!!'$(RT_LIB_PATH)'g;"\
-               $(DESTDIR)/$(RT_ETC_PATH)/insertdata
+# {{{ bin-install
 
 bin-install:
-       cp -p ./bin/webmux.pl $(DESTDIR)/$(RT_MODPERL_HANDLER)
-       cp -p ./bin/rt-mailgate $(DESTDIR)/$(RT_MAILGATE_BIN)
-       cp -p ./bin/rtadmin $(DESTDIR)/$(RT_CLI_ADMIN_BIN)
-       cp -p ./bin/rt $(DESTDIR)/$(RT_CLI_BIN)
-       cp -p ./bin/mason_handler.fcgi $(DESTDIR)/$(RT_FASTCGI_HANDLER)
-       cp -p ./bin/mason_handler.scgi $(DESTDIR)/$(RT_SPEEDYCGI_HANDLER)
-
-       $(PERL) -p -i -e "s'!!RT_PATH!!'"$(RT_PATH)"'g;\
-                               s'!!PERL!!'"$(PERL)"'g;\
-                               s'!!RT_VERSION!!'"$(RT_VERSION)"'g;\
-                               s'!!RT_ETC_PATH!!'"$(RT_CONFIG_PATH)"'g;\
-                               s'!!RT_LIB_PATH!!'"$(RT_LIB_PATH)"'g;"\
-               $(DESTDIR)/$(RT_MODPERL_HANDLER) \
-               $(DESTDIR)/$(RT_FASTCGI_HANDLER) \
-               $(DESTDIR)/$(RT_SPEEDYCGI_HANDLER) \
-               $(DESTDIR)/$(RT_CLI_BIN) \
-               $(DESTDIR)/$(RT_CLI_ADMIN_BIN) \
-               $(DESTDIR)/$(RT_MAILGATE_BIN)
-
-
-config-replace:
-       -[ -f $(DESTDIR)/$(RT_CONFIG) ] && \
-               mv $(DESTDIR)/$(RT_CONFIG) $(DESTDIR)/$(RT_CONFIG).old && \
-               chmod 000 $(DESTDIR)/$(RT_CONFIG).old
-       cp -rp ./etc/config.pm $(DESTDIR)/$(RT_CONFIG)
-       $(PERL) -p -i -e "\
-       s'!!DB_TYPE!!'"$(DB_TYPE)"'g;\
-       s'!!DB_HOST!!'"$(DB_HOST)"'g;\
-       s'!!DB_PORT!!'"$(DB_PORT)"'g;\
-       s'!!DB_RT_PASS!!'"$(DB_RT_PASS)"'g;\
-       s'!!DB_RT_USER!!'"$(DB_RT_USER)"'g;\
-       s'!!DB_DATABASE!!'"$(DB_DATABASE)"'g;\
-       s'!!MASON_HTML_PATH!!'"$(MASON_HTML_PATH)"'g;\
-       s'!!MASON_LOCAL_HTML_PATH!!'"$(MASON_LOCAL_HTML_PATH)"'g;\
-       s'!!MASON_SESSION_PATH!!'"$(MASON_SESSION_PATH)"'g;\
-       s'!!MASON_DATA_PATH!!'"$(MASON_DATA_PATH)"'g;\
-       s'!!RT_LOG_PATH!!'"$(RT_LOG_PATH)"'g;\
-       s'!!RT_VERSION!!'"$(RT_VERSION)"'g;\
-       " $(DESTDIR)/$(RT_CONFIG)
+       mkdir -p $(DESTDIR)/$(RT_BIN_PATH)
+       chmod +x bin/rt-mailgate \
+               bin/rt-crontool
+       -cp -rp \
+               bin/rt-mailgate \
+               bin/mason_handler.fcgi \
+               bin/mason_handler.svc \
+               bin/webmux.pl \
+               bin/rt-crontool \
+               $(DESTDIR)/$(RT_BIN_PATH)
+# }}}
+
+# {{{ local-install
+local-install:
+       -cp -rp ./local/html/* $(DESTDIR)/$(MASON_LOCAL_HTML_PATH)
+       -cp -rp ./local/po/* $(DESTDIR)/$(LOCAL_LEXICON_PATH)
+       -cp -rp ./local/etc/* $(DESTDIR)/$(LOCAL_ETC_PATH)
+# }}}
+
+# {{{ Best Practical Build targets -- no user servicable parts inside
+
+
+POD2TEST_EXE = sbin/extract_pod_tests
+
+testify-pods:
+       [ -d lib/t/autogen ] || mkdir lib/t/autogen
+       find lib -name \*pm |grep -v \*.in |xargs -n 1 $(PERL) $(POD2TEST_EXE)
+       find bin -type f |grep -v \~ | grep -v "\.in" | xargs -n 1 $(PERL) $(POD2TEST_EXE)
+
 
 
+regenerate-catalogs:
+       $(PERL) sbin/extract-message-catalog
+
+license-tag:
+       $(PERL) sbin/license_tag
+
+factory: initialize-database
+       cd lib; $(PERL) ../sbin/factory  $(DB_DATABASE) RT
+
 commit:
-       cvs commit
+       aegis -build ; aegis -diff ; aegis -test; aegis -develop_end
+
+integrate:
+       aegis -integrate_begin; aegis -build; aegis -diff; aegis -test ; aegis -integrate_pass
+
+predist: commit tag-and-tar
+
+tag-and-release-baseline:
+       aegis -cp -ind Makefile -output /tmp/Makefile.tagandrelease; \
+       $(MAKE) -f /tmp/Makefile.tagandrelease tag-and-release-never-by-hand
 
-predist: commit
-       cvs tag -r $(BRANCH) -F $(TAG)
+
+# Running this target in a working directory is 
+# WRONG WRONG WRONG.
+# it will tag the current baseline with the version of RT defined 
+# in the currently-being-worked-on makefile. which is wrong.
+#  you want tag-and-release-baseline
+
+tag-and-release-never-by-hand:
+       aegis --delta-name $(TAG)
        rm -rf /tmp/$(TAG)
-       cvs co -d /tmp/$(TAG) -r $(TAG) rt
-       cd /tmp/$(TAG); chmod 600 Makefile; /usr/local/bin/cvs2cl.pl \
-               --no-wrap --separate-header \
-               --window 120
+       mkdir /tmp/$(TAG)
+       cd /tmp/$(TAG); \
+               aegis -cp -ind -delta $(TAG) . ;\
+               make reconfigure;\
+               chmod 600 Makefile;\
+               aegis --report --project rt.$(RT_VERSION_MAJOR) \
+                     --page_width 80 \
+                     --page_length 9999 \
+                     --change $(RT_VERSION_MINOR) --output Changelog Change_Log
+
        cd /tmp; tar czvf /home/ftp/pub/rt/devel/$(TAG).tar.gz $(TAG)/
        chmod 644 /home/ftp/pub/rt/devel/$(TAG).tar.gz
 
-dist: commit predist
-       rm -rf /home/ftp/pub/rt/devel/rt.tar.gz
-       ln -s ./$(TAG).tar.gz /home/ftp/pub/rt/devel/rt.tar.gz
 
+reconfigure:
+       aclocal -I m4
+       autoconf
+       chmod 755 ./configure
+       ./configure
 
 rpm:
        (cd ..; tar czvf /usr/src/redhat/SOURCES/rt.tar.gz rt)
        rpm -ba etc/rt.spec
+
+
+apachectl:
+       apachectl stop
+       sleep 3
+       apachectl start
+# }}}
diff --git a/rt/Makefile.in b/rt/Makefile.in
new file mode 100644 (file)
index 0000000..245ec5e
--- /dev/null
@@ -0,0 +1,485 @@
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2002 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
+
+
+#
+# DO NOT HAND-EDIT the file named 'Makefile'. This file is autogenerated.
+# Have a look at "configure" and "Makefile.in" instead
+#
+
+
+PERL                   =       @PERL@
+
+CONFIG_FILE_PATH       =       @CONFIG_FILE_PATH@
+CONFIG_FILE            =       $(CONFIG_FILE_PATH)/RT_Config.pm
+SITE_CONFIG_FILE               =       $(CONFIG_FILE_PATH)/RT_SiteConfig.pm
+
+
+RT_VERSION_MAJOR       =       @RT_VERSION_MAJOR@
+RT_VERSION_MINOR       =       @RT_VERSION_MINOR@
+RT_VERSION_PATCH       =       @RT_VERSION_PATCH@
+
+RT_VERSION =   $(RT_VERSION_MAJOR).$(RT_VERSION_MINOR).$(RT_VERSION_PATCH)
+TAG       =    rt-$(RT_VERSION_MAJOR)-$(RT_VERSION_MINOR)-$(RT_VERSION_PATCH)
+
+
+# This is the group that all of the installed files will be chgrp'ed to.
+RTGROUP                        =       @RTGROUP@
+
+
+# User which should own rt binaries.
+BIN_OWNER              =       @BIN_OWNER@
+
+# User that should own all of RT's libraries, generally root.
+LIBS_OWNER             =       @LIBS_OWNER@
+
+# Group that should own all of RT's libraries, generally root.
+LIBS_GROUP             =       @LIBS_GROUP@
+
+WEB_USER               =       @WEB_USER@
+WEB_GROUP              =       @WEB_GROUP@
+
+# {{{ Files and directories 
+
+# DESTDIR allows you to specify that RT be installed somewhere other than
+# where it will eventually reside
+
+DESTDIR                        =       
+
+
+RT_PATH                        =       @RT_PATH@
+RT_ETC_PATH            =       @RT_ETC_PATH@
+RT_BIN_PATH            =       @RT_BIN_PATH@
+RT_SBIN_PATH           =       @RT_SBIN_PATH@
+RT_LIB_PATH            =       @RT_LIB_PATH@
+RT_MAN_PATH            =       @RT_MAN_PATH@
+RT_VAR_PATH            =       @RT_VAR_PATH@
+RT_DOC_PATH            =       @RT_DOC_PATH@
+RT_LOCAL_PATH          =       @RT_LOCAL_PATH@
+LOCAL_ETC_PATH         =       @LOCAL_ETC_PATH@
+LOCAL_LEXICON_PATH     =       @LOCAL_LEXICON_PATH@
+MASON_HTML_PATH                =       @MASON_HTML_PATH@
+MASON_LOCAL_HTML_PATH  =       @MASON_LOCAL_HTML_PATH@
+MASON_DATA_PATH                =       @MASON_DATA_PATH@
+MASON_SESSION_PATH     =       @MASON_SESSION_PATH@
+RT_LOG_PATH        =       @RT_LOG_PATH@
+
+# RT_READABLE_DIR_MODE is the mode of directories that are generally meant
+# to be accessable
+RT_READABLE_DIR_MODE   =       0755
+
+
+
+
+# {{{ all these define the places that RT's binaries should get installed
+
+# RT_MODPERL_HANDLER is the mason handler script for mod_perl
+RT_MODPERL_HANDLER     =       $(RT_BIN_PATH)/webmux.pl
+# RT_FASTCGI_HANDLER is the mason handler script for FastCGI
+RT_FASTCGI_HANDLER     =       $(RT_BIN_PATH)/mason_handler.fcgi
+# RT_WIN32_FASTCGI_HANDLER is the mason handler script for FastCGI
+RT_WIN32_FASTCGI_HANDLER       =       $(RT_BIN_PATH)/mason_handler.svc
+# RT's admin CLI
+RT_CLI_ADMIN_BIN       =       $(RT_BIN_PATH)/rtadmin
+# RT's mail gateway
+RT_MAILGATE_BIN                =       $(RT_BIN_PATH)/rt-mailgate
+# RT's cron tool
+RT_CRON_BIN            =       $(RT_BIN_PATH)/rt-crontool
+
+# }}}
+
+SETGID_BINARIES                =       $(DESTDIR)/$(RT_FASTCGI_HANDLER) \
+                               $(DESTDIR)/$(RT_WIN32_FASTCGI_HANDLER)
+
+BINARIES               =       $(DESTDIR)/$(RT_MODPERL_HANDLER) \
+                               $(DESTDIR)/$(RT_MAILGATE_BIN) \
+                               $(DESTDIR)/$(RT_CRON_BIN) \
+                               $(SETGID_BINARIES)
+SYSTEM_BINARIES                =       $(DESTDIR)/$(RT_SBIN_PATH)/
+
+
+# }}}
+
+# {{{ Database setup
+
+#
+# DB_TYPE defines what sort of database RT trys to talk to
+# "mysql" is known to work.
+# "Pg" is known to work
+
+DB_TYPE                        =       @DB_TYPE@
+
+# Set DBA to the name of a unix account with the proper permissions and 
+# environment to run your commandline SQL sbin
+
+# Set DB_DBA to the name of a DB user with permission to create new databases 
+
+# For mysql, you probably want 'root'
+# For Pg, you probably want 'postgres' 
+# For oracle, you want 'system'
+
+DB_DBA                 =       @DB_DBA@
+
+DB_HOST                        =       @DB_HOST@
+
+# If you're not running your database server on its default port, 
+# specifiy the port the database server is running on below.
+# It's generally safe to leave this blank 
+
+DB_PORT                        =       @DB_PORT@
+
+
+
+
+#
+# Set this to the canonical name of the interface RT will be talking to the 
+# database on.  If you said that the RT_DB_HOST above was "localhost," this 
+# should be too. This value will be used to grant rt access to the database.
+# If you want to access the RT database from multiple hosts, you'll need
+# to grant those database rights by hand.
+#
+
+DB_RT_HOST             =       @DB_RT_HOST@
+
+# set this to the name you want to give to the RT database in 
+# your database server. For Oracle, this should be the name of your sid
+
+DB_DATABASE            =       @DB_DATABASE@
+DB_RT_USER             =       @DB_RT_USER@
+DB_RT_PASS             =       @DB_RT_PASS@
+
+# }}}
+
+
+####################################################################
+
+all: default
+
+default:
+       @echo "Please read RT's readme before installing. Not doing so could"
+       @echo "be dangerous."
+
+
+
+instruct:
+       @echo "Congratulations. RT has been installed. "
+       @echo ""
+       @echo ""
+       @echo "You must now configure RT by editing $(SITE_CONFIG_FILE)."
+       @echo ""
+       @echo "(You will definitely need to set RT's database password before continuing."
+       @echo " Not doing so could be very dangerous)"
+       @echo ""
+       @echo "After that, you need to initialize RT's database by running" 
+       @echo " 'make initialize-database'"
+
+#      @echo " or by executing "       
+#      @echo " '$(RT_SBIN_PATH)/rt-setup-database --action init \ "
+#      @echo "     --dba $(DB_DBA) --prompt-for-dba-password'"
+
+
+
+upgrade-instruct: 
+       @echo "Congratulations. RT has been upgraded. You should now check-over"
+       @echo "$(CONFIG_FILE) for any necessary site customization. Additionally,"
+       @echo "you should update RT's system database objects by running "
+       @echo "   ls etc/upgrade"
+       @echo "For each file in that directory whose name is greater than"
+       @echo "your previously installed RT version, run:"
+       @echo "    $(RT_SBIN_PATH)/rt-setup-database --action insert --datafile etc/upgrade/<version>"
+
+
+upgrade: dirs upgrade-noclobber upgrade-instruct
+
+upgrade-noclobber: config-install libs-install html-install bin-install local-install doc-install fixperms
+
+
+# {{{ dependencies
+testdeps:
+       $(PERL) ./sbin/rt-test-dependencies --with-$(DB_TYPE)
+
+fixdeps:
+       $(PERL) ./sbin/rt-test-dependencies --install --with-$(DB_TYPE)
+
+#}}}
+
+# {{{ fixperms
+fixperms:
+       # Make the libraries readable
+       chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_PATH)
+       chown -R $(LIBS_OWNER) $(DESTDIR)/$(RT_LIB_PATH)
+       chgrp -R $(LIBS_GROUP) $(DESTDIR)/$(RT_LIB_PATH)
+       chmod -R  u+rwX,go-w,go+rX      $(DESTDIR)/$(RT_LIB_PATH)
+
+
+       chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_BIN_PATH)
+       chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_BIN_PATH) 
+
+       chmod 0755 $(DESTDIR)/$(RT_ETC_PATH)
+       chmod 0500 $(DESTDIR)/$(RT_ETC_PATH)/*
+
+       #TODO: the config file should probably be able to have its
+       # owner set seperately from the binaries.
+       chown -R $(BIN_OWNER) $(DESTDIR)/$(RT_ETC_PATH)
+       chgrp -R $(RTGROUP) $(DESTDIR)/$(RT_ETC_PATH)
+
+       chmod 0550 $(DESTDIR)/$(CONFIG_FILE)
+       chmod 0550 $(DESTDIR)/$(SITE_CONFIG_FILE)
+
+       # Make the interfaces executable and setgid rt
+       chown $(BIN_OWNER) $(BINARIES)
+       chgrp $(RTGROUP) $(BINARIES)
+       chmod 0755  $(BINARIES)
+       chmod g+s $(SETGID_BINARIES)
+
+       # Make the web ui readable by all. 
+       chmod -R  u+rwX,go-w,go+rX      $(DESTDIR)/$(MASON_HTML_PATH) \
+                                       $(DESTDIR)/$(MASON_LOCAL_HTML_PATH) \
+                                       $(DESTDIR)/$(LOCAL_LEXICON_PATH)
+       chown -R $(LIBS_OWNER)  $(DESTDIR)/$(MASON_HTML_PATH) \
+                               $(DESTDIR)/$(MASON_LOCAL_HTML_PATH)
+       chgrp -R $(LIBS_GROUP)  $(DESTDIR)/$(MASON_HTML_PATH) \
+                               $(DESTDIR)/$(MASON_LOCAL_HTML_PATH)
+
+       # Make the web ui's data dir writable
+       chmod 0770      $(DESTDIR)/$(MASON_DATA_PATH) \
+                       $(DESTDIR)/$(MASON_SESSION_PATH)
+       chown -R $(WEB_USER)    $(DESTDIR)/$(MASON_DATA_PATH) \
+                               $(DESTDIR)/$(MASON_SESSION_PATH)
+       chgrp -R $(WEB_GROUP)   $(DESTDIR)/$(MASON_DATA_PATH) \
+                               $(DESTDIR)/$(MASON_SESSION_PATH)
+# }}}
+
+fixperms-nosetgid: fixperms
+       @echo "You should never be running RT this way. it's unsafe"
+       chmod 0555 $(SETGID_BINARIES)
+       chmod 0555 $(DESTDIR)/$(CONFIG_FILE)
+       chmod 0555 $(DESTDIR)/$(SITE_CONFIG_FILE)
+
+# {{{ dirs
+dirs:
+       mkdir -p $(DESTDIR)/$(RT_LOG_PATH)
+       mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)
+       mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/cache
+       mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/etc
+       mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/obj
+       mkdir -p $(DESTDIR)/$(MASON_SESSION_PATH)
+       mkdir -p $(DESTDIR)/$(MASON_HTML_PATH)
+       mkdir -p $(DESTDIR)/$(MASON_LOCAL_HTML_PATH)
+       mkdir -p $(DESTDIR)/$(LOCAL_ETC_PATH)
+       mkdir -p $(DESTDIR)/$(LOCAL_LEXICON_PATH)
+# }}}
+
+install: config-install dirs files-install fixperms instruct
+
+files-install: libs-install etc-install bin-install sbin-install html-install local-install doc-install
+
+config-install:
+       mkdir -p $(DESTDIR)/$(CONFIG_FILE_PATH) 
+       cp etc/RT_Config.pm $(DESTDIR)/$(CONFIG_FILE)
+       [ -f $(DESTDIR)/$(SITE_CONFIG_FILE) ] || cp etc/RT_SiteConfig.pm $(DESTDIR)/$(SITE_CONFIG_FILE) 
+
+       chgrp $(RTGROUP) $(DESTDIR)/$(CONFIG_FILE)
+       chown $(BIN_OWNER) $(DESTDIR)/$(CONFIG_FILE)
+
+       chgrp $(RTGROUP) $(DESTDIR)/$(SITE_CONFIG_FILE)
+       chown $(BIN_OWNER) $(DESTDIR)/$(SITE_CONFIG_FILE)
+
+       @echo "Installed configuration. about to install rt in  $(RT_PATH)"
+
+test: 
+       $(PERL) -Ilib lib/t/00smoke.t
+
+regression-nosetgid-quiet: config-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db  testify-pods fixperms-nosetgid apachectl
+       $(PERL) sbin/regression_harness
+
+regression-nosetgid: config-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db  testify-pods fixperms-nosetgid apachectl
+       $(PERL) lib/t/02regression.t
+
+regression: config-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db  testify-pods apachectl
+       $(PERL) lib/t/02regression.t
+
+regression-quiet:
+       $(PERL) sbin/regression_harness
+
+regression-instruct:
+       @echo "About to wipe your database for a regression test. ABORT NOW with Control-C"
+
+
+# {{{ database-installation
+
+regression-reset-db:
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action drop --dba $(DB_DBA) --dba-password ''
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action init --dba $(DB_DBA) --dba-password ''
+
+initialize-database: 
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action init --dba $(DB_DBA) --prompt-for-dba-password
+
+dropdb: 
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action drop --dba $(DB_DBA) --prompt-for-dba-password
+
+insert-approval-data: 
+       $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/insert_approval_scrips
+# }}}
+
+# {{{ libs-install
+libs-install: 
+       [ -d $(DESTDIR)/$(RT_LIB_PATH) ] || mkdir $(DESTDIR)/$(RT_LIB_PATH)
+       -cp -rp lib/* $(DESTDIR)/$(RT_LIB_PATH)
+# }}}
+
+# {{{ html-install
+html-install:
+       [ -d $(DESTDIR)/$(MASON_HTML_PATH) ] || mkdir $(DESTDIR)/$(MASON_HTML_PATH)
+       -cp -rp ./html/* $(DESTDIR)/$(MASON_HTML_PATH)
+# }}}
+
+# {{{ doc-install
+doc-install:
+       # RT 3.0.0 - RT 3.0.2 would accidentally create a file instead of a dir
+       -[ -f $(DESTDIR)/$(RT_DOC_PATH) ] && rm $(DESTDIR)/$(RT_DOC_PATH) 
+       [ -d $(DESTDIR)/$(RT_DOC_PATH) ] || mkdir $(DESTDIR)/$(RT_DOC_PATH)
+       -cp -rp ./README $(DESTDIR)/$(RT_DOC_PATH)
+# }}}
+
+# {{{ etc-install
+
+etc-install:
+       mkdir -p $(DESTDIR)/$(RT_ETC_PATH)
+       -cp -rp \
+               etc/acl.* \
+               etc/initialdata \
+               etc/schema.* \
+               $(DESTDIR)/$(RT_ETC_PATH)
+# }}}
+
+# {{{ sbin-install
+
+sbin-install:
+       mkdir -p $(DESTDIR)/$(RT_SBIN_PATH)
+       chmod +x sbin/rt-setup-database \
+               sbin/rt-test-dependencies
+       -cp -rp \
+               sbin/rt-setup-database \
+               sbin/rt-test-dependencies \
+               $(DESTDIR)/$(RT_SBIN_PATH)
+
+# }}}
+
+# {{{ bin-install
+
+bin-install:
+       mkdir -p $(DESTDIR)/$(RT_BIN_PATH)
+       chmod +x bin/rt-mailgate \
+               bin/rt-crontool
+       -cp -rp \
+               bin/rt-mailgate \
+               bin/mason_handler.fcgi \
+               bin/mason_handler.svc \
+               bin/webmux.pl \
+               bin/rt-crontool \
+               $(DESTDIR)/$(RT_BIN_PATH)
+# }}}
+
+# {{{ local-install
+local-install:
+       -cp -rp ./local/html/* $(DESTDIR)/$(MASON_LOCAL_HTML_PATH)
+       -cp -rp ./local/po/* $(DESTDIR)/$(LOCAL_LEXICON_PATH)
+       -cp -rp ./local/etc/* $(DESTDIR)/$(LOCAL_ETC_PATH)
+# }}}
+
+# {{{ Best Practical Build targets -- no user servicable parts inside
+
+
+POD2TEST_EXE = sbin/extract_pod_tests
+
+testify-pods:
+       [ -d lib/t/autogen ] || mkdir lib/t/autogen
+       find lib -name \*pm |grep -v \*.in |xargs -n 1 $(PERL) $(POD2TEST_EXE)
+       find bin -type f |grep -v \~ | grep -v "\.in" | xargs -n 1 $(PERL) $(POD2TEST_EXE)
+
+
+
+regenerate-catalogs:
+       $(PERL) sbin/extract-message-catalog
+
+license-tag:
+       $(PERL) sbin/license_tag
+
+factory: initialize-database
+       cd lib; $(PERL) ../sbin/factory  $(DB_DATABASE) RT
+
+commit:
+       aegis -build ; aegis -diff ; aegis -test; aegis -develop_end
+
+integrate:
+       aegis -integrate_begin; aegis -build; aegis -diff; aegis -test ; aegis -integrate_pass
+
+predist: commit tag-and-tar
+
+tag-and-release-baseline:
+       aegis -cp -ind Makefile -output /tmp/Makefile.tagandrelease; \
+       $(MAKE) -f /tmp/Makefile.tagandrelease tag-and-release-never-by-hand
+
+
+# Running this target in a working directory is 
+# WRONG WRONG WRONG.
+# it will tag the current baseline with the version of RT defined 
+# in the currently-being-worked-on makefile. which is wrong.
+#  you want tag-and-release-baseline
+
+tag-and-release-never-by-hand:
+       aegis --delta-name $(TAG)
+       rm -rf /tmp/$(TAG)
+       mkdir /tmp/$(TAG)
+       cd /tmp/$(TAG); \
+               aegis -cp -ind -delta $(TAG) . ;\
+               make reconfigure;\
+               chmod 600 Makefile;\
+               aegis --report --project rt.$(RT_VERSION_MAJOR) \
+                     --page_width 80 \
+                     --page_length 9999 \
+                     --change $(RT_VERSION_MINOR) --output Changelog Change_Log
+
+       cd /tmp; tar czvf /home/ftp/pub/rt/devel/$(TAG).tar.gz $(TAG)/
+       chmod 644 /home/ftp/pub/rt/devel/$(TAG).tar.gz
+
+
+reconfigure:
+       aclocal -I m4
+       autoconf
+       chmod 755 ./configure
+       ./configure
+
+rpm:
+       (cd ..; tar czvf /usr/src/redhat/SOURCES/rt.tar.gz rt)
+       rpm -ba etc/rt.spec
+
+
+apachectl:
+       apachectl stop
+       sleep 3
+       apachectl start
+# }}}
index d16100c..7c5e4d4 100755 (executable)
--- a/rt/README
+++ b/rt/README
-$Header: /home/cvs/cvsroot/freeside/rt/README,v 1.1 2002-08-12 06:17:06 ivan Exp $
-RT is (c) 1996-2002 by Jesse Vincent <jesse@bestpractical.com>
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
+RT is an enterprise-grade issue tracking system. It allows
+organizations to keep track of their to-do lists, who is working
+on which tasks, what's already been done, and when tasks were
+completed. It is available under the terms of version 2 of the GNU
+General Public License (GPL), so it doesn't cost anything to set
+up and use.
 
-RT is licensed to you under the terms of version 2 of the GNU General 
-Public License. 
 
-If you don't have a copy of the GPL, you've been living in a cave,
-but one should be included in this distribution.
-
-
-INSTALLATION INSTRUCTIONS
--------------------------
-
-These instructions are a summary of those at http://www.fsck.com/rtfm/
-The docs on the web at www.fsck.com/rtfm/ are likely to be more up to
-date and complete than this document. You should consult them before 
-proceeding.
+        Jesse Vincent
+        Best Practical Solutions, LLC
+        March 2003
 
 REQUIRED PACKAGES:
 ------------------
 
-o   Perl5.005_03 or later with support for setgid perl scripts
-        RT's command line and mail gateway tools run setgid to the 'rt' group
-       to protect RT's database password.  You may need to install a special 
-       "suidperl" package or reconfigure your perl setup to support
-        "setuid scripts".
+o   Perl 5.8.0 or later (http://www.perl.com).
+
+       (If you intend to use the FastCGI or SpeedyCGI support, you 
+        need to make sure that perl has been built with support for 
+        setgid perl scripts.)`
+
+    Perl 5.6.1 is currently deprecated and will be officially desupported
+    in a future release
 
 o   A DB backend; MySQL is recommended ( http://www.mysql.com ) 
-        Currently supported:    Mysql 3.23.38 or newer. 
-                                (Some older releases had crippling SQL bugs)
-                               Postgres 7.1 or newer.
+        Currently supported:  Mysql 4.0.13 or later. 
+                              Postgres 7.2 or later.
+
+                              Mysql 3.23.46 or newer with support for InnoDB 
+                             is currently deprecated and will be officially
+                             desupported in a future release.
+
+o   Apache version 1.3.x or 2.x (http://httpd.apache.org) 
+    with mod_perl -- (http://perl.apache.org ) 
+    or a webserver with FastCGI support (www.fastcgi.com)
+
+        mod_perl 2.0 isn't quite ready for prime_time just yet;
+        Best Practical Solutions strongly recommends that sites use 
+        Apache 1.3 or FastCGI.
+
+        Compiling mod_perl on Apache 1.3.x as a DSO has been known 
+         to have massive stability problems and is not recommended.
+
+        mod_perl 1.x must be build with EVERYTHING=1
+
+        RT's FastCGI handler runs setgid to the 'rt' group to
+        protect RT's database password.  You may need to install
+        a special  "suidperl" package or reconfigure your perl
+        setup to support "setuid scripts" if you intend to use RT
+        with FastCGI.
+
+        Debian GNU/* 3.0+: the package which installs suidperl is
+         called perl-suid, and should work without any tweaking.
+
+        FreeBSD 4.2+: the package is called sperl, and should
+         install a suidperl that just works 
+
+        Conectiva Linux 6.0+: suidperl is installed by default when 
+         perl is installed, but the program /bin/suidperl is not setuid. 
+         You must use chmod to make it setuid.
 
-o   Apache + mod_perl -- ( http://perl.apache.org) 
-    or A webserver with FastCGI support (www.fastcgi.com)
 
-       If you compile mod_perl as a DSO, you're on your own. It's known
-       to have massive stability problems. 
-        mod_perl must be build with EVERYTHING=1
 
 o    Various and sundry perl modules
-        RT takes care of the installation of most of these automatically
-        during the "make testdeps" and "make fixdeps" stages below
+       A tool included with RT takes care of the installation of
+       most of these automatically during the install process.
+
+       The tool supplied with RT uses Perl's CPAN system
+       (http://www.cpan.org) to install modules. Some operating
+       systems package all or some of the modules required and
+       you may be better off installing the modules that way.
 
 
 GENERAL INSTALLATION
 --------------------
 
+This is a rough guide to installing RT. For more detail, you'll want 
+to read 'Chapter 2: Installing' in RT's manual, available at
+http://www.bestpractical.com/rt 
+
 1   Unpack this distribution SOMWHERE OTHER THAN where you want to install RT
 
         Granted, you've already got it open. To do this cleanly:
 
-               tar xzvf rt.tar.gz -C /tmp
+                tar xzvf rt.tar.gz -C /tmp
 
-2   Check over /tmp/rt/Makefile
+2   Run the "configure" script. 
 
-       There are many variables you NEED to customize for your site.
-       Even if you are just upgrading, you must set ALL variables.
+        ./configure --help to see the list of options
+        ./configure (with the flags you want)
 
-3   Satisfy RT's myriad dependencies.  There's a perl script in rt/tools
-    called testdeps that uses CPAN to automate all of this.
+3   Satisfy RT's myriad dependencies. 
 
 3.1   Check for compliance:
-       make testdeps
+        
+   perl sbin/rt-test-dependencies \ 
+                --with-<databasename> --with-<web-environment>
+
+        databasename is one of: mysql, postgres
+        web-environment is one of: fastcgi, modperl1, modperl2
 
-3.2   If there are unsatisfied dependencies, install them by hand or run
-       make fixdeps
-       
-       (You may need to install Apache::Session and Apache::DBI by hand.
+3.2   If there are unsatisfied dependencies, install them by hand or run:
 
-       You might need to install Msql-Mysql-Modules by hand.
-       perl -MCPAN -e'install DBD::mysql::Install' should do it for you.
-       )
+        perl sbin/rt-test-dependencies \
+                --with-<databasename> --with-<web-environment> --install
+        
 
 3.3   Check to make sure everything was installed properly:
-       make testdeps
+
+        perl sbin/rt-test-dependencies \
+                --with-<databasename> --with-<web-environment>
 
 4   Create a group called 'rt'
 
 5a  FOR A NEW INSTALLATION: 
         
         As root, type:
-                make install   (replace "make" with the local name for 
-                                Make, if you need to)
+                 make install        (replace "make" with the local name for 
+                                 Make, if you need to)
 
-       If the make fails, type:
-               make dropdb 
-       and start over from step 5a
+                       
+                 make initialize-database 
 
-5b  FOR UPGRADING: (Within the RT 2.0.x series)
 
-       Make a backup of /path/to/rt/etc/config.pm
-        As root, type: 
-               make upgrade     (replace "make" with the local name for 
-                                 Make, if you need to)
+        If the make fails, type:
+                make dropdb 
+        and start over from step 5a
 
-       This will build new binaries, config files and libraries without
-       overwriting your RT database. 
+5b  FOR UPGRADING: (Within the RT 3.0.x series)
 
-        WARNING: This WILL clobber your existing configuration file!
-        
-        The install process will then instruct you to update your RT system 
-        database objects by running rt/etc/insertdata <version> where 
-        <version> is the version of RT you're upgrading from.
+        As root, type: 
+                make upgrade     (replace "make" with the local name for 
+                                  Make, if you need to)
 
+        This will build new binaries, config files and libraries without
+        overwriting your RT database. 
         
-       
-5c  FOR UPGRADING (From 1.0.x):
-
-       Follow the instructions for installing RT 2.0.
+        It may then instruct you to update your RT system database objects 
 
-       Once you have installed RT 2.0, download import-1.0-to-2.0
-       from http://www.fsck.com/pub/rt/contrib/2.0/rt-addons
-
-       Edit the configuration defaults in import-1.0-to-2.0
-
-       If you don't set $DEFAULTQUEUE to the name of one of your
-       RT 1.0 queues, THE IMPORT WILL FAIL.
-
-       perl ./import-1.0-to-2.0
-
-       The import tool will do its thing. If you're using postgres, you'll
-       need to execute the following SQL statement within your RT2 database:
-
-       select setval('tickets_id_seq', (select max(id) from tickets));
-       
-       It imports:
-               Queues, Areas, Users, Acls, Mailing Rules, Queue Members,
-               Tickets and Transactions.
-
-       It DOES NOT IMPORT:
-               Attachments removed by stripmime or Templates.
-       
-6   Edit etc/config.pm in your RT installation directory.  In many
-    cases sensible defaults have been included. In others, you MUST
-    supply a value.
+6   Edit etc/RT_SiteConfig.pm in your RT installation directory, by specifying
+    any values you need to change from the defaults in etc/RT_Config.pm
 
 7   Configure the email and web gateways, as described below. 
 
@@ -142,97 +170,81 @@ GENERAL INSTALLATION
     NOTE: root's password for the web interface is "password" 
     (without the quotes.)  Not changing this is a SECURITY risk
     
-9   Configure RT per the instructions at http://www.fsck.com/rtfm/
+9   Configure RT per the instructions in RT's manual.
 
-    Until you do this, RT will not be able to send or recieve email,
+    Until you do this, RT will not be able to send or receive email,
     nor will it be more than marginally functional.  This is not an
     optional step.
 
 
-SETTING UP THE MAIL GATEWAY 
----------------------------
+THE WEB INTERFACE
+-----------------
 
-An alias for the initial queue will need to be made in either your
-global mail aliases file (if you are using NIS) or locally on your
-machine.
-Add the following lines to /etc/aliases (or your local equivalent) :
-
-rt:         "|/path/to/rt2/bin/rt-mailgate --queue general --action correspond"
-rt-comment: "|/path/to/rt2/bin/rt-mailgate --queue general --action comment"
-                                                   |                |
-                                   <queue-name>----/                |
-                                                                    |
-                      <correspond or comment depending on whether   |
-                      the mail should be resent to the requestor>---/
-
-
-
-THE WEB UI
-----------
-
-RT's web ui is based around HTML::Mason, which works well with the mod_perl
-perl interpreter within Apache httpd as well as with a webserver which
-supports FastCGI. (Instructions for configuring RT for use with FastCGI
-are available at http://www.fsck.com/rtfm/ )
+RT's web interface is based around HTML::Mason, which works best with the mod_perl
+perl interpreter within Apache httpd.  Alternatively, support for the FastCGI
+(and plain CGI) interface is also provided as 'bin/mason_handler.fcgi'.
 
 Apache 
-        RT Uses HTML::Mason.  You'll need to add a few lines to your
-        httpd.conf telling it to use rt's web ui.  If you have mod-perl
-       (you should, the perl scripts will go quite a bit faster around with
-       it), you can do something like this:
-
+        You'll need to add a few lines to your httpd.conf telling it about RT:
 
 <VirtualHost your.ip.address>
-DocumentRoot /path/to/rt2/WebRT/html
-ServerName your.rt.server.hostname
-PerlModule Apache::DBI
-PerlFreshRestart On
-PerlRequire /path/to/rt2/bin/webmux.pl
-<Location />
- SetHandler perl-script
- PerlHandler RT::Mason
-</Location>
+    ServerName your.rt.server.hostname
+    DocumentRoot /opt/rt3/share/html
+    AddDefaultCharset UTF-8
+
+    # this line applies to Apache2+mod_perl2 only
+    PerlModule Apache2 Apache::compat
+
+    PerlModule Apache::DBI
+    PerlRequire /opt/rt3/bin/webmux.pl
+
+    # this section applies to Apache 1 only
+    <Location />
+        SetHandler perl-script
+        PerlHandler RT::Mason
+    </Location>
+
+    # this section applies to Apache2+mod_perl2 only
+    <FilesMatch "\.html$">
+        SetHandler perl-script
+        PerlHandler RT::Mason
+    </FilesMatch>
+    <LocationMatch "/Attachment/">
+        SetHandler perl-script
+        PerlHandler RT::Mason
+    </LocationMatch>
+    <LocationMatch "/REST/">
+        SetHandler perl-script
+        PerlHandler RT::Mason
+    </LocationMatch>
 </VirtualHost>
 
-Additionally, you should set up a cron job to remove stale session data.
-
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- WARNING: Don't install this cron job or run this find command if your
- MASON_SESSION_PATH (known in config.pm as $MasonSessionDir) 
- points to a directory that could  EVER contain any file that's not 
- a Apache::Session datafile.
-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-# Every hour, nuke session files and lockfiles that haven't been 
-# touched in 10 hours
-
-0 * * * * find /path/to/rt2/WebRT/sessiondata -type f -amin +600 -exec rm {} \;
 
 
-THE CLI
--------
-        Binaries for the CLI are located in rt/bin
-        You've got:
+SETTING UP THE MAIL GATEWAY 
+---------------------------
 
-                "rt" (manipulate or display requests) 
-                "rtadmin" (modify queues, users and acls)
+An alias for the initial queue will need to be made in either your
+global mail aliases file (if you are using NIS) or locally on your
+machine.
+Add the following lines to /etc/aliases (or your local equivalent) :
 
-        Both of these programs take --help as an option.
+rt:         "|/opt/rt3/bin/rt-mailgate --queue general --action correspond --url http://localhost/"
+rt-comment: "|/opt/rt3/bin/rt-mailgate --queue general --action comment --url http://localhost/"
+                                            |                |             |
+                            <queue-name>----/                |             |
+                                                             |             |
+               <correspond or comment depending on whether   |             |
+               the mail should be resent to the requestor>---/             |
+                                                                           |
+                                            <URL for RT's web interface>---/
 
 
 BUGS
 ----
 
-Known issues with releases of RT2 are listed at 
-<URL:http://fsck.com/rt2/NoAuth/Errata.html>.  This includes every bug known
-to exist in each release of RT.  (When prompted, login as guest/guest)
-
-To find out more about currently open bugs, check out the live 
-Buglist at  <URL:http://fsck.com/rt2/NoAuth/Buglist.html>.
-(When prompted, login as guest/guest)
-
-To report a bug, send an email to rt-2.0-bugs@fsck.com.
+To report a bug, send email to rt-3.0-bugs@fsck.com.
 
 GETTING HELP
 ------------
@@ -249,8 +261,8 @@ information about commercial support options, please send email to
 RT-USERS MAILINGLIST
 --------------------
 
-To keep up to date on the latest RT tips, techniques and extections,
-you probably want to join the rt-users mailinglist.  Send a message to:
+To keep up to date on the latest RT tips, techniques and extensions,
+you probably want to join the rt-users mailing list.  Send a message to:
 
          rt-users-request@lists.fsck.com 
 
@@ -258,79 +270,31 @@ With the body of the message consisting of only the word:
 
         subscribe
 
-If you're interested in hacking on rt, you'll want to subscribe to
+If you're interested in hacking on RT, you'll want to subscribe to
 rt-devel@lists.fsck.com.  Subscribe to it with instructions similar to
 those above.
 
 Address questions about the stable release to the rt-users list, and
 questions about the development version to the rt-devel list.  If you feel
-your questions are best not asked publically, send them personally to
+your questions are best not asked publicly, send them personally to
 <jesse@bestpractical.com>.
 
-If you want to be informed of every commit to the CVS repository,
-subscribe to rt-commit@fsck.com using similar instructions to those above.
-
 
 RT WEBSITE
 ----------
 
 For current information about RT, check out the RT website at 
-http://www.bestpractical.com/rt  You'll find screenshots, a pointer
-to the current version of rt, contributed patches and lots of other great
-stuff.
+        http://www.bestpractical.com/  
+
+You'll find screenshots, a pointer to the current version of RT, contributed 
+patches, and lots of other great stuff.
 
 
 TROUBLESHOOTING
 ---------------
 
-All errors will be appended to a logfile, which lives in /tmp/rt.log.* unless 
-you've reconfigured it.  Check etc/config.pm for details.
-
 If the solution to the problem you're running into isn't obvious and you've 
-checked the FAQ, feel free to send mail to rt-users@fsck.com (for release 
+checked the FAQ, feel free to send mail to rt-users@fsck.com (for released 
 versions of RT) or rt-devel@fsck.com (for development versions).
 
-GIVING SOMETHING BACK
----------------------
-
-RT is free software. You are not obligated to pay for it.  You should be 
-aware, however, that bestpractical.com's sole source of revenue is commercial
-work related to RT. If you are able, either a contract to extend RT in some 
-way that would be useful to your organization, a financial contribution, or 
-even something off the author's amazon wishlist 
-       ( http://www.amazon.com/exec/obidos/wishlist/2GMHUDAFBT2XR/ )
-would be much appreciated. 
-
 Thanks!
-
-
-CREDITS
--------
-
-A lot of people are responsible for making RT a better program.  Many
-thanks to Lauren Burka, who originally tasked me with writing this beast.
-She forced me to use a database backend.  I've thanked her for it every
-day since.  Rich West rewrote this readme and did some UI hacking.  Adam
-Hirsch, Kit Kraysha, Robin Garner, Jens Glaser, John Adams, Trey Belew, 
-Sean Dague, Nathan Mehl, Kee Hinckley, Rich West, Dale Bewley, Serge Zhuk,
-John Lengeling, Elmar Knipp, Gerald Abshez, Dave Hull, Dave Schenet,
-Dave Walton, Jan Okrouhly, Tobias Brox, Lamont Lucas, Charlie Brady,
-Robin Shostack, Eric Mumpower, Jerrod Wiesman, Adam Hammer, Ivan Kohler, Alex
-Pilosov, Mary Alderdice, Deborah Kaplan, Jens von B├╝low, Tristan Horn,
-Lee Ann Goldstein, Karel P Kerezman, Feargal Reilly, Christian Steger,
-Christian Kurz, JD Falk, Arthur de Jong, Ben Carter, Mark Vevers
-and many others
-have all contributed bug reports, code or ideas that have helped RT along.  
-
-Arepa, Inc, Utopia Inc, Wesleyan University and The Leftbank Operation 
-have paid me to maintain RT and release it to the public.  Without their 
-support RT would not exist.  
-
-If I've left you out, please drop me a line ....it wasn't intentional. 
-
-        Enjoy
-
-        Jesse Vincent
-       <jesse@bestpractical.com>
-        Best Practical Solutions, LLC
diff --git a/rt/aclocal.m4 b/rt/aclocal.m4
new file mode 100644 (file)
index 0000000..475b389
--- /dev/null
@@ -0,0 +1,158 @@
+dnl aclocal.m4 generated automatically by aclocal 1.4-p4
+
+dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+
+dnl
+dnl @synopsis RT_ENABLE_LAYOUT()
+dnl
+dnl Enable a specific directory layout for the installation to use.
+dnl This configures a command-line parameter that can be specified
+dnl at ./configure invocation.
+dnl
+dnl The use of this feature in this way is a little hackish, but
+dnl better than a heap of options for every directory.
+dnl
+dnl This code is heavily borrowed *cough* from the Apache 2 code.
+dnl
+
+AC_DEFUN([RT_ENABLE_LAYOUT],[
+AC_ARG_ENABLE(layout,
+             AC_HELP_STRING([--enable-layout=LAYOUT],
+                            [Use a specific directory layout (Default: RT3)]),
+             LAYOUT=$enableval)
+
+if test "x$LAYOUT" = "x"; then
+       LAYOUT="RT3"
+fi
+RT_LAYOUT($srcdir/config.layout, $LAYOUT)
+AC_MSG_CHECKING(for chosen layout)
+if test "x$rt_layout_name" = "xno"; then
+       if test "x$LAYOUT" = "xno"; then
+               AC_MSG_RESULT(none)
+       else
+               AC_MSG_RESULT($LAYOUT)
+       fi
+       AC_MSG_ERROR([a valid layout must be specified (or the default used)])
+else
+       AC_SUBST(rt_layout_name)
+       AC_MSG_RESULT($rt_layout_name)
+fi
+])
+
+dnl
+dnl @synopsis RT_LAYOUT(configlayout, layoutname)
+dnl
+dnl This macro reads an Apache-style layout file (specified as the
+dnl configlayout parameter), and searches for a specific layout
+dnl (named using the layoutname parameter).
+dnl
+dnl The entries for a given layout are then inserted into the
+dnl environment such that they become available as substitution
+dnl variables. In addition, the rt_layout_name variable is set
+dnl (but not exported) if the layout is valid.
+dnl
+dnl This code is heavily borrowed *cough* from the Apache 2 codebase.
+dnl
+
+AC_DEFUN([RT_LAYOUT],[
+       if test ! -f $srcdir/config.layout; then
+               AC_MSG_WARN([Layout file $srcdir/config.layout not found])
+               rt_layout_name=no
+       else
+               pldconf=./config.pld
+               $PERL  -0777 -p -e "\$layout = '$2';"  -e '
+               s/.*<Layout\s+$layout>//gims; 
+               s/\<\/Layout\>.*//s; 
+               s/^#.*$//m;
+               s/^\s+//gim;
+               s/\s+$/\n/gim;
+               s/\+$/\/rt3/gim;
+               # m4 will not let us just use $1, we need @S|@1
+               s/^\s*((?:bin|sbin|libexec|data|sysconf|sharedstate|localstate|lib|include|oldinclude|info|man)dir)\s*:\s*(.*)$/@S|@1=@S|@2/gim;
+               s/^\s*(.*?)\s*:\s*(.*)$/\(test "x\@S|@@S|@1" = "xNONE" || test "x\@S|@@S|@1" = "x") && @S|@1=@S|@2/gim;
+                ' < $1 > $pldconf
+
+               if test -s $pldconf; then
+                       rt_layout_name=$2
+                       . $pldconf
+                       changequote({,})
+                       for var in prefix exec_prefix bindir sbindir \
+                                sysconfdir mandir libdir datadir htmldir \
+                                localstatedir logfiledir masonstatedir \
+                                sessionstatedir customdir custometcdir customhtmldir \
+                                customlexdir customlibdir manualdir; do
+                               eval "val=\"\$$var\""
+                               val=`echo $val | sed -e 's:\(.\)/*$:\1:'`
+                               val=`echo $val | 
+                                       sed -e 's:[\$]\([a-z_]*\):${\1}:g'`
+                               eval "$var='$val'"
+                       done
+                       changequote([,])
+               else
+                       rt_layout_name=no
+               fi
+               #rm $pldconf
+       fi
+       RT_SUBST_EXPANDED_ARG(prefix)
+       RT_SUBST_EXPANDED_ARG(exec_prefix)
+       RT_SUBST_EXPANDED_ARG(bindir)
+       RT_SUBST_EXPANDED_ARG(sbindir)
+       RT_SUBST_EXPANDED_ARG(sysconfdir)
+       RT_SUBST_EXPANDED_ARG(mandir)
+       RT_SUBST_EXPANDED_ARG(libdir)
+       RT_SUBST_EXPANDED_ARG(datadir)
+       RT_SUBST_EXPANDED_ARG(htmldir)
+       RT_SUBST_EXPANDED_ARG(manualdir)
+       RT_SUBST_EXPANDED_ARG(localstatedir)
+       RT_SUBST_EXPANDED_ARG(logfiledir)
+       RT_SUBST_EXPANDED_ARG(masonstatedir)
+       RT_SUBST_EXPANDED_ARG(sessionstatedir)
+       RT_SUBST_EXPANDED_ARG(customdir)
+       RT_SUBST_EXPANDED_ARG(custometcdir)
+       RT_SUBST_EXPANDED_ARG(customhtmldir)
+       RT_SUBST_EXPANDED_ARG(customlexdir)
+       RT_SUBST_EXPANDED_ARG(customlibdir)
+])dnl
+
+dnl
+dnl @synopsis  RT_SUBST_EXPANDED_ARG(var)
+dnl
+dnl Export (via AC_SUBST) a given variable, along with an expanded
+dnl version of the variable (same name, but with exp_ prefix).
+dnl
+dnl This code is heavily borrowed *cough* from the Apache 2 source.
+dnl
+
+AC_DEFUN([RT_SUBST_EXPANDED_ARG],[
+       RT_EXPAND_VAR(exp_$1, [$]$1)
+       AC_SUBST($1)
+       AC_SUBST(exp_$1)
+])
+
+dnl
+dnl @synopsis  RT_EXPAND_VAR(baz, $fraz)
+dnl
+dnl Iteratively expands the second parameter, until successive iterations
+dnl yield no change. The result is then assigned to the first parameter.
+dnl
+dnl This code is heavily borrowed from the Apache 2 codebase.
+dnl
+
+AC_DEFUN([RT_EXPAND_VAR],[
+       ap_last=''
+       ap_cur='$2'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       $1="${ap_cur}"
+])
+
diff --git a/rt/autom4te.cache/output.0 b/rt/autom4te.cache/output.0
new file mode 100644 (file)
index 0000000..51a8aaf
--- /dev/null
@@ -0,0 +1,2747 @@
+@%:@! /bin/sh
+@%:@ From configure.ac Revision: 1.1 .
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.53 for RT 3.0.4.
+@%:@
+@%:@ Report bugs to <rt-3.0-bugs@fsck.com>.
+@%:@ 
+@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+@%:@ Free Software Foundation, Inc.
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# NLS nuisances.
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
+    { $as_unset LANG || test "${LANG+set}" != set; } ||
+      { LANG=C; export LANG; }
+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
+    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
+      { LC_ALL=C; export LC_ALL; }
+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
+    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
+      { LC_TIME=C; export LC_TIME; }
+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
+    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
+      { LC_CTYPE=C; export LC_CTYPE; }
+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
+    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
+      { LANGUAGE=C; export LANGUAGE; }
+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
+    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
+      { LC_COLLATE=C; export LC_COLLATE; }
+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
+    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
+      { LC_NUMERIC=C; export LC_NUMERIC; }
+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
+    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
+      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+
+# Name of the executable.
+as_me=`(basename "$0") 2>/dev/null ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)$' \| \
+        .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+         /^X\/\(\/\/\)$/{ s//\1/; q; }
+         /^X\/\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conftest.sh
+  echo  "exit 0"   >>conftest.sh
+  chmod +x conftest.sh
+  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conftest.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+        case $as_dir in
+        /*)
+          if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+            CONFIG_SHELL=$as_dir/$as_base
+            export CONFIG_SHELL
+            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+          fi;;
+        esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='     ' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS="  $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME='RT'
+PACKAGE_TARNAME='rt'
+PACKAGE_VERSION='3.0.4'
+PACKAGE_STRING='RT 3.0.4'
+PACKAGE_BUGREPORT='rt-3.0-bugs@fsck.com'
+
+ac_unique_file="lib/RT.pm.in"
+ac_default_prefix=/opt/rt3
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_option in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_$ac_feature='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_$ac_package='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+              localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$0" : 'X\(//\)[^/]' \| \
+         X"$0" : 'X\(//\)$' \| \
+         X"$0" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
+  else
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+  fi
+fi
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_PERL_set=${PERL+set}
+ac_env_PERL_value=$PERL
+ac_cv_env_PERL_set=${PERL+set}
+ac_cv_env_PERL_value=$PERL
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures RT 3.0.4 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+  cat <<_ACEOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
+_ACEOF
+
+  cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of RT 3.0.4:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-layout=LAYOUT  Use a specific directory layout (Default: RT3)
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-speedycgi=/path/to/speedy 
+                          path to your speedycgi binary, if it exists
+  --with-rt-group=GROUP   group to own all files (default: rt)
+  --with-bin-owner=OWNER  user that will own rt binaries (default root)
+  --with-libs-owner=OWNER user that will own RT libraries (default root)
+  --with-libs-group=GROUP group that will own rt binaries (default bin)
+  --with-db-type=TYPE     sort of database RT will use (default: mysql) (mysql
+                          and Pg are valid)
+  --with-db-host=HOSTNAME FQDN of database server (default: localhost)
+  --with-db-port=PORT     port on which the database listens on
+  --with-db-rt-host=HOSTNAME 
+                          FQDN of RT server which talks to the database server
+                          (default: localhost)
+  --with-db-dba=DBA       name of database administrator (default: root)
+  --with-db-database=DBNAME 
+                          name of the database to use (default: rt3)
+  --with-db-rt-user=DBUSER 
+                          name of database user (default: rt_user)
+  --with-db-rt-pass=PASSWORD 
+                          password for database user (default: rt_pass)
+  --with-web-user=USER    user the web server runs as (default: www)
+  --with-web-group=GROUP  group the web server runs as (default: www)
+
+Some influential environment variables:
+  PERL        Perl interpreter command
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <rt-3.0-bugs@fsck.com>.
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d $ac_dir || continue
+    ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+    cd $ac_dir
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+           test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd $ac_popdir
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\_ACEOF
+RT configure 3.0.4
+generated by GNU Autoconf 2.53
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by RT $as_me 3.0.4, which was
+generated by GNU Autoconf 2.53.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+@%:@@%:@ --------- @%:@@%:@
+@%:@@%:@ Platform. @%:@@%:@
+@%:@@%:@ --------- @%:@@%:@
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+@%:@@%:@ ----------- @%:@@%:@
+@%:@@%:@ Core tests. @%:@@%:@
+@%:@@%:@ ----------- @%:@@%:@
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell meta-characters.
+ac_configure_args=
+ac_sep=
+for ac_arg
+do
+  case $ac_arg in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n ) continue ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    continue ;;
+  *" "*|*"     "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+  esac
+  case " $ac_configure_args " in
+    *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+    *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+       ac_sep=" " ;;
+  esac
+  # Get rid of the leading space.
+done
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+    cat <<\_ASBOX
+@%:@@%:@ ---------------- @%:@@%:@
+@%:@@%:@ Cache variables. @%:@@%:@
+@%:@@%:@ ---------------- @%:@@%:@
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+}
+    echo
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+@%:@@%:@ ----------- @%:@@%:@
+@%:@@%:@ confdefs.h. @%:@@%:@
+@%:@@%:@ ----------- @%:@@%:@
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core core.* *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+        ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"   "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rt_version_major=3
+
+rt_version_minor=0
+
+rt_version_patch=4
+
+test "x$rt_version_major" = 'x' && rt_version_major=0
+test "x$rt_version_minor" = 'x' && rt_version_minor=0
+test "x$rt_version_patch" = 'x' && rt_version_patch=0
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+          if test $ac_prog = install &&
+            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+            # AIX install.  It has an incompatible calling convention.
+            :
+          elif test $ac_prog = install &&
+            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+            # program-specific install script used by HP pwplus--don't use.
+            :
+          else
+            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+            break 3
+          fi
+        fi
+      done
+    done
+    ;;
+esac
+done
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL=$ac_install_sh
+  fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PERL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PERL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="not found"
+  ;;
+esac
+fi
+PERL=$ac_cv_path_PERL
+
+if test -n "$PERL"; then
+  echo "$as_me:$LINENO: result: $PERL" >&5
+echo "${ECHO_T}$PERL" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test "$PERL" = 'not found'; then
+       { { echo "$as_me:$LINENO: error: cannot use $PACKAGE_NAME without perl" >&5
+echo "$as_me: error: cannot use $PACKAGE_NAME without perl" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# Check whether --with-speedycgi or --without-speedycgi was given.
+if test "${with_speedycgi+set}" = set; then
+  withval="$with_speedycgi"
+  SPEEDY_BIN=$withval
+else
+  SPEEDY_BIN=/usr/local/bin/speedy
+fi;  
+
+
+
+
+
+# Check whether --enable-layout or --disable-layout was given.
+if test "${enable_layout+set}" = set; then
+  enableval="$enable_layout"
+  LAYOUT=$enableval
+fi; 
+
+if test "x$LAYOUT" = "x"; then
+       LAYOUT="RT3"
+fi
+
+       if test ! -f $srcdir/config.layout; then
+               { echo "$as_me:$LINENO: WARNING: Layout file $srcdir/config.layout not found" >&5
+echo "$as_me: WARNING: Layout file $srcdir/config.layout not found" >&2;}
+               rt_layout_name=no
+       else
+               pldconf=./config.pld
+               $PERL  -0777 -p -e "\$layout = '$LAYOUT';"  -e '
+               s/.*<Layout\s+$layout>//gims; 
+               s/\<\/Layout\>.*//s; 
+               s/^#.*$//m;
+               s/^\s+//gim;
+               s/\s+$/\n/gim;
+               s/\+$/\/rt3/gim;
+               # m4 will not let us just use $srcdir/config.layout, we need @S|@1
+               s/^\s*((?:bin|sbin|libexec|data|sysconf|sharedstate|localstate|lib|include|oldinclude|info|man)dir)\s*:\s*(.*)$/@S|@1=@S|@2/gim;
+               s/^\s*(.*?)\s*:\s*(.*)$/\(test "x\@S|@@S|@1" = "xNONE" || test "x\@S|@@S|@1" = "x") && @S|@1=@S|@2/gim;
+                ' < $srcdir/config.layout > $pldconf
+
+               if test -s $pldconf; then
+                       rt_layout_name=$LAYOUT
+                       . $pldconf
+                       
+                       for var in prefix exec_prefix bindir sbindir \
+                                sysconfdir mandir libdir datadir htmldir \
+                                localstatedir logfiledir masonstatedir \
+                                sessionstatedir customdir custometcdir customhtmldir \
+                                customlexdir customlibdir manualdir; do
+                               eval "val=\"\$$var\""
+                               val=`echo $val | sed -e 's:\(.\)/*$:\1:'`
+                               val=`echo $val | 
+                                       sed -e 's:[\$]\([a-z_]*\):$\1:g'`
+                               eval "$var='$val'"
+                       done
+                       
+               else
+                       rt_layout_name=no
+               fi
+               #rm $pldconf
+       fi
+       
+       
+       ap_last=''
+       ap_cur='$prefix'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_prefix="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$exec_prefix'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_exec_prefix="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$bindir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_bindir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$sbindir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_sbindir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$sysconfdir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_sysconfdir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$mandir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_mandir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$libdir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_libdir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$datadir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_datadir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$htmldir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_htmldir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$manualdir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_manualdir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$localstatedir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_localstatedir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$logfiledir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_logfiledir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$masonstatedir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_masonstatedir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$sessionstatedir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_sessionstatedir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$customdir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_customdir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$custometcdir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_custometcdir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$customhtmldir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_customhtmldir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$customlexdir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_customlexdir="${ap_cur}"
+
+       
+       
+
+       
+       
+       ap_last=''
+       ap_cur='$customlibdir'
+       while test "x${ap_cur}" != "x${ap_last}"; do
+               ap_last="${ap_cur}"
+               ap_cur=`eval "echo ${ap_cur}"`
+       done
+       exp_customlibdir="${ap_cur}"
+
+       
+       
+
+
+echo "$as_me:$LINENO: checking for chosen layout" >&5
+echo $ECHO_N "checking for chosen layout... $ECHO_C" >&6
+if test "x$rt_layout_name" = "xno"; then
+       if test "x$LAYOUT" = "xno"; then
+               echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6
+       else
+               echo "$as_me:$LINENO: result: $LAYOUT" >&5
+echo "${ECHO_T}$LAYOUT" >&6
+       fi
+       { { echo "$as_me:$LINENO: error: a valid layout must be specified (or the default used)" >&5
+echo "$as_me: error: a valid layout must be specified (or the default used)" >&2;}
+   { (exit 1); exit 1; }; }
+else
+       
+       echo "$as_me:$LINENO: result: $rt_layout_name" >&5
+echo "${ECHO_T}$rt_layout_name" >&6
+fi
+
+
+
+# Check whether --with-rt-group or --without-rt-group was given.
+if test "${with_rt_group+set}" = set; then
+  withval="$with_rt_group"
+  RTGROUP=$withval
+else
+  RTGROUP=rt
+fi; 
+
+
+
+# Check whether --with-bin-owner or --without-bin-owner was given.
+if test "${with_bin_owner+set}" = set; then
+  withval="$with_bin_owner"
+  BIN_OWNER=$withval
+else
+  BIN_OWNER=root
+fi; 
+
+
+
+# Check whether --with-libs-owner or --without-libs-owner was given.
+if test "${with_libs_owner+set}" = set; then
+  withval="$with_libs_owner"
+  LIBS_OWNER=$withval
+else
+  LIBS_OWNER=root
+fi; 
+
+
+
+# Check whether --with-libs-group or --without-libs-group was given.
+if test "${with_libs_group+set}" = set; then
+  withval="$with_libs_group"
+  LIBS_GROUP=$withval
+else
+  LIBS_GROUP=bin
+fi; 
+
+
+
+# Check whether --with-db-type or --without-db-type was given.
+if test "${with_db_type+set}" = set; then
+  withval="$with_db_type"
+  DB_TYPE=$withval
+else
+  DB_TYPE=mysql
+fi; 
+if test "$DB_TYPE" != 'mysql' -a "$DB_TYPE" != 'Pg' -a "$DB_TYPE" != 'SQLite'; then
+       { { echo "$as_me:$LINENO: error: Only Pg and mysql are valid db types" >&5
+echo "$as_me: error: Only Pg and mysql are valid db types" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+# Check whether --with-db-host or --without-db-host was given.
+if test "${with_db_host+set}" = set; then
+  withval="$with_db_host"
+  DB_HOST=$withval
+else
+  DB_HOST=localhost
+fi; 
+
+
+
+# Check whether --with-db-port or --without-db-port was given.
+if test "${with_db_port+set}" = set; then
+  withval="$with_db_port"
+  DB_PORT=$withval
+else
+  DB_PORT=
+fi; 
+
+
+
+# Check whether --with-db-rt-host or --without-db-rt-host was given.
+if test "${with_db_rt_host+set}" = set; then
+  withval="$with_db_rt_host"
+  DB_RT_HOST=$withval
+else
+  DB_RT_HOST=localhost
+fi; 
+
+
+
+# Check whether --with-db-dba or --without-db-dba was given.
+if test "${with_db_dba+set}" = set; then
+  withval="$with_db_dba"
+  DB_DBA=$withval
+else
+  DB_DBA=root
+fi; 
+
+
+
+# Check whether --with-db-database or --without-db-database was given.
+if test "${with_db_database+set}" = set; then
+  withval="$with_db_database"
+  DB_DATABASE=$withval
+else
+  DB_DATABASE=rt3
+fi; 
+
+
+
+# Check whether --with-db-rt-user or --without-db-rt-user was given.
+if test "${with_db_rt_user+set}" = set; then
+  withval="$with_db_rt_user"
+  DB_RT_USER=$withval
+else
+  DB_RT_USER=rt_user
+fi; 
+
+
+
+# Check whether --with-db-rt-pass or --without-db-rt-pass was given.
+if test "${with_db_rt_pass+set}" = set; then
+  withval="$with_db_rt_pass"
+  DB_RT_PASS=$withval
+else
+  DB_RT_PASS=rt_pass
+fi; 
+
+
+
+# Check whether --with-web-user or --without-web-user was given.
+if test "${with_web_user+set}" = set; then
+  withval="$with_web_user"
+  WEB_USER=$withval
+else
+  WEB_USER=www
+fi; 
+
+
+
+# Check whether --with-web-group or --without-web-group was given.
+if test "${with_web_group+set}" = set; then
+  withval="$with_web_group"
+  WEB_GROUP=$withval
+else
+  WEB_GROUP=www
+fi; 
+
+
+
+RT_VERSION_MAJOR=${rt_version_major}
+
+RT_VERSION_MINOR=${rt_version_minor}
+
+RT_VERSION_PATCH=${rt_version_patch}
+
+
+RT_PATH=${exp_prefix}
+
+RT_DOC_PATH=${exp_manualdir}
+
+RT_LOCAL_PATH=${exp_customdir}
+
+RT_LIB_PATH=${exp_libdir}
+
+RT_ETC_PATH=${exp_sysconfdir}
+
+CONFIG_FILE_PATH=${exp_sysconfdir}
+
+RT_BIN_PATH=${exp_bindir}
+
+RT_SBIN_PATH=${exp_sbindir}
+
+RT_VAR_PATH=${exp_localstatedir}
+
+RT_MAN_PATH=${exp_mandir}
+
+MASON_DATA_PATH=${exp_masonstatedir}
+
+MASON_SESSION_PATH=${exp_sessionstatedir}
+
+MASON_HTML_PATH=${exp_htmldir}
+
+LOCAL_ETC_PATH=${exp_custometcdir}
+
+MASON_LOCAL_HTML_PATH=${exp_customhtmldir}
+
+LOCAL_LEXICON_PATH=${exp_customlexdir}
+
+LOCAL_LIB_PATH=${exp_customlibdir}
+
+DESTDIR=${exp_prefix}
+
+RT_LOG_PATH=${exp_logfiledir}
+
+
+
+ac_config_files="$ac_config_files sbin/rt-setup-database sbin/rt-test-dependencies Makefile etc/RT_Config.pm lib/RT.pm lib/t/00smoke.t lib/t/01harness.t lib/t/02regression.t lib/t/03web.pl lib/t/04_send_email.pl bin/mason_handler.fcgi bin/mason_handler.scgi bin/mason_handler.svc bin/rt-commit-handler bin/rt-crontool bin/rt-mailgate bin/webmux.pl"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+        "s/'/'\\\\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if cmp -s $cache_file confcache; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[        ]*VPATH[        ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[   ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[     ]*$//;
+}'
+fi
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\_ACEOF
+t clear
+: clear
+s,^[   ]*#[    ]*define[       ][      ]*\([^  (][^    (]*([^)]*)\)[   ]*\(.*\),-D\1=\2,g
+t quote
+s,^[   ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[    `~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
+_ACEOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output.  A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+
+# NLS nuisances.
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
+    { $as_unset LANG || test "${LANG+set}" != set; } ||
+      { LANG=C; export LANG; }
+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
+    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
+      { LC_ALL=C; export LC_ALL; }
+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
+    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
+      { LC_TIME=C; export LC_TIME; }
+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
+    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
+      { LC_CTYPE=C; export LC_CTYPE; }
+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
+    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
+      { LANGUAGE=C; export LANGUAGE; }
+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
+    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
+      { LC_COLLATE=C; export LC_COLLATE; }
+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
+    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
+      { LC_NUMERIC=C; export LC_NUMERIC; }
+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
+    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
+      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+
+# Name of the executable.
+as_me=`(basename "$0") 2>/dev/null ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$0" : 'X\(//\)$' \| \
+        X"$0" : 'X\(/\)$' \| \
+        .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+         /^X\/\(\/\/\)$/{ s//\1/; q; }
+         /^X\/\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conftest.sh
+  echo  "exit 0"   >>conftest.sh
+  chmod +x conftest.sh
+  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conftest.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+        case $as_dir in
+        /*)
+          if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+            CONFIG_SHELL=$as_dir/$as_base
+            export CONFIG_SHELL
+            exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+          fi;;
+        esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='     ' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS="  $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX
+@%:@@%:@ Running $as_me. @%:@@%:@
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by RT $as_me 3.0.4, which was
+generated by GNU Autoconf 2.53.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+RT config.status 3.0.4
+configured by $0, generated by GNU Autoconf 2.53,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    shift
+    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+    shift
+    ;;
+  -*);;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_need_defaults=false;;
+  esac
+
+  case $1 in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    shift
+    CONFIG_FILES="$CONFIG_FILES $1"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    ac_need_defaults=false;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "sbin/rt-setup-database" ) CONFIG_FILES="$CONFIG_FILES sbin/rt-setup-database" ;;
+  "sbin/rt-test-dependencies" ) CONFIG_FILES="$CONFIG_FILES sbin/rt-test-dependencies" ;;
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "etc/RT_Config.pm" ) CONFIG_FILES="$CONFIG_FILES etc/RT_Config.pm" ;;
+  "lib/RT.pm" ) CONFIG_FILES="$CONFIG_FILES lib/RT.pm" ;;
+  "lib/t/00smoke.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/00smoke.t" ;;
+  "lib/t/01harness.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/01harness.t" ;;
+  "lib/t/02regression.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/02regression.t" ;;
+  "lib/t/03web.pl" ) CONFIG_FILES="$CONFIG_FILES lib/t/03web.pl" ;;
+  "lib/t/04_send_email.pl" ) CONFIG_FILES="$CONFIG_FILES lib/t/04_send_email.pl" ;;
+  "bin/mason_handler.fcgi" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.fcgi" ;;
+  "bin/mason_handler.scgi" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.scgi" ;;
+  "bin/mason_handler.svc" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.svc" ;;
+  "bin/rt-commit-handler" ) CONFIG_FILES="$CONFIG_FILES bin/rt-commit-handler" ;;
+  "bin/rt-crontool" ) CONFIG_FILES="$CONFIG_FILES bin/rt-crontool" ;;
+  "bin/rt-mailgate" ) CONFIG_FILES="$CONFIG_FILES bin/rt-mailgate" ;;
+  "bin/webmux.pl" ) CONFIG_FILES="$CONFIG_FILES bin/webmux.pl" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+fi
+
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=$TMPDIR/cs$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@rt_version_major@,$rt_version_major,;t t
+s,@rt_version_minor@,$rt_version_minor,;t t
+s,@rt_version_patch@,$rt_version_patch,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@PERL@,$PERL,;t t
+s,@SPEEDY_BIN@,$SPEEDY_BIN,;t t
+s,@exp_prefix@,$exp_prefix,;t t
+s,@exp_exec_prefix@,$exp_exec_prefix,;t t
+s,@exp_bindir@,$exp_bindir,;t t
+s,@exp_sbindir@,$exp_sbindir,;t t
+s,@exp_sysconfdir@,$exp_sysconfdir,;t t
+s,@exp_mandir@,$exp_mandir,;t t
+s,@exp_libdir@,$exp_libdir,;t t
+s,@exp_datadir@,$exp_datadir,;t t
+s,@htmldir@,$htmldir,;t t
+s,@exp_htmldir@,$exp_htmldir,;t t
+s,@manualdir@,$manualdir,;t t
+s,@exp_manualdir@,$exp_manualdir,;t t
+s,@exp_localstatedir@,$exp_localstatedir,;t t
+s,@logfiledir@,$logfiledir,;t t
+s,@exp_logfiledir@,$exp_logfiledir,;t t
+s,@masonstatedir@,$masonstatedir,;t t
+s,@exp_masonstatedir@,$exp_masonstatedir,;t t
+s,@sessionstatedir@,$sessionstatedir,;t t
+s,@exp_sessionstatedir@,$exp_sessionstatedir,;t t
+s,@customdir@,$customdir,;t t
+s,@exp_customdir@,$exp_customdir,;t t
+s,@custometcdir@,$custometcdir,;t t
+s,@exp_custometcdir@,$exp_custometcdir,;t t
+s,@customhtmldir@,$customhtmldir,;t t
+s,@exp_customhtmldir@,$exp_customhtmldir,;t t
+s,@customlexdir@,$customlexdir,;t t
+s,@exp_customlexdir@,$exp_customlexdir,;t t
+s,@customlibdir@,$customlibdir,;t t
+s,@exp_customlibdir@,$exp_customlibdir,;t t
+s,@rt_layout_name@,$rt_layout_name,;t t
+s,@RTGROUP@,$RTGROUP,;t t
+s,@BIN_OWNER@,$BIN_OWNER,;t t
+s,@LIBS_OWNER@,$LIBS_OWNER,;t t
+s,@LIBS_GROUP@,$LIBS_GROUP,;t t
+s,@DB_TYPE@,$DB_TYPE,;t t
+s,@DB_HOST@,$DB_HOST,;t t
+s,@DB_PORT@,$DB_PORT,;t t
+s,@DB_RT_HOST@,$DB_RT_HOST,;t t
+s,@DB_DBA@,$DB_DBA,;t t
+s,@DB_DATABASE@,$DB_DATABASE,;t t
+s,@DB_RT_USER@,$DB_RT_USER,;t t
+s,@DB_RT_PASS@,$DB_RT_PASS,;t t
+s,@WEB_USER@,$WEB_USER,;t t
+s,@WEB_GROUP@,$WEB_GROUP,;t t
+s,@RT_VERSION_MAJOR@,$RT_VERSION_MAJOR,;t t
+s,@RT_VERSION_MINOR@,$RT_VERSION_MINOR,;t t
+s,@RT_VERSION_PATCH@,$RT_VERSION_PATCH,;t t
+s,@RT_PATH@,$RT_PATH,;t t
+s,@RT_DOC_PATH@,$RT_DOC_PATH,;t t
+s,@RT_LOCAL_PATH@,$RT_LOCAL_PATH,;t t
+s,@RT_LIB_PATH@,$RT_LIB_PATH,;t t
+s,@RT_ETC_PATH@,$RT_ETC_PATH,;t t
+s,@CONFIG_FILE_PATH@,$CONFIG_FILE_PATH,;t t
+s,@RT_BIN_PATH@,$RT_BIN_PATH,;t t
+s,@RT_SBIN_PATH@,$RT_SBIN_PATH,;t t
+s,@RT_VAR_PATH@,$RT_VAR_PATH,;t t
+s,@RT_MAN_PATH@,$RT_MAN_PATH,;t t
+s,@MASON_DATA_PATH@,$MASON_DATA_PATH,;t t
+s,@MASON_SESSION_PATH@,$MASON_SESSION_PATH,;t t
+s,@MASON_HTML_PATH@,$MASON_HTML_PATH,;t t
+s,@LOCAL_ETC_PATH@,$LOCAL_ETC_PATH,;t t
+s,@MASON_LOCAL_HTML_PATH@,$MASON_LOCAL_HTML_PATH,;t t
+s,@LOCAL_LEXICON_PATH@,$LOCAL_LEXICON_PATH,;t t
+s,@LOCAL_LIB_PATH@,$LOCAL_LIB_PATH,;t t
+s,@DESTDIR@,$DESTDIR,;t t
+s,@RT_LOG_PATH@,$RT_LOG_PATH,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+       ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+       ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+        cat >$tmp/stdin
+        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$ac_file" : 'X\(//\)[^/]' \| \
+         X"$ac_file" : 'X\(//\)$' \| \
+         X"$ac_file" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+         /^X\(\/\/\)$/{ s//\1/; q; }
+         /^X\(\/\).*/{ s//\1/; q; }
+         s/.*/./; q'`
+  { case "$ac_dir" in
+  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+  *)                      as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+  case $as_mkdir_dir in
+    # Skip DOS drivespec
+    ?:) as_incr_dir=$as_mkdir_dir ;;
+    *)
+      as_incr_dir=$as_incr_dir/$as_mkdir_dir
+      test -d "$as_incr_dir" ||
+        mkdir "$as_incr_dir" ||
+       { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }
+    ;;
+  esac
+done; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+                                     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+         # Absolute (can't be DOS-style, as IFS=:)
+         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         echo $f;;
+      *) # Relative
+         if test -f "$f"; then
+           # Build tree
+           echo $f
+         elif test -f "$srcdir/$f"; then
+           # Source tree
+           echo $srcdir/$f
+         else
+           # /dev/null tree
+           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+         fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
diff --git a/rt/autom4te.cache/requests b/rt/autom4te.cache/requests
new file mode 100644 (file)
index 0000000..fad7b54
--- /dev/null
@@ -0,0 +1,94 @@
+# This file was created by autom4te.
+# It contains the lists of macros which have been traced.
+# It can be safely removed.
+
+@request = (
+             bless( [
+                      '0',
+                      1,
+                      [
+                        '/usr/share/autoconf'
+                      ],
+                      [
+                        '--reload-state=/usr/share/autoconf/autoconf/autoconf.m4f',
+                        'aclocal.m4',
+                        'configure.ac'
+                      ],
+                      {
+                        'AC_HEADER_STAT' => 1,
+                        'AC_FUNC_STRFTIME' => 1,
+                        'AC_PROG_RANLIB' => 1,
+                        'AC_FUNC_WAIT3' => 1,
+                        'AC_FUNC_SETPGRP' => 1,
+                        'AC_HEADER_TIME' => 1,
+                        'AC_FUNC_SETVBUF_REVERSED' => 1,
+                        'AC_HEADER_SYS_WAIT' => 1,
+                        'AC_TYPE_UID_T' => 1,
+                        'AM_CONDITIONAL' => 1,
+                        'AC_CHECK_LIB' => 1,
+                        'AC_PROG_LN_S' => 1,
+                        'AC_FUNC_MEMCMP' => 1,
+                        'AC_FUNC_FORK' => 1,
+                        'AC_FUNC_GETGROUPS' => 1,
+                        'AC_HEADER_MAJOR' => 1,
+                        'AC_FUNC_STRTOD' => 1,
+                        'AC_HEADER_DIRENT' => 1,
+                        'AC_FUNC_UTIME_NULL' => 1,
+                        'AC_CONFIG_FILES' => 1,
+                        'AC_FUNC_ALLOCA' => 1,
+                        'AC_C_CONST' => 1,
+                        'include' => 1,
+                        'AC_FUNC_OBSTACK' => 1,
+                        'AC_FUNC_LSTAT' => 1,
+                        'AC_STRUCT_TIMEZONE' => 1,
+                        'AC_FUNC_GETPGRP' => 1,
+                        'AC_DEFINE_TRACE_LITERAL' => 1,
+                        'AC_CHECK_HEADERS' => 1,
+                        'AC_TYPE_MODE_T' => 1,
+                        'AC_CHECK_TYPES' => 1,
+                        'AC_PROG_YACC' => 1,
+                        'AC_TYPE_PID_T' => 1,
+                        'AC_FUNC_STRERROR_R' => 1,
+                        'AC_STRUCT_ST_BLOCKS' => 1,
+                        'AC_PROG_GCC_TRADITIONAL' => 1,
+                        'AC_TYPE_SIGNAL' => 1,
+                        'AC_FUNC_FNMATCH' => 1,
+                        'AC_PROG_CPP' => 1,
+                        'AM_PROG_LIBTOOL' => 1,
+                        'AC_FUNC_STAT' => 1,
+                        'AC_PROG_INSTALL' => 1,
+                        'AM_GNU_GETTEXT' => 1,
+                        'AC_FUNC_STRCOLL' => 1,
+                        'AC_LIBSOURCE' => 1,
+                        'AC_C_INLINE' => 1,
+                        'AC_FUNC_CHOWN' => 1,
+                        'AC_PROG_LEX' => 1,
+                        'AH_OUTPUT' => 1,
+                        'AC_HEADER_STDC' => 1,
+                        'AC_FUNC_GETLOADAVG' => 1,
+                        'AC_CHECK_FUNCS' => 1,
+                        'AC_TYPE_SIZE_T' => 1,
+                        'AC_DECL_SYS_SIGLIST' => 1,
+                        'AC_FUNC_MKTIME' => 1,
+                        'AC_PROG_MAKE_SET' => 1,
+                        'AC_PROG_CXX' => 1,
+                        'm4_pattern_allow' => 1,
+                        'm4_include' => 1,
+                        'm4_pattern_forbid' => 1,
+                        'AC_PROG_AWK' => 1,
+                        'AC_FUNC_VPRINTF' => 1,
+                        'AC_CONFIG_HEADERS' => 1,
+                        'AC_PATH_X' => 1,
+                        'AC_TYPE_OFF_T' => 1,
+                        'AC_FUNC_MALLOC' => 1,
+                        'AC_FUNC_ERROR_AT_LINE' => 1,
+                        'AC_FUNC_FSEEKO' => 1,
+                        'AC_FUNC_MMAP' => 1,
+                        'AC_STRUCT_TM' => 1,
+                        'AC_SUBST' => 1,
+                        'AC_PROG_CC' => 1,
+                        'AC_PROG_LIBTOOL' => 1
+                      }
+                    ], 'Request' )
+           );
+
diff --git a/rt/autom4te.cache/traces.0 b/rt/autom4te.cache/traces.0
new file mode 100644 (file)
index 0000000..962f400
--- /dev/null
@@ -0,0 +1,156 @@
+m4trace:configure.ac:9: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:9: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:9: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs. LIBOBJS'])
+m4trace:configure.ac:9: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:9: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:9: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:9: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:9: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}])
+m4trace:configure.ac:9: -1- AC_SUBST([PATH_SEPARATOR])
+m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME],      ['AC_PACKAGE_NAME'])])
+m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME],   ['AC_PACKAGE_TARNAME'])])
+m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION],   ['AC_PACKAGE_VERSION'])])
+m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING],    ['AC_PACKAGE_STRING'])])
+m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
+m4trace:configure.ac:9: -1- AC_SUBST([exec_prefix], [NONE])
+m4trace:configure.ac:9: -1- AC_SUBST([prefix], [NONE])
+m4trace:configure.ac:9: -1- AC_SUBST([program_transform_name], [s,x,x,])
+m4trace:configure.ac:9: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
+m4trace:configure.ac:9: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
+m4trace:configure.ac:9: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
+m4trace:configure.ac:9: -1- AC_SUBST([datadir], ['${prefix}/share'])
+m4trace:configure.ac:9: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
+m4trace:configure.ac:9: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
+m4trace:configure.ac:9: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
+m4trace:configure.ac:9: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
+m4trace:configure.ac:9: -1- AC_SUBST([includedir], ['${prefix}/include'])
+m4trace:configure.ac:9: -1- AC_SUBST([oldincludedir], ['/usr/include'])
+m4trace:configure.ac:9: -1- AC_SUBST([infodir], ['${prefix}/info'])
+m4trace:configure.ac:9: -1- AC_SUBST([mandir], ['${prefix}/man'])
+m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
+m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
+#undef PACKAGE_NAME])
+m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
+m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME])
+m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
+m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
+#undef PACKAGE_VERSION])
+m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
+m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING])
+m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
+m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT])
+m4trace:configure.ac:9: -1- AC_SUBST([build_alias])
+m4trace:configure.ac:9: -1- AC_SUBST([host_alias])
+m4trace:configure.ac:9: -1- AC_SUBST([target_alias])
+m4trace:configure.ac:9: -1- AC_SUBST([DEFS])
+m4trace:configure.ac:9: -1- AC_SUBST([ECHO_C])
+m4trace:configure.ac:9: -1- AC_SUBST([ECHO_N])
+m4trace:configure.ac:9: -1- AC_SUBST([ECHO_T])
+m4trace:configure.ac:9: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:14: -1- AC_SUBST([rt_version_major], [3])
+m4trace:configure.ac:16: -1- AC_SUBST([rt_version_minor], [0])
+m4trace:configure.ac:18: -1- AC_SUBST([rt_version_patch], [4])
+m4trace:configure.ac:24: -1- AC_PROG_INSTALL
+m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_PROGRAM])
+m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_SCRIPT])
+m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_DATA])
+m4trace:configure.ac:25: -1- AC_SUBST([PERL])
+m4trace:configure.ac:26: -1- AC_SUBST([PERL], [$ac_cv_path_PERL])
+m4trace:configure.ac:36: -1- AC_SUBST([SPEEDY_BIN])
+m4trace:configure.ac:41: -1- AC_SUBST([prefix])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_prefix])
+m4trace:configure.ac:41: -1- AC_SUBST([exec_prefix])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_exec_prefix])
+m4trace:configure.ac:41: -1- AC_SUBST([bindir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_bindir])
+m4trace:configure.ac:41: -1- AC_SUBST([sbindir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_sbindir])
+m4trace:configure.ac:41: -1- AC_SUBST([sysconfdir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_sysconfdir])
+m4trace:configure.ac:41: -1- AC_SUBST([mandir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_mandir])
+m4trace:configure.ac:41: -1- AC_SUBST([libdir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_libdir])
+m4trace:configure.ac:41: -1- AC_SUBST([datadir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_datadir])
+m4trace:configure.ac:41: -1- AC_SUBST([htmldir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_htmldir])
+m4trace:configure.ac:41: -1- AC_SUBST([manualdir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_manualdir])
+m4trace:configure.ac:41: -1- AC_SUBST([localstatedir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_localstatedir])
+m4trace:configure.ac:41: -1- AC_SUBST([logfiledir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_logfiledir])
+m4trace:configure.ac:41: -1- AC_SUBST([masonstatedir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_masonstatedir])
+m4trace:configure.ac:41: -1- AC_SUBST([sessionstatedir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_sessionstatedir])
+m4trace:configure.ac:41: -1- AC_SUBST([customdir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_customdir])
+m4trace:configure.ac:41: -1- AC_SUBST([custometcdir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_custometcdir])
+m4trace:configure.ac:41: -1- AC_SUBST([customhtmldir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_customhtmldir])
+m4trace:configure.ac:41: -1- AC_SUBST([customlexdir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_customlexdir])
+m4trace:configure.ac:41: -1- AC_SUBST([customlibdir])
+m4trace:configure.ac:41: -1- AC_SUBST([exp_customlibdir])
+m4trace:configure.ac:41: -1- AC_SUBST([rt_layout_name])
+m4trace:configure.ac:49: -1- AC_SUBST([RTGROUP])
+m4trace:configure.ac:57: -1- AC_SUBST([BIN_OWNER])
+m4trace:configure.ac:65: -1- AC_SUBST([LIBS_OWNER])
+m4trace:configure.ac:73: -1- AC_SUBST([LIBS_GROUP])
+m4trace:configure.ac:84: -1- AC_SUBST([DB_TYPE])
+m4trace:configure.ac:92: -1- AC_SUBST([DB_HOST])
+m4trace:configure.ac:100: -1- AC_SUBST([DB_PORT])
+m4trace:configure.ac:108: -1- AC_SUBST([DB_RT_HOST])
+m4trace:configure.ac:116: -1- AC_SUBST([DB_DBA])
+m4trace:configure.ac:124: -1- AC_SUBST([DB_DATABASE])
+m4trace:configure.ac:132: -1- AC_SUBST([DB_RT_USER])
+m4trace:configure.ac:140: -1- AC_SUBST([DB_RT_PASS])
+m4trace:configure.ac:148: -1- AC_SUBST([WEB_USER])
+m4trace:configure.ac:156: -1- AC_SUBST([WEB_GROUP])
+m4trace:configure.ac:163: -1- AC_SUBST([RT_VERSION_MAJOR], [${rt_version_major}])
+m4trace:configure.ac:164: -1- AC_SUBST([RT_VERSION_MINOR], [${rt_version_minor}])
+m4trace:configure.ac:165: -1- AC_SUBST([RT_VERSION_PATCH], [${rt_version_patch}])
+m4trace:configure.ac:168: -1- AC_SUBST([RT_PATH], [${exp_prefix}])
+m4trace:configure.ac:169: -1- AC_SUBST([RT_DOC_PATH], [${exp_manualdir}])
+m4trace:configure.ac:170: -1- AC_SUBST([RT_LOCAL_PATH], [${exp_customdir}])
+m4trace:configure.ac:171: -1- AC_SUBST([RT_LIB_PATH], [${exp_libdir}])
+m4trace:configure.ac:172: -1- AC_SUBST([RT_ETC_PATH], [${exp_sysconfdir}])
+m4trace:configure.ac:173: -1- AC_SUBST([CONFIG_FILE_PATH], [${exp_sysconfdir}])
+m4trace:configure.ac:174: -1- AC_SUBST([RT_BIN_PATH], [${exp_bindir}])
+m4trace:configure.ac:175: -1- AC_SUBST([RT_SBIN_PATH], [${exp_sbindir}])
+m4trace:configure.ac:176: -1- AC_SUBST([RT_VAR_PATH], [${exp_localstatedir}])
+m4trace:configure.ac:177: -1- AC_SUBST([RT_MAN_PATH], [${exp_mandir}])
+m4trace:configure.ac:178: -1- AC_SUBST([MASON_DATA_PATH], [${exp_masonstatedir}])
+m4trace:configure.ac:179: -1- AC_SUBST([MASON_SESSION_PATH], [${exp_sessionstatedir}])
+m4trace:configure.ac:180: -1- AC_SUBST([MASON_HTML_PATH], [${exp_htmldir}])
+m4trace:configure.ac:181: -1- AC_SUBST([LOCAL_ETC_PATH], [${exp_custometcdir}])
+m4trace:configure.ac:182: -1- AC_SUBST([MASON_LOCAL_HTML_PATH], [${exp_customhtmldir}])
+m4trace:configure.ac:183: -1- AC_SUBST([LOCAL_LEXICON_PATH], [${exp_customlexdir}])
+m4trace:configure.ac:184: -1- AC_SUBST([LOCAL_LIB_PATH], [${exp_customlibdir}])
+m4trace:configure.ac:185: -1- AC_SUBST([DESTDIR], [${exp_prefix}])
+m4trace:configure.ac:186: -1- AC_SUBST([RT_LOG_PATH], [${exp_logfiledir}])
+m4trace:configure.ac:208: -1- AC_CONFIG_FILES([
+                sbin/rt-setup-database
+                 sbin/rt-test-dependencies
+                 Makefile
+                etc/RT_Config.pm
+                lib/RT.pm
+                 lib/t/00smoke.t
+                 lib/t/01harness.t
+                 lib/t/02regression.t
+                 lib/t/03web.pl
+                 lib/t/04_send_email.pl
+                bin/mason_handler.fcgi
+                bin/mason_handler.scgi
+                bin/mason_handler.svc
+                bin/rt-commit-handler
+                bin/rt-crontool
+                bin/rt-mailgate
+                bin/webmux.pl
+                ])
index e8a4e12..431eccb 100755 (executable)
-#!!!PERL!!
-# $Header: /home/cvs/cvsroot/freeside/rt/bin/mason_handler.fcgi,v 1.1 2002-08-12 06:17:07 ivan Exp $
-# RT is (c) 1996-2001 Jesse Vincent (jesse@fsck.com);
+#!/usr/bin/perl
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
 
 use strict;
-$ENV{'PATH'} = '/bin:/usr/bin';    # or whatever you need
-$ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'};
-$ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'};
-$ENV{'ENV'} = '' if defined $ENV{'ENV'};
-$ENV{'IFS'} = ''          if defined $ENV{'IFS'};
+use File::Basename;
+require ('/opt/rt3/bin/webmux.pl');
 
+my $h = &RT::Interface::Web::NewCGIHandler();
 
-# We really don't want apache to try to eat all vm
-# see http://perl.apache.org/guide/control.html#Preventing_mod_perl_Processes_Fr
-
-
-package RT::Mason;
-#use CGI qw(-private_tempfiles);   # pull in CGI with the private tempfiles
-                                 #option predefined
-use HTML::Mason;  # brings in subpackages: Parser, Interp, etc.
-
-use vars qw($VERSION %session $Nobody $SystemUser $cgi);
-
-# List of modules that you want to use from components (see Admin
-# manual for details)
-
-#Clean up our umask...so that the session files aren't world readable, writable or executable
-umask(0077);
-
-
-  
-$VERSION="!!RT_VERSION!!";
-
-use lib "!!RT_LIB_PATH!!";
-use lib "!!RT_ETC_PATH!!";
-
-#This drags in  RT's config.pm
-use config;
-use Carp;
-
-{  
-    package HTML::Mason::Commands;
-    use vars qw(%session $ContentType);
-    
-    use RT; 
-    use RT::Ticket;
-    use RT::Tickets;
-    use RT::Transaction;
-    use RT::Transactions;
-    use RT::User;
-    use RT::Users;
-    use RT::CurrentUser;
-    use RT::Template;
-    use RT::Templates;
-    use RT::Queue;
-    use RT::Queues;
-    use RT::ScripAction;
-    use RT::ScripActions;
-    use RT::ScripCondition;
-    use RT::ScripConditions;
-    use RT::Scrip;
-    use RT::Scrips;
-    use RT::Group;
-    use RT::Groups;
-    use RT::Keyword;
-    use RT::Keywords;
-    use RT::ObjectKeyword;
-    use RT::ObjectKeywords;
-    use RT::KeywordSelect;
-    use RT::KeywordSelects;
-    use RT::GroupMember;
-    use RT::GroupMembers;
-    use RT::Watcher;
-    use RT::Watchers;
-    use RT::Handle;
-    use RT::Interface::Web;    
-    use MIME::Entity;
-    use CGI::Cookie;
-    use Date::Parse;
-    use HTML::Entities;
-    use Text::Wrapper;
-    #TODO: make this use DBI
-    use Apache::Session::File;
-    use CGI::Fast;
-
-    # set the page's content type.
-    # In this case, just save it to a variable that we can pull later;
-    sub SetContentType {
-       $ContentType = shift;
-    }
-    sub CGIObject {
-       return $RT::Mason::cgi;
-    }
-}
-
-
-my ($output, $parser, $interp);
-if ($HTML::Mason::VERSION < 1.0902) {
-        require HTML::Mason::ApacheHandler;
-
-         $parser = &RT::Interface::Web::NewParser(allow_globals => [%session]);
-
-         $interp = &RT::Interface::Web::NewInterp(parser=>$parser,
-                                             allow_recursive_autohandlers => 1,
-                                           out_method => \$output);
-}
-else {
-         $interp = &RT::Interface::Web::NewInterp(
-                                                  allow_globals => [%session],
-                                                  default_escape_flags => 'h',
-
-                                           out_method => \$output);
-}
-# Die if WebSessionDir doesn't exist or we can't write to it
-
-stat ($RT::MasonSessionDir);
-die "Can't read and write $RT::MasonSessionDir"
-  unless (( -d _ ) and ( -r _ ) and ( -w _ ));
-
+# Enter CGI::Fast mode, which should also work as a vanilla CGI script.
+require CGI::Fast;
 
 RT::Init();
 
 # Response loop
-while ($RT::Mason::cgi = new CGI::Fast) {
-    
-    $HTML::Mason::Commands::ContentType = 'text/html';
-        
-    # This routine comes from ApacheHandler.pm:
-    my (%args, $cookie);
-    foreach my $key ( $cgi->param ) {
-       foreach my $value ( $cgi->param($key) ) {
-           if (exists($args{$key})) {
-               if (ref($args{$key})) {
-                   $args{$key} = [@{$args{$key}}, $value];
-               } else {
-                   $args{$key} = [$args{$key}, $value];
-               }
-           } else {
-               $args{$key} = $value;
-           }
-
-       }
-       
-    }
-    
-
-    my $comp = $ENV{'PATH_INFO'};
-    
-    if ($comp =~ /^(.*)$/) {  # untaint the path info. apache should
-                             # never hand us a bogus path. 
-                             # We should be more careful here.
-       $comp = $1;
-    }    
-    
-    if ($comp =~ /\/$/) {
-       $comp .= "index.html";
-    }  
-    
-    #This is all largely cut and pasted from mason's session_handler.pl
-    
-    # {{{ Cookies
-    my %cookies = fetch CGI::Cookie();
-    
-    eval {
-       my $session_id = undef;
-
-       #Get the session id and untaint it
-       if ($cookies{'AF_SID'} && $cookies{'AF_SID'}->value() =~ /^(.*)$/) {
-               $session_id = $1;
-       }
-       tie %HTML::Mason::Commands::session, 'Apache::Session::File',
-               $session_id, 
-           { Directory => $RT::MasonSessionDir,
-             LockDirectory => $RT::MasonSessionDir,
-           }   ;
-    };
-    
-    if ( $@ ) {
-       # If the session is invalid, create a new session.
-       if ( $@ =~ m#^Object does not exist in the data store# ) {
-            tie %HTML::Mason::Commands::session, 'Apache::Session::File', undef,
-            { Directory => $RT::MasonSessionDir,
-              LockDirectory => $RT::MasonSessionDir,
-            };
-            undef $cookies{'AF_SID'};
-       }
-         else {
-             die "$@ \nProbably means that RT Couldn't write to session directory '$RT::MasonSessionDir'. Check that this directory's permissions are correct.";
-         }
+while ( my $cgi = CGI::Fast->new ) {
+    # the whole point of fastcgi requires the env to get reset here..
+    # So we must squash it again
+    $ENV{'PATH'}   = '/bin:/usr/bin';
+    $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'};
+    $ENV{'SHELL'}  = '/bin/sh' if defined $ENV{'SHELL'};
+    $ENV{'ENV'}    = '' if defined $ENV{'ENV'};
+    $ENV{'IFS'}    = '' if defined $ENV{'IFS'};
+
+    unless ($h->interp->comp_exists($cgi->path_info)) {
+       $cgi->path_info($cgi->path_info . "/index.html");
     }
-    
-    if ( !$cookies{'AF_SID'} ) {
-       $cookie = new CGI::Cookie
-         (-name=>'AF_SID', 
-          -value=>$HTML::Mason::Commands::session{_session_id}, 
-          -path => '/',);
-       
-    } else {
-       $cookie = undef;
-    }
-    
-    # }}}
-    
-    $output = '';
-    eval {
-           my $status = $interp->exec($comp, %args);
-    };
-    if ($@) {
-       $output = "<PRE>$@</PRE>";
-    }
-    print "Content-Type: $HTML::Mason::Commands::ContentType\r\n";
-    print "Set-Cookie: $cookie\r\n" if ($cookie);
-    print "\r\n";
-    print $output;
-    untie %HTML::Mason::Commands::session;
-    
+    $h->handle_cgi_object($cgi);
+    # _should_ always be tied
 }
+
+1;
diff --git a/rt/bin/mason_handler.fcgi.in b/rt/bin/mason_handler.fcgi.in
new file mode 100644 (file)
index 0000000..e932bfc
--- /dev/null
@@ -0,0 +1,54 @@
+#!@PERL@
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
+
+use strict;
+use File::Basename;
+require ('@RT_BIN_PATH@/webmux.pl');
+
+my $h = &RT::Interface::Web::NewCGIHandler();
+
+# Enter CGI::Fast mode, which should also work as a vanilla CGI script.
+require CGI::Fast;
+
+RT::Init();
+
+# Response loop
+while ( my $cgi = CGI::Fast->new ) {
+    # the whole point of fastcgi requires the env to get reset here..
+    # So we must squash it again
+    $ENV{'PATH'}   = '/bin:/usr/bin';
+    $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'};
+    $ENV{'SHELL'}  = '/bin/sh' if defined $ENV{'SHELL'};
+    $ENV{'ENV'}    = '' if defined $ENV{'ENV'};
+    $ENV{'IFS'}    = '' if defined $ENV{'IFS'};
+
+    unless ($h->interp->comp_exists($cgi->path_info)) {
+       $cgi->path_info($cgi->path_info . "/index.html");
+    }
+    $h->handle_cgi_object($cgi);
+    # _should_ always be tied
+}
+
+1;
index b9846c8..8e1135c 100755 (executable)
-#!!!PERL!! -w
-
-#!/usr/bin/speedy -- -t600 -M8
-# $Header: /home/cvs/cvsroot/freeside/rt/bin/mason_handler.scgi,v 1.1 2002-08-12 06:17:07 ivan Exp $
-# RT is (c) 1996-2001 Jesse Vincent (jesse@fsck.com);
-#
-# Contains code derived from mason.cgi
-# mason.cgi is Copyright December 2000 Joshua Kronengold (mneme@io.com, 
-# mneme@cyberspace.org).  All Rights Reserved.
+#!/usr/local/bin/speedy
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
 
 use strict;
-# {{{ Clean out the environment a little bit
-$ENV{'PATH'} = '/bin:/usr/bin';    # or whatever you need
-$ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'};
-$ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'};
-$ENV{'ENV'} = '' if defined $ENV{'ENV'};
-$ENV{'IFS'} = ''          if defined $ENV{'IFS'};
-# }}}
-
-package RT::Mason;
-use HTML::Mason;  # brings in subpackages: Parser, Interp, etc.
-use vars qw($VERSION %session $Nobody $SystemUser);
-
-# List of modules that you want to use from components (see Admin
-# manual for details)
-
-$VERSION="!!RT_VERSION!!";
-
-use lib "!!RT_LIB_PATH!!";
-use lib "!!RT_ETC_PATH!!";
-
-
-#This drags in  RT's config.pm
-use config;
-use Carp;
-
-use HTML::Mason::FakeApache;
-use CGI;
-
-# {{{ Set up CGI environment and grab CGI params:
+require ('/opt/rt3/bin/webmux.pl');
 
-my $r=new HTML::Mason::FakeApache;
+my $h = &RT::Interface::Web::NewCGIHandler();
 
-$|=1; # set output to non-buffered.
+require CGI;
 
-my %cgi;
-CGI::ReadParse(\%cgi); # %cgi is now a tied hash containing our params.
+RT::Init();
 
-my $q=$cgi{CGI}; # $q now contains the object tied to %cgi.
-# }}}
-
-# {{{ require what we need
-{  
-    package HTML::Mason::Commands;
-
-    use vars qw(%session);
-
-    use RT::Ticket;
-    use RT::Tickets;
-    use RT::Transaction;
-    use RT::Transactions;
-    use RT::User;
-    use RT::Users;
-    use RT::CurrentUser;
-    use RT::Template;
-    use RT::Templates;
-    use RT::Queue;
-    use RT::Queues;
-    use RT::ScripAction;
-    use RT::ScripActions;
-    use RT::ScripCondition;
-    use RT::ScripConditions;
-    use RT::Scrip;
-    use RT::Scrips;
-    use RT::Group;
-    use RT::Groups;
-    use RT::Keyword;
-    use RT::Keywords;
-    use RT::ObjectKeyword;
-    use RT::ObjectKeywords;
-    use RT::KeywordSelect;
-    use RT::KeywordSelects;
-    use RT::GroupMember;
-    use RT::GroupMembers;
-    use RT::Watcher;
-    use RT::Watchers;
-    use RT::Handle;
-    use RT::Interface::Web;    
-    use MIME::Entity;
-    use CGI::Cookie;
-    use Date::Parse;
-    use HTML::Entities;
-
-    
-    use Apache::Session::File;
-
-    
+my $cgi = CGI->new;
+unless ($h->interp->comp_exists($cgi->path_info)) {
+    $cgi->path_info($cgi->path_info . "/index.html");
 }
-# }}}
-
-# {{{ RT Database setup
-    $RT::Handle = new RT::Handle;
-    
-    $RT::Handle->Connect;
-   
-    use RT::CurrentUser;
-    
-    #RT's system user is a genuine database user. its id lives here
-    $RT::SystemUser = new RT::CurrentUser();
-    $RT::SystemUser->LoadByName('RT_System');
-
-    #RT's "nobody user" is a genuine database user. its ID lives here.
-    $RT::Nobody = new RT::CurrentUser();
-    $RT::Nobody->LoadByName('Nobody'); 
-     
-
-# }}}
-
-
-
-
-# {{{ Deal with cookies
-
-my %cookies = fetch CGI::Cookie();
-eval { 
-    tie %HTML::Mason::Commands::session, 'Apache::Session::File',
-      ( $cookies{'AF_SID'} ? $cookies{'AF_SID'}->value() : undef );
-};
-
-if ( $@ ) {
-    # If the session is invalid, create a new session.
-    if ( $@ =~ m#^Object does not exist in the data store# ) {
-        tie %HTML::Mason::Commands::session, 'Apache::Session::File', undef;
-        undef $cookies{'AF_SID'};
-    }
-}
-
-if ( !$cookies{'AF_SID'} ) {
-    my $cookie = new CGI::Cookie(
-        -name=>'AF_SID', 
-        -value=>$HTML::Mason::Commands::session{_session_id}, 
-         -path => '/');
-    print 'Set-Cookie: '. $cookie."\r\n";
-}
-
-# }}}
-
-my $path=$ENV{PATH_INFO} || "/"; $path=~s/\'/\\\'/g;
-
-my $type=`/usr/bin/file '$RT::MasonComponentRoot/$path'`;
-
-# {{{ if it's a text file, handle it with mason.
-if($type=~/text|directory/) { 
-       my ($out, %mason_params);
-        my $parser = RT::Interface::Web::NewParser(allow_globals=>[qw($r)]);
-       $mason_params{parser}=$parser;
-       $r->content_type('text/html');
-       # (get cookies line) ...
-       $r->access_hash('headers_in','Cookie',$ENV{HTTP_COOKIE});
-       $r->{'args@'}=[];
-       $mason_params{out_method}=\$out;
-
-       my $interp = RT::Interface::Web::NewInterp(%mason_params);
-
-       $interp->set_global(r=>$r);
-       $interp->exec($path,%cgi);
-       $r->send_http_header();
-        print $out;
-} 
-# }}} 
-
-# {{{ if it's not a text file, just stream it out.
-
-else { # file is binary, damn it
-       my $mime_type;
-       if ( $mime_type=
-            eval{ use MIME::Types;
-                  my($type,$encoding)=MIME::Types::by_suffix($path);
-                  $type; }) {
-           print $q->header($mime_type);       
-           $path=~s/[\|\>\<\&]//g;
-           open F,"$RT::MasonComponentRoot/$path" or 
-             die "couldn't open $path -- $!";
-           print while <F>; 
-           close F;
-       } else {
-           die "couldn't resolve type of non-text file (!@; $type) -- install Mime::Types\n";
-       }
-    }
-
-# }}}
+$h->handle_cgi_object($cgi);
 
-untie %HTML::Mason::Commands::session;
+1;
diff --git a/rt/bin/mason_handler.scgi.in b/rt/bin/mason_handler.scgi.in
new file mode 100644 (file)
index 0000000..37d8380
--- /dev/null
@@ -0,0 +1,41 @@
+#!@SPEEDY_BIN@
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
+
+use strict;
+require ('@RT_BIN_PATH@/webmux.pl');
+
+my $h = &RT::Interface::Web::NewCGIHandler();
+
+require CGI;
+
+RT::Init();
+
+my $cgi = CGI->new;
+unless ($h->interp->comp_exists($cgi->path_info)) {
+    $cgi->path_info($cgi->path_info . "/index.html");
+}
+$h->handle_cgi_object($cgi);
+
+1;
diff --git a/rt/bin/mason_handler.svc b/rt/bin/mason_handler.svc
new file mode 100644 (file)
index 0000000..e6d8378
--- /dev/null
@@ -0,0 +1,234 @@
+#!/usr/bin/perl
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
+
+=head1 NAME
+
+mason_handler.svc - Win32 IIS Service handler for RT
+
+=head1 SYNOPSIS
+
+    perl mason_handler.svc --install   # install as service
+    perl mason_handler.svc --deinstall # deinstall this service
+    perl mason_handler.svc --help      # show this help
+    perl mason_handler.svc             # launch handler from command line
+
+=head1 DESCRIPTION
+
+This script manages a stand-alone FastCGI server, and populates the necessary
+registry settings to run it with Microsoft IIS Server 4.0 or above.
+
+Before running it, you need to install the B<FCGI> module from CPAN, as well as
+B<Win32::Daemon> from L<http://www.roth.net/perl/Daemon/> if you want to install
+itself as a service.
+
+This script will automatically create a virtual directory under the IIS root;
+its name is taken from C<$WebPath> in the F<RT_Config.pm> file.  Additionally,
+please install the ISAPI binary from L<http://www.caraveo.com/fastcgi/> and set
+up an ISAPI Script Map that maps F<.html> files to F<isapi_fcgi.dll>.
+
+Once the service is launched (either via C<net start RTFastCGI> or by running
+C<perl mason_handler.svc>), a FCGI server will start and bind to port C<8284>
+(mnemonics: the ASCII value of C<R> and C<T>); the ISAPI handler's C<BindPath>
+registry setting will also be automatically populated.
+
+=cut
+
+use strict;
+use File::Basename;
+require (dirname(__FILE__) . '/webmux.pl');
+
+use Cwd;
+use File::Spec;
+
+use Win32;
+use Win32::Process;
+use Win32::Service;
+use Win32::TieRegistry;
+
+my $ProcessObj;
+
+BEGIN {
+    my $runsvc = sub {
+       Win32::Process::Create(
+           $ProcessObj, $^X, "$^X $0 --run", 0, NORMAL_PRIORITY_CLASS, "."
+       ) or do {
+           die Win32::FormatMessage( Win32::GetLastError() );
+       };
+
+       chdir File::Basename::dirname($0);
+       my $path = Cwd::cwd();
+       $path =~ s|/|\\|g;
+       $path =~ s|bin$|share\\html|;
+
+       $Win32::TieRegistry::Registry->{
+           'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\\'.
+           'W3SVC\Parameters\Virtual Roots\\'
+       }->{$RT::WebPath || '/'} = "$path,,205";
+           
+       $Win32::TieRegistry::Registry->{
+           'HKEY_LOCAL_MACHINE\Software\FASTCGI\.html\\'
+       }->{'BindPath'} = $ENV{'FCGI_SOCKET_PATH'};
+
+       Win32::Service::StartService(Win32::NodeName, 'W3SVC');
+    };
+    
+    if ($ARGV[0] eq '--deinstall') {
+       chdir File::Basename::dirname($0);
+       my $path = Cwd::cwd();
+       $path =~ s|/|\\|g;
+
+       require Win32::Daemon;
+       Win32::Daemon::DeleteService('RTFastCGI');
+       warn "Service 'RTFastCGI' successfully deleted.\n";
+       exit;
+    }
+    elsif ($ARGV[0] eq '--install') {
+       chdir File::Basename::dirname($0);
+       my $path = Cwd::cwd();
+       $path =~ s|/|\\|g;
+
+       require Win32::Daemon;
+       Win32::Daemon::DeleteService('RTFastCGI');
+       
+       my $rv = Win32::Daemon::CreateService( {
+           machine =>  '',
+           name    =>  'RTFastCGI',
+           display =>  'RT FastCGI Handler',
+           path    =>  $^X,
+           user    =>  '',
+           pwd     =>  $path,
+           description => 'Enables port 8284 as the RT FastCGI handler.',
+           parameters  => File::Spec->catfile(
+                   $path, File::Basename::basename($0)
+           ) . ' --service',
+       } );
+    
+       if ($rv) {
+           warn "Service 'RTFastCGI' successfully created.\n";
+       }
+       else {
+           warn "Failed to add service: " . Win32::FormatMessage(
+               Win32::Daemon::GetLastError()
+           ) . "\n";
+       }
+       exit;
+    }
+    elsif ($ARGV[0] eq '--service') {
+       require Win32::Daemon;
+
+       my $PrevState = Win32::Daemon::SERVICE_START_PENDING();
+       Win32::Daemon::StartService() or die $^E;
+
+       while ( 1 ) {
+           my $State = Win32::Daemon::State();
+           last if $State == Win32::Daemon::SERVICE_STOPPED();
+           
+           if ( $State == Win32::Daemon::SERVICE_START_PENDING() ) {
+               $runsvc->();
+               Win32::Daemon::State( Win32::Daemon::SERVICE_RUNNING() );
+               $PrevState = Win32::Daemon::SERVICE_RUNNING();
+           }
+           elsif ( $State == Win32::Daemon::SERVICE_CONTINUE_PENDING() ) {
+               $ProcessObj->Resume;
+               Win32::Daemon::State( Win32::Daemon::SERVICE_RUNNING() );
+               $PrevState = Win32::Daemon::SERVICE_RUNNING();
+           }
+           elsif ( $State == Win32::Daemon::SERVICE_STOP_PENDING() ) {
+           $ProcessObj->Kill(0);
+               Win32::Daemon::State( Win32::Daemon::SERVICE_STOPPED() );
+               $PrevState = Win32::Daemon::SERVICE_STOPPED();
+           }
+           elsif ( $State == Win32::Daemon::SERVICE_RUNNING() ) {
+               my $Message = Win32::Daemon::QueryLastMessage(1);
+               if ( $Message == Win32::Daemon::SERVICE_CONTROL_INTERROGATE() ) {
+                   Win32::Daemon::State( $PrevState );
+               }
+               elsif ( $Message == Win32::Daemon::SERVICE_CONTROL_SHUTDOWN() ) {
+                   Win32::Daemon::State( Win32::Daemon::SERVICE_STOP_PENDING(), 15000 );
+               }
+               elsif ( $Message != Win32::Daemon::SERVICE_CONTROL_NONE() ) {
+                   Win32::Daemon::State( $PrevState );
+               }
+           }
+           
+           Win32::Sleep( 1000 );
+       }
+               
+       Win32::Daemon::StopService();
+       exit;
+    }
+    elsif ($ARGV[0] eq '--help') {
+       system("perldoc $0");
+       exit;
+    }
+    elsif ($ARGV[0] ne '--run') {
+       $SIG{__DIE__} = sub { $ProcessObj->Kill(0) if $ProcessObj };
+       $runsvc->();
+       warn "RT FastCGI Handler launched. Press [Enter] to terminate...\n";
+       <STDIN>;
+       exit;
+    }
+}
+
+###############################################################################
+
+warn "Begin listening on $ENV{'FCGI_SOCKET_PATH'}\n";
+
+require CGI::Fast;
+my $h = &RT::Interface::Web::NewCGIHandler();
+
+RT::Init();
+
+# Response loop
+while( my $cgi = CGI::Fast->new ) {
+    my $comp = $ENV{'PATH_INFO'};
+
+    $comp = $1 if ($comp =~ /^(.*)$/);
+    $comp =~ s|^$RT::WebPath\b||i;
+    $comp .= "index.html" if ($comp =~ /\/$/);
+    $comp =~ s/.pl$/.html/g;
+    
+    warn "Serving $comp\n";
+
+    $h->handle_cgi($comp);
+    # _should_ always be tied
+}
+
+1;
+
+=head1 AUTHORS
+
+Autrijus Tang E<lt>autrijus@autrijus.orgE<gt>
+
+=head1 COPYRIGHT
+
+Copyright 2002 by Autrijus Tang E<lt>autrijus@autrijus.orgE<gt>.
+
+This program is free software; you can redistribute it and/or 
+modify it under the same terms as Perl itself.
+
+See L<http://www.perl.com/perl/misc/Artistic.html>
+
+=cut
diff --git a/rt/bin/mason_handler.svc.in b/rt/bin/mason_handler.svc.in
new file mode 100644 (file)
index 0000000..cc12c0e
--- /dev/null
@@ -0,0 +1,234 @@
+#!@PERL@
+# BEGIN LICENSE BLOCK
+# 
+# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
+# 
+# (Except where explictly superceded by other copyright notices)
+# 
+# This work is made available to you under the terms of Version 2 of
+# the GNU General Public License. A copy of that license should have
+# been provided with this software, but in any event can be snarfed
+# from www.gnu.org.
+# 
+# This work is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# Unless otherwise specified, all modifications, corrections or
+# extensions to this work which alter its source code become the
+# property of Best Practical Solutions, LLC when submitted for
+# inclusion in the work.
+# 
+# 
+# END LICENSE BLOCK
+
+=head1 NAME
+
+mason_handler.svc - Win32 IIS Service handler for RT
+
+=head1 SYNOPSIS
+
+    perl mason_handler.svc --install   # install as service
+    perl mason_handler.svc --deinstall # deinstall this service
+    perl mason_handler.svc --help      # show this help
+    perl mason_handler.svc             # launch handler from command line
+
+=head1 DESCRIPTION
+
+This script manages a stand-alone FastCGI server, and populates the necessary
+registry settings to run it with Microsoft IIS Server 4.0 or above.
+
+Before running it, you need to install the B<FCGI> module from CPAN, as well as
+B<Win32::Daemon> from L<http://www.roth.net/perl/Daemon/> if you want to install
+itself as a service.
+
+This script will automatically create a virtual directory under the IIS root;
+its name is taken from C<$WebPath> in the F<RT_Config.pm> file.  Additionally,
+please install the ISAPI binary from L<http://www.caraveo.com/fastcgi/> and set
+up an ISAPI Script Map that maps F<.html> files to F<isapi_fcgi.dll>.
+
+Once the service is launched (either via C<net start RTFastCGI> or by running
+C<perl mason_handler.svc>), a FCGI server will start and bind to port C<8284>
+(mnemonics: the ASCII value of C<R> and C<T>); the ISAPI handler's C<BindPath>
+registry setting will also be automatically populated.
+
+=cut
+
+use strict;
+use File::Basename;
+require (dirname(__FILE__) . '/webmux.pl');
+
+use Cwd;
+use File::Spec;
+
+use Win32;
+use Win32::Process;
+use Win32::Service;
+use Win32::TieRegistry;
+
+my $ProcessObj;
+
+BEGIN {
+    my $runsvc = sub {
+       Win32::Process::Create(
+           $ProcessObj, $^X, "$^X $0 --run", 0, NORMAL_PRIORITY_CLASS, "."
+       ) or do {
+           die Win32::FormatMessage( Win32::GetLastError() );
+       };
+
+       chdir File::Basename::dirname($0);
+       my $path = Cwd::cwd();
+       $path =~ s|/|\\|g;
+       $path =~ s|bin$|share\\html|;
+
+       $Win32::TieRegistry::Registry->{
+           'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\\'.
+           'W3SVC\Parameters\Virtual Roots\\'
+       }->{$RT::WebPath || '/'} = "$path,,205";
+           
+       $Win32::TieRegistry::Registry->{
+           'HKEY_LOCAL_MACHINE\Software\FASTCGI\.html\\'
+       }->{'BindPath'} = $ENV{'FCGI_SOCKET_PATH'};
+
+       Win32::Service::StartService(Win32::NodeName, 'W3SVC');
+    };
+    
+    if ($ARGV[0] eq '--deinstall') {
+       chdir File::Basename::dirname($0);
+       my $path = Cwd::cwd();
+       $path =~ s|/|\\|g;
+
+       require Win32::Daemon;
+       Win32::Daemon::DeleteService('RTFastCGI');
+       warn "Service 'RTFastCGI' successfully deleted.\n";
+       exit;
+    }
+    elsif ($ARGV[0] eq '--install') {
+       chdir File::Basename::dirname($0);
+       my $path = Cwd::cwd();
+       $path =~ s|/|\\|g;
+
+       require Win32::Daemon;
+       Win32::Daemon::DeleteService('RTFastCGI');
+       
+       my $rv = Win32::Daemon::CreateService( {
+           machine =>  '',
+           name    =>  'RTFastCGI',
+           display =>  'RT FastCGI Handler',
+           path    =>  $^X,
+           user    =>  '',
+           pwd     =>  $path,
+           description => 'Enables port 8284 as the RT FastCGI handler.',
+           parameters  => File::Spec->catfile(
+                   $path, File::Basename::basename($0)
+           ) . ' --service',