rt 4.2.13 ticket#13852
authorIvan Kohler <ivan@freeside.biz>
Sat, 24 Sep 2016 17:28:06 +0000 (10:28 -0700)
committerIvan Kohler <ivan@freeside.biz>
Sat, 24 Sep 2016 17:28:06 +0000 (10:28 -0700)
875 files changed:
rt/Makefile.in
rt/README
rt/bin/rt
rt/bin/rt-crontool.in
rt/bin/rt-mailgate.in
rt/bin/rt.in
rt/configure
rt/configure.ac
rt/devel/tools/change-loc-msgstr
rt/devel/tools/cmd-boilerplate
rt/devel/tools/css_tidy
rt/devel/tools/extract-message-catalog
rt/devel/tools/license_tag
rt/devel/tools/rt-apache
rt/devel/tools/rt-attributes-editor
rt/devel/tools/rt-message-catalog
rt/devel/tools/rt-static-docs
rt/devel/tools/tweak-template-locstring
rt/docs/UPGRADING-4.2
rt/docs/full_text_indexing.pod
rt/etc/RT_Config.pm.in
rt/etc/RT_SiteConfig.pm
rt/etc/upgrade/3.3.0/schema.Oracle
rt/etc/upgrade/3.3.0/schema.Pg
rt/etc/upgrade/3.3.0/schema.mysql
rt/etc/upgrade/3.7.81/schema.Oracle [deleted file]
rt/etc/upgrade/3.7.81/schema.mysql [deleted file]
rt/etc/upgrade/3.8-ical-extension.in
rt/etc/upgrade/3.8.3/schema.Pg [deleted file]
rt/etc/upgrade/4.0-customfield-checkbox-extension
rt/etc/upgrade/4.0-customfield-checkbox-extension.in
rt/etc/upgrade/4.0.1/content
rt/etc/upgrade/generate-rtaddressregexp.in
rt/etc/upgrade/sanity-check-stylesheets.in
rt/etc/upgrade/shrink-cgm-table.in
rt/etc/upgrade/shrink-transactions-table.in
rt/etc/upgrade/split-out-cf-categories.in
rt/etc/upgrade/switch-templates-to.in
rt/etc/upgrade/time-worked-history.in
rt/etc/upgrade/upgrade-articles
rt/etc/upgrade/upgrade-articles.in
rt/etc/upgrade/upgrade-mysql-schema.pl
rt/etc/upgrade/vulnerable-passwords.in
rt/lib/RT.pm
rt/lib/RT/ACE.pm
rt/lib/RT/ACL.pm
rt/lib/RT/Action.pm
rt/lib/RT/Action/AutoOpen.pm
rt/lib/RT/Action/AutoOpenInactive.pm
rt/lib/RT/Action/Autoreply.pm
rt/lib/RT/Action/CreateTickets.pm
rt/lib/RT/Action/EscalatePriority.pm
rt/lib/RT/Action/ExtractSubjectTag.pm
rt/lib/RT/Action/LinearEscalate.pm
rt/lib/RT/Action/Notify.pm
rt/lib/RT/Action/NotifyAsComment.pm
rt/lib/RT/Action/NotifyGroup.pm
rt/lib/RT/Action/NotifyGroupAsComment.pm
rt/lib/RT/Action/NotifyOwnerOrAdminCc.pm
rt/lib/RT/Action/OpenOnStarted.pm
rt/lib/RT/Action/RecordComment.pm
rt/lib/RT/Action/RecordCorrespondence.pm
rt/lib/RT/Action/SendEmail.pm
rt/lib/RT/Action/SendForward.pm
rt/lib/RT/Action/SetPriority.pm
rt/lib/RT/Action/SetStatus.pm
rt/lib/RT/Action/UserDefined.pm
rt/lib/RT/Approval.pm
rt/lib/RT/Approval/Rule.pm
rt/lib/RT/Approval/Rule/Created.pm
rt/lib/RT/Approval/Rule/NewPending.pm
rt/lib/RT/Approval/Rule/Passed.pm
rt/lib/RT/Approval/Rule/Rejected.pm
rt/lib/RT/Article.pm
rt/lib/RT/Articles.pm
rt/lib/RT/Attachment.pm
rt/lib/RT/Attachments.pm
rt/lib/RT/Attribute.pm
rt/lib/RT/Attributes.pm
rt/lib/RT/Base.pm
rt/lib/RT/CachedGroupMember.pm
rt/lib/RT/CachedGroupMembers.pm
rt/lib/RT/Class.pm
rt/lib/RT/Classes.pm
rt/lib/RT/Condition.pm
rt/lib/RT/Condition/AnyTransaction.pm
rt/lib/RT/Condition/BeforeDue.pm
rt/lib/RT/Condition/CloseTicket.pm
rt/lib/RT/Condition/Overdue.pm
rt/lib/RT/Condition/OwnerChange.pm
rt/lib/RT/Condition/PriorityChange.pm
rt/lib/RT/Condition/PriorityExceeds.pm
rt/lib/RT/Condition/QueueChange.pm
rt/lib/RT/Condition/ReopenTicket.pm
rt/lib/RT/Condition/StatusChange.pm
rt/lib/RT/Condition/UserDefined.pm
rt/lib/RT/Config.pm
rt/lib/RT/Crypt.pm
rt/lib/RT/Crypt/GnuPG.pm
rt/lib/RT/Crypt/GnuPG/CRLFHandle.pm
rt/lib/RT/Crypt/Role.pm
rt/lib/RT/Crypt/SMIME.pm
rt/lib/RT/CurrentUser.pm
rt/lib/RT/CustomField.pm
rt/lib/RT/CustomFieldValue.pm
rt/lib/RT/CustomFieldValues.pm
rt/lib/RT/CustomFieldValues/External.pm
rt/lib/RT/CustomFieldValues/Groups.pm
rt/lib/RT/CustomFields.pm
rt/lib/RT/Dashboard.pm
rt/lib/RT/Dashboard/Mailer.pm
rt/lib/RT/Dashboards.pm
rt/lib/RT/Date.pm
rt/lib/RT/DependencyWalker.pm
rt/lib/RT/DependencyWalker/FindDependencies.pm
rt/lib/RT/EmailParser.pm
rt/lib/RT/Generated.pm.in
rt/lib/RT/Graph/Tickets.pm
rt/lib/RT/Group.pm
rt/lib/RT/GroupMember.pm
rt/lib/RT/GroupMembers.pm
rt/lib/RT/Groups.pm
rt/lib/RT/Handle.pm
rt/lib/RT/I18N.pm
rt/lib/RT/I18N/cs.pm
rt/lib/RT/I18N/de.pm
rt/lib/RT/I18N/fr.pm
rt/lib/RT/I18N/i_default.pm
rt/lib/RT/I18N/ru.pm
rt/lib/RT/Installer.pm
rt/lib/RT/Interface/CLI.pm
rt/lib/RT/Interface/Email.pm
rt/lib/RT/Interface/Email/Auth/Crypt.pm
rt/lib/RT/Interface/Email/Auth/MailFrom.pm
rt/lib/RT/Interface/REST.pm
rt/lib/RT/Interface/Web.pm
rt/lib/RT/Interface/Web/Handler.pm
rt/lib/RT/Interface/Web/Menu.pm
rt/lib/RT/Interface/Web/Middleware/StaticHeaders.pm
rt/lib/RT/Interface/Web/QueryBuilder.pm
rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm
rt/lib/RT/Interface/Web/Request.pm
rt/lib/RT/Interface/Web/Session.pm
rt/lib/RT/Lifecycle.pm
rt/lib/RT/Lifecycle/Ticket.pm
rt/lib/RT/Link.pm
rt/lib/RT/Links.pm
rt/lib/RT/Migrate.pm
rt/lib/RT/Migrate/Importer.pm
rt/lib/RT/Migrate/Importer/File.pm
rt/lib/RT/Migrate/Incremental.pm
rt/lib/RT/Migrate/Serializer.pm
rt/lib/RT/Migrate/Serializer/File.pm
rt/lib/RT/Migrate/Serializer/IncrementalRecord.pm
rt/lib/RT/Migrate/Serializer/IncrementalRecords.pm
rt/lib/RT/ObjectClass.pm
rt/lib/RT/ObjectClasses.pm
rt/lib/RT/ObjectCustomField.pm
rt/lib/RT/ObjectCustomFieldValue.pm
rt/lib/RT/ObjectCustomFieldValues.pm
rt/lib/RT/ObjectCustomFields.pm
rt/lib/RT/ObjectScrip.pm
rt/lib/RT/ObjectScrips.pm
rt/lib/RT/ObjectTopic.pm
rt/lib/RT/ObjectTopics.pm
rt/lib/RT/PlackRunner.pm
rt/lib/RT/Plugin.pm
rt/lib/RT/Pod/HTML.pm
rt/lib/RT/Pod/HTMLBatch.pm
rt/lib/RT/Pod/Search.pm
rt/lib/RT/Principal.pm
rt/lib/RT/Principals.pm
rt/lib/RT/Queue.pm
rt/lib/RT/Queues.pm
rt/lib/RT/Record.pm
rt/lib/RT/Record/AddAndSort.pm
rt/lib/RT/Record/Role.pm
rt/lib/RT/Record/Role/Lifecycle.pm
rt/lib/RT/Record/Role/Links.pm
rt/lib/RT/Record/Role/Rights.pm
rt/lib/RT/Record/Role/Roles.pm
rt/lib/RT/Record/Role/Status.pm
rt/lib/RT/Reminders.pm
rt/lib/RT/Report/Tickets.pm
rt/lib/RT/Report/Tickets/Entry.pm
rt/lib/RT/Rule.pm
rt/lib/RT/Ruleset.pm
rt/lib/RT/SQL.pm
rt/lib/RT/SavedSearch.pm
rt/lib/RT/SavedSearches.pm
rt/lib/RT/Scrip.pm
rt/lib/RT/ScripAction.pm
rt/lib/RT/ScripActions.pm
rt/lib/RT/ScripCondition.pm
rt/lib/RT/ScripConditions.pm
rt/lib/RT/Scrips.pm
rt/lib/RT/Search.pm
rt/lib/RT/Search/ActiveTicketsInQueue.pm
rt/lib/RT/Search/FromSQL.pm
rt/lib/RT/Search/Simple.pm
rt/lib/RT/SearchBuilder.pm
rt/lib/RT/SearchBuilder/AddAndSort.pm
rt/lib/RT/SearchBuilder/Role.pm
rt/lib/RT/SearchBuilder/Role/Roles.pm
rt/lib/RT/SharedSetting.pm
rt/lib/RT/SharedSettings.pm
rt/lib/RT/Shredder.pm
rt/lib/RT/Shredder/Constants.pm
rt/lib/RT/Shredder/Dependencies.pm
rt/lib/RT/Shredder/Dependency.pm
rt/lib/RT/Shredder/Exceptions.pm
rt/lib/RT/Shredder/POD.pm
rt/lib/RT/Shredder/Plugin.pm
rt/lib/RT/Shredder/Plugin/Attachments.pm
rt/lib/RT/Shredder/Plugin/Base.pm
rt/lib/RT/Shredder/Plugin/Base/Dump.pm
rt/lib/RT/Shredder/Plugin/Base/Search.pm
rt/lib/RT/Shredder/Plugin/Objects.pm
rt/lib/RT/Shredder/Plugin/SQLDump.pm
rt/lib/RT/Shredder/Plugin/Summary.pm
rt/lib/RT/Shredder/Plugin/Tickets.pm
rt/lib/RT/Shredder/Plugin/Users.pm
rt/lib/RT/Shredder/Record.pm [deleted file]
rt/lib/RT/Squish.pm
rt/lib/RT/Squish/CSS.pm
rt/lib/RT/Squish/JS.pm
rt/lib/RT/System.pm
rt/lib/RT/Template.pm
rt/lib/RT/Templates.pm
rt/lib/RT/Test.pm
rt/lib/RT/Test/Apache.pm
rt/lib/RT/Test/Email.pm
rt/lib/RT/Test/GnuPG.pm
rt/lib/RT/Test/SMIME.pm
rt/lib/RT/Test/Shredder.pm
rt/lib/RT/Test/Web.pm
rt/lib/RT/Ticket.pm
rt/lib/RT/Tickets.pm
rt/lib/RT/Topic.pm
rt/lib/RT/Topics.pm
rt/lib/RT/Transaction.pm
rt/lib/RT/Transactions.pm
rt/lib/RT/URI.pm
rt/lib/RT/URI/a.pm
rt/lib/RT/URI/base.pm
rt/lib/RT/URI/fsck_com_article.pm
rt/lib/RT/URI/fsck_com_rt.pm
rt/lib/RT/URI/t.pm
rt/lib/RT/User.pm
rt/lib/RT/Users.pm
rt/lib/RT/Util.pm
rt/sbin/rt-attributes-viewer.in
rt/sbin/rt-clean-sessions.in
rt/sbin/rt-dump-metadata.in
rt/sbin/rt-email-dashboards.in
rt/sbin/rt-email-digest.in
rt/sbin/rt-email-group-admin.in
rt/sbin/rt-fulltext-indexer.in
rt/sbin/rt-importer.in
rt/sbin/rt-preferences-viewer.in
rt/sbin/rt-serializer.in
rt/sbin/rt-server.fcgi.in
rt/sbin/rt-server.in
rt/sbin/rt-setup-database.in
rt/sbin/rt-setup-fulltext-index.in
rt/sbin/rt-shredder.in
rt/sbin/rt-test-dependencies.in
rt/sbin/rt-validate-aliases.in
rt/sbin/rt-validator.in
rt/sbin/standalone_httpd.in
rt/share/html/Admin/Articles/Classes/CustomFields.html
rt/share/html/Admin/Articles/Classes/GroupRights.html
rt/share/html/Admin/Articles/Classes/Modify.html
rt/share/html/Admin/Articles/Classes/Objects.html
rt/share/html/Admin/Articles/Classes/Topics.html
rt/share/html/Admin/Articles/Classes/UserRights.html
rt/share/html/Admin/Articles/Classes/index.html
rt/share/html/Admin/Articles/Elements/Topics
rt/share/html/Admin/Articles/index.html
rt/share/html/Admin/CustomFields/GroupRights.html
rt/share/html/Admin/CustomFields/Modify.html
rt/share/html/Admin/CustomFields/Objects.html
rt/share/html/Admin/CustomFields/UserRights.html
rt/share/html/Admin/CustomFields/index.html
rt/share/html/Admin/Elements/AddCustomFieldValue
rt/share/html/Admin/Elements/ConfigureDashboardsInMenu
rt/share/html/Admin/Elements/ConfigureMyRT
rt/share/html/Admin/Elements/EditCustomField
rt/share/html/Admin/Elements/EditCustomFieldValues
rt/share/html/Admin/Elements/EditCustomFieldValuesSource
rt/share/html/Admin/Elements/EditCustomFields
rt/share/html/Admin/Elements/EditQueueWatcherGroup
rt/share/html/Admin/Elements/EditQueueWatchers
rt/share/html/Admin/Elements/EditRights
rt/share/html/Admin/Elements/EditRightsCategoryTabs
rt/share/html/Admin/Elements/EditScrips
rt/share/html/Admin/Elements/EditTemplates
rt/share/html/Admin/Elements/Header
rt/share/html/Admin/Elements/LoggingSummary
rt/share/html/Admin/Elements/MembershipsPage
rt/share/html/Admin/Elements/ModifyTemplate
rt/share/html/Admin/Elements/Portal
rt/share/html/Admin/Elements/SelectCustomField
rt/share/html/Admin/Elements/SelectCustomFieldLookupType
rt/share/html/Admin/Elements/SelectCustomFieldRenderType
rt/share/html/Admin/Elements/SelectCustomFieldType
rt/share/html/Admin/Elements/SelectGroups
rt/share/html/Admin/Elements/SelectNewGroupMembers
rt/share/html/Admin/Elements/SelectScripAction
rt/share/html/Admin/Elements/SelectScripCondition
rt/share/html/Admin/Elements/SelectStage
rt/share/html/Admin/Elements/SelectStageForAdded
rt/share/html/Admin/Elements/SelectUsers
rt/share/html/Admin/Elements/ShowKeyInfo
rt/share/html/Admin/Elements/UpgradeHistory
rt/share/html/Admin/Elements/UpgradeHistoryRow
rt/share/html/Admin/Global/CustomFields/Class-Article.html
rt/share/html/Admin/Global/CustomFields/Groups.html
rt/share/html/Admin/Global/CustomFields/Queue-Tickets.html
rt/share/html/Admin/Global/CustomFields/Queue-Transactions.html
rt/share/html/Admin/Global/CustomFields/Queues.html
rt/share/html/Admin/Global/CustomFields/Users.html
rt/share/html/Admin/Global/CustomFields/index.html
rt/share/html/Admin/Global/DashboardsInMenu.html
rt/share/html/Admin/Global/GroupRights.html
rt/share/html/Admin/Global/MyRT.html
rt/share/html/Admin/Global/Scrips.html
rt/share/html/Admin/Global/Template.html
rt/share/html/Admin/Global/Templates.html
rt/share/html/Admin/Global/Topics.html
rt/share/html/Admin/Global/UserRights.html
rt/share/html/Admin/Global/index.html
rt/share/html/Admin/Groups/GroupRights.html
rt/share/html/Admin/Groups/History.html
rt/share/html/Admin/Groups/Members.html
rt/share/html/Admin/Groups/Memberships.html
rt/share/html/Admin/Groups/Modify.html
rt/share/html/Admin/Groups/UserRights.html
rt/share/html/Admin/Groups/index.html
rt/share/html/Admin/Queues/CustomField.html
rt/share/html/Admin/Queues/CustomFields.html
rt/share/html/Admin/Queues/GroupRights.html
rt/share/html/Admin/Queues/History.html
rt/share/html/Admin/Queues/Modify.html
rt/share/html/Admin/Queues/People.html
rt/share/html/Admin/Queues/Scrips.html
rt/share/html/Admin/Queues/Template.html
rt/share/html/Admin/Queues/Templates.html
rt/share/html/Admin/Queues/UserRights.html
rt/share/html/Admin/Queues/index.html
rt/share/html/Admin/Scrips/Create.html
rt/share/html/Admin/Scrips/Elements/EditBasics
rt/share/html/Admin/Scrips/Elements/EditCustomCode
rt/share/html/Admin/Scrips/Elements/SelectTemplate
rt/share/html/Admin/Scrips/Modify.html
rt/share/html/Admin/Scrips/Objects.html
rt/share/html/Admin/Scrips/index.html
rt/share/html/Admin/Tools/Configuration.html
rt/share/html/Admin/Tools/Queries.html
rt/share/html/Admin/Tools/Shredder/Dumps/dhandler
rt/share/html/Admin/Tools/Shredder/Elements/DumpFileLink
rt/share/html/Admin/Tools/Shredder/Elements/Error/NoRights
rt/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage
rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Attachment
rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Ticket
rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--User
rt/share/html/Admin/Tools/Shredder/Elements/ObjectCheckBox
rt/share/html/Admin/Tools/Shredder/Elements/PluginArguments
rt/share/html/Admin/Tools/Shredder/Elements/PluginHelp
rt/share/html/Admin/Tools/Shredder/Elements/SelectObjects
rt/share/html/Admin/Tools/Shredder/Elements/SelectPlugin
rt/share/html/Admin/Tools/Shredder/autohandler
rt/share/html/Admin/Tools/Shredder/index.html
rt/share/html/Admin/Tools/Theme.html
rt/share/html/Admin/Tools/index.html
rt/share/html/Admin/Users/CustomFields.html
rt/share/html/Admin/Users/DashboardsInMenu.html
rt/share/html/Admin/Users/History.html
rt/share/html/Admin/Users/Keys.html
rt/share/html/Admin/Users/Memberships.html
rt/share/html/Admin/Users/Modify.html
rt/share/html/Admin/Users/MyRT.html
rt/share/html/Admin/Users/index.html
rt/share/html/Admin/autohandler
rt/share/html/Admin/index.html
rt/share/html/Approvals/Display.html
rt/share/html/Approvals/Elements/Approve
rt/share/html/Approvals/Elements/PendingMyApproval
rt/share/html/Approvals/Elements/ShowDependency
rt/share/html/Approvals/autohandler
rt/share/html/Approvals/index.html
rt/share/html/Articles/Article/Delete.html
rt/share/html/Articles/Article/Display.html
rt/share/html/Articles/Article/Edit.html
rt/share/html/Articles/Article/Elements/EditBasics
rt/share/html/Articles/Article/Elements/EditCustomFields
rt/share/html/Articles/Article/Elements/EditLinks
rt/share/html/Articles/Article/Elements/EditTopics
rt/share/html/Articles/Article/Elements/LinkEntryInstructions
rt/share/html/Articles/Article/Elements/Preformatted
rt/share/html/Articles/Article/Elements/SearchByCustomField
rt/share/html/Articles/Article/Elements/SelectSavedSearches
rt/share/html/Articles/Article/Elements/SelectSearchPrivacy
rt/share/html/Articles/Article/Elements/ShowLinks
rt/share/html/Articles/Article/Elements/ShowSavedSearches
rt/share/html/Articles/Article/Elements/ShowSearchCriteria
rt/share/html/Articles/Article/Elements/ShowTopics
rt/share/html/Articles/Article/ExtractFromTicket.html
rt/share/html/Articles/Article/ExtractIntoClass.html
rt/share/html/Articles/Article/ExtractIntoTopic.html
rt/share/html/Articles/Article/History.html
rt/share/html/Articles/Article/PreCreate.html
rt/share/html/Articles/Article/Search.html
rt/share/html/Articles/Elements/BeforeMessageBox
rt/share/html/Articles/Elements/CheckSkipCreate
rt/share/html/Articles/Elements/CreateArticle
rt/share/html/Articles/Elements/GotoArticle
rt/share/html/Articles/Elements/IncludeArticle
rt/share/html/Articles/Elements/MaybeNeedsSetup
rt/share/html/Articles/Elements/NeedsSetup
rt/share/html/Articles/Elements/NewestArticles
rt/share/html/Articles/Elements/QuickSearch
rt/share/html/Articles/Elements/SelectClass
rt/share/html/Articles/Elements/ShowTopic
rt/share/html/Articles/Elements/ShowTopicLink
rt/share/html/Articles/Elements/SubjectOverride
rt/share/html/Articles/Elements/UpdatedArticles
rt/share/html/Articles/Topics.html
rt/share/html/Articles/index.html
rt/share/html/Dashboards/Elements/DashboardsForObject
rt/share/html/Dashboards/Elements/Deleted
rt/share/html/Dashboards/Elements/HiddenSearches
rt/share/html/Dashboards/Elements/ListOfDashboards
rt/share/html/Dashboards/Elements/SelectPrivacy
rt/share/html/Dashboards/Elements/ShowDashboards
rt/share/html/Dashboards/Elements/ShowPortlet/component
rt/share/html/Dashboards/Elements/ShowPortlet/dashboard
rt/share/html/Dashboards/Elements/ShowPortlet/search
rt/share/html/Dashboards/Modify.html
rt/share/html/Dashboards/Queries.html
rt/share/html/Dashboards/Render.html
rt/share/html/Dashboards/Subscription.html
rt/share/html/Dashboards/dhandler
rt/share/html/Dashboards/index.html
rt/share/html/Download/CustomFieldValue/dhandler
rt/share/html/Elements/AddLinks
rt/share/html/Elements/BulkCustomFields
rt/share/html/Elements/BulkLinks
rt/share/html/Elements/CSRF
rt/share/html/Elements/Callback
rt/share/html/Elements/Checkbox
rt/share/html/Elements/CollectionAsTable/Header
rt/share/html/Elements/CollectionAsTable/ParseFormat
rt/share/html/Elements/CollectionAsTable/Row
rt/share/html/Elements/CollectionList
rt/share/html/Elements/CollectionListPaging
rt/share/html/Elements/ColumnMap
rt/share/html/Elements/CreateTicket
rt/share/html/Elements/Crypt/KeyIssues
rt/share/html/Elements/Crypt/SelectKeyForEncryption
rt/share/html/Elements/Crypt/SelectKeyForSigning
rt/share/html/Elements/Crypt/SignEncryptWidget
rt/share/html/Elements/CryptStatus
rt/share/html/Elements/Dashboards
rt/share/html/Elements/EditCustomField
rt/share/html/Elements/EditCustomFieldAutocomplete
rt/share/html/Elements/EditCustomFieldBinary
rt/share/html/Elements/EditCustomFieldCombobox
rt/share/html/Elements/EditCustomFieldCustomGroupings
rt/share/html/Elements/EditCustomFieldDate
rt/share/html/Elements/EditCustomFieldDateTime
rt/share/html/Elements/EditCustomFieldFreeform
rt/share/html/Elements/EditCustomFieldIPAddress
rt/share/html/Elements/EditCustomFieldIPAddressRange
rt/share/html/Elements/EditCustomFieldImage
rt/share/html/Elements/EditCustomFieldSelect
rt/share/html/Elements/EditCustomFieldText
rt/share/html/Elements/EditCustomFieldWikitext
rt/share/html/Elements/EditCustomFields
rt/share/html/Elements/EditLinks
rt/share/html/Elements/EditPassword
rt/share/html/Elements/EditTimeValue
rt/share/html/Elements/EmailInput
rt/share/html/Elements/Error
rt/share/html/Elements/FindUser
rt/share/html/Elements/FoldStanzaJS
rt/share/html/Elements/Footer
rt/share/html/Elements/Framekiller
rt/share/html/Elements/GotoTicket
rt/share/html/Elements/GotoUser
rt/share/html/Elements/Header
rt/share/html/Elements/HeaderJavascript
rt/share/html/Elements/JavascriptConfig
rt/share/html/Elements/ListActions
rt/share/html/Elements/ListMenu
rt/share/html/Elements/Login
rt/share/html/Elements/LoginHelp
rt/share/html/Elements/LoginRedirectWarning
rt/share/html/Elements/Logo
rt/share/html/Elements/MakeClicky
rt/share/html/Elements/Menu
rt/share/html/Elements/MessageBox
rt/share/html/Elements/MyAdminQueues
rt/share/html/Elements/MyRT
rt/share/html/Elements/MyReminders
rt/share/html/Elements/MySupportQueues
rt/share/html/Elements/PageLayout
rt/share/html/Elements/PersonalQuickbar
rt/share/html/Elements/QueriesAsComment
rt/share/html/Elements/QueryString
rt/share/html/Elements/QueueSummaryByLifecycle
rt/share/html/Elements/QueueSummaryByStatus
rt/share/html/Elements/QuickCreate
rt/share/html/Elements/Quicksearch
rt/share/html/Elements/RT__Article/ColumnMap
rt/share/html/Elements/RT__Class/ColumnMap
rt/share/html/Elements/RT__CustomField/ColumnMap
rt/share/html/Elements/RT__Dashboard/ColumnMap
rt/share/html/Elements/RT__Group/ColumnMap
rt/share/html/Elements/RT__Queue/ColumnMap
rt/share/html/Elements/RT__SavedSearch/ColumnMap
rt/share/html/Elements/RT__Scrip/ColumnMap
rt/share/html/Elements/RT__Template/ColumnMap
rt/share/html/Elements/RT__Ticket/ColumnMap
rt/share/html/Elements/RT__User/ColumnMap
rt/share/html/Elements/Refresh
rt/share/html/Elements/RefreshHomepage
rt/share/html/Elements/SavedSearches
rt/share/html/Elements/ScrubHTML
rt/share/html/Elements/Section
rt/share/html/Elements/SelectAttachmentField
rt/share/html/Elements/SelectBoolean
rt/share/html/Elements/SelectCustomFieldOperator
rt/share/html/Elements/SelectCustomFieldValue
rt/share/html/Elements/SelectDate
rt/share/html/Elements/SelectDateRelation
rt/share/html/Elements/SelectDateType
rt/share/html/Elements/SelectEqualityOperator
rt/share/html/Elements/SelectGroups
rt/share/html/Elements/SelectIPRelation
rt/share/html/Elements/SelectLang
rt/share/html/Elements/SelectMatch
rt/share/html/Elements/SelectNewTicketQueue
rt/share/html/Elements/SelectObject
rt/share/html/Elements/SelectOwner
rt/share/html/Elements/SelectOwnerAutocomplete
rt/share/html/Elements/SelectOwnerDropdown
rt/share/html/Elements/SelectPriority
rt/share/html/Elements/SelectQueue
rt/share/html/Elements/SelectResultsPerPage
rt/share/html/Elements/SelectStatus
rt/share/html/Elements/SelectTimeUnits
rt/share/html/Elements/SelectTimezone
rt/share/html/Elements/SelectUsers
rt/share/html/Elements/SelectWatcherType
rt/share/html/Elements/SetupSessionCookie
rt/share/html/Elements/ShowCustomFieldBinary
rt/share/html/Elements/ShowCustomFieldCustomGroupings
rt/share/html/Elements/ShowCustomFieldDate
rt/share/html/Elements/ShowCustomFieldDateTime
rt/share/html/Elements/ShowCustomFieldImage
rt/share/html/Elements/ShowCustomFieldText
rt/share/html/Elements/ShowCustomFieldWikitext
rt/share/html/Elements/ShowCustomFields
rt/share/html/Elements/ShowHistory
rt/share/html/Elements/ShowLink
rt/share/html/Elements/ShowLinks
rt/share/html/Elements/ShowLinksOfType
rt/share/html/Elements/ShowMemberships
rt/share/html/Elements/ShowMessageHeaders
rt/share/html/Elements/ShowMessageStanza
rt/share/html/Elements/ShowPrincipal
rt/share/html/Elements/ShowRecord
rt/share/html/Elements/ShowRelationLabel
rt/share/html/Elements/ShowReminders
rt/share/html/Elements/ShowSearch
rt/share/html/Elements/ShowTransaction
rt/share/html/Elements/ShowTransactionAttachments
rt/share/html/Elements/ShowUser
rt/share/html/Elements/ShowUserEmailFrequency
rt/share/html/Elements/SimpleSearch
rt/share/html/Elements/Submit
rt/share/html/Elements/TSVExport
rt/share/html/Elements/Tabs
rt/share/html/Elements/TicketList
rt/share/html/Elements/TitleBox
rt/share/html/Elements/TitleBoxEnd
rt/share/html/Elements/TitleBoxStart
rt/share/html/Elements/ValidateCustomFields
rt/share/html/Elements/WidgetBar
rt/share/html/Errors/WebRemoteUser/Deauthorized
rt/share/html/Errors/WebRemoteUser/NoInternalUser
rt/share/html/Errors/WebRemoteUser/NoRemoteUser
rt/share/html/Errors/WebRemoteUser/UserAutocreateDefaultsOnLogin
rt/share/html/Errors/WebRemoteUser/Wrapper
rt/share/html/Helpers/Autocomplete/CustomFieldValues
rt/share/html/Helpers/Autocomplete/Groups
rt/share/html/Helpers/Autocomplete/Owners
rt/share/html/Helpers/Autocomplete/Tickets
rt/share/html/Helpers/Autocomplete/Users
rt/share/html/Helpers/Autocomplete/autohandler
rt/share/html/Helpers/TicketHistory
rt/share/html/Helpers/Toggle/ShowRequestor
rt/share/html/Helpers/Toggle/TicketBookmark
rt/share/html/Helpers/UserInfo
rt/share/html/Helpers/autohandler
rt/share/html/Install/Basics.html
rt/share/html/Install/DatabaseDetails.html
rt/share/html/Install/DatabaseType.html
rt/share/html/Install/Elements/Errors
rt/share/html/Install/Elements/Wrapper
rt/share/html/Install/Finish.html
rt/share/html/Install/Global.html
rt/share/html/Install/Initialize.html
rt/share/html/Install/Sendmail.html
rt/share/html/Install/autohandler
rt/share/html/Install/index.html
rt/share/html/NoAuth/Helpers/CustomLogo/dhandler
rt/share/html/NoAuth/Login.html
rt/share/html/NoAuth/Logout.html
rt/share/html/NoAuth/RichText/autohandler
rt/share/html/NoAuth/css/aileron/AfterMenus
rt/share/html/NoAuth/css/aileron/InHeader
rt/share/html/NoAuth/css/autohandler
rt/share/html/NoAuth/css/ballard/InHeader
rt/share/html/NoAuth/css/dhandler
rt/share/html/NoAuth/css/rudder/AfterMenus
rt/share/html/NoAuth/css/rudder/InHeader
rt/share/html/NoAuth/css/web2/AfterMenus
rt/share/html/NoAuth/css/web2/InHeader
rt/share/html/NoAuth/iCal/dhandler
rt/share/html/NoAuth/js/autohandler
rt/share/html/NoAuth/js/dhandler
rt/share/html/NoAuth/rss/dhandler
rt/share/html/Prefs/DashboardsInMenu.html
rt/share/html/Prefs/MyRT.html
rt/share/html/Prefs/Other.html
rt/share/html/Prefs/Quicksearch.html
rt/share/html/Prefs/Search.html
rt/share/html/Prefs/SearchOptions.html
rt/share/html/REST/1.0/Forms/attachment/default
rt/share/html/REST/1.0/Forms/group/customfields
rt/share/html/REST/1.0/Forms/group/default
rt/share/html/REST/1.0/Forms/group/ns
rt/share/html/REST/1.0/Forms/queue/customfields
rt/share/html/REST/1.0/Forms/queue/default
rt/share/html/REST/1.0/Forms/queue/ns
rt/share/html/REST/1.0/Forms/queue/ticketcustomfields
rt/share/html/REST/1.0/Forms/ticket/attachments
rt/share/html/REST/1.0/Forms/ticket/comment
rt/share/html/REST/1.0/Forms/ticket/default
rt/share/html/REST/1.0/Forms/ticket/history
rt/share/html/REST/1.0/Forms/ticket/links
rt/share/html/REST/1.0/Forms/ticket/merge
rt/share/html/REST/1.0/Forms/ticket/take
rt/share/html/REST/1.0/Forms/transaction/default
rt/share/html/REST/1.0/Forms/user/default
rt/share/html/REST/1.0/Forms/user/ns
rt/share/html/REST/1.0/NoAuth/mail-gateway
rt/share/html/REST/1.0/autohandler
rt/share/html/REST/1.0/dhandler
rt/share/html/REST/1.0/logout
rt/share/html/REST/1.0/search/dhandler
rt/share/html/REST/1.0/ticket/comment
rt/share/html/REST/1.0/ticket/link
rt/share/html/REST/1.0/ticket/merge
rt/share/html/Search/Article.html
rt/share/html/Search/Build.html
rt/share/html/Search/Bulk.html
rt/share/html/Search/Chart
rt/share/html/Search/Chart.html
rt/share/html/Search/Edit.html
rt/share/html/Search/Elements/Article
rt/share/html/Search/Elements/BuildFormatString
rt/share/html/Search/Elements/Chart
rt/share/html/Search/Elements/ChartTable
rt/share/html/Search/Elements/ConditionRow
rt/share/html/Search/Elements/DisplayOptions
rt/share/html/Search/Elements/EditFormat
rt/share/html/Search/Elements/EditQuery
rt/share/html/Search/Elements/EditSearches
rt/share/html/Search/Elements/EditSort
rt/share/html/Search/Elements/Graph
rt/share/html/Search/Elements/NewListActions
rt/share/html/Search/Elements/PickBasics
rt/share/html/Search/Elements/PickCFs
rt/share/html/Search/Elements/PickCriteria
rt/share/html/Search/Elements/PickObjectCFs
rt/share/html/Search/Elements/PickTicketCFs
rt/share/html/Search/Elements/ResultsRSSView
rt/share/html/Search/Elements/SearchPrivacy
rt/share/html/Search/Elements/SearchesForObject
rt/share/html/Search/Elements/SelectAndOr
rt/share/html/Search/Elements/SelectChartFunction
rt/share/html/Search/Elements/SelectChartType
rt/share/html/Search/Elements/SelectGroup
rt/share/html/Search/Elements/SelectGroupBy
rt/share/html/Search/Elements/SelectLinks
rt/share/html/Search/Elements/SelectPersonType
rt/share/html/Search/Elements/SelectSearchObject
rt/share/html/Search/Elements/SelectSearchesForObjects
rt/share/html/Search/Results.html
rt/share/html/Search/Results.rdf
rt/share/html/Search/Results.tsv
rt/share/html/Search/Simple.html
rt/share/html/Search/index.html
rt/share/html/SelfService/Article/Display.html
rt/share/html/SelfService/Article/Search.html
rt/share/html/SelfService/Article/autohandler
rt/share/html/SelfService/Attachment/dhandler
rt/share/html/SelfService/Closed.html
rt/share/html/SelfService/Create.html
rt/share/html/SelfService/CreateTicketInQueue.html
rt/share/html/SelfService/Display.html
rt/share/html/SelfService/Elements/GotoTicket
rt/share/html/SelfService/Elements/Header
rt/share/html/SelfService/Elements/MyRequests
rt/share/html/SelfService/Elements/SearchArticle
rt/share/html/SelfService/Helpers/Autocomplete/CustomFieldValues
rt/share/html/SelfService/Helpers/Autocomplete/Users
rt/share/html/SelfService/Prefs.html
rt/share/html/SelfService/Update.html
rt/share/html/SelfService/index.html
rt/share/html/Ticket/Attachment/WithHeaders/dhandler
rt/share/html/Ticket/Attachment/dhandler
rt/share/html/Ticket/Create.html
rt/share/html/Ticket/Crypt.html
rt/share/html/Ticket/Display.html
rt/share/html/Ticket/Elements/AddAttachments
rt/share/html/Ticket/Elements/AddWatchers
rt/share/html/Ticket/Elements/Bookmark
rt/share/html/Ticket/Elements/ClickToShowHistory
rt/share/html/Ticket/Elements/DelayShowHistory
rt/share/html/Ticket/Elements/EditBasics
rt/share/html/Ticket/Elements/EditCustomFields
rt/share/html/Ticket/Elements/EditDates
rt/share/html/Ticket/Elements/EditMerge
rt/share/html/Ticket/Elements/EditPeople
rt/share/html/Ticket/Elements/EditTransactionCustomFields
rt/share/html/Ticket/Elements/EditWatchers
rt/share/html/Ticket/Elements/LoadTextAttachments
rt/share/html/Ticket/Elements/PreviewScrips
rt/share/html/Ticket/Elements/Reminders
rt/share/html/Ticket/Elements/SelectStatus
rt/share/html/Ticket/Elements/ShowAttachments
rt/share/html/Ticket/Elements/ShowBasics
rt/share/html/Ticket/Elements/ShowCustomFields
rt/share/html/Ticket/Elements/ShowDates
rt/share/html/Ticket/Elements/ShowDependencyStatus
rt/share/html/Ticket/Elements/ShowGroupMembers
rt/share/html/Ticket/Elements/ShowPeople
rt/share/html/Ticket/Elements/ShowPriority
rt/share/html/Ticket/Elements/ShowQueue
rt/share/html/Ticket/Elements/ShowRequestor
rt/share/html/Ticket/Elements/ShowRequestorExtraInfo
rt/share/html/Ticket/Elements/ShowRequestorTickets
rt/share/html/Ticket/Elements/ShowRequestorTicketsActive
rt/share/html/Ticket/Elements/ShowRequestorTicketsAll
rt/share/html/Ticket/Elements/ShowRequestorTicketsInactive
rt/share/html/Ticket/Elements/ShowSimplifiedRecipients
rt/share/html/Ticket/Elements/ShowSummary
rt/share/html/Ticket/Elements/ShowTime
rt/share/html/Ticket/Elements/ShowUpdateStatus
rt/share/html/Ticket/Elements/UpdateCc
rt/share/html/Ticket/Forward.html
rt/share/html/Ticket/Graphs/Elements/EditGraphProperties
rt/share/html/Ticket/Graphs/Elements/ShowGraph
rt/share/html/Ticket/Graphs/Elements/ShowLegends
rt/share/html/Ticket/Graphs/dhandler
rt/share/html/Ticket/Graphs/index.html
rt/share/html/Ticket/History.html
rt/share/html/Ticket/Modify.html
rt/share/html/Ticket/ModifyAll.html
rt/share/html/Ticket/ModifyDates.html
rt/share/html/Ticket/ModifyLinks.html
rt/share/html/Ticket/ModifyPeople.html
rt/share/html/Ticket/Reminders.html
rt/share/html/Ticket/ShowEmailRecord.html
rt/share/html/Ticket/Update.html
rt/share/html/Ticket/autohandler
rt/share/html/Tools/MyDay.html
rt/share/html/Tools/MyReminders.html
rt/share/html/Tools/index.html
rt/share/html/User/Elements/Portlets/ActiveTickets
rt/share/html/User/Elements/Portlets/CreateTicket
rt/share/html/User/Elements/Portlets/ExtraInfo
rt/share/html/User/Elements/Portlets/InactiveTickets
rt/share/html/User/Elements/TicketList
rt/share/html/User/Elements/UserInfo
rt/share/html/User/History.html
rt/share/html/User/Prefs.html
rt/share/html/User/Search.html
rt/share/html/User/Summary.html
rt/share/html/Widgets/BulkEdit
rt/share/html/Widgets/BulkProcess
rt/share/html/Widgets/ComboBox
rt/share/html/Widgets/FinalizeWidgetArguments
rt/share/html/Widgets/Form/Boolean
rt/share/html/Widgets/Form/Integer
rt/share/html/Widgets/Form/Select
rt/share/html/Widgets/Form/String
rt/share/html/Widgets/SavedSearch
rt/share/html/Widgets/SelectionBox
rt/share/html/Widgets/TitleBox
rt/share/html/Widgets/TitleBoxEnd
rt/share/html/Widgets/TitleBoxStart
rt/share/html/autohandler
rt/share/html/dhandler
rt/share/html/index.html
rt/share/html/l
rt/share/html/l_unsafe
rt/share/html/m/_elements/footer
rt/share/html/m/_elements/full_site_link
rt/share/html/m/_elements/header
rt/share/html/m/_elements/login
rt/share/html/m/_elements/menu
rt/share/html/m/_elements/ticket_list
rt/share/html/m/_elements/ticket_menu
rt/share/html/m/_elements/wrapper
rt/share/html/m/dhandler
rt/share/html/m/index.html
rt/share/html/m/logout
rt/share/html/m/ticket/autohandler
rt/share/html/m/ticket/create
rt/share/html/m/ticket/history
rt/share/html/m/ticket/reply
rt/share/html/m/ticket/select_create_queue
rt/share/html/m/ticket/show
rt/share/html/m/tickets/search
rt/share/po/ar.po
rt/share/po/bg.po
rt/share/po/ca.po
rt/share/po/cs.po
rt/share/po/da.po
rt/share/po/de.po
rt/share/po/el.po
rt/share/po/en.po
rt/share/po/en_GB.po
rt/share/po/es.po
rt/share/po/et.po
rt/share/po/eu.po
rt/share/po/fa.po
rt/share/po/fi.po
rt/share/po/fr.po
rt/share/po/hr.po
rt/share/po/hu.po
rt/share/po/id.po
rt/share/po/is.po
rt/share/po/it.po
rt/share/po/ja.po
rt/share/po/lt.po
rt/share/po/lv.po
rt/share/po/nb.po
rt/share/po/nl.po
rt/share/po/nn.po
rt/share/po/oc.po
rt/share/po/pl.po
rt/share/po/pt.po
rt/share/po/pt_BR.po
rt/share/po/pt_PT.po
rt/share/po/rt.pot
rt/share/po/ru.po
rt/share/po/sk.po
rt/share/po/sl.po
rt/share/po/sr.po
rt/share/po/sv.po
rt/share/po/tr.po
rt/share/po/zh_CN.po
rt/share/po/zh_TW.po
rt/share/static/css/base/misc.css
rt/share/static/css/rudder/ticket.css
rt/t/api/password-types.t
rt/t/mail/html-outgoing.t
rt/t/shredder/03plugin_users.t
rt/t/web/csrf.t

index 9034a93..158e703 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -305,9 +305,7 @@ fixperms:
 
        # Make upgrade scripts executable if they are in the source.
        #
-       # Note that we use the deprecated (by GNU/POSIX find) -perm +0NNN syntax
-       # instead of -perm /0NNN since BSD find doesn't support the latter.
-       ( cd etc/upgrade && find . -type f -not -name '*.in' -perm +0111 -print ) | while read file ; do \
+       ( cd etc/upgrade && find . -type f -not -name '*.in' -perm @FINDPERM@0111 -print ) | while read file ; do \
                chmod a+x "$(DESTDIR)$(RT_ETC_PATH)/upgrade/$$file" ; \
        done
 
index bdd8e09..6581240 100755 (executable)
--- a/rt/README
+++ b/rt/README
@@ -27,9 +27,9 @@ o   A supported SQL database
                                            upgrade path guaranteed
 
 o   Apache version 1.3.x or 2.x (http://httpd.apache.org)
-        with mod_perl -- (http://perl.apache.org)
-        or with FastCGI -- (http://www.fastcgi.com)
-        or other webserver with FastCGI support
+        with FastCGI -- (http://www.fastcgi.com)
+        or mod_perl -- (http://perl.apache.org)
+        or another webserver with FastCGI support
 
         RT's FastCGI handler needs to access RT's configuration file.
 
@@ -67,13 +67,13 @@ GENERAL INSTALLATION
     If you are upgrading from a previous version of RT, please review
     the upgrade notes for the appropriate versions, which can be found
     in docs/UPGRADING-* If you are coming from 4.0.x to 4.2.x you should
-    review both the UPGRADING-4.0 and UPGRADING-4.2 file.  Similarly, if
-    you were coming from 3.8.x, you would want to review UPGRADING-3.8,
-    UPGRADING-4.0 and UPGRADING-4.2
+    review both the UPGRADING-4.0 and UPGRADING-4.2 files.  Similarly, if
+    you were coming from 3.8.x, you would want to review the UPGRADING-3.8,
+    UPGRADING-4.0 and UPGRADING-4.2 documents.
 
     Any upgrade steps given in version-specific UPGRADING files should
     be run after the rest of the steps below; however, please read the
-    relevant documentation before beginning the upgrade, soas to be
+    relevant documentation before beginning the upgrade, so as to be
     aware of important changes.
 
     RT stores the arguments given to ./configure at the top of the
@@ -159,7 +159,7 @@ GENERAL INSTALLATION
 
       You should back up your database before running this command.
       When you run it, you will be prompted for your previous version of
-      RT (such as 3.8.1) so that the appropriate set of database
+      RT (such as 4.0.23) so that the appropriate set of database
       upgrades can be applied.
 
       If 'make upgrade-database' completes without error, your upgrade
@@ -216,6 +216,9 @@ GENERAL INSTALLATION
 
            perldoc /opt/rt4/bin/rt-mailgate
 
+11) Set up automatic backups for RT and its data as described in
+    the docs/backups.pod document.
+
 
 GETTING HELP
 ------------
@@ -278,7 +281,7 @@ fix them.  To report a bug, send email to <rt-bugs@bestpractical.com>.
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 9c0ed8d..fe2a8ed 100755 (executable)
--- a/rt/bin/rt
+++ b/rt/bin/rt
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a8fc30d..434b243 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -73,15 +73,15 @@ use Getopt::Long;
 
 use RT::Interface::CLI qw(GetCurrentUser loc);
 
-my ( $search, $condition, $action, $search_arg, $condition_arg, $action_arg,
+my ( $search, $condition, $actions, $search_arg, $condition_arg, $actions_arg,
      $template, $template_id, $transaction, $transaction_type, $help, $log, $verbose );
 GetOptions(
     "search=s"           => \$search,
     "search-arg=s"       => \$search_arg,
     "condition=s"        => \$condition,
     "condition-arg=s"    => \$condition_arg,
-    "action-arg=s"       => \$action_arg,
-    "action=s"           => \$action,
+    "action-arg=s@"      => \$actions_arg,
+    "action=s@"          => \$actions,
     "template=s"         => \$template,
     "template-id=s"      => \$template_id,
     "transaction=s"      => \$transaction,
@@ -114,7 +114,7 @@ unless ( $CurrentUser->Id ) {
     exit(1);
 }
 
-help() unless $search && $action;
+help() unless $search && $actions;
 
 $transaction = lc( $transaction||'' );
 if ( $transaction && $transaction !~ /^(first|all|last)$/i ) {
@@ -133,7 +133,9 @@ elsif ( $template_id ) {
 
 # We _must_ have a search object
 load_module($search);
-load_module($action)    if ($action);
+for my $action (@$actions) {
+    load_module($action);
+}
 load_module($condition) if ($condition);
 
 my $void_scrip = RT::Scrip->new( $CurrentUser );
@@ -197,24 +199,35 @@ sub process {
         print "\t".loc("Condition matches...")."\n" if $verbose;
     }
 
-    #prepare our action
-    my $action_obj = $action->new(
-        TicketObj      => $ticket,
-        TransactionObj => $transaction,
-        TemplateObj    => $template_obj,
-        Argument       => $action_arg,
-        ScripObj       => $void_scrip,
-        ScripActionObj => $void_scrip_action,
-        CurrentUser    => $CurrentUser,
-    );
+    my $i = 0;
+    for my $action (@$actions) {
 
-    #if our preparation, move onto the next ticket
-    return unless $action_obj->Prepare;
-    print "\t".loc("Action prepared...")."\n" if $verbose;
+        # Given the current index of the actions array, see
+        # if there is still a corresponding element in the
+        # actions_arg array. If so, then use that argument,
+        # else use undef.
+        my $action_argument = ($i <= $#$actions_arg) ? $actions_arg->[$i] : undef;
+        $i++;
 
-    #commit our action.
-    return unless $action_obj->Commit;
-    print "\t".loc("Action committed.")."\n" if $verbose;
+        # prepare our action
+        my $action_obj = $action->new(
+            TicketObj      => $ticket,
+            TransactionObj => $transaction,
+            TemplateObj    => $template_obj,
+            Argument       => $action_argument,
+            ScripObj       => $void_scrip,
+            ScripActionObj => $void_scrip_action,
+            CurrentUser    => $CurrentUser,
+        );
+
+        # if our preparation failed, move onto the next action
+        next unless $action_obj->Prepare;
+        print "\t".loc("Action prepared...")."\n" if $verbose;
+
+        # commit our action.
+        next unless $action_obj->Commit;
+        print "\t".loc("Action committed.")."\n" if $verbose;
+    }
 }
 
 # =head2 get_transactions
@@ -312,10 +325,10 @@ sub help {
       . loc( "[_1] - An argument to pass to [_2]", "--condition-arg", "--condition" )
       . "\n";
     print "        "
-      . loc( "[_1] - Specify the action module you want to use", "--action" )
+      . loc( "[_1] - Specify the action module you want to use. This option may be repeated to apply multiple actions to found tickets.", "--action" )
       . "\n";
     print "        "
-      . loc( "[_1] - An argument to pass to [_2]", "--action-arg", "--action" )
+      . loc( "[_1] - An argument to pass to [_2]. This option may be repeated to pass corresponding arguments to multiple calls of [_2].", "--action-arg", "--action" )
       . "\n";
     print "        "
       . loc( "[_1] - Specify name or id of template(s) you want to use", "--template" )
@@ -356,11 +369,6 @@ sub help {
     print " bin/rt-crontool \\\n";
     print "  --search RT::Search::ActiveTicketsInQueue  --search-arg general \\\n";
     print"  --action RT::Action::EscalatePriority\n";
-
-
 
     exit(0);
 }
@@ -422,11 +430,11 @@ An argument to pass to --condition
 
 =item action 
 
-Specify the action module you want to use
+Specify the action module you want to use. This option may be repeated to apply multiple actions to found tickets.
 
 =item action-arg
 
-An argument to pass to --action
+An argument to pass to --action. This option may be repeated to pass corresponding arguments to multiple calls of --action.
 
 =item template
 
index dd0cf3d..43f57a8 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index ee60033..2b37270 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b118e4f..2e736ff 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac Revision.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for RT rt-4.2.12.
+# Generated by GNU Autoconf 2.69 for RT rt-4.2.13.
 #
 # Report bugs to <rt-bugs@bestpractical.com>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='RT'
 PACKAGE_TARNAME='rt'
-PACKAGE_VERSION='rt-4.2.12'
-PACKAGE_STRING='RT rt-4.2.12'
+PACKAGE_VERSION='rt-4.2.13'
+PACKAGE_STRING='RT rt-4.2.13'
 PACKAGE_BUGREPORT='rt-bugs@bestpractical.com'
 PACKAGE_URL=''
 
@@ -705,6 +705,7 @@ exp_bindir
 exp_exec_prefix
 exp_prefix
 WEB_HANDLER
+FINDPERM
 PERL
 INSTALL_DATA
 INSTALL_SCRIPT
@@ -1324,7 +1325,7 @@ 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 rt-4.2.12 to adapt to many kinds of systems.
+\`configure' configures RT rt-4.2.13 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1385,7 +1386,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of RT rt-4.2.12:";;
+     short | recursive ) echo "Configuration of RT rt-4.2.13:";;
    esac
   cat <<\_ACEOF
 
@@ -1501,7 +1502,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-RT configure rt-4.2.12
+RT configure rt-4.2.13
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1518,7 +1519,7 @@ cat >config.log <<_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 rt-4.2.12, which was
+It was created by RT $as_me rt-4.2.13, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -1875,7 +1876,7 @@ rt_version_major=4
 
 rt_version_minor=2
 
-rt_version_patch=12
+rt_version_patch=13
 
 test "x$rt_version_major" = 'x' && rt_version_major=0
 test "x$rt_version_minor" = 'x' && rt_version_minor=0
@@ -2049,6 +2050,19 @@ if test "$PERL" = 'not found'; then
        as_fn_error $? "cannot use $PACKAGE_NAME without perl" "$LINENO" 5
 fi
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking checking version of find" >&5
+$as_echo_n "checking checking version of find... " >&6; }
+if find --version 2>&1 | grep 'GNU'; then :
+     FINDPERM="/"
+          { $as_echo "$as_me:${as_lineno-$LINENO}: result: configuring for GNU find" >&5
+$as_echo "configuring for GNU find" >&6; }
+else
+     FINDPERM="+"
+          { $as_echo "$as_me:${as_lineno-$LINENO}: result: configuring for BSD find" >&5
+$as_echo "configuring for BSD find" >&6; }
+fi
+
+
 
 
 # Check whether --with-web-handler was given.
@@ -3118,7 +3132,7 @@ fi
 ac_config_files="$ac_config_files etc/upgrade/3.8-ical-extension etc/upgrade/4.0-customfield-checkbox-extension etc/upgrade/generate-rtaddressregexp etc/upgrade/sanity-check-stylesheets etc/upgrade/shrink-cgm-table etc/upgrade/shrink-transactions-table etc/upgrade/split-out-cf-categories etc/upgrade/switch-templates-to etc/upgrade/time-worked-history etc/upgrade/upgrade-articles etc/upgrade/vulnerable-passwords sbin/rt-attributes-viewer sbin/rt-preferences-viewer sbin/rt-session-viewer sbin/rt-dump-metadata sbin/rt-setup-database sbin/rt-test-dependencies sbin/rt-email-digest sbin/rt-email-dashboards sbin/rt-clean-sessions sbin/rt-shredder sbin/rt-validator sbin/rt-validate-aliases sbin/rt-email-group-admin sbin/rt-server sbin/rt-server.fcgi sbin/standalone_httpd sbin/rt-setup-fulltext-index sbin/rt-fulltext-indexer sbin/rt-serializer sbin/rt-importer bin/rt-crontool bin/rt-mailgate bin/rt"
 
 
-ac_config_files="$ac_config_files Makefile etc/RT_Config.pm lib/RT/Generated.pm t/data/configs/apache2.2+mod_perl.conf t/data/configs/apache2.2+fastcgi.conf"
+ac_config_files="$ac_config_files Makefile etc/RT_Config.pm lib/RT/Generated.pm t/data/configs/apache2.2+mod_perl.conf t/data/configs/apache2.2+fastcgi.conf t/data/configs/apache2.4+mod_perl.conf t/data/configs/apache2.4+fastcgi.conf"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -3662,7 +3676,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by RT $as_me rt-4.2.12, which was
+This file was extended by RT $as_me rt-4.2.13, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -3715,7 +3729,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-RT config.status rt-4.2.12
+RT config.status rt-4.2.13
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -3865,6 +3879,8 @@ do
     "lib/RT/Generated.pm") CONFIG_FILES="$CONFIG_FILES lib/RT/Generated.pm" ;;
     "t/data/configs/apache2.2+mod_perl.conf") CONFIG_FILES="$CONFIG_FILES t/data/configs/apache2.2+mod_perl.conf" ;;
     "t/data/configs/apache2.2+fastcgi.conf") CONFIG_FILES="$CONFIG_FILES t/data/configs/apache2.2+fastcgi.conf" ;;
+    "t/data/configs/apache2.4+mod_perl.conf") CONFIG_FILES="$CONFIG_FILES t/data/configs/apache2.4+mod_perl.conf" ;;
+    "t/data/configs/apache2.4+fastcgi.conf") CONFIG_FILES="$CONFIG_FILES t/data/configs/apache2.4+fastcgi.conf" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
index 8fd2e58..4c7995a 100644 (file)
@@ -34,6 +34,16 @@ if test "$PERL" = 'not found'; then
        AC_MSG_ERROR([cannot use $PACKAGE_NAME without perl])
 fi
 
+dnl BSD find uses -perm +xxxx, GNU find has deprecated this syntax in favour of
+dnl -perm /xxx.
+AC_MSG_CHECKING([checking version of find])
+AS_IF([find --version 2>&1 | grep 'GNU'],
+      [   FINDPERM="/"
+          AC_MSG_RESULT([configuring for GNU find]) ],
+      [   FINDPERM="+"
+          AC_MSG_RESULT([configuring for BSD find]) ])
+
+AC_SUBST([FINDPERM])
 
 dnl WEB_HANDLER
 AC_ARG_WITH(web-handler,
@@ -461,6 +471,8 @@ AC_CONFIG_FILES([
                  etc/RT_Config.pm
                  lib/RT/Generated.pm
                  t/data/configs/apache2.2+mod_perl.conf
-                 t/data/configs/apache2.2+fastcgi.conf],
+                 t/data/configs/apache2.2+fastcgi.conf
+                 t/data/configs/apache2.4+mod_perl.conf
+                 t/data/configs/apache2.4+fastcgi.conf],
                )
 AC_OUTPUT
index 85780de..a8cb705 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 3e8c1bf..c4a39e2 100644 (file)
@@ -5,7 +5,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a494149..7aae405 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 5dd89b8..aba2d8c 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b9d7192..b66a753 100644 (file)
@@ -5,7 +5,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -54,7 +54,7 @@ my $LICENSE  = <<'EOL';
 
 COPYRIGHT:
 
-This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
                                          <sales@bestpractical.com>
 
 (Except where explicitly superseded by other copyright notices)
index 23290a0..58743fd 100644 (file)
@@ -4,7 +4,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -282,6 +282,29 @@ Defaults to F</usr/lib/apache2/modules>.
 =cut
 
 __DATA__
+Listen $PORT
+<IfDefine SSL>
+   Listen $SSL
+</IfDefine>
+
+ServerName localhost
+ServerRoot $RTHOME/var
+PidFile    $RTHOME/var/apache2.pid
+<IfVersion < 2.4>
+    LockFile   $RTHOME/var/apache2.lock
+</IfVersion>
+ServerAdmin root@localhost
+
+<IfVersion >= 2.4>
+    LoadModule mpm_prefork_module $MODULES/mod_mpm_prefork.so
+    LoadModule authz_core_module $MODULES/mod_authz_core.so
+</IfVersion>
+LoadModule authz_host_module  $MODULES/mod_authz_host.so
+LoadModule env_module         $MODULES/mod_env.so
+LoadModule alias_module       $MODULES/mod_alias.so
+LoadModule mime_module        $MODULES/mod_mime.so
+TypesConfig $TOOLS/mime.types
+
 <IfDefine SINGLE>
     <IfModule mpm_prefork_module>
         StartServers          1
@@ -302,23 +325,6 @@ __DATA__
     </IfModule>
 </IfDefine>
 
-Listen $PORT
-<IfDefine SSL>
-   Listen $SSL
-</IfDefine>
-
-ServerName localhost
-ServerRoot $RTHOME/var
-PidFile    $RTHOME/var/apache2.pid
-LockFile   $RTHOME/var/apache2.lock
-ServerAdmin root@localhost
-
-LoadModule authz_host_module  $MODULES/mod_authz_host.so
-LoadModule env_module         $MODULES/mod_env.so
-LoadModule alias_module       $MODULES/mod_alias.so
-LoadModule mime_module        $MODULES/mod_mime.so
-TypesConfig $TOOLS/mime.types
-
 <IfDefine PERL>
     LoadModule perl_module    $MODULES/mod_perl.so
 </IfDefine>
@@ -330,6 +336,9 @@ TypesConfig $TOOLS/mime.types
 </IfDefine>
 <IfDefine SSL>
     LoadModule ssl_module     $MODULES/mod_ssl.so
+    <IfVersion >= 2.4>
+        LoadModule socache_shmcb_module $MODULES/mod_socache_shmcb.so
+    </IfVersion>
 </IfDefine>
 
 <IfModule !log_config_module>
@@ -365,8 +374,6 @@ Alias $PATH/NoAuth/images/ $RTHOME/share/html/NoAuth/images/
 <IfDefine PERL>
     PerlSetEnv RT_SITE_CONFIG $RTHOME/etc/RT_SiteConfig.pm
     <Location $PATH>
-        Order allow,deny
-        Allow from all
         SetHandler modperl
         PerlResponseHandler Plack::Handler::Apache2
         PerlSetVar psgi_app $RTHOME/sbin/rt-server
@@ -383,8 +390,6 @@ Alias $PATH/NoAuth/images/ $RTHOME/share/html/NoAuth/images/
     FastCgiServer $RTHOME/sbin/rt-server.fcgi -processes $PROCESSES -idle-timeout 300
     ScriptAlias $PATH $RTHOME/sbin/rt-server.fcgi/
     <Location $PATH>
-        Order allow,deny
-        Allow from all
         Options +ExecCGI
         AddHandler fastcgi-script fcgi
     </Location>
@@ -397,8 +402,6 @@ Alias $PATH/NoAuth/images/ $RTHOME/share/html/NoAuth/images/
     FcgidMaxRequestLen 1073741824
     ScriptAlias $PATH $RTHOME/sbin/rt-server.fcgi/
     <Location $PATH>
-        Order allow,deny
-        Allow from all
         Options +ExecCGI
         AddHandler fcgid-script fcgi
     </Location>
@@ -426,8 +429,6 @@ Alias $PATH/NoAuth/images/ $RTHOME/share/html/NoAuth/images/
     FastCgiServer $RTHOME/bin/mason_handler.fcgi -processes $PROCESSES -idle-timeout 300
     ScriptAlias $PATH $RTHOME/bin/mason_handler.fcgi/
     <Location $PATH>
-        Order allow,deny
-        Allow from all
         Options +ExecCGI
         AddHandler fastcgi-script fcgi
     </Location>
@@ -440,8 +441,6 @@ Alias $PATH/NoAuth/images/ $RTHOME/share/html/NoAuth/images/
     FcgidMaxRequestLen 1073741824
     ScriptAlias $PATH $RTHOME/bin/mason_handler.fcgi/
     <Location $PATH>
-        Order allow,deny
-        Allow from all
         Options +ExecCGI
         AddHandler fcgid-script fcgi
     </Location>
@@ -454,7 +453,9 @@ Alias $PATH/NoAuth/images/ $RTHOME/share/html/NoAuth/images/
     SSLRandomSeed connect builtin
     SSLRandomSeed connect file:/dev/urandom 512
     SSLSessionCache shmcb:$RTHOME/var/ssl_scache(512000)
-    SSLMutex file:$RTHOME/var/ssl_mutex
+    <IfVersion < 2.4>
+        SSLMutex file:$RTHOME/var/ssl_mutex
+    </IfVersion>
     <VirtualHost *:$SSL>
         SSLEngine on
         SSLCertificateFile    $TOOLS/localhost.crt
index cc69a02..9b16196 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f1a3158..3c92306 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index c8038c0..e9fdcc6 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index c2741ab..8e7c808 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 76aa96d..45a000e 100644 (file)
@@ -327,11 +327,17 @@ functionality can now be implemented via C<%DatabaseExtraDSN>.
 C<$DatabaseRequireSSL> has been removed, and setting it will trigger an
 informational message that setting it is ineffective.
 
-The full-text indexing defaults for PostgreSQL have changed; GiST is now
+The full-text indexing defaults for PostgreSQL have changed; GIN is now
 the suggested index, as well as storing data in a separate
 AttachmentsIndex table.  Both changes improve lookup speed.  For
 improved search performance, you may wish to drop existing C<tsvector>
-and C<GIN> indexes on C<Attachments>, and re-generate the index using
+and C<GiST> indexes on C<Attachments>, and re-generate the index using
 C<rt-setup-fulltext-index>.
 
+=head1 UPGRADING FROM 4.2.12 AND EARLIER
+
+New deployments install an C<RT_SiteConfig.pm> that includes a C<use utf8;>
+to allow Unicode to be used in config. You may wish to add a C<use utf8;> to
+the top of your C<RT_SiteConfig.pm> if you haven't already done so.
+
 =cut
index 24169cb..189c346 100644 (file)
@@ -273,4 +273,11 @@ option to 1, while leaving C<Indexed> set to 0:
 This is not generally suggested, as unindexed full-text searching can
 cause severe performance problems.
 
+=head1 LIMIT ATTACHMENT SIZE
+
+On some systems, very large attachments can cause memory and other
+performance issues for the indexer making it unable to complete
+indexing. See L<RT_Config.pm/"$MaxFulltextAttachmentSize"> for
+details on setting a maximum attachment size to index.
+
 =cut
index fd976de..506dd7b 100644 (file)
@@ -1396,6 +1396,21 @@ Set(%FullTextSearch,
     Indexed => 0,
 );
 
+=item C<$MaxFulltextAttachmentSize>
+
+On some systems, very large attachments can cause memory and other
+performance issues for the indexer making it unable to complete
+indexing. Adding resources like memory and CPU will solve this
+issue, but in cases where that isn't possible, this option
+sets a maximum size in bytes on attachments to index. Attachments
+larger than this limit are skipped and will not be available to
+full text searches.
+
+=cut
+
+# Default 0 means no limit
+Set($MaxFulltextAttachmentSize, 0);
+
 =item C<$DontSearchFileAttachments>
 
 If C<$DontSearchFileAttachments> is set to 1, then uploaded files
@@ -2093,6 +2108,23 @@ Simple wildcards, similar to SSL certificates, are allowed.  For example:
 
 Set(@ReferrerWhitelist, qw());
 
+=item C<%ReferrerComponents>
+
+C<%ReferrerComponents> is the hash to customize referrer checking behavior when
+C<$RestrictReferrer> is enabled, where you can whitelist or blacklist the
+components along with their query args. e.g.
+
+    Set( %ReferrerComponents,
+        ( '/Foo.html' => 1, '/Bar.html' => 0, '/Baz.html' => [ 'id', 'results' ] )
+    );
+
+With this, '/Foo.html' will be whitelisted, and '/Bar.html' will be blacklisted.
+'/Baz.html' with id/results query arguments will be whitelisted but blacklisted
+if there are other query arguments.
+
+=cut
+
+Set( %ReferrerComponents );
 
 =item C<$BcryptCost>
 
@@ -2102,7 +2134,7 @@ higher numbers denoting greater effort.
 
 =cut
 
-Set($BcryptCost, 10);
+Set($BcryptCost, 11);
 
 =back
 
index 0e98238..d22da42 100644 (file)
@@ -1,10 +1,15 @@
-# Any configuration directives you include  here will override 
+use utf8;
+
+# Any configuration directives you include  here will override
 # RT's default configuration file, RT_Config.pm
 #
 # To include a directive here, just copy the equivalent statement
 # from RT_Config.pm and change the value. We've included a single
 # sample value below.
 #
+# If this file includes non-ASCII characters, it must be encoded in
+# UTF-8.
+#
 # This file is actually a perl module, so you can include valid
 # perl code, as well.
 #
index f81feeb..9d77a12 100644 (file)
@@ -7,7 +7,6 @@ ALTER TABLE Transactions ADD OldReference NUMBER(11,0) NULL;
 ALTER TABLE Transactions ADD NewReference NUMBER(11,0) NULL;
 DROP INDEX transactions1;            
 ALTER TABLE Transactions rename column Ticket to ObjectId;
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
 
 ALTER TABLE TicketCustomFieldValues rename to ObjectCustomFieldValues;
 ALTER TABLE ObjectCustomFieldValues  rename column Ticket to ObjectId;
@@ -24,12 +23,6 @@ ALTER TABLE ObjectCustomFieldValues ADD ContentEncoding VARCHAR2(80) NULL;
 ALTER TABLE ObjectCustomFieldValues ADD SortOrder NUMBER(11,0) DEFAULT 0 NOT NULL;
 
 
-
-CREATE INDEX ObjectCustomFieldValues1 on ObjectCustomFieldValues (CustomField,ObjectType,ObjectId,Content); 
-CREATE INDEX ObjectCustomFieldValues2  on ObjectCustomFieldValues (CustomField,ObjectType,ObjectId); 
-
-
-
 CREATE SEQUENCE OBJECTCUSTOMFIELDS_seq;
 CREATE TABLE ObjectCustomFields (
         id              NUMBER(11,0)
index 427eae7..0c2ad54 100644 (file)
@@ -9,8 +9,6 @@ drop index transactions1;
 alter table Transactions rename column Ticket to ObjectId;
 
 
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
 alter table TicketCustomFieldValues rename to ObjectCustomFieldValues;
 
 alter table ObjectCustomFieldValues  rename column Ticket to ObjectId;
@@ -33,10 +31,6 @@ alter table objectcustomfieldvalues add column ContentType varchar(80) NULL;
 
 alter table objectcustomfieldvalues add column ContentEncoding varchar(80) NULL;
 
-create index ObjectCustomFieldValues1 on objectcustomfieldvalues (CustomField,ObjectType,ObjectId,Content); 
-
-create index ObjectCustomFieldValues2  on objectcustomfieldvalues (CustomField,ObjectType,ObjectId); 
-
 
 CREATE SEQUENCE objectcustomfields_id_s;
 
index d8b0499..539c50b 100644 (file)
@@ -9,7 +9,6 @@ alter Table Transactions
     CHANGE      Ticket ObjectId integer NOT NULL DEFAULT 0;
 
 UPDATE Transactions set ObjectType = 'RT::Ticket';
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
 
 alter table TicketCustomFieldValues rename ObjectCustomFieldValues,
     change Ticket ObjectId integer NOT NULL DEFAULT 0  ,
@@ -25,10 +24,6 @@ update ObjectCustomFieldValues set ObjectType = 'RT::Ticket';
 #alter table ObjectCustomFieldValues drop index ticketcustomfieldvalues1;
 #alter table ObjectCustomFieldValues drop index ticketcustomfieldvalues2;
 
-alter table ObjectCustomFieldValues add index ObjectCustomFieldValues1 (Content),
-    add index ObjectCustomFieldValues2 (CustomField,ObjectType,ObjectId);
-
-
 CREATE TABLE ObjectCustomFields (
   id INTEGER NOT NULL  AUTO_INCREMENT,
   CustomField int NOT NULL  ,
diff --git a/rt/etc/upgrade/3.7.81/schema.Oracle b/rt/etc/upgrade/3.7.81/schema.Oracle
deleted file mode 100644 (file)
index 02da4ec..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
diff --git a/rt/etc/upgrade/3.7.81/schema.mysql b/rt/etc/upgrade/3.7.81/schema.mysql
deleted file mode 100644 (file)
index 02da4ec..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
index 928888f..f4df8ec 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
diff --git a/rt/etc/upgrade/3.8.3/schema.Pg b/rt/etc/upgrade/3.8.3/schema.Pg
deleted file mode 100644 (file)
index bbe5536..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers(GroupId, MemberId);
-
index a83ac3e..abd8530 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b3d466e..8ca22c8 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index cc3b5f1..851c502 100644 (file)
@@ -50,6 +50,11 @@ our @Initial = (
     sub {
         RT->Logger->debug('Removing all Delegate and PersonalGroup rights');
 
+        # this temporarily tells the system that the rights exist so it can properly canonicalize them
+        RT::System->AddRight(Admin => AdminOwnPersonalGroups  => 'Add right for 4.0.1 upgrade steps');
+        RT::System->AddRight(Admin => AdminAllPersonalGroups  => 'Add right for 4.0.1 upgrade steps');
+        RT::System->AddRight(Admin => DelegateRights          => 'Add right for 4.0.1 upgrade steps');
+
         my $acl = RT::ACL->new(RT->SystemUser);
         for my $right (qw/AdminOwnPersonalGroups AdminAllPersonalGroups DelegateRights/) {
             $acl->Limit( FIELD => 'RightName', VALUE => $right );
index 3cdd5a6..043b21a 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 510abf7..5fe1288 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8654271..172a40a 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8eea6ed..c167957 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6faf29c..800274c 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 384d8f7..e745223 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index fe216fa..c9c4ebd 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a3852df..1b430cb 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 742fd17..837e20f 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 92d18e3..690ec01 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 1ccf0a1..39c3483 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 7b58685..069309d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index c27a82b..0a79ecb 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 89ca69f..fb3f401 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 5c295cb..ac4dfe6 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 156c1ee..9cc324e 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a8a3739..9a48706 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 9bf6ab6..a7a4627 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index d19f152..dd32da7 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8632d9d..1b63d53 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b13d2a8..1dece09 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 9607033..23a796c 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 633206e..ec98fa3 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 50c1a62..924419b 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 5646d7e..e9638b7 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index dd69fa3..f6e986d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 2d6e423..33ca477 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 0995e94..c163451 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 575c92e..8ec0b0e 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index e407b9f..73695cd 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 80b0054..2361ead 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -317,24 +317,21 @@ sub SendMessage {
     return (1);
 }
 
-=head2 AddAttachments
+=head2 AttachableFromTransaction
 
-Takes any attachments to this transaction and attaches them to the message
-we're building.
+Function (not method) that takes an L<RT::Transaction> and returns an
+L<RT::Attachments> collection of attachments suitable for attaching to an
+email.
 
 =cut
 
-sub AddAttachments {
-    my $self = shift;
-
-    my $MIMEObj = $self->TemplateObj->MIMEObj;
-
-    $MIMEObj->head->delete('RT-Attach-Message');
+sub AttachableFromTransaction {
+    my $txn = shift;
 
     my $attachments = RT::Attachments->new( RT->SystemUser );
     $attachments->Limit(
         FIELD => 'TransactionId',
-        VALUE => $self->TransactionObj->Id
+        VALUE => $txn->Id
     );
 
     # Don't attach anything blank
@@ -344,7 +341,7 @@ sub AddAttachments {
     # We want to make sure that we don't include the attachment that's
     # being used as the "Content" of this message" unless that attachment's
     # content type is not like text/...
-    my $transaction_content_obj = $self->TransactionObj->ContentObj;
+    my $transaction_content_obj = $txn->ContentObj;
 
     if (   $transaction_content_obj
         && $transaction_content_obj->ContentType =~ m{text/}i )
@@ -368,6 +365,25 @@ sub AddAttachments {
         }
     }
 
+    return $attachments;
+}
+
+=head2 AddAttachments
+
+Takes any attachments to this transaction and attaches them to the message
+we're building.
+
+=cut
+
+sub AddAttachments {
+    my $self = shift;
+
+    my $MIMEObj = $self->TemplateObj->MIMEObj;
+
+    $MIMEObj->head->delete('RT-Attach-Message');
+
+    my $attachments = AttachableFromTransaction($self->TransactionObj);
+
     # attach any of this transaction's attachments
     my $seen_attachment = 0;
     while ( my $attach = $attachments->Next ) {
index 5fad224..3fa6e3b 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index df789e4..4ebf5e5 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index d763b9b..158afe1 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 2b8d9b7..48bee18 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index afa4286..cd6d661 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 0bb98ef..9bf39f0 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b5c1882..fbbf9f5 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 4195565..238ad63 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 53d09a1..cd083d5 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 91078d3..8661bf4 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b53c3cc..2c955cc 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 4b85eba..726758a 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 154d161..00f790a 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 13cf5cf..73da9bb 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8ee95d2..9943b57 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f5e84a4..e0ede6a 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 9254c8f..77b3736 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f5d62c2..21ea336 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index e6bda97..cb483cb 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 4f746be..c985641 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index bf55d52..6ff2b57 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 69aaf86..537aa54 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f63508b..44a2655 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6e1b602..6302726 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 67f4dd9..66c8106 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f9c0c49..e005f69 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 7368971..651a4bb 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8992e7b..a1629e9 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 808595b..72319ee 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index d4be965..73c1b84 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f082eb8..31f0143 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f665e45..97153c6 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 7d58eb0..a6e0132 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 08844f5..656741c 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index cad86d2..dfc0bf0 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -545,7 +545,7 @@ sub VerifyDecrypt {
         my $modify = $res{status_on}->head->modify;
         $res{status_on}->head->modify(1);
         $res{status_on}->head->add(
-            "X-RT-" . $protected->{'Protocol'} . "-Status" => $res{'status'}
+            "X-RT-" . $protected->{'Protocol'} . "-Status" => Encode::encode( "UTF-8", $res{'status'} )
         );
         $res{status_on}->head->modify($modify);
 
index ddb91e4..e986447 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -911,10 +911,10 @@ sub _CheckIfProtectedInline {
     }
 
     while ( defined($_ = $io->getline) ) {
-        if ( /^-----BEGIN PGP (SIGNED )?MESSAGE-----/ ) {
+        if ( /^-----BEGIN PGP (SIGNED )?MESSAGE-----\s*$/ ) {
             return $1? 'signed': 'encrypted';
         }
-        elsif ( $check_for_signature && !/^-----BEGIN PGP SIGNATURE-----/ ) {
+        elsif ( $check_for_signature && !/^-----BEGIN PGP SIGNATURE-----\s*$/ ) {
             return 'signature';
         }
     }
@@ -1092,7 +1092,7 @@ sub DecryptInline {
     binmode $block_fh, ':raw';
 
     while ( defined(my $str = $io->getline) ) {
-        if ( $in_block && $str =~ /^-----END PGP (?:MESSAGE|SIGNATURE)-----/ ) {
+        if ( $in_block && $str =~ /^-----END PGP (?:MESSAGE|SIGNATURE)-----\s*$/ ) {
             print $block_fh $str;
             $in_block--;
             next if $in_block > 0;
@@ -1116,7 +1116,7 @@ sub DecryptInline {
             binmode $block_fh, ':raw';
             $in_block = 0;
         }
-        elsif ( $str =~ /^-----BEGIN PGP (SIGNED )?MESSAGE-----/ ) {
+        elsif ( $str =~ /^-----BEGIN PGP (SIGNED )?MESSAGE-----\s*$/ ) {
             $in_block++;
             print $block_fh $str;
         }
index 74a4009..2dfc452 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b1e368d..6a33e5d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a676d8b..743ab2b 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a4b5dc0..74d44e3 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6b9d57b..3940e83 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -1717,7 +1717,7 @@ sub _CanonicalizeValue {
     my $self = shift;
     my $args = shift;
 
-    my $type = $self->_Value('Type');
+    my $type = $self->__Value('Type');
     return 1 unless $type;
 
     my $method = '_CanonicalizeValue'. $type;
@@ -2362,6 +2362,11 @@ sub __DependsOn {
 # Custom field values
     push( @$list, $self->Values );
 
+# Applications of this CF
+    my $applied = RT::ObjectCustomFields->new( $self->CurrentUser );
+    $applied->LimitToCustomField( $self->Id );
+    push @$list, $applied;
+
 # Ticket custom field values
     my $objs = RT::ObjectCustomFieldValues->new( $self->CurrentUser );
     $objs->LimitToCustomField( $self->Id );
index ecffa27..e4a6a96 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 7188689..6b5c624 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 66e798a..100c035 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 415046f..5ec7293 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 90bfa47..dc15c2f 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6d9eeb6..b30f3b2 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f0f14a0..c88fb67 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index e4137a0..a5436c6 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index c572b75..7f4e323 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 4d1e354..a1412e5 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 50de016..396223d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 2954505..51d5dae 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 9dcb80b..3634e14 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6fc5310..cd1254e 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -104,16 +104,19 @@ sub gv_escape($) {
     return $value;
 }
 
+sub loc { return HTML::Mason::Commands::loc(@_) };
+
 our (%fill_cache, @available_colors) = ();
 
 our %property_cb = (
-    Queue => sub { return $_[0]->QueueObj->Name || $_[0]->Queue },
-    CF    => sub {
+    Queue  => sub { return $_[0]->QueueObj->Name || $_[0]->Queue },
+    Status => sub { return loc($_[0]->Status) },
+    CF     => sub {
         my $values = $_[0]->CustomFieldValues( $_[1] );
         return join ', ', map $_->Content, @{ $values->ItemsArrayRef };
     },
 );
-foreach my $field (qw(Subject Status TimeLeft TimeWorked TimeEstimated)) {
+foreach my $field (qw(Subject TimeLeft TimeWorked TimeEstimated)) {
     $property_cb{ $field } = sub { return $_[0]->$field },
 }
 foreach my $field (qw(Creator LastUpdatedBy Owner)) {
@@ -163,7 +166,8 @@ sub TicketProperties {
         next if $seen{ lc $cf->Name }++;
         next if $cf->Type eq 'Image';
         if ( $first ) {
-            push @res, 'CustomFields', [];
+            push @res, 'Custom Fields', # loc
+                [];
             $first = 0;
         }
         push @{ $res[-1] }, 'CF.{'. $cf->Name .'}';
@@ -203,7 +207,8 @@ sub _PropertiesToFields {
             $RT::Logger->error("Couldn't find property handler for '$key' and '@subkeys' subkeys");
             next;
         }
-        push @fields, ($subkeys[0] || $key) .': '. $property_cb{ $key }->( $args{'Ticket'}, @subkeys );
+        my $label = $key eq 'CF' ? $subkeys[0] : loc($key);
+        push @fields, $label .': '. $property_cb{ $key }->( $args{'Ticket'}, @subkeys );
     }
 
     return @fields;
index b79f474..c412ba6 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6fc6002..5f35a7f 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)