summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore25
-rw-r--r--Bugzilla.pm90
-rw-r--r--Bugzilla/Attachment.pm30
-rw-r--r--Bugzilla/Attachment/Database.pm2
-rw-r--r--Bugzilla/Attachment/FileSystem.pm2
-rw-r--r--Bugzilla/Attachment/PatchReader.pm25
-rw-r--r--Bugzilla/Attachment/S3.pm2
-rw-r--r--Bugzilla/Auth.pm29
-rw-r--r--Bugzilla/Auth/Login.pm23
-rw-r--r--Bugzilla/Auth/Login/APIKey.pm1
-rw-r--r--Bugzilla/Auth/Login/CGI.pm37
-rw-r--r--Bugzilla/Auth/Login/Cookie.pm23
-rw-r--r--Bugzilla/Auth/Login/Env.pm29
-rw-r--r--Bugzilla/Auth/Login/Stack.pm28
-rw-r--r--Bugzilla/Auth/Persist/Cookie.pm37
-rw-r--r--Bugzilla/Auth/Verify.pm22
-rw-r--r--Bugzilla/Auth/Verify/DB.pm36
-rw-r--r--Bugzilla/Auth/Verify/LDAP.pm37
-rw-r--r--Bugzilla/Auth/Verify/RADIUS.pm27
-rw-r--r--Bugzilla/Auth/Verify/Stack.pm23
-rw-r--r--Bugzilla/Bug.pm35
-rw-r--r--Bugzilla/BugMail.pm42
-rw-r--r--Bugzilla/BugUrl.pm27
-rw-r--r--Bugzilla/BugUrl/Aha.pm4
-rw-r--r--Bugzilla/BugUrl/Bugzilla.pm28
-rw-r--r--Bugzilla/BugUrl/Bugzilla/Local.pm27
-rw-r--r--Bugzilla/BugUrl/Debian.pm27
-rw-r--r--Bugzilla/BugUrl/GitHub.pm4
-rw-r--r--Bugzilla/BugUrl/Google.pm27
-rw-r--r--Bugzilla/BugUrl/JIRA.pm26
-rw-r--r--Bugzilla/BugUrl/Launchpad.pm27
-rw-r--r--Bugzilla/BugUrl/MantisBT.pm26
-rw-r--r--Bugzilla/BugUrl/MozSupport.pm4
-rw-r--r--Bugzilla/BugUrl/ServiceNow.pm4
-rw-r--r--Bugzilla/BugUrl/SourceForge.pm26
-rw-r--r--Bugzilla/BugUrl/Splat.pm4
-rw-r--r--Bugzilla/BugUrl/Trac.pm26
-rw-r--r--Bugzilla/BugUrl/WebCompat.pm4
-rw-r--r--Bugzilla/BugUserLastVisit.pm1
-rw-r--r--Bugzilla/CGI.pm31
-rw-r--r--Bugzilla/Chart.pm32
-rw-r--r--Bugzilla/Classification.pm26
-rw-r--r--Bugzilla/Comment.pm30
-rw-r--r--Bugzilla/Comment/TagWeights.pm3
-rw-r--r--Bugzilla/Component.pm26
-rw-r--r--Bugzilla/Config.pm35
-rw-r--r--Bugzilla/Config/Admin.pm36
-rw-r--r--Bugzilla/Config/Advanced.pm37
-rw-r--r--Bugzilla/Config/Attachment.pm36
-rw-r--r--Bugzilla/Config/Auth.pm36
-rw-r--r--Bugzilla/Config/BugChange.pm36
-rw-r--r--Bugzilla/Config/BugFields.pm36
-rw-r--r--Bugzilla/Config/Common.pm37
-rw-r--r--Bugzilla/Config/Core.pm36
-rw-r--r--Bugzilla/Config/DependencyGraph.pm2
-rw-r--r--Bugzilla/Config/General.pm38
-rw-r--r--Bugzilla/Config/GroupSecurity.pm36
-rw-r--r--Bugzilla/Config/LDAP.pm36
-rw-r--r--Bugzilla/Config/MTA.pm2
-rw-r--r--Bugzilla/Config/Memcached.pm1
-rw-r--r--Bugzilla/Config/PatchViewer.pm2
-rw-r--r--Bugzilla/Config/Query.pm36
-rw-r--r--Bugzilla/Config/RADIUS.pm26
-rw-r--r--Bugzilla/Config/ShadowDB.pm36
-rw-r--r--Bugzilla/Config/UserMatch.pm36
-rw-r--r--Bugzilla/Constants.pm51
-rw-r--r--Bugzilla/DB.pm63
-rw-r--r--Bugzilla/DB/Mysql.pm34
-rw-r--r--Bugzilla/DB/Oracle.pm29
-rw-r--r--Bugzilla/DB/Pg.pm33
-rw-r--r--Bugzilla/DB/Schema.pm33
-rw-r--r--Bugzilla/DB/Schema/Mysql.pm29
-rw-r--r--Bugzilla/DB/Schema/Oracle.pm27
-rw-r--r--Bugzilla/DB/Schema/Pg.pm29
-rw-r--r--Bugzilla/DB/Schema/Sqlite.pm30
-rw-r--r--Bugzilla/DB/Sqlite.pm30
-rw-r--r--Bugzilla/DuoWeb.pm1
-rw-r--r--Bugzilla/Error.pm29
-rw-r--r--Bugzilla/Extension.pm27
-rw-r--r--Bugzilla/Field.pm24
-rw-r--r--Bugzilla/Field/Choice.pm30
-rw-r--r--Bugzilla/Field/ChoiceInterface.pm27
-rw-r--r--Bugzilla/Flag.pm32
-rw-r--r--Bugzilla/FlagType.pm31
-rw-r--r--Bugzilla/Group.pm33
-rw-r--r--Bugzilla/Hook.pm28
-rw-r--r--Bugzilla/Install.pm21
-rw-r--r--Bugzilla/Install/CPAN.pm351
-rw-r--r--Bugzilla/Install/DB.pm22
-rw-r--r--Bugzilla/Install/Filesystem.pm26
-rw-r--r--Bugzilla/Install/Localconfig.pm39
-rw-r--r--Bugzilla/Install/Requirements.pm990
-rw-r--r--Bugzilla/Install/Util.pm52
-rw-r--r--Bugzilla/Job/BugMail.pm1
-rw-r--r--Bugzilla/Job/Mailer.pm27
-rw-r--r--Bugzilla/JobQueue.pm27
-rw-r--r--Bugzilla/JobQueue/Runner.pm28
-rw-r--r--Bugzilla/Keyword.pm25
-rw-r--r--Bugzilla/MFA.pm3
-rw-r--r--Bugzilla/MFA/Dummy.pm5
-rw-r--r--Bugzilla/MFA/Duo.pm6
-rw-r--r--Bugzilla/MFA/TOTP.pm6
-rw-r--r--Bugzilla/Mailer.pm39
-rw-r--r--Bugzilla/Metrics/Memcached.pm3
-rw-r--r--Bugzilla/Metrics/Mysql.pm2
-rw-r--r--Bugzilla/Metrics/Reporter.pm1
-rw-r--r--Bugzilla/Metrics/Reporter/ElasticSearch.pm3
-rw-r--r--Bugzilla/Metrics/Reporter/STDERR.pm3
-rw-r--r--Bugzilla/Metrics/Template.pm3
-rw-r--r--Bugzilla/Metrics/Template/Context.pm3
-rw-r--r--Bugzilla/Migrate.pm27
-rw-r--r--Bugzilla/Migrate/Gnats.pm28
-rw-r--r--Bugzilla/Milestone.pm27
-rw-r--r--Bugzilla/Object.pm30
-rw-r--r--Bugzilla/PatchReader.pm2
-rw-r--r--Bugzilla/PatchReader/AddCVSContext.pm6
-rw-r--r--Bugzilla/PatchReader/Base.pm2
-rw-r--r--Bugzilla/PatchReader/CVSClient.pm2
-rw-r--r--Bugzilla/PatchReader/DiffPrinter/raw.pm2
-rw-r--r--Bugzilla/PatchReader/DiffPrinter/template.pm2
-rw-r--r--Bugzilla/PatchReader/FilterPatch.pm2
-rw-r--r--Bugzilla/PatchReader/FixPatchRoot.pm6
-rw-r--r--Bugzilla/PatchReader/NarrowPatch.pm2
-rw-r--r--Bugzilla/PatchReader/PatchInfoGrabber.pm2
-rw-r--r--Bugzilla/PatchReader/Raw.pm2
-rw-r--r--Bugzilla/Product.pm24
-rw-r--r--Bugzilla/RNG.pm28
-rw-r--r--Bugzilla/S3.pm1
-rw-r--r--Bugzilla/S3/Bucket.pm2
-rw-r--r--Bugzilla/Search.pm41
-rw-r--r--Bugzilla/Search/Clause.pm27
-rw-r--r--Bugzilla/Search/ClauseGroup.pm2
-rw-r--r--Bugzilla/Search/Condition.pm28
-rw-r--r--Bugzilla/Search/Quicksearch.pm26
-rw-r--r--Bugzilla/Search/Recent.pm28
-rw-r--r--Bugzilla/Search/Saved.pm29
-rw-r--r--Bugzilla/Send/Sendmail.pm3
-rw-r--r--Bugzilla/Sentry.pm1
-rw-r--r--Bugzilla/Series.pm31
-rw-r--r--Bugzilla/Status.pm32
-rw-r--r--Bugzilla/Template.pm36
-rw-r--r--Bugzilla/Template/Context.pm28
-rw-r--r--Bugzilla/Template/Plugin/Bugzilla.pm27
-rw-r--r--Bugzilla/Template/Plugin/Hook.pm31
-rw-r--r--Bugzilla/Template/Plugin/User.pm3
-rw-r--r--Bugzilla/Token.pm35
-rw-r--r--Bugzilla/Update.pm21
-rw-r--r--Bugzilla/User.pm46
-rw-r--r--Bugzilla/User/APIKey.pm3
-rw-r--r--Bugzilla/User/Session.pm3
-rw-r--r--Bugzilla/User/Setting.pm25
-rw-r--r--Bugzilla/User/Setting/Lang.pm25
-rw-r--r--Bugzilla/User/Setting/Skin.pm22
-rw-r--r--Bugzilla/User/Setting/Timezone.pm25
-rw-r--r--Bugzilla/UserAgent.pm33
-rw-r--r--Bugzilla/Util.pm32
-rw-r--r--Bugzilla/Version.pm77
-rw-r--r--Bugzilla/WebService.pm24
-rw-r--r--Bugzilla/WebService/Bug.pm29
-rw-r--r--Bugzilla/WebService/BugUserLastVisit.pm3
-rw-r--r--Bugzilla/WebService/Bugzilla.pm24
-rw-r--r--Bugzilla/WebService/Classification.pm3
-rw-r--r--Bugzilla/WebService/Constants.pm23
-rw-r--r--Bugzilla/WebService/Group.pm2
-rw-r--r--Bugzilla/WebService/Product.pm24
-rw-r--r--Bugzilla/WebService/Server.pm23
-rw-r--r--Bugzilla/WebService/Server/JSONRPC.pm27
-rw-r--r--Bugzilla/WebService/Server/REST.pm3
-rw-r--r--Bugzilla/WebService/Server/REST/Resources/Bug.pm1
-rw-r--r--Bugzilla/WebService/Server/REST/Resources/Bugzilla.pm1
-rw-r--r--Bugzilla/WebService/Server/REST/Resources/Classification.pm1
-rw-r--r--Bugzilla/WebService/Server/REST/Resources/Product.pm1
-rw-r--r--Bugzilla/WebService/Server/REST/Resources/User.pm1
-rw-r--r--Bugzilla/WebService/Server/XMLRPC.pm26
-rw-r--r--Bugzilla/WebService/User.pm25
-rw-r--r--Bugzilla/WebService/Util.pm27
-rw-r--r--Bugzilla/Whine.pm29
-rw-r--r--Bugzilla/Whine/Query.pm25
-rw-r--r--Bugzilla/Whine/Schedule.pm29
-rw-r--r--META.json430
-rw-r--r--META.yml231
-rw-r--r--Makefile.PL387
-rwxr-xr-xadmin.cgi29
-rwxr-xr-xattachment.cgi44
-rwxr-xr-xauth.cgi4
-rwxr-xr-xbuglist.cgi40
-rwxr-xr-xchart.cgi33
-rwxr-xr-xchecksetup.pl149
-rwxr-xr-xclean-bug-user-last-visit.pl4
-rwxr-xr-xcolchange.cgi34
-rwxr-xr-xcollectstats.pl36
-rwxr-xr-xconfig.cgi37
-rwxr-xr-xcontrib/clear-memcached.pl5
-rwxr-xr-xcontrib/clear-templates.pl3
-rwxr-xr-xcontrib/fixperms.pl3
-rwxr-xr-xcontrib/nagios_blocker_checker.pl6
-rw-r--r--cpanfile87
-rw-r--r--cpanfile.snapshot4614
-rwxr-xr-xcreateaccount.cgi34
-rwxr-xr-xdescribecomponents.cgi6
-rwxr-xr-xdescribekeywords.cgi6
-rwxr-xr-xdocs/makedocs.pl2
-rwxr-xr-xduplicates.cgi33
-rwxr-xr-xeditclassifications.cgi30
-rwxr-xr-xeditcomponents.cgi34
-rwxr-xr-xeditfields.cgi26
-rwxr-xr-xeditflagtypes.cgi38
-rwxr-xr-xeditgroups.cgi35
-rwxr-xr-xeditkeywords.cgi31
-rwxr-xr-xeditmilestones.cgi30
-rwxr-xr-xeditparams.cgi33
-rwxr-xr-xeditproducts.cgi39
-rwxr-xr-xeditsettings.cgi27
-rwxr-xr-xeditusers.cgi31
-rwxr-xr-xeditvalues.cgi29
-rwxr-xr-xeditversions.cgi34
-rwxr-xr-xeditwhines.cgi31
-rwxr-xr-xeditworkflow.cgi29
-rwxr-xr-xemail_in.pl36
-rwxr-xr-xenter_bug.cgi34
-rw-r--r--extensions/AntiSpam/Config.pm3
-rw-r--r--extensions/AntiSpam/Extension.pm1
-rw-r--r--extensions/AntiSpam/lib/Config.pm1
-rw-r--r--extensions/BMO/Config.pm3
-rw-r--r--extensions/BMO/Extension.pm4
-rwxr-xr-xextensions/BMO/bin/bug_1022707.pl2
-rwxr-xr-xextensions/BMO/bin/bug_1093952.pl2
-rwxr-xr-xextensions/BMO/bin/bug_1141452.pl2
-rwxr-xr-xextensions/BMO/bin/migrate-github-pull-requests.pl2
-rw-r--r--extensions/BMO/lib/Constants.pm4
-rw-r--r--extensions/BMO/lib/Data.pm3
-rw-r--r--extensions/BMO/lib/FakeBug.pm2
-rw-r--r--extensions/BMO/lib/Reports/Groups.pm2
-rw-r--r--extensions/BMO/lib/Reports/Internship.pm2
-rw-r--r--extensions/BMO/lib/Reports/ProductSecurity.pm2
-rw-r--r--extensions/BMO/lib/Reports/Recruiting.pm2
-rw-r--r--extensions/BMO/lib/Reports/ReleaseTracking.pm2
-rw-r--r--extensions/BMO/lib/Reports/Triage.pm3
-rw-r--r--extensions/BMO/lib/Reports/UserActivity.pm2
-rw-r--r--extensions/BMO/lib/Util.pm2
-rw-r--r--extensions/BMO/lib/WebService.pm1
-rw-r--r--extensions/Bitly/Config.pm33
-rw-r--r--extensions/Bitly/Extension.pm2
-rw-r--r--extensions/Bitly/lib/WebService.pm1
-rw-r--r--extensions/BugModal/Config.pm2
-rw-r--r--extensions/BugModal/Extension.pm1
-rw-r--r--extensions/BugModal/lib/ActivityStream.pm2
-rw-r--r--extensions/BugModal/lib/MonkeyPatches.pm8
-rw-r--r--extensions/BugModal/lib/Util.pm2
-rw-r--r--extensions/BugModal/lib/WebService.pm1
-rw-r--r--extensions/BugmailFilter/Config.pm3
-rw-r--r--extensions/BugmailFilter/Extension.pm2
-rw-r--r--extensions/BugmailFilter/lib/Constants.pm3
-rw-r--r--extensions/BugmailFilter/lib/FakeField.pm1
-rw-r--r--extensions/BugmailFilter/lib/Filter.pm1
-rw-r--r--extensions/BzAPI/Config.pm2
-rw-r--r--extensions/BzAPI/Extension.pm3
-rw-r--r--extensions/BzAPI/lib/Constants.pm2
-rw-r--r--extensions/BzAPI/lib/Resources/Bug.pm1
-rw-r--r--extensions/BzAPI/lib/Resources/Bugzilla.pm1
-rw-r--r--extensions/BzAPI/lib/Resources/User.pm1
-rw-r--r--extensions/BzAPI/lib/Util.pm1
-rw-r--r--extensions/ComponentWatching/Config.pm4
-rw-r--r--extensions/ComponentWatching/Extension.pm4
-rw-r--r--extensions/ContributorEngagement/Config.pm3
-rw-r--r--extensions/ContributorEngagement/Extension.pm1
-rw-r--r--extensions/ContributorEngagement/lib/Constants.pm2
-rw-r--r--extensions/EditComments/Config.pm3
-rw-r--r--extensions/EditComments/Extension.pm1
-rw-r--r--extensions/EditComments/lib/WebService.pm1
-rw-r--r--extensions/EditTable/Config.pm3
-rw-r--r--extensions/EditTable/Extension.pm1
-rw-r--r--extensions/Ember/Config.pm1
-rw-r--r--extensions/Ember/Extension.pm2
-rw-r--r--extensions/Example/Config.pm28
-rw-r--r--extensions/Example/Extension.pm27
-rw-r--r--extensions/Example/lib/Auth/Login.pm25
-rw-r--r--extensions/Example/lib/Auth/Verify.pm25
-rw-r--r--extensions/Example/lib/Config.pm26
-rw-r--r--extensions/Example/lib/Util.pm25
-rw-r--r--extensions/Example/lib/WebService.pm25
-rw-r--r--extensions/FlagDefaultRequestee/Config.pm2
-rw-r--r--extensions/FlagDefaultRequestee/Extension.pm3
-rw-r--r--extensions/FlagDefaultRequestee/lib/Constants.pm2
-rw-r--r--extensions/FlagTypeComment/Config.pm3
-rw-r--r--extensions/FlagTypeComment/Extension.pm4
-rw-r--r--extensions/FlagTypeComment/lib/Constants.pm3
-rw-r--r--extensions/GitHubAuth/Config.pm1
-rw-r--r--extensions/GitHubAuth/Extension.pm2
-rw-r--r--extensions/GitHubAuth/lib/Client.pm2
-rw-r--r--extensions/GitHubAuth/lib/Client/Error.pm1
-rw-r--r--extensions/GitHubAuth/lib/Config.pm1
-rw-r--r--extensions/GitHubAuth/lib/Login.pm3
-rw-r--r--extensions/GitHubAuth/lib/Verify.pm3
-rw-r--r--extensions/Gravatar/Config.pm2
-rw-r--r--extensions/Gravatar/Extension.pm1
-rw-r--r--extensions/Gravatar/lib/Data.pm3
-rw-r--r--extensions/GuidedBugEntry/Config.pm3
-rw-r--r--extensions/GuidedBugEntry/Extension.pm4
-rw-r--r--extensions/InlineHistory/Config.pm3
-rw-r--r--extensions/InlineHistory/Extension.pm4
-rw-r--r--extensions/LastResolved/Config.pm2
-rw-r--r--extensions/LastResolved/Extension.pm2
-rw-r--r--extensions/LimitedEmail/Config.pm3
-rw-r--r--extensions/LimitedEmail/Extension.pm4
-rw-r--r--extensions/MozProjectReview/Config.pm2
-rw-r--r--extensions/MozProjectReview/Extension.pm2
-rw-r--r--extensions/MozReview/Config.pm1
-rwxr-xr-xextensions/MozReview/bin/add-mozreview-children.pl2
-rw-r--r--extensions/MozReview/lib/Config.pm1
-rw-r--r--extensions/MozReview/lib/WebService.pm1
-rw-r--r--extensions/MyDashboard/Config.pm2
-rw-r--r--extensions/MyDashboard/Extension.pm2
-rw-r--r--extensions/MyDashboard/lib/BugInterest.pm1
-rw-r--r--extensions/MyDashboard/lib/Queries.pm2
-rw-r--r--extensions/MyDashboard/lib/Util.pm2
-rw-r--r--extensions/MyDashboard/lib/WebService.pm1
-rw-r--r--extensions/Needinfo/Config.pm3
-rw-r--r--extensions/Needinfo/Extension.pm2
-rw-r--r--extensions/OpenGraph/Config.pm2
-rw-r--r--extensions/OpenGraph/Extension.pm4
-rw-r--r--extensions/OrangeFactor/Config.pm3
-rw-r--r--extensions/OrangeFactor/Extension.pm4
-rw-r--r--extensions/Persona/Config.pm3
-rw-r--r--extensions/Persona/Extension.pm4
-rw-r--r--extensions/Persona/lib/Config.pm1
-rw-r--r--extensions/Persona/lib/Login.pm4
-rw-r--r--extensions/ProdCompSearch/Config.pm3
-rw-r--r--extensions/ProdCompSearch/Extension.pm4
-rw-r--r--extensions/ProdCompSearch/lib/WebService.pm1
-rw-r--r--extensions/ProductDashboard/Config.pm2
-rw-r--r--extensions/ProductDashboard/Extension.pm2
-rw-r--r--extensions/ProductDashboard/lib/Queries.pm2
-rw-r--r--extensions/ProductDashboard/lib/Util.pm2
-rw-r--r--extensions/Profanivore/Config.pm3
-rw-r--r--extensions/Profanivore/Extension.pm4
-rw-r--r--extensions/Push/Config.pm2
-rw-r--r--extensions/Push/Extension.pm1
-rwxr-xr-xextensions/Push/bin/bugzilla-pushd.pl6
-rwxr-xr-xextensions/Push/bin/nagios_push_checker.pl6
-rw-r--r--extensions/Push/lib/Admin.pm1
-rw-r--r--extensions/Push/lib/BacklogMessage.pm1
-rw-r--r--extensions/Push/lib/BacklogQueue.pm1
-rw-r--r--extensions/Push/lib/Backoff.pm1
-rw-r--r--extensions/Push/lib/Config.pm1
-rw-r--r--extensions/Push/lib/Connector.disabled/AMQP.pm1
-rw-r--r--extensions/Push/lib/Connector.disabled/ServiceNow.pm1
-rw-r--r--extensions/Push/lib/Connector/Aha.pm1
-rw-r--r--extensions/Push/lib/Connector/Base.pm1
-rw-r--r--extensions/Push/lib/Connector/File.pm1
-rw-r--r--extensions/Push/lib/Connector/ReviewBoard.pm1
-rw-r--r--extensions/Push/lib/Connector/Spark.pm1
-rw-r--r--extensions/Push/lib/Connector/TCL.pm1
-rw-r--r--extensions/Push/lib/Connectors.pm1
-rw-r--r--extensions/Push/lib/Constants.pm3
-rw-r--r--extensions/Push/lib/Daemon.pm1
-rw-r--r--extensions/Push/lib/Log.pm1
-rw-r--r--extensions/Push/lib/LogEntry.pm1
-rw-r--r--extensions/Push/lib/Logger.pm1
-rw-r--r--extensions/Push/lib/Message.pm1
-rw-r--r--extensions/Push/lib/Option.pm1
-rw-r--r--extensions/Push/lib/Push.pm1
-rw-r--r--extensions/Push/lib/Queue.pm1
-rw-r--r--extensions/Push/lib/Serialise.pm1
-rw-r--r--extensions/Push/lib/Util.pm1
-rw-r--r--extensions/REMO/Config.pm3
-rw-r--r--extensions/REMO/Extension.pm4
-rw-r--r--extensions/RequestNagger/Config.pm3
-rw-r--r--extensions/RequestNagger/Extension.pm1
-rwxr-xr-xextensions/RequestNagger/bin/send-request-nags.pl2
-rw-r--r--extensions/RequestNagger/lib/Bug.pm3
-rw-r--r--extensions/RequestNagger/lib/Constants.pm3
-rw-r--r--extensions/RequestNagger/lib/Settings.pm2
-rw-r--r--extensions/RestrictComments/Config.pm2
-rw-r--r--extensions/RestrictComments/Extension.pm1
-rw-r--r--extensions/RestrictComments/lib/Config.pm1
-rw-r--r--extensions/Review/Config.pm3
-rw-r--r--extensions/Review/Extension.pm2
-rwxr-xr-xextensions/Review/bin/migrate_mentor_from_whiteboard.pl2
-rwxr-xr-xextensions/Review/bin/review_requests_rebuild.pl4
-rw-r--r--extensions/Review/lib/FlagStateActivity.pm2
-rw-r--r--extensions/Review/lib/Util.pm2
-rw-r--r--extensions/Review/lib/WebService.pm1
-rw-r--r--extensions/SecureMail/Config.pm3
-rw-r--r--extensions/SecureMail/Extension.pm4
-rw-r--r--extensions/SiteMapIndex/Config.pm3
-rw-r--r--extensions/SiteMapIndex/Extension.pm4
-rw-r--r--extensions/SiteMapIndex/lib/Constants.pm4
-rw-r--r--extensions/SiteMapIndex/lib/Util.pm4
-rw-r--r--extensions/Splinter/Config.pm4
-rw-r--r--extensions/Splinter/Extension.pm2
-rw-r--r--extensions/Splinter/lib/Config.pm1
-rw-r--r--extensions/Splinter/lib/Util.pm2
-rw-r--r--extensions/TagNewUsers/Config.pm3
-rw-r--r--extensions/TagNewUsers/Extension.pm6
-rw-r--r--extensions/TrackingFlags/Config.pm3
-rw-r--r--extensions/TrackingFlags/Extension.pm2
-rwxr-xr-xextensions/TrackingFlags/bin/bug_825946.pl2
-rwxr-xr-xextensions/TrackingFlags/bin/bulk_flag_clear.pl6
-rwxr-xr-xextensions/TrackingFlags/bin/migrate_tracking_flags.pl6
-rw-r--r--extensions/TrackingFlags/lib/Admin.pm1
-rw-r--r--extensions/TrackingFlags/lib/Constants.pm3
-rw-r--r--extensions/TrackingFlags/lib/Flag.pm1
-rw-r--r--extensions/TrackingFlags/lib/Flag/Bug.pm1
-rw-r--r--extensions/TrackingFlags/lib/Flag/Value.pm1
-rw-r--r--extensions/TrackingFlags/lib/Flag/Visibility.pm1
-rw-r--r--extensions/TypeSniffer/Config.pm3
-rw-r--r--extensions/TypeSniffer/Extension.pm4
-rw-r--r--extensions/UserProfile/Config.pm3
-rw-r--r--extensions/UserProfile/Extension.pm1
-rwxr-xr-xextensions/UserProfile/bin/migrate.pl4
-rwxr-xr-xextensions/UserProfile/bin/update.pl4
-rw-r--r--extensions/UserProfile/lib/Util.pm1
-rw-r--r--extensions/UserStory/Config.pm3
-rw-r--r--extensions/UserStory/Extension.pm2
-rw-r--r--extensions/UserStory/lib/Constants.pm1
-rw-r--r--extensions/Voting/Config.pm27
-rw-r--r--extensions/Voting/Extension.pm31
-rw-r--r--extensions/ZPushNotify/Config.pm3
-rw-r--r--extensions/ZPushNotify/Extension.pm2
-rwxr-xr-xextensions/create.pl34
-rwxr-xr-xgen-cpanfile.pl68
-rwxr-xr-xgithub.cgi6
-rwxr-xr-ximportxml.pl35
-rwxr-xr-xindex.cgi37
-rwxr-xr-xjobqueue.pl31
-rwxr-xr-xjsonrpc.cgi31
-rwxr-xr-xlong_list.cgi8
-rwxr-xr-xmetrics.pl8
-rwxr-xr-xmigrate.pl31
-rw-r--r--mod_perl.pl32
-rwxr-xr-xpage.cgi31
-rwxr-xr-xpost_bug.cgi35
-rwxr-xr-xprocess_bug.cgi51
-rw-r--r--qa/t/lib/QA/REST.pm61
-rw-r--r--qa/t/rest_bugzilla.t60
-rw-r--r--qa/t/rest_classification.t61
-rw-r--r--qa/t/test_password_complexity.t99
-rwxr-xr-xquery.cgi38
-rwxr-xr-xquips.cgi33
-rwxr-xr-xrelogin.cgi33
-rwxr-xr-xreport.cgi32
-rwxr-xr-xreports.cgi38
-rwxr-xr-xrequest.cgi36
-rwxr-xr-xreset_password.cgi6
-rwxr-xr-xrest.cgi6
-rwxr-xr-xruntests.pl6
-rwxr-xr-xsanitycheck.cgi34
-rwxr-xr-xsanitycheck.pl29
-rwxr-xr-xscripts/addcustomfield.pl3
-rwxr-xr-xscripts/clear-memcached.pl5
-rwxr-xr-xscripts/clear-templates.pl3
-rwxr-xr-xscripts/close_bugs_wontfix.pl4
-rwxr-xr-xscripts/convert_datetime.pl3
-rwxr-xr-xscripts/cpanfile_fixed_versions.pl3
-rwxr-xr-xscripts/fix-attachment-sizes.pl5
-rwxr-xr-xscripts/fix_all_open_status_queries.pl3
-rwxr-xr-xscripts/fixgroupqueries.pl3
-rwxr-xr-xscripts/fixperms.pl3
-rwxr-xr-xscripts/fixqueries.pl3
-rwxr-xr-xscripts/group-set-members.pl4
-rwxr-xr-xscripts/issue-api-key.pl5
-rwxr-xr-xscripts/merge-users.pl31
-rwxr-xr-xscripts/migrate-attachments.pl2
-rwxr-xr-xscripts/migrate-cab-review.pl2
-rw-r--r--scripts/migrate_whiteboard_keyword.pl3
-rwxr-xr-xscripts/move_flag_types.pl3
-rwxr-xr-xscripts/move_os.pl4
-rwxr-xr-xscripts/movebugs.pl4
-rwxr-xr-xscripts/movecomponent.pl4
-rwxr-xr-xscripts/nagios_blocker_checker.pl5
-rwxr-xr-xscripts/nagios_push_checker.pl2
-rwxr-xr-xscripts/nightly_group_bug_cleaner.pl4
-rwxr-xr-xscripts/nuke-bugs.pl3
-rwxr-xr-xscripts/reassign_open_bugs.pl4
-rwxr-xr-xscripts/remove-non-public-data.pl2
-rwxr-xr-xscripts/remove_idle_group_members.pl4
-rwxr-xr-xscripts/reset_default_user.pl3
-rwxr-xr-xscripts/sanitizeme.pl4
-rwxr-xr-xscripts/security_remove.pl4
-rwxr-xr-xscripts/sendunsentbugmail.pl31
-rwxr-xr-xscripts/syncflags.pl3
-rwxr-xr-xscripts/syncmsandversions.pl3
-rwxr-xr-xscripts/update-bug-groups.pl2
-rwxr-xr-xscripts/update-crash-signatures.pl2
-rwxr-xr-xscripts/user-prefs.pl4
-rwxr-xr-xsearch_plugin.cgi26
-rwxr-xr-xsentry.pl10
-rwxr-xr-xshow_activity.cgi32
-rwxr-xr-xshow_bug.cgi30
-rwxr-xr-xshowattachment.cgi6
-rwxr-xr-xshowdependencygraph.cgi31
-rwxr-xr-xshowdependencytree.cgi34
-rwxr-xr-xsummarize_time.cgi27
-rw-r--r--t/001compile.t45
-rw-r--r--t/002goodperl.t89
-rw-r--r--t/003safesys.t73
-rw-r--r--t/004template.t62
-rw-r--r--t/005whitespace.t37
-rw-r--r--t/006spellcheck.t84
-rw-r--r--t/007util.t48
-rw-r--r--t/008filter.t40
-rw-r--r--t/009bugwords.t38
-rw-r--r--t/010dependencies.t29
-rw-r--r--t/011pod.t28
-rw-r--r--t/012throwables.t40
-rw-r--r--t/013remote_ip.t82
-rw-r--r--t/Support/Files.pm61
-rw-r--r--t/Support/Systemexec.pm21
-rw-r--r--t/Support/Templates.pm70
-rw-r--r--template/en/default/global/code-error.html.tmpl3
-rw-r--r--template/en/default/setup/strings.txt.pl84
-rwxr-xr-xtestagent.cgi4
-rwxr-xr-xtestserver.pl25
-rwxr-xr-xtoken.cgi36
-rwxr-xr-xuserprefs.cgi32
-rwxr-xr-xview_job_queue.cgi4
-rwxr-xr-xvotes.cgi6
-rwxr-xr-xwhine.pl30
-rwxr-xr-xwhineatnews.pl33
-rwxr-xr-xxml.cgi6
-rwxr-xr-xxmlrpc.cgi26
522 files changed, 9129 insertions, 6121 deletions
diff --git a/.gitignore b/.gitignore
index a829834c5..0172ea059 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,16 +1,27 @@
-.htaccess
+/**/.htaccess
/lib/*
+/local/*
/template/en/custom
-/docs/bugzilla.ent
-/docs/en/xml/bugzilla.ent
-/docs/en/txt
+/docs/en/rst/extensions/*
+/docs/en/rst/api/extensions/*
/docs/en/html
+/docs/en/txt
/docs/en/pdf
+/skins/custom
/graphs
/data
/localconfig
+/localconfig.*
/index.html
-/template_cache
/error_reports
-.DS_Store
-cpanfile
+/.DS_Store
+/template_cache
+/Makefile
+/MYMETA.*
+/pm_to_blib
+/blib
+/Bugzilla-*.*/
+/local
+
+/skins/contrib/Dusk/admin.css
+/skins/contrib/Dusk/bug.css
diff --git a/Bugzilla.pm b/Bugzilla.pm
index 56bbb5c15..72192d41a 100644
--- a/Bugzilla.pm
+++ b/Bugzilla.pm
@@ -1,30 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Erik Stambaugh <erik@dasbistro.com>
-# A. Karl Kornel <karl@kornel.name>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla;
+use 5.10.1;
use strict;
+use warnings;
# We want any compile errors to get to the browser, if possible.
BEGIN {
@@ -47,8 +32,8 @@ use Bugzilla::Field;
use Bugzilla::Flag;
use Bugzilla::Hook;
use Bugzilla::Install::Localconfig qw(read_localconfig);
-use Bugzilla::Install::Requirements qw(OPTIONAL_MODULES);
use Bugzilla::Install::Util qw(init_console include_languages);
+use Bugzilla::Install::Requirements qw(load_cpan_meta check_cpan_feature);
use Bugzilla::Memcached;
use Bugzilla::Template;
use Bugzilla::Token;
@@ -253,7 +238,7 @@ sub extensions {
my $extension = $package->new();
if ($extension->enabled) {
push(@extensions, $extension);
- }
+ }
}
$cache->{extensions} = \@extensions;
}
@@ -261,37 +246,36 @@ sub extensions {
}
sub feature {
- my ($class, $feature) = @_;
- my $cache = $class->request_cache;
- return $cache->{feature}->{$feature}
- if exists $cache->{feature}->{$feature};
-
- my $feature_map = $cache->{feature_map};
- if (!$feature_map) {
- foreach my $package (@{ OPTIONAL_MODULES() }) {
- foreach my $f (@{ $package->{feature} }) {
- $feature_map->{$f} ||= [];
- push(@{ $feature_map->{$f} }, $package->{module});
- }
- }
- $cache->{feature_map} = $feature_map;
- }
+ my ($class, $feature_name) = @_;
+ return 0 unless CAN_HAS_FEATURE;
+ return 0 unless $class->has_feature($feature_name);
+
+ my $cache = $class->process_cache;
+ my $feature = $cache->{cpan_meta}->feature($feature_name);
+ # Bugzilla expects this will also load all the modules.. so we have to do that.
+ # Later we should put a deprecation warning here, and favor calling has_feature().
+
+ return 1 if $cache->{feature_loaded}{$feature_name};
+ my @modules = $feature->prereqs->merged_requirements->required_modules;
+ Module::Runtime::require_module($_) foreach @modules;
+ $cache->{feature_loaded}{$feature_name} = 1;
+ return 1;
+}
- if (!$feature_map->{$feature}) {
- ThrowCodeError('invalid_feature', { feature => $feature });
- }
+sub has_feature {
+ my ($class, $feature_name) = @_;
- my $success = 1;
- foreach my $module (@{ $feature_map->{$feature} }) {
- # We can't use a string eval and "use" here (it kills Template-Toolkit,
- # see https://rt.cpan.org/Public/Bug/Display.html?id=47929), so we have
- # to do a block eval.
- $module =~ s{::}{/}g;
- $module .= ".pm";
- eval { require $module; 1; } or $success = 0;
- }
- $cache->{feature}->{$feature} = $success;
- return $success;
+ return 0 unless CAN_HAS_FEATURE;
+
+ my $cache = $class->process_cache;
+ return $cache->{feature}->{$feature_name}
+ if exists $cache->{feature}->{$feature_name};
+
+ my $meta = $cache->{cpan_meta} //= load_cpan_meta();
+ my $feature = eval { $meta->feature($feature_name) }
+ or ThrowCodeError('invalid_feature', { feature => $feature_name });
+
+ return $cache->{feature}{$feature_name} = check_cpan_feature($feature)->{ok};
}
sub cgi {
diff --git a/Bugzilla/Attachment.pm b/Bugzilla/Attachment.pm
index 3b4953f64..068ba9e45 100644
--- a/Bugzilla/Attachment.pm
+++ b/Bugzilla/Attachment.pm
@@ -1,31 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Myk Melez <myk@mozilla.org>
-# Marc Schumann <wurblzap@gmail.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Attachment;
-use 5.10.0;
+use 5.10.1;
use strict;
+use warnings;
=head1 NAME
diff --git a/Bugzilla/Attachment/Database.pm b/Bugzilla/Attachment/Database.pm
index 24617cacc..42cdd2d6f 100644
--- a/Bugzilla/Attachment/Database.pm
+++ b/Bugzilla/Attachment/Database.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Attachment::Database;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/Bugzilla/Attachment/FileSystem.pm b/Bugzilla/Attachment/FileSystem.pm
index 675184c49..a9fdf83b6 100644
--- a/Bugzilla/Attachment/FileSystem.pm
+++ b/Bugzilla/Attachment/FileSystem.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Attachment::FileSystem;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/Bugzilla/Attachment/PatchReader.pm b/Bugzilla/Attachment/PatchReader.pm
index 2c1647736..fb8b83392 100644
--- a/Bugzilla/Attachment/PatchReader.pm
+++ b/Bugzilla/Attachment/PatchReader.pm
@@ -1,24 +1,17 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): John Keiser <john@johnkeiser.com>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Attachment::PatchReader;
+use 5.10.1;
+use strict;
+use warnings;
+
use IPC::Open3;
use Symbol 'gensym';
diff --git a/Bugzilla/Attachment/S3.pm b/Bugzilla/Attachment/S3.pm
index 6d11f423e..e1c7269a5 100644
--- a/Bugzilla/Attachment/S3.pm
+++ b/Bugzilla/Attachment/S3.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Attachment::S3;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/Bugzilla/Auth.pm b/Bugzilla/Auth.pm
index f57ee80e0..522fbebf3 100644
--- a/Bugzilla/Auth.pm
+++ b/Bugzilla/Auth.pm
@@ -1,29 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Bradley Baetz <bbaetz@acm.org>
-# Erik Stambaugh <erik@dasbistro.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth;
+use 5.10.1;
use strict;
+use warnings;
+
use fields qw(
_info_getter
_verifier
diff --git a/Bugzilla/Auth/Login.pm b/Bugzilla/Auth/Login.pm
index 09830da25..a5f089777 100644
--- a/Bugzilla/Auth/Login.pm
+++ b/Bugzilla/Auth/Login.pm
@@ -1,22 +1,17 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Login;
+use 5.10.1;
use strict;
+use warnings;
+
+use fields qw();
# Determines whether or not a user can logout. It's really a subroutine,
# but we implement it here as a constant. Override it in subclasses if
diff --git a/Bugzilla/Auth/Login/APIKey.pm b/Bugzilla/Auth/Login/APIKey.pm
index 4038cc8b9..25c2a3555 100644
--- a/Bugzilla/Auth/Login/APIKey.pm
+++ b/Bugzilla/Auth/Login/APIKey.pm
@@ -9,6 +9,7 @@ package Bugzilla::Auth::Login::APIKey;
use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Auth::Login);
diff --git a/Bugzilla/Auth/Login/CGI.pm b/Bugzilla/Auth/Login/CGI.pm
index 240698277..dad6ddb7c 100644
--- a/Bugzilla/Auth/Login/CGI.pm
+++ b/Bugzilla/Auth/Login/CGI.pm
@@ -1,35 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Dave Miller <justdave@syndicomm.com>
-# Christopher Aillon <christopher@aillon.com>
-# Gervase Markham <gerv@gerv.net>
-# Christian Reis <kiko@async.com.br>
-# Bradley Baetz <bbaetz@acm.org>
-# Erik Stambaugh <erik@dasbistro.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Login::CGI;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Auth::Login);
use constant user_can_create_account => 1;
diff --git a/Bugzilla/Auth/Login/Cookie.pm b/Bugzilla/Auth/Login/Cookie.pm
index 0a2386ee9..b52e3e7c1 100644
--- a/Bugzilla/Auth/Login/Cookie.pm
+++ b/Bugzilla/Auth/Login/Cookie.pm
@@ -1,22 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Bradley Baetz <bbaetz@acm.org>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Login::Cookie;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Auth::Login);
use fields qw(_login_token _cookie);
diff --git a/Bugzilla/Auth/Login/Env.pm b/Bugzilla/Auth/Login/Env.pm
index 76227f18b..9d3da183f 100644
--- a/Bugzilla/Auth/Login/Env.pm
+++ b/Bugzilla/Auth/Login/Env.pm
@@ -1,27 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Erik Stambaugh <erik@dasbistro.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Login::Env;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Auth::Login);
use Bugzilla::Constants;
diff --git a/Bugzilla/Auth/Login/Stack.pm b/Bugzilla/Auth/Login/Stack.pm
index e8d9c4635..dc35998e4 100644
--- a/Bugzilla/Auth/Login/Stack.pm
+++ b/Bugzilla/Auth/Login/Stack.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Login::Stack;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Auth::Login);
use fields qw(
_stack
diff --git a/Bugzilla/Auth/Persist/Cookie.pm b/Bugzilla/Auth/Persist/Cookie.pm
index 06661101b..f39ad7de3 100644
--- a/Bugzilla/Auth/Persist/Cookie.pm
+++ b/Bugzilla/Auth/Persist/Cookie.pm
@@ -1,35 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Dave Miller <justdave@syndicomm.com>
-# Christopher Aillon <christopher@aillon.com>
-# Gervase Markham <gerv@gerv.net>
-# Christian Reis <kiko@async.com.br>
-# Bradley Baetz <bbaetz@acm.org>
-# Erik Stambaugh <erik@dasbistro.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Persist::Cookie;
+
+use 5.10.1;
use strict;
+use warnings;
+
use fields qw();
use Bugzilla::Constants;
diff --git a/Bugzilla/Auth/Verify.pm b/Bugzilla/Auth/Verify.pm
index 3578631f1..dbad1e9a7 100644
--- a/Bugzilla/Auth/Verify.pm
+++ b/Bugzilla/Auth/Verify.pm
@@ -1,22 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Verify;
+use 5.10.1;
use strict;
+use warnings;
+
use fields qw();
use Bugzilla::Constants;
diff --git a/Bugzilla/Auth/Verify/DB.pm b/Bugzilla/Auth/Verify/DB.pm
index ea86346e1..424816f4c 100644
--- a/Bugzilla/Auth/Verify/DB.pm
+++ b/Bugzilla/Auth/Verify/DB.pm
@@ -1,34 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Dave Miller <justdave@syndicomm.com>
-# Christopher Aillon <christopher@aillon.com>
-# Gervase Markham <gerv@gerv.net>
-# Christian Reis <kiko@async.com.br>
-# Bradley Baetz <bbaetz@acm.org>
-# Erik Stambaugh <erik@dasbistro.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Verify::DB;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Auth::Verify);
use Bugzilla::Constants;
diff --git a/Bugzilla/Auth/Verify/LDAP.pm b/Bugzilla/Auth/Verify/LDAP.pm
index 9d438e411..c0ae619c1 100644
--- a/Bugzilla/Auth/Verify/LDAP.pm
+++ b/Bugzilla/Auth/Verify/LDAP.pm
@@ -1,35 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Dave Miller <justdave@syndicomm.com>
-# Christopher Aillon <christopher@aillon.com>
-# Gervase Markham <gerv@gerv.net>
-# Christian Reis <kiko@async.com.br>
-# Bradley Baetz <bbaetz@acm.org>
-# Erik Stambaugh <erik@dasbistro.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Verify::LDAP;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Auth::Verify);
use fields qw(
ldap
diff --git a/Bugzilla/Auth/Verify/RADIUS.pm b/Bugzilla/Auth/Verify/RADIUS.pm
index da36c3bd1..ad0778e39 100644
--- a/Bugzilla/Auth/Verify/RADIUS.pm
+++ b/Bugzilla/Auth/Verify/RADIUS.pm
@@ -1,25 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Marc Schumann.
-# Portions created by Marc Schumann are Copyright (c) 2007 Marc Schumann.
-# All rights reserved.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Verify::RADIUS;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Auth::Verify);
use Bugzilla::Constants;
diff --git a/Bugzilla/Auth/Verify/Stack.pm b/Bugzilla/Auth/Verify/Stack.pm
index e1a011992..3e5db3cec 100644
--- a/Bugzilla/Auth/Verify/Stack.pm
+++ b/Bugzilla/Auth/Verify/Stack.pm
@@ -1,21 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Auth::Verify::Stack;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Auth::Verify);
use fields qw(
_stack
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm
index 327fb866c..77d2e126a 100644
--- a/Bugzilla/Bug.pm
+++ b/Bugzilla/Bug.pm
@@ -1,36 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Dawn Endico <endico@mozilla.org>
-# Terry Weissman <terry@mozilla.org>
-# Chris Yeh <cyeh@bluemartini.com>
-# Bradley Baetz <bbaetz@acm.org>
-# Dave Miller <justdave@bugzilla.org>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Lance Larsh <lance.larsh@oracle.com>
-# Elliotte Martin <elliotte_martin@yahoo.com>
-# Christian Legnitto <clegnitto@mozilla.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Bug;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Attachment;
use Bugzilla::Constants;
diff --git a/Bugzilla/BugMail.pm b/Bugzilla/BugMail.pm
index 7244d97a5..aaee6b603 100644
--- a/Bugzilla/BugMail.pm
+++ b/Bugzilla/BugMail.pm
@@ -1,40 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>,
-# Bryce Nesbitt <bryce-mozilla@nextbus.com>
-# Dan Mosedale <dmose@mozilla.org>
-# Alan Raetz <al_raetz@yahoo.com>
-# Jacob Steenhagen <jake@actex.net>
-# Matthew Tuck <matty@chariot.net.au>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# J. Paul Reed <preed@sigkill.com>
-# Gervase Markham <gerv@gerv.net>
-# Byron Jones <bugzilla@glob.com.au>
-# Reed Loden <reed@reedloden.com>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Guy Pyrzak <guy.pyrzak@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugMail;
+use 5.10.1;
+use strict;
+use warnings;
+
use Bugzilla::Error;
use Bugzilla::User;
use Bugzilla::Constants;
diff --git a/Bugzilla/BugUrl.pm b/Bugzilla/BugUrl.pm
index 3b05057f8..55a8cfd75 100644
--- a/Bugzilla/BugUrl.pm
+++ b/Bugzilla/BugUrl.pm
@@ -1,25 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Tiago Mello
-# Portions created by Tiago Mello are Copyright (C) 2010
-# Tiago Mello. All Rights Reserved.
-#
-# Contributor(s): Tiago Mello <timello@linux.vnet.ibm.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::Util;
diff --git a/Bugzilla/BugUrl/Aha.pm b/Bugzilla/BugUrl/Aha.pm
index 572789e66..b467c54d8 100644
--- a/Bugzilla/BugUrl/Aha.pm
+++ b/Bugzilla/BugUrl/Aha.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::Aha;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::BugUrl);
###############################
diff --git a/Bugzilla/BugUrl/Bugzilla.pm b/Bugzilla/BugUrl/Bugzilla.pm
index 53f174556..3af6d0a54 100644
--- a/Bugzilla/BugUrl/Bugzilla.pm
+++ b/Bugzilla/BugUrl/Bugzilla.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Tiago Mello.
-# Portions created by Tiago Mello are Copyright (C) 2010
-# Tiago Mello. All Rights Reserved.
-#
-# Contributor(s): Tiago Mello <timello@linux.vnet.ibm.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::Bugzilla;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::BugUrl);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/Bugzilla/Local.pm b/Bugzilla/BugUrl/Bugzilla/Local.pm
index 99f944fa6..9f4d90292 100644
--- a/Bugzilla/BugUrl/Bugzilla/Local.pm
+++ b/Bugzilla/BugUrl/Bugzilla/Local.pm
@@ -1,25 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Tiago Mello.
-# Portions created by Tiago Mello are Copyright (C) 2010
-# Tiago Mello. All Rights Reserved.
-#
-# Contributor(s): Tiago Mello <timello@linux.vnet.ibm.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::Bugzilla::Local;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::BugUrl::Bugzilla);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/Debian.pm b/Bugzilla/BugUrl/Debian.pm
index 7f73feea7..e018c1106 100644
--- a/Bugzilla/BugUrl/Debian.pm
+++ b/Bugzilla/BugUrl/Debian.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Tiago Mello.
-# Portions created by Tiago Mello are Copyright (C) 2010
-# Tiago Mello. All Rights Reserved.
-#
-# Contributor(s): Tiago Mello <timello@linux.vnet.ibm.com>
-# Reed Loden <reed@reedloden.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::Debian;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::BugUrl);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/GitHub.pm b/Bugzilla/BugUrl/GitHub.pm
index 29f3c2ea4..1a0219617 100644
--- a/Bugzilla/BugUrl/GitHub.pm
+++ b/Bugzilla/BugUrl/GitHub.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::GitHub;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::BugUrl);
###############################
diff --git a/Bugzilla/BugUrl/Google.pm b/Bugzilla/BugUrl/Google.pm
index 792699e50..110772e69 100644
--- a/Bugzilla/BugUrl/Google.pm
+++ b/Bugzilla/BugUrl/Google.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Tiago Mello.
-# Portions created by Tiago Mello are Copyright (C) 2010
-# Tiago Mello. All Rights Reserved.
-#
-# Contributor(s): Tiago Mello <timello@linux.vnet.ibm.com>
-# Reed Loden <reed@reedloden.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::Google;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::BugUrl);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/JIRA.pm b/Bugzilla/BugUrl/JIRA.pm
index d0adcfed8..ba4b0e51b 100644
--- a/Bugzilla/BugUrl/JIRA.pm
+++ b/Bugzilla/BugUrl/JIRA.pm
@@ -1,25 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Matt Selsky
-# Portions created by Matt Selsky are Copyright (C) 2010
-# Matt Selsky. All Rights Reserved.
-#
-# Contributor(s): Matt Selsky <selsky@columbia.edu>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::JIRA;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::BugUrl);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/Launchpad.pm b/Bugzilla/BugUrl/Launchpad.pm
index a5457fda9..a56fed4ad 100644
--- a/Bugzilla/BugUrl/Launchpad.pm
+++ b/Bugzilla/BugUrl/Launchpad.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Tiago Mello.
-# Portions created by Tiago Mello are Copyright (C) 2010
-# Tiago Mello. All Rights Reserved.
-#
-# Contributor(s): Tiago Mello <timello@linux.vnet.ibm.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::Launchpad;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::BugUrl);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/MantisBT.pm b/Bugzilla/BugUrl/MantisBT.pm
index c525b0b2f..48284c7e0 100644
--- a/Bugzilla/BugUrl/MantisBT.pm
+++ b/Bugzilla/BugUrl/MantisBT.pm
@@ -1,25 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Reed Loden.
-# Portions created by Reed Loden are Copyright (C) 2010
-# Reed Loden. All Rights Reserved.
-#
-# Contributor(s): Reed Loden <reed@reedloden.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::MantisBT;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::BugUrl);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/MozSupport.pm b/Bugzilla/BugUrl/MozSupport.pm
index f78bec799..c2442e4df 100644
--- a/Bugzilla/BugUrl/MozSupport.pm
+++ b/Bugzilla/BugUrl/MozSupport.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::MozSupport;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::BugUrl);
###############################
diff --git a/Bugzilla/BugUrl/ServiceNow.pm b/Bugzilla/BugUrl/ServiceNow.pm
index b73f56a00..8e30aa45e 100644
--- a/Bugzilla/BugUrl/ServiceNow.pm
+++ b/Bugzilla/BugUrl/ServiceNow.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::ServiceNow;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::BugUrl);
sub should_handle {
diff --git a/Bugzilla/BugUrl/SourceForge.pm b/Bugzilla/BugUrl/SourceForge.pm
index fffa96d52..3c8dfd51d 100644
--- a/Bugzilla/BugUrl/SourceForge.pm
+++ b/Bugzilla/BugUrl/SourceForge.pm
@@ -1,25 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Tiago Mello
-# Portions created by Tiago Mello are Copyright (C) 2011
-# Tiago Mello. All Rights Reserved.
-#
-# Contributor(s): Tiago Mello <timello@linux.vnet.ibm.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::SourceForge;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::BugUrl);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/Splat.pm b/Bugzilla/BugUrl/Splat.pm
index 42918f0d4..49b2b762f 100644
--- a/Bugzilla/BugUrl/Splat.pm
+++ b/Bugzilla/BugUrl/Splat.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::Splat;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::BugUrl);
sub should_handle {
diff --git a/Bugzilla/BugUrl/Trac.pm b/Bugzilla/BugUrl/Trac.pm
index 638bd779e..600b31105 100644
--- a/Bugzilla/BugUrl/Trac.pm
+++ b/Bugzilla/BugUrl/Trac.pm
@@ -1,25 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Matt Selsky
-# Portions created by Matt Selsky are Copyright (C) 2010
-# Matt Selsky. All Rights Reserved.
-#
-# Contributor(s): Matt Selsky <selsky@columbia.edu>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::Trac;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::BugUrl);
use Bugzilla::Error;
diff --git a/Bugzilla/BugUrl/WebCompat.pm b/Bugzilla/BugUrl/WebCompat.pm
index 0c0138abc..bd66dcae7 100644
--- a/Bugzilla/BugUrl/WebCompat.pm
+++ b/Bugzilla/BugUrl/WebCompat.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::BugUrl::WebCompat;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::BugUrl);
###############################
diff --git a/Bugzilla/BugUserLastVisit.pm b/Bugzilla/BugUserLastVisit.pm
index 6a7b7f3ef..f40ea17d3 100644
--- a/Bugzilla/BugUserLastVisit.pm
+++ b/Bugzilla/BugUserLastVisit.pm
@@ -9,6 +9,7 @@ package Bugzilla::BugUserLastVisit;
use 5.10.1;
use strict;
+use warnings;
use parent qw(Bugzilla::Object);
diff --git a/Bugzilla/CGI.pm b/Bugzilla/CGI.pm
index 7d111063d..e44907161 100644
--- a/Bugzilla/CGI.pm
+++ b/Bugzilla/CGI.pm
@@ -1,28 +1,17 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Byron Jones <bugzilla@glob.com.au>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::CGI;
+
+use 5.10.1;
use strict;
+use warnings;
+
+use CGI;
use base qw(CGI);
use Bugzilla::Constants;
diff --git a/Bugzilla/Chart.pm b/Bugzilla/Chart.pm
index 8fd4706e4..e70def351 100644
--- a/Bugzilla/Chart.pm
+++ b/Bugzilla/Chart.pm
@@ -1,27 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Gervase Markham <gerv@gerv.net>
-# Albert Ting <altlst@sonic.net>
-# A. Karl Kornel <karl@kornel.name>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# This module represents a chart.
#
@@ -31,6 +13,10 @@ use strict;
# the same points.
package Bugzilla::Chart;
+use 5.10.1;
+use strict;
+use warnings;
+
use Bugzilla::Error;
use Bugzilla::Util;
use Bugzilla::Series;
diff --git a/Bugzilla/Classification.pm b/Bugzilla/Classification.pm
index a989a40f2..a931767d2 100644
--- a/Bugzilla/Classification.pm
+++ b/Bugzilla/Classification.pm
@@ -1,24 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Tiago R. Mello <timello@async.com.br>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Classification;
+use 5.10.1;
+use strict;
+use warnings;
+
use Bugzilla::Constants;
use Bugzilla::Field;
use Bugzilla::Util;
diff --git a/Bugzilla/Comment.pm b/Bugzilla/Comment.pm
index 2fe86253b..a8f915bfd 100644
--- a/Bugzilla/Comment.pm
+++ b/Bugzilla/Comment.pm
@@ -1,28 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is James Robson.
-# Portions created by James Robson are Copyright (c) 2009 James Robson.
-# All rights reserved.
-#
-# Contributor(s): James Robson <arbingersys@gmail.com>
-# Christian Legnitto <clegnitto@mozilla.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Comment;
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::Attachment;
diff --git a/Bugzilla/Comment/TagWeights.pm b/Bugzilla/Comment/TagWeights.pm
index f1a220a47..4919244ce 100644
--- a/Bugzilla/Comment/TagWeights.pm
+++ b/Bugzilla/Comment/TagWeights.pm
@@ -9,8 +9,9 @@ package Bugzilla::Comment::TagWeights;
use 5.10.1;
use strict;
+use warnings;
-use parent qw(Bugzilla::Object);
+use base qw(Bugzilla::Object);
use Bugzilla::Constants;
diff --git a/Bugzilla/Component.pm b/Bugzilla/Component.pm
index 74c3ae99a..b44f78733 100644
--- a/Bugzilla/Component.pm
+++ b/Bugzilla/Component.pm
@@ -1,24 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Tiago R. Mello <timello@async.com.br>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Akamai Technologies <bugzilla-dev@akamai.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Component;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Field::ChoiceInterface Bugzilla::Object);
use Bugzilla::Constants;
diff --git a/Bugzilla/Config.pm b/Bugzilla/Config.pm
index 7cc6c5dcb..902d5c1f8 100644
--- a/Bugzilla/Config.pm
+++ b/Bugzilla/Config.pm
@@ -1,36 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jake <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Christopher Aillon <christopher@aillon.com>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
use Bugzilla::Constants;
diff --git a/Bugzilla/Config/Admin.pm b/Bugzilla/Config/Admin.pm
index b0c0bad9a..74748d3d8 100644
--- a/Bugzilla/Config/Admin.pm
+++ b/Bugzilla/Config/Admin.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::Admin;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/Advanced.pm b/Bugzilla/Config/Advanced.pm
index 893213b02..4bf774ae0 100644
--- a/Bugzilla/Config/Advanced.pm
+++ b/Bugzilla/Config/Advanced.pm
@@ -1,36 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::Advanced;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/Attachment.pm b/Bugzilla/Config/Attachment.pm
index 20cde0b01..b81d21e53 100644
--- a/Bugzilla/Config/Attachment.pm
+++ b/Bugzilla/Config/Attachment.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::Attachment;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/Auth.pm b/Bugzilla/Config/Auth.pm
index 301c852da..9e1f89ef9 100644
--- a/Bugzilla/Config/Auth.pm
+++ b/Bugzilla/Config/Auth.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::Auth;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/BugChange.pm b/Bugzilla/Config/BugChange.pm
index 4e197c5e9..0acdc0ce4 100644
--- a/Bugzilla/Config/BugChange.pm
+++ b/Bugzilla/Config/BugChange.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::BugChange;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
use Bugzilla::Status;
diff --git a/Bugzilla/Config/BugFields.pm b/Bugzilla/Config/BugFields.pm
index 490d945ea..0111ac6a8 100644
--- a/Bugzilla/Config/BugFields.pm
+++ b/Bugzilla/Config/BugFields.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::BugFields;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
use Bugzilla::Field;
diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm
index 4c9994e0e..5b67a7ffc 100644
--- a/Bugzilla/Config/Common.pm
+++ b/Bugzilla/Config/Common.pm
@@ -1,38 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::Common;
+use 5.10.1;
use strict;
+use warnings;
use Email::Address;
use Socket;
diff --git a/Bugzilla/Config/Core.pm b/Bugzilla/Config/Core.pm
index 3d6a00e70..0e95741a9 100644
--- a/Bugzilla/Config/Core.pm
+++ b/Bugzilla/Config/Core.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::Core;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/DependencyGraph.pm b/Bugzilla/Config/DependencyGraph.pm
index b217bfb06..f9f3c0af5 100644
--- a/Bugzilla/Config/DependencyGraph.pm
+++ b/Bugzilla/Config/DependencyGraph.pm
@@ -31,7 +31,9 @@
package Bugzilla::Config::DependencyGraph;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/General.pm b/Bugzilla/Config/General.pm
index 0f043548b..5efaa6f6c 100644
--- a/Bugzilla/Config/General.pm
+++ b/Bugzilla/Config/General.pm
@@ -1,36 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::General;
+
+use 5.10.1;
use strict;
+use warnings;
+
use Bugzilla::Config::Common;
our $sortkey = 150;
diff --git a/Bugzilla/Config/GroupSecurity.pm b/Bugzilla/Config/GroupSecurity.pm
index 24eddaf6b..7288d44b6 100644
--- a/Bugzilla/Config/GroupSecurity.pm
+++ b/Bugzilla/Config/GroupSecurity.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::GroupSecurity;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
use Bugzilla::Group;
diff --git a/Bugzilla/Config/LDAP.pm b/Bugzilla/Config/LDAP.pm
index e47f92308..0bc8240df 100644
--- a/Bugzilla/Config/LDAP.pm
+++ b/Bugzilla/Config/LDAP.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::LDAP;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/MTA.pm b/Bugzilla/Config/MTA.pm
index aeded375f..8bbee3501 100644
--- a/Bugzilla/Config/MTA.pm
+++ b/Bugzilla/Config/MTA.pm
@@ -31,7 +31,9 @@
package Bugzilla::Config::MTA;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
# Return::Value 1.666002 pollutes the error log with warnings about this
diff --git a/Bugzilla/Config/Memcached.pm b/Bugzilla/Config/Memcached.pm
index 08d8ce0e7..292803d86 100644
--- a/Bugzilla/Config/Memcached.pm
+++ b/Bugzilla/Config/Memcached.pm
@@ -9,6 +9,7 @@ package Bugzilla::Config::Memcached;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/PatchViewer.pm b/Bugzilla/Config/PatchViewer.pm
index 6bd9557a9..03dfc02a6 100644
--- a/Bugzilla/Config/PatchViewer.pm
+++ b/Bugzilla/Config/PatchViewer.pm
@@ -31,7 +31,9 @@
package Bugzilla::Config::PatchViewer;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/Query.pm b/Bugzilla/Config/Query.pm
index 4038c13ef..00ddf4323 100644
--- a/Bugzilla/Config/Query.pm
+++ b/Bugzilla/Config/Query.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::Query;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/RADIUS.pm b/Bugzilla/Config/RADIUS.pm
index bc072a9c4..8e30b07a9 100644
--- a/Bugzilla/Config/RADIUS.pm
+++ b/Bugzilla/Config/RADIUS.pm
@@ -1,27 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Marc Schumann.
-# Portions created by Marc Schumann are Copyright (c) 2007 Marc Schumann.
-# All rights reserved.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::RADIUS;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/ShadowDB.pm b/Bugzilla/Config/ShadowDB.pm
index a605b2363..5dbbb5202 100644
--- a/Bugzilla/Config/ShadowDB.pm
+++ b/Bugzilla/Config/ShadowDB.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::ShadowDB;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Config/UserMatch.pm b/Bugzilla/Config/UserMatch.pm
index 38d2cb05b..3f74a7c44 100644
--- a/Bugzilla/Config/UserMatch.pm
+++ b/Bugzilla/Config/UserMatch.pm
@@ -1,37 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Erik Stambaugh <erik@dasbistro.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Config::UserMatch;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Config::Common;
diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm
index 5f41cd3f6..94d60999b 100644
--- a/Bugzilla/Constants.pm
+++ b/Bugzilla/Constants.pm
@@ -1,36 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Jake <jake@bugzilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Christopher Aillon <christopher@aillon.com>
-# Shane H. W. Travis <travis@sedsystems.ca>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Constants;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
# For bz_locations
@@ -46,6 +26,8 @@ use Memoize;
bz_locations
+ CAN_HAS_FEATURE
+
CONCATENATE_ASSETS
IS_NULL
@@ -239,6 +221,17 @@ use constant REST_DOC => "http://www.bugzilla.org/docs/tip/en/html/api/";
use constant REMOTE_FILE => 'http://updates.bugzilla.org/bugzilla-update.xml';
use constant LOCAL_FILE => 'bugzilla-update.xml'; # Relative to datadir.
+use constant CAN_HAS_FEATURE => eval {
+ require CPAN::Meta::Prereqs;
+ require CPAN::Meta::Requirements;
+ require Module::Metadata;
+ require Module::Runtime;
+ CPAN::Meta::Prereqs->VERSION('2.132830');
+ CPAN::Meta::Requirements->VERSION('2.121');
+ Module::Metadata->VERSION('1.000019');
+ 1;
+};
+
# When true CSS and JavaScript assets will be concatanted and minified at
# run-time, to reduce the number of requests required to render a page.
# Setting this to a false value can help debugging.
diff --git a/Bugzilla/DB.pm b/Bugzilla/DB.pm
index cc2826f55..ae881cf05 100644
--- a/Bugzilla/DB.pm
+++ b/Bugzilla/DB.pm
@@ -1,34 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Jacob Steenhagen <jake@bugzilla.org>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Christopher Aillon <christopher@aillon.com>
-# Tomas Kopal <Tomas.Kopal@altap.cz>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Lance Larsh <lance.larsh@oracle.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::DB;
+use 5.10.1;
use strict;
+use warnings;
use DBI;
@@ -37,11 +18,14 @@ use base qw(DBI::db);
use Bugzilla::Constants;
use Bugzilla::Install::Requirements;
-use Bugzilla::Install::Util qw(vers_cmp install_string);
+use Bugzilla::Install::Util qw(install_string);
+use Bugzilla::Version qw(vers_cmp);
+use Bugzilla::Install::Util qw(install_string);
use Bugzilla::Install::Localconfig;
use Bugzilla::Util;
use Bugzilla::Error;
use Bugzilla::DB::Schema;
+use Bugzilla::Version;
use Bugzilla::Metrics::Mysql;
@@ -201,10 +185,6 @@ sub bz_check_requirements {
. bz_locations()->{'localconfig'};
}
- # Check the existence and version of the DBD that we need.
- my $dbd = $db->{dbd};
- _bz_check_dbd($db, $output);
-
# We don't try to connect to the actual database if $db_check is
# disabled.
unless ($lc->{db_check}) {
@@ -219,27 +199,6 @@ sub bz_check_requirements {
print "\n" if $output;
}
-sub _bz_check_dbd {
- my ($db, $output) = @_;
-
- my $dbd = $db->{dbd};
- unless (have_vers($dbd, $output)) {
- my $sql_server = $db->{name};
- my $command = install_command($dbd);
- my $root = ROOT_USER;
- my $dbd_mod = $dbd->{module};
- my $dbd_ver = $dbd->{version};
- die <<EOT;
-
-For $sql_server, Bugzilla requires that perl's $dbd_mod $dbd_ver or later be
-installed. To install this module, run the following command (as $root):
-
- $command
-
-EOT
- }
-}
-
sub bz_check_server_version {
my ($self, $db, $output) = @_;
diff --git a/Bugzilla/DB/Mysql.pm b/Bugzilla/DB/Mysql.pm
index 8a545bd87..a9a32fac4 100644
--- a/Bugzilla/DB/Mysql.pm
+++ b/Bugzilla/DB/Mysql.pm
@@ -1,29 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Dave Miller <davem00@aol.com>
-# Gayathri Swaminath <gayathrik00@aol.com>
-# Jeroen Ruigrok van der Werven <asmodai@wxs.nl>
-# Dave Lawrence <dkl@redhat.com>
-# Tomas Kopal <Tomas.Kopal@altap.cz>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Lance Larsh <lance.larsh@oracle.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
=head1 NAME
@@ -40,7 +20,11 @@ For interface details see L<Bugzilla::DB> and L<DBI>.
=cut
package Bugzilla::DB::Mysql;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::DB);
use Bugzilla::Constants;
diff --git a/Bugzilla/DB/Oracle.pm b/Bugzilla/DB/Oracle.pm
index 20eb0e550..42f3b5efd 100644
--- a/Bugzilla/DB/Oracle.pm
+++ b/Bugzilla/DB/Oracle.pm
@@ -1,24 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Oracle Corporation.
-# Portions created by Oracle are Copyright (C) 2007 Oracle Corporation.
-# All Rights Reserved.
-#
-# Contributor(s): Lance Larsh <lance.larsh@oracle.com>
-# Xiaoou Wu <xiaoou.wu@oracle.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
=head1 NAME
@@ -35,7 +20,11 @@ For interface details see L<Bugzilla::DB> and L<DBI>.
=cut
package Bugzilla::DB::Oracle;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::DB);
use DBD::Oracle;
diff --git a/Bugzilla/DB/Pg.pm b/Bugzilla/DB/Pg.pm
index 4f818932b..b2ee95e08 100644
--- a/Bugzilla/DB/Pg.pm
+++ b/Bugzilla/DB/Pg.pm
@@ -1,29 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Dave Miller <davem00@aol.com>
-# Gayathri Swaminath <gayathrik00@aol.com>
-# Jeroen Ruigrok van der Werven <asmodai@wxs.nl>
-# Dave Lawrence <dkl@redhat.com>
-# Tomas Kopal <Tomas.Kopal@altap.cz>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Lance Larsh <lance.larsh@oracle.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
=head1 NAME
@@ -41,9 +21,12 @@ For interface details see L<Bugzilla::DB> and L<DBI>.
package Bugzilla::DB::Pg;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Error;
+use Bugzilla::Version;
use DBD::Pg;
# This module extends the DB interface via inheritance
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index 0c976e33e..39323bcb1 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -1,29 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Andrew Dunstan <andrew@dunslane.net>,
-# Edward J. Sabol <edwardjsabol@iname.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Lance Larsh <lance.larsh@oracle.com>
-# Dennis Melentyev <dennis.melentyev@infopulse.com.ua>
-# Akamai Technologies <bugzilla-dev@akamai.com>
-# Elliotte Martin <emartin@everythingsolved.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::DB::Schema;
@@ -35,7 +15,10 @@ package Bugzilla::DB::Schema;
#
###########################################################################
+use 5.10.1;
use strict;
+use warnings;
+
use Bugzilla::Error;
use Bugzilla::Hook;
use Bugzilla::Util;
diff --git a/Bugzilla/DB/Schema/Mysql.pm b/Bugzilla/DB/Schema/Mysql.pm
index bcc663e83..2e40e38cf 100644
--- a/Bugzilla/DB/Schema/Mysql.pm
+++ b/Bugzilla/DB/Schema/Mysql.pm
@@ -1,25 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Andrew Dunstan <andrew@dunslane.net>,
-# Edward J. Sabol <edwardjsabol@iname.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::DB::Schema::Mysql;
@@ -29,7 +13,10 @@ package Bugzilla::DB::Schema::Mysql;
#
###############################################################################
+use 5.10.1;
use strict;
+use warnings;
+
use Bugzilla::Error;
use base qw(Bugzilla::DB::Schema);
diff --git a/Bugzilla/DB/Schema/Oracle.pm b/Bugzilla/DB/Schema/Oracle.pm
index 37b406671..7572f80cf 100644
--- a/Bugzilla/DB/Schema/Oracle.pm
+++ b/Bugzilla/DB/Schema/Oracle.pm
@@ -1,24 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Oracle Corporation.
-# Portions created by Oracle are Copyright (C) 2007 Oracle Corporation.
-# All Rights Reserved.
-#
-# Contributor(s): Lance Larsh <lance.larsh@oracle.com>
-# Xiaoou Wu <xiaoou.wu@oracle.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::DB::Schema::Oracle;
@@ -28,7 +13,9 @@ package Bugzilla::DB::Schema::Oracle;
#
###############################################################################
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::DB::Schema);
use Carp qw(confess);
diff --git a/Bugzilla/DB/Schema/Pg.pm b/Bugzilla/DB/Schema/Pg.pm
index 662120c03..d8550e2e8 100644
--- a/Bugzilla/DB/Schema/Pg.pm
+++ b/Bugzilla/DB/Schema/Pg.pm
@@ -1,25 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Andrew Dunstan <andrew@dunslane.net>,
-# Edward J. Sabol <edwardjsabol@iname.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::DB::Schema::Pg;
@@ -29,7 +13,10 @@ package Bugzilla::DB::Schema::Pg;
#
###############################################################################
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::DB::Schema);
use Storable qw(dclone);
diff --git a/Bugzilla/DB/Schema/Sqlite.pm b/Bugzilla/DB/Schema/Sqlite.pm
index 7ed9def3e..471df340c 100644
--- a/Bugzilla/DB/Schema/Sqlite.pm
+++ b/Bugzilla/DB/Schema/Sqlite.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-use strict;
package Bugzilla::DB::Schema::Sqlite;
+
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::DB::Schema);
use Bugzilla::Error;
diff --git a/Bugzilla/DB/Sqlite.pm b/Bugzilla/DB/Sqlite.pm
index ee92909e3..4feb78a74 100644
--- a/Bugzilla/DB/Sqlite.pm
+++ b/Bugzilla/DB/Sqlite.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-use strict;
package Bugzilla::DB::Sqlite;
+
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::DB);
use Bugzilla::Constants;
diff --git a/Bugzilla/DuoWeb.pm b/Bugzilla/DuoWeb.pm
index 4fb28df9e..722c032e3 100644
--- a/Bugzilla/DuoWeb.pm
+++ b/Bugzilla/DuoWeb.pm
@@ -28,6 +28,7 @@
package Bugzilla::DuoWeb;
+use 5.10.1;
use strict;
use warnings;
diff --git a/Bugzilla/Error.pm b/Bugzilla/Error.pm
index e619f3f84..fc0e4812e 100644
--- a/Bugzilla/Error.pm
+++ b/Bugzilla/Error.pm
@@ -1,29 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Bradley Baetz <bbaetz@acm.org>
-# Marc Schumann <wurblzap@gmail.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Error;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
@Bugzilla::Error::EXPORT = qw(ThrowCodeError ThrowTemplateError ThrowUserError ThrowErrorPage);
diff --git a/Bugzilla/Extension.pm b/Bugzilla/Extension.pm
index dbfee0971..78c027796 100644
--- a/Bugzilla/Extension.pm
+++ b/Bugzilla/Extension.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by the Initial Developers are Copyright (C) 2009 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Constants;
use Bugzilla::Error;
diff --git a/Bugzilla/Field.pm b/Bugzilla/Field.pm
index 0a0c7b15f..a9e124115 100644
--- a/Bugzilla/Field.pm
+++ b/Bugzilla/Field.pm
@@ -1,21 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Dan Mosedale <dmose@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Myk Melez <myk@mozilla.org>
-# Greg Hendricks <ghendricks@novell.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
=head1 NAME
@@ -69,7 +57,9 @@ in addition to what is documented here.
package Bugzilla::Field;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter Bugzilla::Object);
@Bugzilla::Field::EXPORT = qw(check_field get_field_id get_legal_field_values);
diff --git a/Bugzilla/Field/Choice.pm b/Bugzilla/Field/Choice.pm
index 8d7d61def..b35006501 100644
--- a/Bugzilla/Field/Choice.pm
+++ b/Bugzilla/Field/Choice.pm
@@ -1,28 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Initial Developer of the Original Code is NASA.
-# Portions created by NASA are Copyright (C) 2006 San Jose State
-# University Foundation. All Rights Reserved.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-# Greg Hendricks <ghendricks@novell.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Field::Choice;
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::Field::ChoiceInterface Bugzilla::Object);
use Bugzilla::Config qw(SetParam write_params);
diff --git a/Bugzilla/Field/ChoiceInterface.pm b/Bugzilla/Field/ChoiceInterface.pm
index 3292536d3..cdb43d6d0 100644
--- a/Bugzilla/Field/ChoiceInterface.pm
+++ b/Bugzilla/Field/ChoiceInterface.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Initial Developer of the Original Code is NASA.
-# Portions created by NASA are Copyright (C) 2006 San Jose State
-# University Foundation. All Rights Reserved.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-# Greg Hendricks <ghendricks@novell.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Field::ChoiceInterface;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Constants;
use Bugzilla::Error;
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm
index 7e039f077..3e7aa6819 100644
--- a/Bugzilla/Flag.pm
+++ b/Bugzilla/Flag.pm
@@ -1,30 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Jouni Heikniemi <jouni@heikniemi.net>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Flag;
+use 5.10.1;
+use strict;
+use warnings;
+
=head1 NAME
Bugzilla::Flag - A module to deal with Bugzilla flag values.
diff --git a/Bugzilla/FlagType.pm b/Bugzilla/FlagType.pm
index 8c958f5ce..a86db380b 100644
--- a/Bugzilla/FlagType.pm
+++ b/Bugzilla/FlagType.pm
@@ -1,29 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::FlagType;
+use 5.10.1;
+use strict;
+use warnings;
+
=head1 NAME
Bugzilla::FlagType - A module to deal with Bugzilla flag types.
diff --git a/Bugzilla/Group.pm b/Bugzilla/Group.pm
index 51d51b2e8..b67251619 100644
--- a/Bugzilla/Group.pm
+++ b/Bugzilla/Group.pm
@@ -1,31 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Joel Peshkin <bugreport@peshkin.net>
-# Erik Stambaugh <erik@dasbistro.com>
-# Tiago R. Mello <timello@async.com.br>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Group;
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::Constants;
diff --git a/Bugzilla/Hook.pm b/Bugzilla/Hook.pm
index 942623dcf..00bd316ab 100644
--- a/Bugzilla/Hook.pm
+++ b/Bugzilla/Hook.pm
@@ -1,27 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Zach Lipton <zach@zachlipton.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Hook;
+
+use 5.10.1;
use strict;
+use warnings;
sub process {
my ($name, $args) = @_;
diff --git a/Bugzilla/Install.pm b/Bugzilla/Install.pm
index 97b8b677c..edadbfecb 100644
--- a/Bugzilla/Install.pm
+++ b/Bugzilla/Install.pm
@@ -1,18 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Install;
@@ -24,7 +15,9 @@ package Bugzilla::Install;
# make those assumptions, then it should go into one of the
# packages under the Bugzilla::Install namespace.
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Component;
use Bugzilla::Config qw(:admin);
diff --git a/Bugzilla/Install/CPAN.pm b/Bugzilla/Install/CPAN.pm
deleted file mode 100644
index e7556526c..000000000
--- a/Bugzilla/Install/CPAN.pm
+++ /dev/null
@@ -1,351 +0,0 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by Everything Solved are Copyright (C) 2007
-# Everything Solved, Inc. All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-
-package Bugzilla::Install::CPAN;
-use strict;
-use base qw(Exporter);
-our @EXPORT = qw(
- BZ_LIB
-
- check_cpan_requirements
- set_cpan_config
- install_module
-);
-
-use Bugzilla::Constants;
-use Bugzilla::Install::Requirements qw(have_vers);
-use Bugzilla::Install::Util qw(bin_loc install_string);
-
-use Config;
-use CPAN;
-use Cwd qw(abs_path);
-use File::Path qw(rmtree);
-
-# These are required for install-module.pl to be able to install
-# all modules properly.
-use constant REQUIREMENTS => (
- {
- module => 'CPAN',
- package => 'CPAN',
- version => '1.81',
- },
- {
- # When Module::Build isn't installed, the YAML module allows
- # CPAN to read META.yml to determine that Module::Build first
- # needs to be installed to compile a module.
- module => 'YAML',
- package => 'YAML',
- version => 0,
- },
- {
- # Many modules on CPAN are now built with Dist::Zilla, which
- # unfortunately means they require this version of EU::MM to install.
- module => 'ExtUtils::MakeMaker',
- package => 'ExtUtils-MakeMaker',
- version => '6.31',
- },
-);
-
-# We need the absolute path of ext_libpath, because CPAN chdirs around
-# and so we can't use a relative directory.
-#
-# We need it often enough (and at compile time, in install-module.pl) so
-# we make it a constant.
-use constant BZ_LIB => abs_path(bz_locations()->{ext_libpath});
-
-# CPAN requires nearly all of its parameters to be set, or it will start
-# asking questions to the user. We want to avoid that, so we have
-# defaults here for most of the required parameters we know about, in case
-# any of them aren't set. The rest are handled by set_cpan_defaults().
-use constant CPAN_DEFAULTS => {
- auto_commit => 0,
- # We always force builds, so there's no reason to cache them.
- build_cache => 0,
- build_requires_install_policy => 'yes',
- cache_metadata => 1,
- colorize_output => 1,
- colorize_print => 'bold',
- index_expire => 1,
- scan_cache => 'atstart',
-
- inhibit_startup_message => 1,
-
- bzip2 => bin_loc('bzip2'),
- curl => bin_loc('curl'),
- gzip => bin_loc('gzip'),
- links => bin_loc('links'),
- lynx => bin_loc('lynx'),
- make => bin_loc('make'),
- pager => bin_loc('less'),
- tar => bin_loc('tar'),
- unzip => bin_loc('unzip'),
- wget => bin_loc('wget'),
-
- urllist => ['http://www.cpan.org/'],
-};
-
-sub check_cpan_requirements {
- my ($original_dir, $original_args) = @_;
-
- _require_compiler();
-
- my @install;
- foreach my $module (REQUIREMENTS) {
- my $installed = have_vers($module, 1);
- push(@install, $module) if !$installed;
- }
-
- return if !@install;
-
- my $restart_required;
- foreach my $module (@install) {
- $restart_required = 1 if $module->{module} eq 'CPAN';
- install_module($module->{module}, 1);
- }
-
- if ($restart_required) {
- chdir $original_dir;
- exec($^X, $0, @$original_args);
- }
-}
-
-sub _require_compiler {
- my @errors;
-
- my $cc_name = $Config{cc};
- my $cc_exists = bin_loc($cc_name);
-
- if (!$cc_exists) {
- push(@errors, install_string('install_no_compiler'));
- }
-
- my $make_name = $CPAN::Config->{make};
- my $make_exists = bin_loc($make_name);
-
- if (!$make_exists) {
- push(@errors, install_string('install_no_make'));
- }
-
- die @errors if @errors;
-}
-
-sub install_module {
- my ($name, $test) = @_;
- my $bzlib = BZ_LIB;
-
- # Make Module::AutoInstall install all dependencies and never prompt.
- local $ENV{PERL_AUTOINSTALL} = '--alldeps';
- # This makes Net::SSLeay not prompt the user, if it gets installed.
- # It also makes any other MakeMaker prompts accept their defaults.
- local $ENV{PERL_MM_USE_DEFAULT} = 1;
-
- # Certain modules require special stuff in order to not prompt us.
- my $original_makepl = $CPAN::Config->{makepl_arg};
- # This one's a regex in case we're doing Template::Plugin::GD and it
- # pulls in Template-Toolkit as a dependency.
- if ($name =~ /^Template/) {
- $CPAN::Config->{makepl_arg} .= " TT_ACCEPT=y TT_EXTRAS=n";
- }
- elsif ($name eq 'XML::Twig') {
- $CPAN::Config->{makepl_arg} = "-n $original_makepl";
- }
- elsif ($name eq 'SOAP::Lite') {
- $CPAN::Config->{makepl_arg} .= " --noprompt";
- }
-
- my $module = CPAN::Shell->expand('Module', $name);
- if (!$module) {
- die install_string('no_such_module', { module => $name }) . "\n";
- }
- my $version = $module->cpan_version;
- my $module_name = $name;
-
- if ($name eq 'LWP::UserAgent' && $^V lt v5.8.8) {
- # LWP 6.x requires Perl 5.8.8 or newer.
- # As PAUSE only indexes the very last version of each module,
- # we have to specify the path to the tarball ourselves.
- $name = 'GAAS/libwww-perl-5.837.tar.gz';
- # This tarball contains LWP::UserAgent 5.835.
- $version = '5.835';
- }
-
- print install_string('install_module',
- { module => $module_name, version => $version }) . "\n";
-
- if ($test) {
- CPAN::Shell->force('install', $name);
- }
- else {
- CPAN::Shell->notest('install', $name);
- }
-
- # If it installed any binaries in the Bugzilla directory, delete them.
- if (-d "$bzlib/bin") {
- File::Path::rmtree("$bzlib/bin");
- }
-
- $CPAN::Config->{makepl_arg} = $original_makepl;
-}
-
-sub set_cpan_config {
- my $do_global = shift;
- my $bzlib = BZ_LIB;
-
- # We set defaults before we do anything, otherwise CPAN will
- # start asking us questions as soon as we load its configuration.
- eval { require CPAN::Config; };
- _set_cpan_defaults();
-
- # Calling a senseless autoload that does nothing makes us
- # automatically load any existing configuration.
- # We want to avoid the "invalid command" message.
- open(my $saveout, ">&", "STDOUT");
- open(STDOUT, '>', '/dev/null');
- eval { CPAN->ignore_this_error_message_from_bugzilla; };
- undef $@;
- close(STDOUT);
- open(STDOUT, '>&', $saveout);
-
- my $dir = $CPAN::Config->{cpan_home};
- if (!defined $dir || !-w $dir) {
- # If we can't use the standard CPAN build dir, we try to make one.
- $dir = "$ENV{HOME}/.cpan";
- mkdir $dir;
-
- # If we can't make one, we finally try to use the Bugzilla directory.
- if (!-w $dir) {
- print STDERR install_string('cpan_bugzilla_home'), "\n";
- $dir = "$bzlib/.cpan";
- }
- }
- $CPAN::Config->{cpan_home} = $dir;
- $CPAN::Config->{build_dir} = "$dir/build";
- # We always force builds, so there's no reason to cache them.
- $CPAN::Config->{keep_source_where} = "$dir/source";
- # This is set both here and in defaults so that it's always true.
- $CPAN::Config->{inhibit_startup_message} = 1;
- # Automatically install dependencies.
- $CPAN::Config->{prerequisites_policy} = 'follow';
-
- # Unless specified, we install the modules into the Bugzilla directory.
- if (!$do_global) {
- require Config;
-
- $CPAN::Config->{makepl_arg} .= " LIB=\"$bzlib\""
- . " INSTALLMAN1DIR=\"$bzlib/man/man1\""
- . " INSTALLMAN3DIR=\"$bzlib/man/man3\""
- # The bindirs are here because otherwise we'll try to write to
- # the system binary dirs, and that will cause CPAN to die.
- . " INSTALLBIN=\"$bzlib/bin\""
- . " INSTALLSCRIPT=\"$bzlib/bin\""
- # INSTALLDIRS=perl is set because that makes sure that MakeMaker
- # always uses the directories we've specified here.
- . " INSTALLDIRS=perl";
- $CPAN::Config->{mbuild_arg} = " --install_base \"$bzlib\""
- . " --install_path lib=\"$bzlib\""
- . " --install_path arch=\"$bzlib/$Config::Config{archname}\"";
- $CPAN::Config->{mbuild_install_arg} = $CPAN::Config->{mbuild_arg};
-
- # When we're not root, sometimes newer versions of CPAN will
- # try to read/modify things that belong to root, unless we set
- # certain config variables.
- $CPAN::Config->{histfile} = "$dir/histfile";
- $CPAN::Config->{use_sqlite} = 0;
- $CPAN::Config->{prefs_dir} = "$dir/prefs";
-
- # Unless we actually set PERL5LIB, some modules can't install
- # themselves, like DBD::mysql, DBD::Pg, and XML::Twig.
- my $current_lib = $ENV{PERL5LIB} ? $ENV{PERL5LIB} . ':' : '';
- $ENV{PERL5LIB} = $current_lib . $bzlib;
- }
-}
-
-sub _set_cpan_defaults {
- # If CPAN hasn't been configured, we try to use some reasonable defaults.
- foreach my $key (keys %{CPAN_DEFAULTS()}) {
- $CPAN::Config->{$key} = CPAN_DEFAULTS->{$key}
- if !defined $CPAN::Config->{$key};
- }
-
- my @missing;
- # In newer CPANs, this is in HandleConfig. In older CPANs, it's in
- # Config.
- if (eval { require CPAN::HandleConfig }) {
- @missing = CPAN::HandleConfig->missing_config_data;
- }
- else {
- @missing = CPAN::Config->missing_config_data;
- }
-
- foreach my $key (@missing) {
- $CPAN::Config->{$key} = '';
- }
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Bugzilla::Install::CPAN - Routines to install Perl modules from CPAN.
-
-=head1 SYNOPSIS
-
- use Bugzilla::Install::CPAN;
-
- set_cpan_config();
- install_module('Module::Name');
-
-=head1 DESCRIPTION
-
-This is primarily used by L<install-module> to do the "hard work" of
-installing CPAN modules.
-
-=head1 SUBROUTINES
-
-=over
-
-=item C<set_cpan_config>
-
-Sets up the configuration of CPAN for this session. Must be called
-before L</install_module>. Takes one boolean parameter. If true,
-L</install_module> will install modules globally instead of to the
-local F<lib/> directory. On most systems, you have to be root to do that.
-
-=item C<install_module>
-
-Installs a module from CPAN. Takes two arguments:
-
-=over
-
-=item C<$name> - The name of the module, just like you'd pass to the
-C<install> command in the CPAN shell.
-
-=item C<$test> - If true, we run tests on this module before installing,
-but we still force the install if the tests fail. This is only used
-when we internally install a newer CPAN module.
-
-=back
-
-Note that calling this function prints a B<lot> of information to
-STDOUT and STDERR.
-
-=back
diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm
index 705cf3e37..ca59e778d 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -1,26 +1,18 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-# Noel Cragg <noel@red-bean.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Install::DB;
# NOTE: This package may "use" any modules that it likes,
# localconfig is available, and params are up to date.
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Constants;
use Bugzilla::Hook;
diff --git a/Bugzilla/Install/Filesystem.pm b/Bugzilla/Install/Filesystem.pm
index 4a773f511..c7e9f4554 100644
--- a/Bugzilla/Install/Filesystem.pm
+++ b/Bugzilla/Install/Filesystem.pm
@@ -1,19 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-# Bill Barry <after.fallout@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Install::Filesystem;
@@ -25,7 +15,9 @@ package Bugzilla::Install::Filesystem;
# * Files do not have the correct permissions.
# * The database does not exist.
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Constants;
use Bugzilla::Error;
@@ -164,10 +156,14 @@ sub FILESYSTEM {
'migrate.pl' => { perms => OWNER_EXECUTE },
'sentry.pl' => { perms => WS_EXECUTE },
'metrics.pl' => { perms => WS_EXECUTE },
+ 'Makefile.PL' => { perms => OWNER_WRITE },
+ 'gen-cpanfile.pl' => { perms => OWNER_EXECUTE },
'clean-bug-user-last-visit.pl' => { perms => WS_EXECUTE },
'Bugzilla.pm' => { perms => CGI_READ },
"$localconfig*" => { perms => CGI_READ },
+ 'META.*' => { perms => CGI_READ },
+ 'MYMETA.*' => { perms => CGI_READ },
'bugzilla.dtd' => { perms => WS_SERVE },
'mod_perl.pl' => { perms => WS_SERVE },
'robots.txt' => { perms => WS_SERVE },
diff --git a/Bugzilla/Install/Localconfig.pm b/Bugzilla/Install/Localconfig.pm
index 7c01be37d..263d63ced 100644
--- a/Bugzilla/Install/Localconfig.pm
+++ b/Bugzilla/Install/Localconfig.pm
@@ -1,22 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Initial Developer of the Original Code is Everything Solved.
-# Portions created by Everything Solved are Copyright (C) 2006
-# Everything Solved. All Rights Reserved.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Install::Localconfig;
@@ -28,7 +15,9 @@ package Bugzilla::Install::Localconfig;
# * Files do not have the correct permissions
# * The database is not up to date
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Constants;
use Bugzilla::Install::Util qw(bin_loc install_string);
@@ -36,17 +25,27 @@ use Bugzilla::Util qw(generate_random_password wrap_hard);
use Data::Dumper;
use File::Basename qw(dirname);
-use IO::File;
+use English qw($EGID);
+use List::Util qw(first);
+use Tie::Hash::NamedCapture;
use Safe;
use Term::ANSIColor;
-use base qw(Exporter);
+use parent qw(Exporter);
our @EXPORT_OK = qw(
read_localconfig
update_localconfig
);
+sub _sensible_group {
+ return '' if ON_WINDOWS;
+ my @groups = qw( apache www-data _www );
+ my $sensible_group = first { return getgrnam($_) } @groups;
+
+ return $sensible_group // getgrgid($EGID) // '';
+}
+
use constant LOCALCONFIG_VARS => (
{
name => 'create_htaccess',
diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm
index 27549ca41..43c441d6b 100644
--- a/Bugzilla/Install/Requirements.pm
+++ b/Bugzilla/Install/Requirements.pm
@@ -1,19 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Install::Requirements;
@@ -23,38 +13,37 @@ package Bugzilla::Install::Requirements;
# Subroutines may "require" and "import" from modules, but they
# MUST NOT "use."
+use 5.10.1;
use strict;
-use version;
+use warnings;
use Bugzilla::Constants;
-use Bugzilla::Install::Util qw(vers_cmp install_string bin_loc
- success extension_requirement_packages);
+use Bugzilla::Install::Util qw(install_string bin_loc success
+ extension_requirement_packages);
use List::Util qw(max);
-use Safe;
use Term::ANSIColor;
+use CPAN::Meta;
+use CPAN::Meta::Prereqs;
+use CPAN::Meta::Requirements;
+use Module::Metadata;
-# Return::Value 1.666002 pollutes the error log with warnings about this
-# deprecated module. We have to set NO_CLUCK = 1 before loading Email::Send
-# in have_vers() to disable these warnings.
-BEGIN {
- $Return::Value::NO_CLUCK = 1;
-}
-
-use base qw(Exporter);
+use parent qw(Exporter);
use autodie;
+
our @EXPORT = qw(
- REQUIRED_MODULES
- OPTIONAL_MODULES
FEATURE_FILES
- check_requirements
- check_graphviz
- export_cpanfile
- have_vers
- install_command
+ load_cpan_meta
+ check_cpan_requirements
+ check_cpan_feature
+ check_all_cpan_features
+ check_webdotbase
+ check_font_file
map_files_to_features
);
+our $checking_for_indent = 0;
+
# This is how many *'s are in the top of each "box" message printed
# by checksetup.pl.
use constant TABLE_WIDTH => 71;
@@ -64,10 +53,12 @@ use constant TABLE_WIDTH => 71;
#
# The keys are the names of the modules, the values are what the module
# is called in the output of "apachectl -t -D DUMP_MODULES".
-use constant APACHE_MODULES => {
+use constant APACHE_MODULES => {
mod_headers => 'headers_module',
mod_env => 'env_module',
mod_expires => 'expires_module',
+ mod_rewrite => 'rewrite_module',
+ mod_version => 'version_module'
};
# These are all of the binaries that we could possibly use that can
@@ -81,471 +72,131 @@ use constant APACHE => qw(apachectl httpd apache2 apache);
# If we don't find any of the above binaries in the normal PATH,
# these are extra places we look.
use constant APACHE_PATH => [qw(
- /usr/sbin
+ /usr/sbin
/usr/local/sbin
/usr/libexec
/usr/local/libexec
)];
-# The below two constants are subroutines so that they can implement
-# a hook. Other than that they are actually constants.
-
-# "package" is the perl package we're checking for. "module" is the name
-# of the actual module we load with "require" to see if the package is
-# installed or not. "version" is the version we need, or 0 if we'll accept
-# any version.
-#
-# "blacklist" is an arrayref of regular expressions that describe versions that
-# are 'blacklisted'--that is, even if the version is high enough, Bugzilla
-# will refuse to say that it's OK to run with that version.
-sub REQUIRED_MODULES {
- my $perl_ver = sprintf('%vd', $^V);
- my @modules = (
- {
- package => 'CGI.pm',
- module => 'CGI',
- # 3.51 fixes a security problem that affects Bugzilla.
- # (bug 591165)
- version => '3.51',
- },
- {
- package => 'Digest-SHA',
- module => 'Digest::SHA',
- version => 0
- },
- {
- package => 'TimeDate',
- module => 'Date::Format',
- version => '2.21'
- },
- # 0.28 fixed some important bugs in DateTime.
- {
- package => 'DateTime',
- module => 'DateTime',
- version => '0.28'
- },
- # 0.79 is required to work on Windows Vista and Windows Server 2008.
- # As correctly detecting the flavor of Windows is not easy,
- # we require this version for all Windows installations.
- # 0.71 fixes a major bug affecting all platforms.
- {
- package => 'DateTime-TimeZone',
- module => 'DateTime::TimeZone',
- version => ON_WINDOWS ? '0.79' : '0.71'
- },
- {
- package => 'DBI',
- module => 'DBI',
- version => (vers_cmp($perl_ver, '5.13.3') > -1) ? '1.614' : '1.41'
- },
- # 2.22 fixes various problems related to UTF8 strings in hash keys,
- # as well as line endings on Windows.
- {
- package => 'Template-Toolkit',
- module => 'Template',
- version => '2.22'
- },
- {
- package => 'Email-Send',
- module => 'Email::Send',
- version => ON_WINDOWS ? '2.16' : '2.00',
- blacklist => ['^2\.196$']
- },
- {
- package => 'Email-MIME',
- module => 'Email::MIME',
- # This fixes a memory leak in walk_parts that affected jobqueue.pl.
- version => '1.904'
- },
- {
- package => 'URI',
- module => 'URI',
- # This version properly handles a semicolon as the delimiter
- # in a URL query string.
- version => '1.37',
- },
- {
- package => 'List-MoreUtils',
- module => 'List::MoreUtils',
- version => 0.22,
- },
- {
- package => 'Math-Random-ISAAC',
- module => 'Math::Random::ISAAC',
- version => '1.0.1',
- },
- );
-
- if (ON_WINDOWS) {
- push(@modules, {
- package => 'Win32',
- module => 'Win32',
- # 0.35 fixes a memory leak in GetOSVersion, which we use.
- version => 0.35,
- },
- {
- package => 'Win32-API',
- module => 'Win32::API',
- # 0.55 fixes a bug with char* that might affect Bugzilla::RNG.
- version => '0.55',
- });
- }
-
- my $extra_modules = _get_extension_requirements('REQUIRED_MODULES');
- push(@modules, @$extra_modules);
- return \@modules;
-};
-
-sub OPTIONAL_MODULES {
- my $perl_ver = sprintf('%vd', $^V);
- my @modules = (
- {
- package => 'GD',
- module => 'GD',
- version => '1.20',
- feature => [qw(graphical_reports new_charts old_charts)],
- },
- {
- package => 'Chart',
- module => 'Chart::Lines',
- # Versions below 2.1 cannot be detected accurately.
- # There is no 2.1.0 release (it was 2.1), but .0 is required to fix
- # https://rt.cpan.org/Public/Bug/Display.html?id=28218.
- version => '2.1.0',
- feature => [qw(new_charts old_charts)],
- },
- {
- package => 'Template-GD',
- # This module tells us whether or not Template-GD is installed
- # on Template-Toolkits after 2.14, and still works with 2.14 and lower.
- module => 'Template::Plugin::GD::Image',
- version => 0,
- feature => ['graphical_reports'],
- },
- {
- package => 'GDTextUtil',
- module => 'GD::Text',
- version => 0,
- feature => ['graphical_reports'],
- },
- {
- package => 'GDGraph',
- module => 'GD::Graph',
- version => 0,
- feature => ['graphical_reports'],
- },
- {
- package => 'MIME-tools',
- # MIME::Parser is packaged as MIME::Tools on ActiveState Perl
- module => ON_WINDOWS ? 'MIME::Tools' : 'MIME::Parser',
- version => '5.406',
- feature => ['moving'],
- },
- {
- package => 'libwww-perl',
- module => 'LWP::UserAgent',
- version => 0,
- feature => ['updates'],
- },
- {
- package => 'XML-Twig',
- module => 'XML::Twig',
- version => 0,
- feature => ['moving', 'updates'],
- },
- {
- package => 'PatchReader',
- module => 'PatchReader',
- # 0.9.6 fixes two notable bugs and significantly improves the UX.
- version => '0.9.6',
- feature => ['patch_viewer'],
- },
- {
- package => 'perl-ldap',
- module => 'Net::LDAP',
- version => 0,
- feature => ['auth_ldap'],
- },
- {
- package => 'Authen-SASL',
- module => 'Authen::SASL',
- version => 0,
- feature => ['smtp_auth'],
- },
- {
- package => 'RadiusPerl',
- module => 'Authen::Radius',
- version => 0,
- feature => ['auth_radius'],
- },
- {
- package => 'SOAP-Lite',
- module => 'SOAP::Lite',
- # Fixes various bugs, including 542931 and 552353 + stops
- # throwing warnings with Perl 5.12.
- version => '0.712',
- feature => ['xmlrpc'],
- },
- {
- package => 'JSON-RPC',
- module => 'JSON::RPC',
- version => 0,
- feature => ['jsonrpc', 'rest'],
- },
- {
- package => 'JSON-XS',
- module => 'JSON::XS',
- # 2.0 is the first version that will work with JSON::RPC.
- version => '2.0',
- feature => ['jsonrpc_faster'],
- },
- {
- package => 'Test-Taint',
- module => 'Test::Taint',
- version => 0,
- feature => ['jsonrpc', 'xmlrpc', 'rest'],
- },
- {
- # We need the 'utf8_mode' method of HTML::Parser, for HTML::Scrubber.
- package => 'HTML-Parser',
- module => 'HTML::Parser',
- version => (vers_cmp($perl_ver, '5.13.3') > -1) ? '3.67' : '3.40',
- feature => ['html_desc'],
- },
- {
- package => 'HTML-Scrubber',
- module => 'HTML::Scrubber',
- version => 0,
- feature => ['html_desc'],
- },
- {
- # we need version 2.21 of Encode for mime_name
- package => 'Encode',
- module => 'Encode',
- version => 2.21,
- feature => ['detect_charset'],
- },
- {
- package => 'Encode-Detect',
- module => 'Encode::Detect',
- version => 0,
- feature => ['detect_charset'],
- },
-
- # S3 attachments
- {
- package => 'Class-Accessor-Fast',
- module => 'Class::Accessor::Fast',
- version => 0,
- feature => ['s3'],
- },
- {
- package => 'XML-Simple',
- module => 'XML::Simple',
- version => 0,
- feature => ['s3'],
- },
-
- # Inbound Email
- {
- package => 'Email-MIME-Attachment-Stripper',
- module => 'Email::MIME::Attachment::Stripper',
- version => 0,
- feature => ['inbound_email'],
- },
- {
- package => 'Email-Reply',
- module => 'Email::Reply',
- version => 0,
- feature => ['inbound_email'],
- },
-
- # Mail Queueing
- {
- package => 'TheSchwartz',
- module => 'TheSchwartz',
- # 1.10 supports declining of jobs.
- version => 1.10,
- feature => ['jobqueue'],
- },
- {
- package => 'Daemon-Generic',
- module => 'Daemon::Generic',
- version => 0,
- feature => ['jobqueue'],
- },
-
- # mod_perl
- {
- package => 'mod_perl',
- module => 'mod_perl2',
- version => '1.999022',
- feature => ['mod_perl'],
- },
- {
- package => 'Apache-SizeLimit',
- module => 'Apache2::SizeLimit',
- # 0.96 properly determines process size on Linux.
- version => '0.96',
- feature => ['mod_perl'],
- },
-
- # memcached
- {
- package => 'URI-Escape',
- module => 'URI::Escape',
- version => 0,
- feature => ['memcached', 's3'],
- },
- {
- package => 'Cache-Memcached',
- module => 'Cache::Memcached',
- version => '0',
- feature => ['memcached'],
- },
-
- # BMO - metrics
- {
- package => 'ElasticSearch',
- module => 'ElasticSearch',
- version => '0',
- feature => ['elasticsearch'],
- },
-
- # multi factor auth - totp
- {
- package => 'Auth-GoogleAuth',
- module => 'Auth::GoogleAuth',
- version => '1.01',
- feature => ['mfa'],
- },
- {
- package => 'GD-Barcode-QRcode',
- module => 'GD::Barcode::QRcode',
- version => '0',
- feature => ['mfa'],
- },
- # Documentation
- {
- package => 'File-Copy-Recursive',
- module => 'File::Copy::Recursive',
- version => 0,
- feature => ['documentation'],
- }
- );
-
- my $extra_modules = _get_extension_requirements('OPTIONAL_MODULES');
- push(@modules, @$extra_modules);
- return \@modules;
-};
-
# This maps features to the files that require that feature in order
# to compile. It is used by t/001compile.t and mod_perl.pl.
use constant FEATURE_FILES => (
jsonrpc => ['Bugzilla/WebService/Server/JSONRPC.pm', 'jsonrpc.cgi'],
xmlrpc => ['Bugzilla/WebService/Server/XMLRPC.pm', 'xmlrpc.cgi',
'Bugzilla/WebService.pm', 'Bugzilla/WebService/*.pm'],
- rest => ['Bugzilla/WebService/Server/REST.pm', 'rest.cgi'],
+ rest => ['Bugzilla/API/Server.pm', 'rest.cgi', 'Bugzilla/API/*/*.pm',
+ 'Bugzilla/API/*/Server.pm', 'Bugzilla/API/*/Resource/*.pm'],
+ psgi => ['app.psgi'],
moving => ['importxml.pl'],
auth_ldap => ['Bugzilla/Auth/Verify/LDAP.pm'],
auth_radius => ['Bugzilla/Auth/Verify/RADIUS.pm'],
+ documentation => ['docs/makedocs.pl'],
inbound_email => ['email_in.pl'],
jobqueue => ['Bugzilla/Job/*', 'Bugzilla/JobQueue.pm',
'Bugzilla/JobQueue/*', 'jobqueue.pl'],
patch_viewer => ['Bugzilla/Attachment/PatchReader.pm'],
updates => ['Bugzilla/Update.pm'],
- memcached => ['Bugzilla/Memcache.pm'],
mfa => ['Bugzilla/MFA/*.pm'],
+ markdown => ['Bugzilla/Markdown.pm'],
+ memcached => ['Bugzilla/Memcache.pm'],
+ auth_delegation => ['auth.cgi'],
);
-# This implements the REQUIRED_MODULES and OPTIONAL_MODULES stuff
-# described in in Bugzilla::Extension.
-sub _get_extension_requirements {
- my ($function) = @_;
-
- my $packages = extension_requirement_packages();
- my @modules;
- foreach my $package (@$packages) {
- if ($package->can($function)) {
- my $extra_modules = $package->$function;
- push(@modules, @$extra_modules);
- }
+sub load_cpan_meta {
+ my $dir = bz_locations()->{libpath};
+ my @meta_json = map { File::Spec->catfile($dir, $_) } qw( MYMETA.json META.json );
+ my ($file) = grep { -f $_ } @meta_json;
+
+ if ($file) {
+ open my $meta_fh, '<', $file or die "unable to open $file: $!";
+ my $str = do { local $/ = undef; scalar <$meta_fh> };
+ # detaint
+ $str =~ /^(.+)$/s; $str = $1;
+ close $meta_fh;
+
+ return CPAN::Meta->load_json_string($str);
}
- return \@modules;
-};
+ else {
+ ThrowCodeError('cpan_meta_missing');
+ }
+}
-sub check_requirements {
- my ($output) = @_;
+sub check_all_cpan_features {
+ my ($meta, $dirs, $output) = @_;
+ my %report;
- print "\n", install_string('checking_modules'), "\n" if $output;
- my $root = ROOT_USER;
- my $missing = _check_missing(REQUIRED_MODULES, $output);
+ local $checking_for_indent = 2;
- print "\n", install_string('checking_dbd'), "\n" if $output;
- my $have_one_dbd = 0;
- my $db_modules = DB_MODULE;
- foreach my $db (keys %$db_modules) {
- my $dbd = $db_modules->{$db}->{dbd};
- $have_one_dbd = 1 if have_vers($dbd, $output);
- }
+ print "\nOptional features:\n" if $output;
+ my @features = sort { $a->identifier cmp $b->identifier } $meta->features;
+ foreach my $feature (@features) {
+ next if $feature->identifier eq 'features';
+ printf "Feature '%s': %s\n", $feature->identifier, $feature->description if $output;
+ my $result = check_cpan_feature($feature, $dirs, $output);
+ print "\n" if $output;
- print "\n", install_string('checking_optional'), "\n" if $output;
- my $missing_optional = _check_missing(OPTIONAL_MODULES, $output);
+ $report{$feature->identifier} = {
+ description => $feature->description,
+ result => $result,
+ };
+ }
- my $missing_apache = _missing_apache_modules(APACHE_MODULES, $output);
+ return \%report;
+}
- # If we're running on Windows, reset the input line terminator so that
- # console input works properly - loading CGI tends to mess it up
- $/ = "\015\012" if ON_WINDOWS;
+sub check_cpan_feature {
+ my ($feature, $dirs, $output) = @_;
- my $pass = !scalar(@$missing) && $have_one_dbd;
- return {
- pass => $pass,
- one_dbd => $have_one_dbd,
- missing => $missing,
- optional => $missing_optional,
- apache => $missing_apache,
- any_missing => !$pass || scalar(@$missing_optional),
- };
+ return _check_prereqs($feature->prereqs, $dirs, $output);
}
-# A helper for check_requirements
-sub _check_missing {
- my ($modules, $output) = @_;
+sub check_cpan_requirements {
+ my ($meta, $dirs, $output) = @_;
+ my $result = _check_prereqs($meta->effective_prereqs, $dirs, $output);
+ print colored(install_string('installation_failed'), COLOR_ERROR), "\n" if !$result->{ok} && $output;
+ return $result;
+}
+
+sub _check_prereqs {
+ my ($prereqs, $dirs, $output) = @_;
+ $dirs //= \@INC;
+ my $reqs = $prereqs->merged_requirements(['configure', 'runtime'], ['requires']);
+ my @found;
my @missing;
- foreach my $module (@$modules) {
- unless (have_vers($module, $output)) {
- push(@missing, $module);
+
+ foreach my $module (sort $reqs->required_modules) {
+ my $ok = _check_module($reqs, $module, $dirs, $output);
+ if ($ok) {
+ push @found, $module;
+ }
+ else {
+ push @missing, $module;
}
}
- return \@missing;
+ return { ok => (@missing == 0), found => \@found, missing => \@missing };
}
-sub _missing_apache_modules {
- my ($modules, $output) = @_;
- my $apachectl = _get_apachectl();
- return [] if !$apachectl;
- my $command = "$apachectl -t -D DUMP_MODULES";
- my $cmd_info = `$command 2>&1`;
- # If apachectl returned a value greater than 0, then there was an
- # error parsing Apache's configuration, and we can't check modules.
- my $retval = $?;
- if ($retval > 0) {
- print STDERR install_string('apachectl_failed',
- { command => $command, root => ROOT_USER }), "\n";
- return [];
- }
- my @missing;
- foreach my $module (keys %$modules) {
- my $ok = _check_apache_module($module, $modules->{$module},
- $cmd_info, $output);
- push(@missing, $module) if !$ok;
+sub _check_module {
+ my ($reqs, $module, $dirs, $output) = @_;
+ my $required_version = $reqs->requirements_for_module($module);
+
+ if ($module eq 'perl') {
+ my $ok = $reqs->accepts_module($module, $]);
+ _checking_for({package => "perl", found => $], wanted => $required_version, ok => $ok}) if $output;
+ return $ok;
+ } else {
+ my $metadata = Module::Metadata->new_from_module($module, inc => $dirs);
+ my $version = eval { $metadata->version };
+ my $ok = $metadata && $version && $reqs->accepts_module($module, $version || 0);
+ _checking_for({package => $module, $version ? ( found => $version ) : (), wanted => $required_version, ok => $ok}) if $output;
+
+ return $ok;
}
- return \@missing;
}
+
sub _get_apachectl {
foreach my $bin_name (APACHE) {
my $bin = bin_loc($bin_name);
@@ -559,125 +210,10 @@ sub _get_apachectl {
return undef;
}
-sub _check_apache_module {
- my ($module, $config_name, $mod_info, $output) = @_;
- my $ok;
- if ($mod_info =~ /^\s+\Q$config_name\E\b/m) {
- $ok = 1;
- }
- if ($output) {
- _checking_for({ package => $module, ok => $ok });
- }
- return $ok;
-}
-
-sub print_module_instructions {
- my ($check_results, $output) = @_;
-
- # First we print the long explanatory messages.
-
- if (scalar @{$check_results->{missing}}) {
- print install_string('modules_message_required');
- }
-
- if (!$check_results->{one_dbd}) {
- print install_string('modules_message_db');
- }
-
- if (my @missing = @{$check_results->{optional}} and $output) {
- print install_string('modules_message_optional');
- # Now we have to determine how large the table cols will be.
- my $longest_name = max(map(length($_->{package}), @missing));
-
- # The first column header is at least 11 characters long.
- $longest_name = 11 if $longest_name < 11;
-
- # The table is TABLE_WIDTH characters long. There are seven mandatory
- # characters (* and space) in the string. So, we have a total
- # of TABLE_WIDTH - 7 characters to work with.
- my $remaining_space = (TABLE_WIDTH - 7) - $longest_name;
- print '*' x TABLE_WIDTH . "\n";
- printf "* \%${longest_name}s * %-${remaining_space}s *\n",
- 'MODULE NAME', 'ENABLES FEATURE(S)';
- print '*' x TABLE_WIDTH . "\n";
- foreach my $package (@missing) {
- printf "* \%${longest_name}s * %-${remaining_space}s *\n",
- $package->{package},
- _translate_feature($package->{feature});
- }
- }
-
- if (my @missing = @{ $check_results->{apache} }) {
- print install_string('modules_message_apache');
- my $missing_string = join(', ', @missing);
- my $size = TABLE_WIDTH - 7;
- printf "* \%-${size}s *\n", $missing_string;
- my $spaces = TABLE_WIDTH - 2;
- print "*", (' ' x $spaces), "*\n";
- }
-
- my $need_module_instructions =
- ( (!$output and @{$check_results->{missing}})
- or ($output and $check_results->{any_missing}) ) ? 1 : 0;
-
- if ($need_module_instructions or @{ $check_results->{apache} }) {
- # If any output was required, we want to close the "table"
- print "*" x TABLE_WIDTH . "\n";
- }
-
- # And now we print the actual installation commands.
-
- if (my @missing = @{$check_results->{optional}} and $output) {
- print install_string('commands_optional') . "\n\n";
- foreach my $module (@missing) {
- my $command = install_command($module);
- printf "%15s: $command\n", $module->{package};
- }
- print "\n";
- }
-
- if (!$check_results->{one_dbd}) {
- print install_string('commands_dbd') . "\n";
- my %db_modules = %{DB_MODULE()};
- foreach my $db (keys %db_modules) {
- my $command = install_command($db_modules{$db}->{dbd});
- printf "%10s: \%s\n", $db_modules{$db}->{name}, $command;
- }
- print "\n";
- }
-
- if (my @missing = @{$check_results->{missing}}) {
- print colored(install_string('commands_required'), COLOR_ERROR), "\n";
- foreach my $package (@missing) {
- my $command = install_command($package);
- print " $command\n";
- }
- }
-
- if ($output && $check_results->{any_missing} && !ON_ACTIVESTATE
- && !$check_results->{hide_all})
- {
- print install_string('install_all', { perl => $^X });
- }
- if (!$check_results->{pass}) {
- print colored(install_string('installation_failed'), COLOR_ERROR),
- "\n\n";
- }
-}
-
-sub _translate_feature {
- my $features = shift;
- my @strings;
- foreach my $feature (@$features) {
- push(@strings, install_string("feature_$feature"));
- }
- return join(', ', @strings);
-}
-
-sub check_graphviz {
+sub check_webdotbase {
my ($output) = @_;
- my $webdotbase = Bugzilla->params->{'webdotbase'};
+ my $webdotbase = Bugzilla->localconfig->{'webdotbase'};
return 1 if $webdotbase =~ /^https?:/;
my $return;
@@ -694,9 +230,9 @@ sub check_graphviz {
my $webdotdir = bz_locations()->{'webdotdir'};
# Check .htaccess allows access to generated images
if (-e "$webdotdir/.htaccess") {
- my $htaccess = new IO::File("$webdotdir/.htaccess", 'r')
+ my $htaccess = new IO::File("$webdotdir/.htaccess", 'r')
|| die "$webdotdir/.htaccess: " . $!;
- if (!grep(/png/, $htaccess->getlines)) {
+ if (!grep(/ \\\.png\$/, $htaccess->getlines)) {
print STDERR install_string('webdot_bad_htaccess',
{ dir => $webdotdir }), "\n";
}
@@ -706,68 +242,40 @@ sub check_graphviz {
return $return;
}
-# This was originally clipped from the libnet Makefile.PL, adapted here for
-# accurate version checking.
-sub have_vers {
- my ($params, $output) = @_;
- my $module = $params->{module};
- my $package = $params->{package};
- if (!$package) {
- $package = $module;
- $package =~ s/::/-/g;
+sub check_font_file {
+ my ($output) = @_;
+
+ my $font_file = Bugzilla->localconfig->{'font_file'};
+
+ my $readable;
+ $readable = 1 if -r $font_file;
+
+ my $ttf;
+ $ttf = 1 if $font_file =~ /\.(ttf|otf)$/;
+
+ if ($output) {
+ _checking_for({ package => 'Font file', ok => $readable && $ttf});
}
- my $wanted = $params->{version};
-
- eval "require $module;";
- # Don't let loading a module change the output-encoding of STDOUT
- # or STDERR. (CGI.pm tries to set "binmode" on these file handles when
- # it's loaded, and other modules may do the same in the future.)
- Bugzilla::Install::Util::set_output_encoding();
-
- # VERSION is provided by UNIVERSAL::, and can be called even if
- # the module isn't loaded. We eval'uate ->VERSION because it can die
- # when the version is not valid (yes, this happens from time to time).
- # In that case, we use an uglier method to get the version.
- my $vnum = eval { $module->VERSION };
- if ($@) {
- no strict 'refs';
- $vnum = ${"${module}::VERSION"};
-
- # If we come here, then the version is not a valid one.
- # We try to sanitize it.
- if ($vnum =~ /^((\d+)(\.\d+)*)/) {
- $vnum = $1;
- }
+
+ if (!$readable) {
+ print install_string('bad_font_file', { file => $font_file }), "\n";
}
- $vnum ||= -1;
-
- # Must do a string comparison as $vnum may be of the form 5.10.1.
- my $vok = ($vnum ne '-1' && version->new($vnum) >= version->new($wanted)) ? 1 : 0;
- my $blacklisted;
- if ($vok && $params->{blacklist}) {
- $blacklisted = grep($vnum =~ /$_/, @{$params->{blacklist}});
- $vok = 0 if $blacklisted;
+ elsif (!$ttf) {
+ print install_string('bad_font_file_name', { file => $font_file }), "\n";
}
- if ($output) {
- _checking_for({
- package => $package, ok => $vok, wanted => $wanted,
- found => $vnum, blacklisted => $blacklisted
- });
- }
-
- return $vok ? 1 : 0;
+ return $readable && $ttf;
}
sub _checking_for {
my ($params) = @_;
- my ($package, $ok, $wanted, $blacklisted, $found) =
+ my ($package, $ok, $wanted, $blacklisted, $found) =
@$params{qw(package ok wanted blacklisted found)};
my $ok_string = $ok ? install_string('module_ok') : '';
# If we're actually checking versions (like for Perl modules), then
- # we have some rather complex logic to determine what we want to
+ # we have some rather complex logic to determine what we want to
# show. If we're not checking versions (like for GraphViz) we just
# show "ok" or "not found".
if (exists $params->{found}) {
@@ -790,30 +298,14 @@ sub _checking_for {
}
my $black_string = $blacklisted ? install_string('blacklisted') : '';
- my $want_string = $wanted ? "v$wanted" : install_string('any');
+ my $want_string = $wanted ? "$wanted" : install_string('any');
my $str = sprintf "%s %20s %-11s $ok_string $black_string\n",
- install_string('checking_for'), $package, "($want_string)";
+ ( ' ' x $checking_for_indent ) . install_string('checking_for'),
+ $package, "($want_string)";
print $ok ? $str : colored($str, COLOR_ERROR);
}
-sub install_command {
- my $module = shift;
- my ($command, $package);
-
- if (ON_ACTIVESTATE) {
- $command = 'ppm install %s';
- $package = $module->{package};
- }
- else {
- $command = 'cpanm %s';
- # Non-Windows installations need to use module names, because
- # CPAN doesn't understand package names.
- $package = $module->{module};
- }
- return sprintf $command, $package;
-}
-
# This does a reverse mapping for FEATURE_FILES.
sub map_files_to_features {
my %features = FEATURE_FILES;
@@ -829,68 +321,6 @@ sub map_files_to_features {
return \%files;
}
-sub export_cpanfile {
- my $cpanfile;
- # Required modules
- foreach my $module (@{ REQUIRED_MODULES() }) {
- my $requires = "requires '" . $module->{module} . "'";
- $requires .= ", '" . $module->{version} . "'" if $module->{version};
- $requires .= ";\n";
- $cpanfile .= $requires;
- }
- # Recommended modules
- $cpanfile .= "\n# Optional\n";
- my %features;
- foreach my $module (@{ OPTIONAL_MODULES() }) {
- next if $module->{package} eq 'mod_perl'; # Skip mod_perl since this would be installed by distro
- if (exists $module->{feature}) {
- foreach my $feature (@{ $module->{feature} }) {
- # cpanm requires that each feature only be defined in the cpanfile
- # once, so we use an intermediate hash to consolidate/de-dupe the
- # modules associated with each feature.
- $features{$feature}{$module->{module}} = $module->{version};
- }
- }
- else {
- my $recommends = "";
- $recommends .= "recommends '" . $module->{module} . "'";
- $recommends .= ", '" . $module->{version} . "'" if $module->{version};
- $recommends .= ";\n";
- $cpanfile .= $recommends;
- }
- }
- foreach my $feature (sort keys %features) {
- my $recommends = "";
- $recommends .= "feature '" . $feature . "' => sub {\n";
- foreach my $module (sort keys %{ $features{$feature} }) {
- my $version = $features{$feature}{$module};
- $recommends .= " recommends '" . $module . "'";
- $recommends .= ", '$version'" if $version;
- $recommends .= ";\n";
- }
- $recommends .= "};\n";
- $cpanfile .= $recommends;
- }
- # Database modules
- $cpanfile .= "\n# Database support\n";
- foreach my $db (keys %{ DB_MODULE() }) {
- next if !exists DB_MODULE->{$db}->{dbd};
- my $dbd = DB_MODULE->{$db}->{dbd};
- my $recommends .= "feature '$db' => sub {\n";
- $recommends .= " recommends '" . $dbd->{module} . "'";
- $recommends .= ", '" . $dbd->{version} . "'" if $dbd->{version};
- $recommends .= ";\n};\n";
- $cpanfile .= $recommends;
- }
-
- # Write out the cpanfile to the document root
- my $file = bz_locations()->{'libpath'} . '/cpanfile';
- open(my $fh, '>', $file);
- print $fh $cpanfile;
- close $fh;
- success(install_string('cpanfile_created', { file => $file }));
-}
-
1;
__END__
@@ -910,59 +340,73 @@ perl modules it requires.)
=over
-=item C<REQUIRED_MODULES>
+=item C<FEATURE_FILES>
-An arrayref of hashrefs that describes the perl modules required by
-Bugzilla. The hashes have three keys:
+A hashref that describes what files should only be compiled if a certain
+feature is enabled. The feature is the key, and the values are arrayrefs
+of file names (which are passed to C<glob>, so shell patterns work).
+
+=back
+
+=head1 SUBROUTINES
+
+=over 4
+
+=item C<check_cpan_requirements>
=over
-=item C<package> - The name of the Perl package that you'd find on
-CPAN for this requirement.
+=item B<Description>
-=item C<module> - The name of a module that can be passed to the
-C<install> command in C<CPAN.pm> to install this module.
+This checks what required perl modules are installed, like
+C<checksetup.pl> does.
-=item C<version> - The version of this module that we require, or C<0>
-if any version is acceptable.
+=item B<Params>
+
+=over
+
+=item C<$meta> - A C<CPAN::Meta> object.
+
+=item C<$dirs> - the include dirs to search for modules, defaults to @INC.
+
+=item C<$output> - C<true> if you want the function to print out information
+about what it's doing, and the versions of everything installed.
=back
-=item C<OPTIONAL_MODULES>
+=item B<Returns>
-An arrayref of hashrefs that describes the perl modules that add
-additional features to Bugzilla if installed. Its hashes have all
-the fields of L</REQUIRED_MODULES>, plus a C<feature> item--an arrayref
-of strings that describe what features require this module.
+A hashref containing these values:
-=item C<FEATURE_FILES>
+=over
-A hashref that describes what files should only be compiled if a certain
-feature is enabled. The feature is the key, and the values are arrayrefs
-of file names (which are passed to C<glob>, so shell patterns work).
+=item C<ok> - if all the requirements are met, this is true.
-=back
+=item C<found> - an arrayref of found modules
+=item C<missing> - an arrayref of missing modules
-=head1 SUBROUTINES
+=back
-=over 4
+=back
-=item C<check_requirements>
+=item C<check_cpan_feature>
=over
=item B<Description>
-This checks what optional or required perl modules are installed, like
-C<checksetup.pl> does.
+This checks that the optional Perl modules required for a feature are installed.
=item B<Params>
=over
-=item C<$output> - C<true> if you want the function to print out information
-about what it's doing, and the versions of everything installed.
+=item C<$feature> - A C<CPAN::Meta::Feature> object.
+
+=item C<$dirs> - the include dirs to search for modules, defaults to @INC.
+
+=item C<$output> - C<true> if you want the function to print out information about what it's doing, and the versions of everything installed.
=back
@@ -972,28 +416,50 @@ A hashref containing these values:
=over
-=item C<pass> - Whether or not we have all the mandatory requirements.
+=item C<ok> - if all the requirements are met, this is true.
+
+=item C<found> - an arrayref of found modules
+
+=item C<missing> - an arrayref of missing modules
-=item C<missing> - An arrayref containing any required modules that
-are not installed or that are not up-to-date. Each item in the array is
-a hashref in the format of items from L</REQUIRED_MODULES>.
+=back
-=item C<optional> - The same as C<missing>, but for optional modules.
+=item C<check_all_cpan_features>
-=item C<apache> - The name of each optional Apache module that is missing.
+=over
-=item C<have_one_dbd> - True if at least one C<DBD::> module is installed.
+=item B<Description>
+
+This checks which optional Perl modules are currently installed which can enable optional features.
+
+=item B<Params>
+
+=over
-=item C<any_missing> - True if there are any missing Perl modules, even
-optional modules.
+=item C<$meta> - A C<CPAN::Meta> object.
+
+=item C<$dirs> - the include dirs to search for modules, defaults to @INC.
+
+=item C<$output> - C<true> if you want the function to print out information
+about what it's doing, and the versions of everything installed.
=back
+=item B<Returns>
+
+A hashref keyed on the feature name. The values
+are hashrefs containing C<description> and C<result> keys.
+
+C<description> is the English description of the feature.
+
+C<result> is a hashref in the same format as the return value of C<check_cpan_requirements()>,
+described previously.
+
=back
-=item C<check_graphviz($output)>
+=item C<check_webdotbase($output)>
-Description: Checks if the graphviz binary specified in the
+Description: Checks if the graphviz binary specified in the
C<webdotbase> parameter is a valid binary, or a valid URL.
Params: C<$output> - C<$true> if you want the function to
@@ -1001,36 +467,26 @@ Params: C<$output> - C<$true> if you want the function to
Returns: C<1> if the check was successful, C<0> otherwise.
-=item C<have_vers($module, $output)>
-
- Description: Tells you whether or not you have the appropriate
- version of the module requested. It also prints
- out a message to the user explaining the check
- and the result.
-
- Params: C<$module> - A hashref, in the format of an item from
- L</REQUIRED_MODULES>.
- C<$output> - Set to true if you want this function to
- print information to STDOUT about what it's
- doing.
+=item C<check_font_file($output)>
- Returns: C<1> if you have the module installed and you have the
- appropriate version. C<0> otherwise.
+Description: Checks if the font file specified in the C<font_type> parameter
+ is a valid-looking font file.
-=item C<install_command($module)>
-
- Description: Prints out the appropriate command to install the
- module specified, depending on whether you're
- on Windows or Linux.
-
- Params: C<$module> - A hashref, in the format of an item from
- L</REQUIRED_MODULES>.
+Params: C<$output> - C<$true> if you want the function to
+ print out information about what it's doing.
- Returns: nothing
+Returns: C<1> if the check was successful, C<0> otherwise.
=item C<map_files_to_features>
Returns a hashref where file names are the keys and the value is the feature
that must be enabled in order to compile that file.
+=item C<load_cpan_meta>
+
+Load MYMETA.json or META.json from the bugzilla directory, and a return a L<CPAN::Meta> object.
+
=back
+
+=back
+
diff --git a/Bugzilla/Install/Util.pm b/Bugzilla/Install/Util.pm
index 5f6c8bceb..231ef8efc 100644
--- a/Bugzilla/Install/Util.pm
+++ b/Bugzilla/Install/Util.pm
@@ -1,22 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved.
-# Portions created by Everything Solved are Copyright (C) 2006
-# Everything Solved. All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Install::Util;
@@ -24,16 +11,16 @@ package Bugzilla::Install::Util;
# module may require *only* Bugzilla::Constants and built-in
# perl modules.
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Constants;
use Encode;
-use ExtUtils::MM ();
use File::Basename;
use File::Spec;
use POSIX qw(setlocale LC_CTYPE);
-use Safe;
use Scalar::Util qw(tainted);
use Term::ANSIColor qw(colored);
use PerlIO;
@@ -47,17 +34,20 @@ our @EXPORT_OK = qw(
extension_requirement_packages
extension_template_directory
extension_web_directory
+ i_am_persistent
indicate_progress
install_string
include_languages
success
template_include_path
- vers_cmp
init_console
);
sub bin_loc {
my ($bin, $path) = @_;
+ # This module is not needed most of the time and is a bit slow,
+ # so we only load it when calling bin_loc().
+ require ExtUtils::MM;
# If the binary is a full path...
if ($bin =~ m{[/\\]}) {
@@ -275,6 +265,15 @@ sub indicate_progress {
}
}
+sub feature_description {
+ my ($feature_name) = @_;
+ eval {
+ my $meta = _cache()->{cpan_meta} //= Bugzilla::Install::Requirements::load_cpan_meta();
+
+ return $meta->feature($feature_name)->description
+ } or warn $@;
+}
+
sub install_string {
my ($string_id, $vars) = @_;
_cache()->{install_string_path} ||= template_include_path();
@@ -543,11 +542,20 @@ sub no_checksetup_from_cgi {
# Used by install_string
sub _get_string_from_file {
my ($string_id, $file) = @_;
-
+ # If we already loaded the file, then use its copy from the cache.
+ if (my $strings = _cache()->{strings_from_file}->{$file}) {
+ return $strings->{$string_id};
+ }
+
+ # This module is only needed by checksetup.pl,
+ # so only load it when needed.
+ require Safe;
+
return undef if !-e $file;
my $safe = new Safe;
$safe->rdo($file);
my %strings = %{$safe->varglob('strings')};
+ _cache()->{strings_from_file}->{$file} = \%strings;
return $strings{$string_id};
}
diff --git a/Bugzilla/Job/BugMail.pm b/Bugzilla/Job/BugMail.pm
index 403d936ad..b4887c470 100644
--- a/Bugzilla/Job/BugMail.pm
+++ b/Bugzilla/Job/BugMail.pm
@@ -9,6 +9,7 @@ package Bugzilla::Job::BugMail;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::BugMail;
BEGIN { eval "use parent qw(Bugzilla::Job::Mailer)"; }
diff --git a/Bugzilla/Job/Mailer.pm b/Bugzilla/Job/Mailer.pm
index 56b6d4f69..a376a9256 100644
--- a/Bugzilla/Job/Mailer.pm
+++ b/Bugzilla/Job/Mailer.pm
@@ -1,26 +1,13 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2008
-# Mozilla Corporation. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Smith <mark@mozilla.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Job::Mailer;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/Bugzilla/JobQueue.pm b/Bugzilla/JobQueue.pm
index 766e4cc16..a5d8737b2 100644
--- a/Bugzilla/JobQueue.pm
+++ b/Bugzilla/JobQueue.pm
@@ -1,28 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2008
-# Mozilla Corporation. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Smith <mark@mozilla.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::JobQueue;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Constants;
use Bugzilla::Error;
diff --git a/Bugzilla/JobQueue/Runner.pm b/Bugzilla/JobQueue/Runner.pm
index 0dec85d74..865fc9138 100644
--- a/Bugzilla/JobQueue/Runner.pm
+++ b/Bugzilla/JobQueue/Runner.pm
@@ -1,24 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2008
-# Mozilla Corporation. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Smith <mark@mozilla.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# XXX In order to support Windows, we have to make gd_redirect_output
# use Log4Perl or something instead of calling "logger". We probably
@@ -26,7 +11,10 @@
package Bugzilla::JobQueue::Runner;
+use 5.10.1;
use strict;
+use warnings;
+
use Cwd qw(abs_path);
use File::Basename;
use File::Copy;
diff --git a/Bugzilla/Keyword.pm b/Bugzilla/Keyword.pm
index 0cdfaa090..d65e0b942 100644
--- a/Bugzilla/Keyword.pm
+++ b/Bugzilla/Keyword.pm
@@ -1,23 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Keyword;
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::Error;
diff --git a/Bugzilla/MFA.pm b/Bugzilla/MFA.pm
index 868a75a7e..43c722364 100644
--- a/Bugzilla/MFA.pm
+++ b/Bugzilla/MFA.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::MFA;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::RNG qw( irand );
use Bugzilla::Token qw( issue_short_lived_session_token set_token_extra_data get_token_extra_data delete_token );
diff --git a/Bugzilla/MFA/Dummy.pm b/Bugzilla/MFA/Dummy.pm
index d91f7ae42..03fbe76b5 100644
--- a/Bugzilla/MFA/Dummy.pm
+++ b/Bugzilla/MFA/Dummy.pm
@@ -6,8 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::MFA::Dummy;
+
+use 5.10.1;
use strict;
-use parent 'Bugzilla::MFA';
+use warnings;
+use base 'Bugzilla::MFA';
# if a user is configured to use a disabled or invalid mfa provider, we return
# this dummy provider.
diff --git a/Bugzilla/MFA/Duo.pm b/Bugzilla/MFA/Duo.pm
index 91096689f..19590944b 100644
--- a/Bugzilla/MFA/Duo.pm
+++ b/Bugzilla/MFA/Duo.pm
@@ -6,8 +6,12 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::MFA::Duo;
+
+use 5.10.1;
use strict;
-use parent 'Bugzilla::MFA';
+use warnings;
+
+use base 'Bugzilla::MFA';
use Bugzilla::DuoAPI;
use Bugzilla::DuoWeb;
diff --git a/Bugzilla/MFA/TOTP.pm b/Bugzilla/MFA/TOTP.pm
index 36791da15..843569ce7 100644
--- a/Bugzilla/MFA/TOTP.pm
+++ b/Bugzilla/MFA/TOTP.pm
@@ -6,8 +6,12 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::MFA::TOTP;
+
+use 5.10.1;
use strict;
-use parent 'Bugzilla::MFA';
+use warnings;
+
+use base 'Bugzilla::MFA';
use Auth::GoogleAuth;
use Bugzilla::Error;
diff --git a/Bugzilla/Mailer.pm b/Bugzilla/Mailer.pm
index 68718eb6e..32a1013db 100644
--- a/Bugzilla/Mailer.pm
+++ b/Bugzilla/Mailer.pm
@@ -1,38 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>,
-# Bryce Nesbitt <bryce-mozilla@nextbus.com>
-# Dan Mosedale <dmose@mozilla.org>
-# Alan Raetz <al_raetz@yahoo.com>
-# Jacob Steenhagen <jake@actex.net>
-# Matthew Tuck <matty@chariot.net.au>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# J. Paul Reed <preed@sigkill.com>
-# Gervase Markham <gerv@gerv.net>
-# Byron Jones <bugzilla@glob.com.au>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Mailer;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
@Bugzilla::Mailer::EXPORT = qw(MessageToMTA build_thread_marker);
@@ -56,7 +33,7 @@ BEGIN {
}
use Email::Send;
use Sys::Hostname;
-use Bugzilla::Install::Util qw(vers_cmp);
+use Bugzilla::Version qw(vers_cmp);
sub MessageToMTA {
my ($msg, $send_now) = (@_);
diff --git a/Bugzilla/Metrics/Memcached.pm b/Bugzilla/Metrics/Memcached.pm
index 8dccdb323..b640f9280 100644
--- a/Bugzilla/Metrics/Memcached.pm
+++ b/Bugzilla/Metrics/Memcached.pm
@@ -7,10 +7,11 @@
package Bugzilla::Metrics::Memcached;
+use 5.10.1;
use strict;
use warnings;
-use parent 'Bugzilla::Memcached';
+use base 'Bugzilla::Memcached';
sub _get {
my $self = shift;
diff --git a/Bugzilla/Metrics/Mysql.pm b/Bugzilla/Metrics/Mysql.pm
index 7719d1cac..60dff78c8 100644
--- a/Bugzilla/Metrics/Mysql.pm
+++ b/Bugzilla/Metrics/Mysql.pm
@@ -11,7 +11,7 @@ use 5.10.1;
use strict;
use warnings;
-use parent 'Bugzilla::DB::Mysql';
+use base 'Bugzilla::DB::Mysql';
sub do {
my ($self, @args) = @_;
diff --git a/Bugzilla/Metrics/Reporter.pm b/Bugzilla/Metrics/Reporter.pm
index 88a08c9b8..8216ea923 100644
--- a/Bugzilla/Metrics/Reporter.pm
+++ b/Bugzilla/Metrics/Reporter.pm
@@ -7,6 +7,7 @@
package Bugzilla::Metrics::Reporter;
+use 5.10.1;
use strict;
use warnings;
diff --git a/Bugzilla/Metrics/Reporter/ElasticSearch.pm b/Bugzilla/Metrics/Reporter/ElasticSearch.pm
index 1bab2502c..c61a1d750 100644
--- a/Bugzilla/Metrics/Reporter/ElasticSearch.pm
+++ b/Bugzilla/Metrics/Reporter/ElasticSearch.pm
@@ -7,10 +7,11 @@
package Bugzilla::Metrics::Reporter::ElasticSearch;
+use 5.10.1;
use strict;
use warnings;
-use parent 'Bugzilla::Metrics::Reporter';
+use base 'Bugzilla::Metrics::Reporter';
use constant DETACH => 1;
diff --git a/Bugzilla/Metrics/Reporter/STDERR.pm b/Bugzilla/Metrics/Reporter/STDERR.pm
index f5bd38acb..a61cdb25f 100644
--- a/Bugzilla/Metrics/Reporter/STDERR.pm
+++ b/Bugzilla/Metrics/Reporter/STDERR.pm
@@ -7,10 +7,11 @@
package Bugzilla::Metrics::Reporter::STDERR;
+use 5.10.1;
use strict;
use warnings;
-use parent 'Bugzilla::Metrics::Reporter';
+use base 'Bugzilla::Metrics::Reporter';
use Data::Dumper;
diff --git a/Bugzilla/Metrics/Template.pm b/Bugzilla/Metrics/Template.pm
index a3b13f85d..5d9af240e 100644
--- a/Bugzilla/Metrics/Template.pm
+++ b/Bugzilla/Metrics/Template.pm
@@ -7,10 +7,11 @@
package Bugzilla::Metrics::Template;
+use 5.10.1;
use strict;
use warnings;
-use parent 'Bugzilla::Template';
+use base 'Bugzilla::Template';
sub process {
my $self = shift;
diff --git a/Bugzilla/Metrics/Template/Context.pm b/Bugzilla/Metrics/Template/Context.pm
index ae8470b3f..278cfce1e 100644
--- a/Bugzilla/Metrics/Template/Context.pm
+++ b/Bugzilla/Metrics/Template/Context.pm
@@ -7,10 +7,11 @@
package Bugzilla::Metrics::Template::Context;
+use 5.10.1;
use strict;
use warnings;
-use parent 'Bugzilla::Template::Context';
+use base 'Bugzilla::Template::Context';
sub process {
my $self = shift;
diff --git a/Bugzilla/Migrate.pm b/Bugzilla/Migrate.pm
index 923fc36a4..7f67bedc4 100644
--- a/Bugzilla/Migrate.pm
+++ b/Bugzilla/Migrate.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is The Bugzilla Migration Tool.
-#
-# The Initial Developer of the Original Code is Lambda Research
-# Corporation. Portions created by the Initial Developer are Copyright
-# (C) 2009 the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Migrate;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Attachment;
use Bugzilla::Bug qw(LogActivityEntry);
diff --git a/Bugzilla/Migrate/Gnats.pm b/Bugzilla/Migrate/Gnats.pm
index db628b7d5..d8771a40b 100644
--- a/Bugzilla/Migrate/Gnats.pm
+++ b/Bugzilla/Migrate/Gnats.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is The Bugzilla Migration Tool.
-#
-# The Initial Developer of the Original Code is Lambda Research
-# Corporation. Portions created by the Initial Developer are Copyright
-# (C) 2009 the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Migrate::Gnats;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Migrate);
use Bugzilla::Constants;
diff --git a/Bugzilla/Milestone.pm b/Bugzilla/Milestone.pm
index 78eacb3e9..2f10e1f00 100644
--- a/Bugzilla/Milestone.pm
+++ b/Bugzilla/Milestone.pm
@@ -1,25 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Tiago R. Mello <timello@async.com.br>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Milestone;
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::Constants;
diff --git a/Bugzilla/Object.pm b/Bugzilla/Object.pm
index 84d384d2b..eaddd9e6f 100644
--- a/Bugzilla/Object.pm
+++ b/Bugzilla/Object.pm
@@ -1,28 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved.
-# Portions created by Everything Solved are Copyright (C) 2006
-# Everything Solved. All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Object;
+use 5.10.1;
+use strict;
+use warnings;
+
use Bugzilla::Constants;
use Bugzilla::Hook;
use Bugzilla::Util;
diff --git a/Bugzilla/PatchReader.pm b/Bugzilla/PatchReader.pm
index 3b1ba3dda..ffcce62ec 100644
--- a/Bugzilla/PatchReader.pm
+++ b/Bugzilla/PatchReader.pm
@@ -1,6 +1,8 @@
package Bugzilla::PatchReader;
+use 5.10.1;
use strict;
+use warnings;
=head1 NAME
diff --git a/Bugzilla/PatchReader/AddCVSContext.pm b/Bugzilla/PatchReader/AddCVSContext.pm
index e4100afb1..4e7da5661 100644
--- a/Bugzilla/PatchReader/AddCVSContext.pm
+++ b/Bugzilla/PatchReader/AddCVSContext.pm
@@ -1,12 +1,14 @@
package Bugzilla::PatchReader::AddCVSContext;
+use 5.10.1;
+use strict;
+use warnings;
+
use Bugzilla::PatchReader::FilterPatch;
use Bugzilla::PatchReader::CVSClient;
use Cwd;
use File::Temp;
-use strict;
-
@Bugzilla::PatchReader::AddCVSContext::ISA = qw(Bugzilla::PatchReader::FilterPatch);
# XXX If you need to, get the entire patch worth of files and do a single
diff --git a/Bugzilla/PatchReader/Base.pm b/Bugzilla/PatchReader/Base.pm
index f2fd69a68..26cb9a9a0 100644
--- a/Bugzilla/PatchReader/Base.pm
+++ b/Bugzilla/PatchReader/Base.pm
@@ -1,6 +1,8 @@
package Bugzilla::PatchReader::Base;
+use 5.10.1;
use strict;
+use warnings;
sub new {
my $class = shift;
diff --git a/Bugzilla/PatchReader/CVSClient.pm b/Bugzilla/PatchReader/CVSClient.pm
index 2f76fc18d..7a8875dc8 100644
--- a/Bugzilla/PatchReader/CVSClient.pm
+++ b/Bugzilla/PatchReader/CVSClient.pm
@@ -9,7 +9,9 @@
package Bugzilla::PatchReader::CVSClient;
+use 5.10.1;
use strict;
+use warnings;
sub parse_cvsroot {
my $cvsroot = $_[0];
diff --git a/Bugzilla/PatchReader/DiffPrinter/raw.pm b/Bugzilla/PatchReader/DiffPrinter/raw.pm
index ceb425800..b7a0d8db2 100644
--- a/Bugzilla/PatchReader/DiffPrinter/raw.pm
+++ b/Bugzilla/PatchReader/DiffPrinter/raw.pm
@@ -1,6 +1,8 @@
package Bugzilla::PatchReader::DiffPrinter::raw;
+use 5.10.1;
use strict;
+use warnings;
sub new {
my $class = shift;
diff --git a/Bugzilla/PatchReader/DiffPrinter/template.pm b/Bugzilla/PatchReader/DiffPrinter/template.pm
index 6545e9336..4120f1d8a 100644
--- a/Bugzilla/PatchReader/DiffPrinter/template.pm
+++ b/Bugzilla/PatchReader/DiffPrinter/template.pm
@@ -1,6 +1,8 @@
package Bugzilla::PatchReader::DiffPrinter::template;
+use 5.10.1;
use strict;
+use warnings;
sub new {
my $class = shift;
diff --git a/Bugzilla/PatchReader/FilterPatch.pm b/Bugzilla/PatchReader/FilterPatch.pm
index dfe42e750..330f6329b 100644
--- a/Bugzilla/PatchReader/FilterPatch.pm
+++ b/Bugzilla/PatchReader/FilterPatch.pm
@@ -1,6 +1,8 @@
package Bugzilla::PatchReader::FilterPatch;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::PatchReader::Base;
diff --git a/Bugzilla/PatchReader/FixPatchRoot.pm b/Bugzilla/PatchReader/FixPatchRoot.pm
index e67fb2796..1b0d250ad 100644
--- a/Bugzilla/PatchReader/FixPatchRoot.pm
+++ b/Bugzilla/PatchReader/FixPatchRoot.pm
@@ -1,10 +1,12 @@
package Bugzilla::PatchReader::FixPatchRoot;
+use 5.10.1;
+use strict;
+use warnings;
+
use Bugzilla::PatchReader::FilterPatch;
use Bugzilla::PatchReader::CVSClient;
-use strict;
-
@Bugzilla::PatchReader::FixPatchRoot::ISA = qw(Bugzilla::PatchReader::FilterPatch);
sub new {
diff --git a/Bugzilla/PatchReader/NarrowPatch.pm b/Bugzilla/PatchReader/NarrowPatch.pm
index b6502f2f3..1441e8366 100644
--- a/Bugzilla/PatchReader/NarrowPatch.pm
+++ b/Bugzilla/PatchReader/NarrowPatch.pm
@@ -2,7 +2,9 @@ package Bugzilla::PatchReader::NarrowPatch;
use Bugzilla::PatchReader::FilterPatch;
+use 5.10.1;
use strict;
+use warnings;
@Bugzilla::PatchReader::NarrowPatch::ISA = qw(Bugzilla::PatchReader::FilterPatch);
diff --git a/Bugzilla/PatchReader/PatchInfoGrabber.pm b/Bugzilla/PatchReader/PatchInfoGrabber.pm
index 8c52931ba..6fb35fd16 100644
--- a/Bugzilla/PatchReader/PatchInfoGrabber.pm
+++ b/Bugzilla/PatchReader/PatchInfoGrabber.pm
@@ -2,7 +2,9 @@ package Bugzilla::PatchReader::PatchInfoGrabber;
use Bugzilla::PatchReader::FilterPatch;
+use 5.10.1;
use strict;
+use warnings;
@Bugzilla::PatchReader::PatchInfoGrabber::ISA = qw(Bugzilla::PatchReader::FilterPatch);
diff --git a/Bugzilla/PatchReader/Raw.pm b/Bugzilla/PatchReader/Raw.pm
index 7e34bd4bf..4b7312f3d 100644
--- a/Bugzilla/PatchReader/Raw.pm
+++ b/Bugzilla/PatchReader/Raw.pm
@@ -13,7 +13,9 @@ package Bugzilla::PatchReader::Raw;
# $parser->end_lines();
#
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::PatchReader::Base;
diff --git a/Bugzilla/Product.pm b/Bugzilla/Product.pm
index 491658614..e1e6f948c 100644
--- a/Bugzilla/Product.pm
+++ b/Bugzilla/Product.pm
@@ -1,22 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Tiago R. Mello <timello@async.com.br>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Product;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Field::ChoiceInterface Bugzilla::Object);
use Bugzilla::Constants;
diff --git a/Bugzilla/RNG.pm b/Bugzilla/RNG.pm
index caa63bae2..902c803fd 100644
--- a/Bugzilla/RNG.pm
+++ b/Bugzilla/RNG.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Google Inc.
-# Portions created by the Initial Developer are Copyright (C) 2011
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::RNG;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
use Bugzilla::Constants qw(ON_WINDOWS);
diff --git a/Bugzilla/S3.pm b/Bugzilla/S3.pm
index eb30816a4..26d77562f 100644
--- a/Bugzilla/S3.pm
+++ b/Bugzilla/S3.pm
@@ -12,6 +12,7 @@ package Bugzilla::S3;
# - default to secure (https) connections to AWS
#
+use 5.10.1;
use strict;
use warnings;
diff --git a/Bugzilla/S3/Bucket.pm b/Bugzilla/S3/Bucket.pm
index 37c61e666..a53ab5c51 100644
--- a/Bugzilla/S3/Bucket.pm
+++ b/Bugzilla/S3/Bucket.pm
@@ -2,8 +2,10 @@ package Bugzilla::S3::Bucket;
# Forked from Amazon::S3, which appears to be abandoned.
+use 5.10.1;
use strict;
use warnings;
+
use Carp;
use File::stat;
use IO::File;
diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm
index b85e44985..19419817a 100644
--- a/Bugzilla/Search.pm
+++ b/Bugzilla/Search.pm
@@ -1,39 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Gervase Markham <gerv@gerv.net>
-# Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Stephan Niemz <st.n@gmx.net>
-# Andreas Franke <afranke@mathweb.org>
-# Myk Melez <myk@mozilla.org>
-# Michael Schindler <michael@compressconsult.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Joel Peshkin <bugreport@peshkin.net>
-# Lance Larsh <lance.larsh@oracle.com>
-# Jesse Clark <jjclark1982@gmail.com>
-# Rémi Zara <remi_zara@mac.com>
-# Reed Loden <reed@reedloden.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+package Bugzilla::Search;
+
+use 5.10.1;
use strict;
+use warnings;
-package Bugzilla::Search;
use base qw(Exporter);
@Bugzilla::Search::EXPORT = qw(
IsValidQueryType
diff --git a/Bugzilla/Search/Clause.pm b/Bugzilla/Search/Clause.pm
index 89210babb..1c9491012 100644
--- a/Bugzilla/Search/Clause.pm
+++ b/Bugzilla/Search/Clause.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is BugzillaSource, Inc.
-# Portions created by the Initial Developer are Copyright (C) 2011 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Search::Clause;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Error;
use Bugzilla::Search::Condition qw(condition);
diff --git a/Bugzilla/Search/ClauseGroup.pm b/Bugzilla/Search/ClauseGroup.pm
index c8600b6ac..c7d3e6ae7 100644
--- a/Bugzilla/Search/ClauseGroup.pm
+++ b/Bugzilla/Search/ClauseGroup.pm
@@ -7,7 +7,9 @@
package Bugzilla::Search::ClauseGroup;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Search::Clause);
diff --git a/Bugzilla/Search/Condition.pm b/Bugzilla/Search/Condition.pm
index 167b4f01e..1c38c1f3e 100644
--- a/Bugzilla/Search/Condition.pm
+++ b/Bugzilla/Search/Condition.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is BugzillaSource, Inc.
-# Portions created by the Initial Developer are Copyright (C) 2011 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Search::Condition;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
our @EXPORT_OK = qw(condition);
diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm
index c65fe06a8..31d8e2b2a 100644
--- a/Bugzilla/Search/Quicksearch.pm
+++ b/Bugzilla/Search/Quicksearch.pm
@@ -1,27 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): C. Begle
-# Jesse Ruderman
-# Andreas Franke <afranke@mathweb.org>
-# Stephen Lee <slee@uk.bnsmc.com>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Search::Quicksearch;
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Error;
use Bugzilla::Constants;
diff --git a/Bugzilla/Search/Recent.pm b/Bugzilla/Search/Recent.pm
index b9f6428d7..a5d9e2417 100644
--- a/Bugzilla/Search/Recent.pm
+++ b/Bugzilla/Search/Recent.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by the Initial Developer are Copyright (C) 2010 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Search::Recent;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::Constants;
diff --git a/Bugzilla/Search/Saved.pm b/Bugzilla/Search/Saved.pm
index 6e1587d20..21d49c2d8 100644
--- a/Bugzilla/Search/Saved.pm
+++ b/Bugzilla/Search/Saved.pm
@@ -1,27 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved.
-# Portions created by Everything Solved are Copyright (C) 2006
-# Everything Solved. All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Search::Saved;
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::CGI;
diff --git a/Bugzilla/Send/Sendmail.pm b/Bugzilla/Send/Sendmail.pm
index 0c3cfe9e4..808e62056 100644
--- a/Bugzilla/Send/Sendmail.pm
+++ b/Bugzilla/Send/Sendmail.pm
@@ -6,8 +6,9 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Send::Sendmail;
-
+use 5.10.1;
use strict;
+use warnings;
use base qw(Email::Send::Sendmail);
diff --git a/Bugzilla/Sentry.pm b/Bugzilla/Sentry.pm
index e2fdcad99..007736cea 100644
--- a/Bugzilla/Sentry.pm
+++ b/Bugzilla/Sentry.pm
@@ -7,6 +7,7 @@
package Bugzilla::Sentry;
+use 5.10.1;
use strict;
use warnings;
diff --git a/Bugzilla/Series.pm b/Bugzilla/Series.pm
index 7168bcb7e..cfddd52b1 100644
--- a/Bugzilla/Series.pm
+++ b/Bugzilla/Series.pm
@@ -1,26 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Gervase Markham <gerv@gerv.net>
-# Lance Larsh <lance.larsh@oracle.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# This module implements a series - a set of data to be plotted on a chart.
#
@@ -31,6 +14,10 @@ use strict;
package Bugzilla::Series;
+use 5.10.1;
+use strict;
+use warnings;
+
use Bugzilla::Error;
use Bugzilla::Util;
diff --git a/Bugzilla/Status.pm b/Bugzilla/Status.pm
index 4a82f68d0..62a1f1d75 100644
--- a/Bugzilla/Status.pm
+++ b/Bugzilla/Status.pm
@@ -1,28 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Frédéric Buclin.
-# Portions created by Frédéric Buclin are Copyright (C) 2007
-# Frédéric Buclin. All Rights Reserved.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Status;
-use Bugzilla::Error;
+use 5.10.1;
+use strict;
+use warnings;
+
# This subclasses Bugzilla::Field::Choice instead of implementing
# ChoiceInterface, because a bug status literally is a special type
# of Field::Choice, not just an object that happens to have the same
@@ -36,6 +24,8 @@ use base qw(Bugzilla::Field::Choice Exporter);
closed_bug_statuses
);
+use Bugzilla::Error;
+
################################
##### Initialization #####
################################
diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm
index b03817793..ab2461f1b 100644
--- a/Bugzilla/Template.pm
+++ b/Bugzilla/Template.pm
@@ -1,38 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Jacob Steenhagen <jake@bugzilla.org>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Christopher Aillon <christopher@aillon.com>
-# Tobias Burnus <burnus@net-b.de>
-# Myk Melez <myk@mozilla.org>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Greg Hendricks <ghendricks@novell.com>
-# David D. Kilzer <ddkilzer@kilzer.net>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Template;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Bug;
use Bugzilla::Constants;
diff --git a/Bugzilla/Template/Context.pm b/Bugzilla/Template/Context.pm
index b3e3446f6..b81e32130 100644
--- a/Bugzilla/Template/Context.pm
+++ b/Bugzilla/Template/Context.pm
@@ -1,27 +1,17 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is ITA Software.
-# Portions created by the Initial Developer are Copyright (C) 2009
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# This exists to implement the template-before_process hook.
package Bugzilla::Template::Context;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Template::Context);
use Bugzilla::Hook;
diff --git a/Bugzilla/Template/Plugin/Bugzilla.pm b/Bugzilla/Template/Plugin/Bugzilla.pm
index 101bd06ee..752aa9dfa 100644
--- a/Bugzilla/Template/Plugin/Bugzilla.pm
+++ b/Bugzilla/Template/Plugin/Bugzilla.pm
@@ -1,28 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Bradley Baetz <bbaetz@student.usyd.edu.au>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Template::Plugin::Bugzilla;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Template::Plugin);
diff --git a/Bugzilla/Template/Plugin/Hook.pm b/Bugzilla/Template/Plugin/Hook.pm
index f2434817c..4e4d39246 100644
--- a/Bugzilla/Template/Plugin/Hook.pm
+++ b/Bugzilla/Template/Plugin/Hook.pm
@@ -1,29 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Zach Lipton <zach@zachlipton.com>
-# Elliotte Martin <everythingsolved.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Template::Plugin::Hook;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Template::Plugin);
use Bugzilla::Constants;
diff --git a/Bugzilla/Template/Plugin/User.pm b/Bugzilla/Template/Plugin/User.pm
index 533b999c3..09452d899 100644
--- a/Bugzilla/Template/Plugin/User.pm
+++ b/Bugzilla/Template/Plugin/User.pm
@@ -22,8 +22,9 @@
#
package Bugzilla::Template::Plugin::User;
-
+use 5.10.1;
use strict;
+use warnings;
use base qw(Template::Plugin);
diff --git a/Bugzilla/Token.pm b/Bugzilla/Token.pm
index 6e3095549..7b5cb9bcf 100644
--- a/Bugzilla/Token.pm
+++ b/Bugzilla/Token.pm
@@ -1,34 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-################################################################################
-# Module Initialization
-################################################################################
+package Bugzilla::Token;
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
-
-# Bundle the functions in this file together into the "Bugzilla::Token" package.
-package Bugzilla::Token;
+use warnings;
use Bugzilla::Constants;
use Bugzilla::Error;
diff --git a/Bugzilla/Update.pm b/Bugzilla/Update.pm
index c9942a4f0..72a7108a8 100644
--- a/Bugzilla/Update.pm
+++ b/Bugzilla/Update.pm
@@ -1,22 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Update;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Constants;
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm
index ac7d5094f..447c33c21 100644
--- a/Bugzilla/User.pm
+++ b/Bugzilla/User.pm
@@ -1,45 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Erik Stambaugh <erik@dasbistro.com>
-# Bradley Baetz <bbaetz@acm.org>
-# Joel Peshkin <bugreport@peshkin.net>
-# Byron Jones <bugzilla@glob.com.au>
-# Shane H. W. Travis <travis@sedsystems.ca>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Gervase Markham <gerv@gerv.net>
-# Lance Larsh <lance.larsh@oracle.com>
-# Justin C. De Vries <judevries@novell.com>
-# Dennis Melentyev <dennis.melentyev@infopulse.com.ua>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Mads Bondo Dydensborg <mbd@dbc.dk>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-################################################################################
-# Module Initialization
-################################################################################
+package Bugzilla::User;
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
-
-# This module implements utilities for dealing with Bugzilla users.
-package Bugzilla::User;
+use warnings;
use Bugzilla::Error;
use Bugzilla::Util;
diff --git a/Bugzilla/User/APIKey.pm b/Bugzilla/User/APIKey.pm
index 500f0ad59..c1a4ed572 100644
--- a/Bugzilla/User/APIKey.pm
+++ b/Bugzilla/User/APIKey.pm
@@ -9,8 +9,9 @@ package Bugzilla::User::APIKey;
use 5.10.1;
use strict;
+use warnings;
-use parent qw(Bugzilla::Object);
+use base qw(Bugzilla::Object);
use Bugzilla::User;
use Bugzilla::Util qw(generate_random_password trim remote_ip);
diff --git a/Bugzilla/User/Session.pm b/Bugzilla/User/Session.pm
index c547867d1..56e1cd07a 100644
--- a/Bugzilla/User/Session.pm
+++ b/Bugzilla/User/Session.pm
@@ -9,8 +9,9 @@ package Bugzilla::User::Session;
use 5.10.1;
use strict;
+use warnings;
-use parent qw(Bugzilla::Object);
+use base qw(Bugzilla::Object);
#####################################################################
# Overriden Constants that are used as methods
diff --git a/Bugzilla/User/Setting.pm b/Bugzilla/User/Setting.pm
index f566b3459..1732ab999 100644
--- a/Bugzilla/User/Setting.pm
+++ b/Bugzilla/User/Setting.pm
@@ -1,26 +1,17 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Shane H. W. Travis <travis@sedsystems.ca>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Marc Schumann <wurblzap@gmail.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::User::Setting;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
diff --git a/Bugzilla/User/Setting/Lang.pm b/Bugzilla/User/Setting/Lang.pm
index 79372704d..a3032b9fc 100644
--- a/Bugzilla/User/Setting/Lang.pm
+++ b/Bugzilla/User/Setting/Lang.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Marc Schumann.
-# Portions created by Marc Schumann are Copyright (c) 2007 Marc Schumann.
-# All rights reserved.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::User::Setting::Lang;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::User::Setting);
diff --git a/Bugzilla/User/Setting/Skin.pm b/Bugzilla/User/Setting/Skin.pm
index f69f3e66c..f0ea502ef 100644
--- a/Bugzilla/User/Setting/Skin.pm
+++ b/Bugzilla/User/Setting/Skin.pm
@@ -1,24 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::User::Setting::Skin;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::User::Setting);
diff --git a/Bugzilla/User/Setting/Timezone.pm b/Bugzilla/User/Setting/Timezone.pm
index 27a90e341..a9515259e 100644
--- a/Bugzilla/User/Setting/Timezone.pm
+++ b/Bugzilla/User/Setting/Timezone.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Frédéric Buclin.
-# Portions created by Frédéric Buclin are Copyright (c) 2008 Frédéric Buclin.
-# All rights reserved.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::User::Setting::Timezone;
+use 5.10.1;
use strict;
+use warnings;
use DateTime::TimeZone;
diff --git a/Bugzilla/UserAgent.pm b/Bugzilla/UserAgent.pm
index 00be84c44..0db6de808 100644
--- a/Bugzilla/UserAgent.pm
+++ b/Bugzilla/UserAgent.pm
@@ -1,33 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is the Mozilla Foundation
-# Portions created by the Initial Developer are Copyright (C) 2011 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Terry Weissman <terry@mozilla.org>
-# Dave Miller <justdave@syndicomm.com>
-# Joe Robins <jmrobins@tgix.com>
-# Gervase Markham <gerv@gerv.net>
-# Shane H. W. Travis <travis@sedsystems.ca>
-# Nitish Bezzala <nbezzala@yahoo.com>
-# Byron Jones <glob@mozilla.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::UserAgent;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
our @EXPORT = qw(detect_platform detect_op_sys);
diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm
index 2703a542e..7937d6b80 100644
--- a/Bugzilla/Util.pm
+++ b/Bugzilla/Util.pm
@@ -1,35 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Jacob Steenhagen <jake@bugzilla.org>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Christopher Aillon <christopher@aillon.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Util;
use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
@Bugzilla::Util::EXPORT = qw(trick_taint detaint_natural
diff --git a/Bugzilla/Version.pm b/Bugzilla/Version.pm
index 2e0854afe..a078cb4fc 100644
--- a/Bugzilla/Version.pm
+++ b/Bugzilla/Version.pm
@@ -1,28 +1,20 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Tiago R. Mello <timello@async.com.br>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+package Bugzilla::Version;
+
+use 5.10.1;
use strict;
+use warnings;
-package Bugzilla::Version;
+use base qw(Bugzilla::Object Exporter);
-use base qw(Bugzilla::Object);
+@Bugzilla::Version::EXPORT = qw(vers_cmp);
-use Bugzilla::Install::Util qw(vers_cmp);
use Bugzilla::Util;
use Bugzilla::Error;
@@ -197,6 +189,53 @@ sub _check_product {
return Bugzilla->user->check_can_admin_product($product->name);
}
+###############################
+##### Functions ####
+###############################
+
+# This is taken straight from Sort::Versions 1.5, which is not included
+# with perl by default.
+sub vers_cmp {
+ my ($a, $b) = @_;
+
+ # Remove leading zeroes - Bug 344661
+ $a =~ s/^0*(\d.+)/$1/;
+ $b =~ s/^0*(\d.+)/$1/;
+
+ my @A = ($a =~ /([-.]|\d+|[^-.\d]+)/g);
+ my @B = ($b =~ /([-.]|\d+|[^-.\d]+)/g);
+
+ my ($A, $B);
+ while (@A and @B) {
+ $A = shift @A;
+ $B = shift @B;
+ if ($A eq '-' and $B eq '-') {
+ next;
+ } elsif ( $A eq '-' ) {
+ return -1;
+ } elsif ( $B eq '-') {
+ return 1;
+ } elsif ($A eq '.' and $B eq '.') {
+ next;
+ } elsif ( $A eq '.' ) {
+ return -1;
+ } elsif ( $B eq '.' ) {
+ return 1;
+ } elsif ($A =~ /^\d+$/ and $B =~ /^\d+$/) {
+ if ($A =~ /^0/ || $B =~ /^0/) {
+ return $A cmp $B if $A cmp $B;
+ } else {
+ return $A <=> $B if $A <=> $B;
+ }
+ } else {
+ $A = uc $A;
+ $B = uc $B;
+ return $A cmp $B if $A cmp $B;
+ }
+ }
+ return @A <=> @B;
+}
+
1;
__END__
diff --git a/Bugzilla/WebService.pm b/Bugzilla/WebService.pm
index b0649f7b3..db8018679 100644
--- a/Bugzilla/WebService.pm
+++ b/Bugzilla/WebService.pm
@@ -1,24 +1,18 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# This is the base class for $self in WebService method calls. For the
# actual RPC server, see Bugzilla::WebService::Server and its subclasses.
package Bugzilla::WebService;
+
+use 5.10.1;
use strict;
+use warnings;
+
use Bugzilla::WebService::Server;
# Used by the JSON-RPC server to convert incoming date fields apprpriately.
diff --git a/Bugzilla/WebService/Bug.pm b/Bugzilla/WebService/Bug.pm
index d7a1d8f9b..f9a91797e 100644
--- a/Bugzilla/WebService/Bug.pm
+++ b/Bugzilla/WebService/Bug.pm
@@ -1,30 +1,17 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Mads Bondo Dydensborg <mbd@dbc.dk>
-# Tsahi Asher <tsahi_75@yahoo.com>
-# Noura Elhawary <nelhawar@redhat.com>
-# Frank Becker <Frank@Frank-Becker.de>
-# Dave Lawrence <dkl@redhat.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::Bug;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::WebService);
-use feature 'state';
use Bugzilla::Comment;
use Bugzilla::Comment::TagWeights;
diff --git a/Bugzilla/WebService/BugUserLastVisit.pm b/Bugzilla/WebService/BugUserLastVisit.pm
index 299e1596b..7b729c6c8 100644
--- a/Bugzilla/WebService/BugUserLastVisit.pm
+++ b/Bugzilla/WebService/BugUserLastVisit.pm
@@ -9,8 +9,9 @@ package Bugzilla::WebService::BugUserLastVisit;
use 5.10.1;
use strict;
+use warnings;
-use parent qw(Bugzilla::WebService);
+use base qw(Bugzilla::WebService);
use Bugzilla::Bug;
use Bugzilla::Error;
diff --git a/Bugzilla/WebService/Bugzilla.pm b/Bugzilla/WebService/Bugzilla.pm
index 7d0b5473b..0d0393c28 100644
--- a/Bugzilla/WebService/Bugzilla.pm
+++ b/Bugzilla/WebService/Bugzilla.pm
@@ -1,24 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Mads Bondo Dydensborg <mbd@dbc.dk>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::Bugzilla;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::WebService);
use Bugzilla::Constants;
use Bugzilla::Util qw(datetime_from);
diff --git a/Bugzilla/WebService/Classification.pm b/Bugzilla/WebService/Classification.pm
index 1b084eabb..32139ff3f 100644
--- a/Bugzilla/WebService/Classification.pm
+++ b/Bugzilla/WebService/Classification.pm
@@ -9,8 +9,9 @@ package Bugzilla::WebService::Classification;
use 5.10.1;
use strict;
+use warnings;
-use parent qw (Bugzilla::WebService);
+use base qw (Bugzilla::WebService);
use Bugzilla::Classification;
use Bugzilla::Error;
diff --git a/Bugzilla/WebService/Constants.pm b/Bugzilla/WebService/Constants.pm
index 19f866e8f..bf3a93fd5 100644
--- a/Bugzilla/WebService/Constants.pm
+++ b/Bugzilla/WebService/Constants.pm
@@ -1,23 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::Constants;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
our @EXPORT = qw(
diff --git a/Bugzilla/WebService/Group.pm b/Bugzilla/WebService/Group.pm
index 7518433af..b13003e08 100644
--- a/Bugzilla/WebService/Group.pm
+++ b/Bugzilla/WebService/Group.pm
@@ -11,7 +11,7 @@ use 5.10.1;
use strict;
use warnings;
-use parent qw(Bugzilla::WebService);
+use base qw(Bugzilla::WebService);
use Bugzilla::Constants;
use Bugzilla::Error;
use Bugzilla::WebService::Util qw(validate translate params_to_objects);
diff --git a/Bugzilla/WebService/Product.pm b/Bugzilla/WebService/Product.pm
index bccaa8347..6ca3fee90 100644
--- a/Bugzilla/WebService/Product.pm
+++ b/Bugzilla/WebService/Product.pm
@@ -1,24 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Mads Bondo Dydensborg <mbd@dbc.dk>
-# Byron Jones <glob@mozilla.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::Product;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::WebService);
use Bugzilla::Product;
use Bugzilla::User;
diff --git a/Bugzilla/WebService/Server.pm b/Bugzilla/WebService/Server.pm
index a84ba2961..5384feef1 100644
--- a/Bugzilla/WebService/Server.pm
+++ b/Bugzilla/WebService/Server.pm
@@ -1,22 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::Server;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Error;
use Bugzilla::Util qw(datetime_from);
diff --git a/Bugzilla/WebService/Server/JSONRPC.pm b/Bugzilla/WebService/Server/JSONRPC.pm
index b66bcaea1..24ad12730 100644
--- a/Bugzilla/WebService/Server/JSONRPC.pm
+++ b/Bugzilla/WebService/Server/JSONRPC.pm
@@ -1,27 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla JSON Webservices Interface.
-#
-# The Initial Developer of the Original Code is the San Jose State
-# University Foundation. Portions created by the Initial Developer
-# are Copyright (C) 2008 the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::Server::JSONRPC;
+use 5.10.1;
use strict;
+use warnings;
+
use Bugzilla::WebService::Server;
BEGIN {
our @ISA = qw(Bugzilla::WebService::Server);
diff --git a/Bugzilla/WebService/Server/REST.pm b/Bugzilla/WebService/Server/REST.pm
index d94fb1d81..5266f8fa7 100644
--- a/Bugzilla/WebService/Server/REST.pm
+++ b/Bugzilla/WebService/Server/REST.pm
@@ -9,8 +9,9 @@ package Bugzilla::WebService::Server::REST;
use 5.10.1;
use strict;
+use warnings;
-use parent qw(Bugzilla::WebService::Server::JSONRPC);
+use base qw(Bugzilla::WebService::Server::JSONRPC);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/Bugzilla/WebService/Server/REST/Resources/Bug.pm b/Bugzilla/WebService/Server/REST/Resources/Bug.pm
index 163790b77..33cf43321 100644
--- a/Bugzilla/WebService/Server/REST/Resources/Bug.pm
+++ b/Bugzilla/WebService/Server/REST/Resources/Bug.pm
@@ -9,6 +9,7 @@ package Bugzilla::WebService::Server::REST::Resources::Bug;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::WebService::Constants;
use Bugzilla::WebService::Bug;
diff --git a/Bugzilla/WebService/Server/REST/Resources/Bugzilla.pm b/Bugzilla/WebService/Server/REST/Resources/Bugzilla.pm
index 1c86f77bc..a8f3f9330 100644
--- a/Bugzilla/WebService/Server/REST/Resources/Bugzilla.pm
+++ b/Bugzilla/WebService/Server/REST/Resources/Bugzilla.pm
@@ -9,6 +9,7 @@ package Bugzilla::WebService::Server::REST::Resources::Bugzilla;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::WebService::Constants;
use Bugzilla::WebService::Bugzilla;
diff --git a/Bugzilla/WebService/Server/REST/Resources/Classification.pm b/Bugzilla/WebService/Server/REST/Resources/Classification.pm
index 5bb697ac1..f20278f55 100644
--- a/Bugzilla/WebService/Server/REST/Resources/Classification.pm
+++ b/Bugzilla/WebService/Server/REST/Resources/Classification.pm
@@ -9,6 +9,7 @@ package Bugzilla::WebService::Server::REST::Resources::Classification;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::WebService::Constants;
use Bugzilla::WebService::Classification;
diff --git a/Bugzilla/WebService/Server/REST/Resources/Product.pm b/Bugzilla/WebService/Server/REST/Resources/Product.pm
index acee3887b..9ca6e3074 100644
--- a/Bugzilla/WebService/Server/REST/Resources/Product.pm
+++ b/Bugzilla/WebService/Server/REST/Resources/Product.pm
@@ -9,6 +9,7 @@ package Bugzilla::WebService::Server::REST::Resources::Product;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::WebService::Constants;
use Bugzilla::WebService::Product;
diff --git a/Bugzilla/WebService/Server/REST/Resources/User.pm b/Bugzilla/WebService/Server/REST/Resources/User.pm
index 7d494064d..eb44e9d2d 100644
--- a/Bugzilla/WebService/Server/REST/Resources/User.pm
+++ b/Bugzilla/WebService/Server/REST/Resources/User.pm
@@ -9,6 +9,7 @@ package Bugzilla::WebService::Server::REST::Resources::User;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::WebService::Constants;
use Bugzilla::WebService::User;
diff --git a/Bugzilla/WebService/Server/XMLRPC.pm b/Bugzilla/WebService/Server/XMLRPC.pm
index f92936e83..f8b7e0994 100644
--- a/Bugzilla/WebService/Server/XMLRPC.pm
+++ b/Bugzilla/WebService/Server/XMLRPC.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Rosie Clarkson <rosie.clarkson@planningportal.gov.uk>
-#
-# Portions © Crown copyright 2009 - Rosie Clarkson (development@planningportal.gov.uk) for the Planning Portal
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::Server::XMLRPC;
+use 5.10.1;
use strict;
+use warnings;
+
use XMLRPC::Transport::HTTP;
use Bugzilla::WebService::Server;
if ($ENV{MOD_PERL}) {
diff --git a/Bugzilla/WebService/User.pm b/Bugzilla/WebService/User.pm
index a9dcdf4be..78c6ed798 100644
--- a/Bugzilla/WebService/User.pm
+++ b/Bugzilla/WebService/User.pm
@@ -1,25 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Mads Bondo Dydensborg <mbd@dbc.dk>
-# Noura Elhawary <nelhawar@redhat.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::User;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::WebService);
use Bugzilla;
diff --git a/Bugzilla/WebService/Util.pm b/Bugzilla/WebService/Util.pm
index 4280f28e6..b0621b000 100644
--- a/Bugzilla/WebService/Util.pm
+++ b/Bugzilla/WebService/Util.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by the Initial Developer are Copyright (C) 2008
-# the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::WebService::Util;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Flag;
use Bugzilla::FlagType;
diff --git a/Bugzilla/Whine.pm b/Bugzilla/Whine.pm
index 73b0802b1..c4301b4f6 100644
--- a/Bugzilla/Whine.pm
+++ b/Bugzilla/Whine.pm
@@ -1,27 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Eric Black.
-# Portions created by the Initial Developer are Copyright (C) 2010
-# Eric Black. All Rights Reserved.
-#
-# Contributor(s): Eric Black <black.eric@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Whine;
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::Constants;
diff --git a/Bugzilla/Whine/Query.pm b/Bugzilla/Whine/Query.pm
index 11215759b..886c54815 100644
--- a/Bugzilla/Whine/Query.pm
+++ b/Bugzilla/Whine/Query.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Eric Black.
-# Portions created by the Initial Developer are Copyright (C) 2009
-# Eric Black. All Rights Reserved.
-#
-# Contributor(s): Eric Black <black.eric@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Whine::Query;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Object);
diff --git a/Bugzilla/Whine/Schedule.pm b/Bugzilla/Whine/Schedule.pm
index 63148856c..0c159cf3f 100644
--- a/Bugzilla/Whine/Schedule.pm
+++ b/Bugzilla/Whine/Schedule.pm
@@ -1,27 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Eric Black.
-# Portions created by the Initial Developer are Copyright (C) 2009
-# Eric Black. All Rights Reserved.
-#
-# Contributor(s): Eric Black <black.eric@gmail.com>
-
-use strict;
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Whine::Schedule;
+use 5.10.1;
+use strict;
+use warnings;
+
use base qw(Bugzilla::Object);
use Bugzilla::Constants;
diff --git a/META.json b/META.json
new file mode 100644
index 000000000..78acba744
--- /dev/null
+++ b/META.json
@@ -0,0 +1,430 @@
+{
+ "abstract" : "Bugzilla Bug Tracking System",
+ "author" : [
+ "Bugzilla Developers <developers@bugzilla.org>"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 7.22, CPAN::Meta::Converter version 2.143240",
+ "license" : [
+ "unknown"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Bugzilla",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "optional_features" : {
+ "auth_delegation" : {
+ "description" : "Auth Delegation",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "LWP::UserAgent" : "0"
+ }
+ }
+ }
+ },
+ "auth_ldap" : {
+ "description" : "LDAP Authentication",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Net::LDAP" : "0"
+ }
+ }
+ }
+ },
+ "auth_radius" : {
+ "description" : "RADIUS Authentication",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Authen::Radius" : "0"
+ }
+ }
+ }
+ },
+ "bmo" : {
+ "description" : "features that bmo needs",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Auth::GoogleAuth" : "1.01",
+ "Cache::Memcached" : "0.17",
+ "Chart::Lines" : "v2.4.10",
+ "DBD::mysql" : "4.001",
+ "Daemon::Generic" : "0",
+ "Email::MIME::Attachment::Stripper" : "0",
+ "Email::Reply" : "0",
+ "Encode" : "2.21",
+ "Encode::Detect" : "0",
+ "File::Copy::Recursive" : "0",
+ "File::MimeInfo::Magic" : "0",
+ "File::Which" : "0",
+ "GD" : "1.20",
+ "GD::Barcode::QRcode" : "0",
+ "GD::Graph" : "0",
+ "GD::Text" : "0",
+ "HTML::Parser" : "3.67",
+ "HTML::Scrubber" : "0",
+ "IO::Scalar" : "0",
+ "JSON::RPC" : "0",
+ "LWP::UserAgent" : "0",
+ "MIME::Parser" : "5.406",
+ "Mozilla::CA" : "0",
+ "Net::SFTP" : "0",
+ "PatchReader" : "v0.9.6",
+ "SOAP::Lite" : "0.712",
+ "Template::Plugin::GD::Image" : "0",
+ "Test::Taint" : "1.06",
+ "TheSchwartz" : "1.10",
+ "XML::Simple" : "0",
+ "XML::Twig" : "0",
+ "XMLRPC::Lite" : "0.712"
+ }
+ }
+ }
+ },
+ "detect_charset" : {
+ "description" : "Automatic charset detection for text attachments",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Encode" : "2.21",
+ "Encode::Detect" : "0"
+ }
+ }
+ }
+ },
+ "documentation" : {
+ "description" : "Documentation",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "File::Copy::Recursive" : "0",
+ "File::Which" : "0"
+ }
+ }
+ }
+ },
+ "extension_bitly_optional" : {
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Mozilla::CA" : "0"
+ }
+ }
+ }
+ },
+ "extension_push_optional" : {
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Net::SFTP" : "0",
+ "XML::Simple" : "0"
+ }
+ }
+ }
+ },
+ "graphical_reports" : {
+ "description" : "Graphical Reports",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "GD" : "1.20",
+ "GD::Graph" : "0",
+ "GD::Text" : "0",
+ "Template::Plugin::GD::Image" : "0"
+ }
+ }
+ }
+ },
+ "html_desc" : {
+ "description" : "More HTML in Product/Group Descriptions",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "HTML::Parser" : "3.67",
+ "HTML::Scrubber" : "0"
+ }
+ }
+ }
+ },
+ "inbound_email" : {
+ "description" : "Inbound Email",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Email::MIME::Attachment::Stripper" : "0",
+ "Email::Reply" : "0"
+ }
+ }
+ }
+ },
+ "jobqueue" : {
+ "description" : "Mail Queueing",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Daemon::Generic" : "0",
+ "TheSchwartz" : "1.10"
+ }
+ }
+ }
+ },
+ "jsonrpc" : {
+ "description" : "JSON-RPC Interface",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "JSON::RPC" : "0",
+ "Test::Taint" : "1.06"
+ }
+ }
+ }
+ },
+ "memcached" : {
+ "description" : "Memcached Support",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Cache::Memcached" : "0.17"
+ }
+ }
+ }
+ },
+ "mfa" : {
+ "description" : "Multi-Factor Authentication",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Auth::GoogleAuth" : "1.01",
+ "GD::Barcode::QRcode" : "0"
+ }
+ }
+ }
+ },
+ "mod_perl" : {
+ "description" : "mod_perl support under Apache",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Apache2::SizeLimit" : "0.96",
+ "mod_perl2" : "1.999022"
+ }
+ }
+ }
+ },
+ "moving" : {
+ "description" : "Move Bugs Between Installations",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "MIME::Parser" : "5.406",
+ "XML::Twig" : "0"
+ }
+ }
+ }
+ },
+ "mysql" : {
+ "description" : "MySQL database support",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "DBD::mysql" : "4.001"
+ }
+ }
+ }
+ },
+ "new_charts" : {
+ "description" : "New Charts",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Chart::Lines" : "v2.4.10",
+ "GD" : "1.20"
+ }
+ }
+ }
+ },
+ "old_charts" : {
+ "description" : "Old Charts",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Chart::Lines" : "v2.4.10",
+ "GD" : "1.20"
+ }
+ }
+ }
+ },
+ "oracle" : {
+ "description" : "Oracle database support",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "DBD::Oracle" : "1.19"
+ }
+ }
+ }
+ },
+ "patch_viewer" : {
+ "description" : "Patch Viewer",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "PatchReader" : "v0.9.6"
+ }
+ }
+ }
+ },
+ "pg" : {
+ "description" : "Postgres database support",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "DBD::Pg" : "v2.19.3"
+ }
+ }
+ }
+ },
+ "rest" : {
+ "description" : "REST Interface",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "JSON::RPC" : "0",
+ "Test::Taint" : "1.06"
+ }
+ }
+ }
+ },
+ "smtp_auth" : {
+ "description" : "SMTP Authentication",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "Authen::SASL" : "0"
+ }
+ }
+ }
+ },
+ "sqlite" : {
+ "description" : "SQLite database support",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "DBD::SQLite" : "1.29"
+ }
+ }
+ }
+ },
+ "typesniffer" : {
+ "description" : "Sniff MIME type of attachments",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "File::MimeInfo::Magic" : "0",
+ "IO::Scalar" : "0"
+ }
+ }
+ }
+ },
+ "updates" : {
+ "description" : "Automatic Update Notifications",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "LWP::UserAgent" : "0",
+ "XML::Twig" : "0"
+ }
+ }
+ }
+ },
+ "xmlrpc" : {
+ "description" : "XML-RPC Interface",
+ "prereqs" : {
+ "runtime" : {
+ "requires" : {
+ "SOAP::Lite" : "0.712",
+ "Test::Taint" : "1.06",
+ "XMLRPC::Lite" : "0.712"
+ }
+ }
+ }
+ }
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "6.57_07"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "6.57_07"
+ }
+ },
+ "runtime" : {
+ "recommends" : {
+ "Safe" : "2.30"
+ },
+ "requires" : {
+ "CGI" : "3.51",
+ "CPAN::Meta::Prereqs" : "2.132830",
+ "CPAN::Meta::Requirements" : "2.121",
+ "Crypt::CBC" : "0",
+ "Crypt::DES" : "0",
+ "Crypt::DES_EDE3" : "0",
+ "Crypt::OpenPGP" : "1.02",
+ "Crypt::SMIME" : "0",
+ "DBI" : "1.614",
+ "Daemon::Generic" : "0",
+ "Date::Format" : "2.23",
+ "DateTime" : "0.75",
+ "DateTime::TimeZone" : "1.64",
+ "Digest::SHA" : "0",
+ "Email::Address" : "0",
+ "Email::MIME" : "1.904",
+ "Email::Send" : "1.911",
+ "File::MimeInfo::Magic" : "0",
+ "File::Slurp" : "9999.13",
+ "HTML::Tree" : "0",
+ "IO::Compress::Gzip" : "0",
+ "IO::Scalar" : "0",
+ "JSON" : "0",
+ "JSON::XS" : "2.0",
+ "LWP" : "5.835",
+ "LWP::UserAgent" : "0",
+ "List::MoreUtils" : "0.22",
+ "Math::Random::ISAAC" : "v1.0.1",
+ "Module::Metadata" : "1.000033",
+ "Module::Runtime" : "0",
+ "Parse::CPAN::Meta" : "1.44",
+ "Regexp::Common" : "0",
+ "Sys::Syslog" : "0",
+ "Template" : "2.24",
+ "Text::Diff" : "0",
+ "Tie::IxHash" : "0",
+ "URI" : "1.55",
+ "perl" : "5.010001",
+ "version" : "0.87"
+ }
+ },
+ "test" : {
+ "requires" : {
+ "Pod::Coverage" : "0",
+ "Test::More" : "0",
+ "Test::WWW::Selenium" : "0"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "version" : "42"
+}
diff --git a/META.yml b/META.yml
new file mode 100644
index 000000000..06a572ca8
--- /dev/null
+++ b/META.yml
@@ -0,0 +1,231 @@
+---
+abstract: 'Bugzilla Bug Tracking System'
+author:
+ - 'Bugzilla Developers <developers@bugzilla.org>'
+build_requires:
+ ExtUtils::MakeMaker: 6.57_07
+ Pod::Coverage: '0'
+ Test::More: '0'
+ Test::WWW::Selenium: '0'
+configure_requires:
+ ExtUtils::MakeMaker: 6.57_07
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 7.22, CPAN::Meta::Converter version 2.143240'
+license: unknown
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: '1.4'
+name: Bugzilla
+no_index:
+ directory:
+ - t
+ - inc
+optional_features:
+ auth_delegation:
+ description: 'Auth Delegation'
+ requires:
+ LWP::UserAgent: '0'
+ auth_ldap:
+ description: 'LDAP Authentication'
+ requires:
+ Net::LDAP: '0'
+ auth_radius:
+ description: 'RADIUS Authentication'
+ requires:
+ Authen::Radius: '0'
+ bmo:
+ description: 'features that bmo needs'
+ requires:
+ Auth::GoogleAuth: '1.01'
+ Cache::Memcached: '0.17'
+ Chart::Lines: v2.4.10
+ DBD::mysql: '4.001'
+ Daemon::Generic: '0'
+ Email::MIME::Attachment::Stripper: '0'
+ Email::Reply: '0'
+ Encode: '2.21'
+ Encode::Detect: '0'
+ File::Copy::Recursive: '0'
+ File::MimeInfo::Magic: '0'
+ File::Which: '0'
+ GD: '1.20'
+ GD::Barcode::QRcode: '0'
+ GD::Graph: '0'
+ GD::Text: '0'
+ HTML::Parser: '3.67'
+ HTML::Scrubber: '0'
+ IO::Scalar: '0'
+ JSON::RPC: '0'
+ LWP::UserAgent: '0'
+ MIME::Parser: '5.406'
+ Mozilla::CA: '0'
+ Net::SFTP: '0'
+ PatchReader: v0.9.6
+ SOAP::Lite: '0.712'
+ Template::Plugin::GD::Image: '0'
+ Test::Taint: '1.06'
+ TheSchwartz: '1.10'
+ XML::Simple: '0'
+ XML::Twig: '0'
+ XMLRPC::Lite: '0.712'
+ detect_charset:
+ description: 'Automatic charset detection for text attachments'
+ requires:
+ Encode: '2.21'
+ Encode::Detect: '0'
+ documentation:
+ description: Documentation
+ requires:
+ File::Copy::Recursive: '0'
+ File::Which: '0'
+ extension_bitly_optional:
+ requires:
+ Mozilla::CA: '0'
+ extension_push_optional:
+ requires:
+ Net::SFTP: '0'
+ XML::Simple: '0'
+ graphical_reports:
+ description: 'Graphical Reports'
+ requires:
+ GD: '1.20'
+ GD::Graph: '0'
+ GD::Text: '0'
+ Template::Plugin::GD::Image: '0'
+ html_desc:
+ description: 'More HTML in Product/Group Descriptions'
+ requires:
+ HTML::Parser: '3.67'
+ HTML::Scrubber: '0'
+ inbound_email:
+ description: 'Inbound Email'
+ requires:
+ Email::MIME::Attachment::Stripper: '0'
+ Email::Reply: '0'
+ jobqueue:
+ description: 'Mail Queueing'
+ requires:
+ Daemon::Generic: '0'
+ TheSchwartz: '1.10'
+ jsonrpc:
+ description: 'JSON-RPC Interface'
+ requires:
+ JSON::RPC: '0'
+ Test::Taint: '1.06'
+ memcached:
+ description: 'Memcached Support'
+ requires:
+ Cache::Memcached: '0.17'
+ mfa:
+ description: 'Multi-Factor Authentication'
+ requires:
+ Auth::GoogleAuth: '1.01'
+ GD::Barcode::QRcode: '0'
+ mod_perl:
+ description: 'mod_perl support under Apache'
+ requires:
+ Apache2::SizeLimit: '0.96'
+ mod_perl2: '1.999022'
+ moving:
+ description: 'Move Bugs Between Installations'
+ requires:
+ MIME::Parser: '5.406'
+ XML::Twig: '0'
+ mysql:
+ description: 'MySQL database support'
+ requires:
+ DBD::mysql: '4.001'
+ new_charts:
+ description: 'New Charts'
+ requires:
+ Chart::Lines: v2.4.10
+ GD: '1.20'
+ old_charts:
+ description: 'Old Charts'
+ requires:
+ Chart::Lines: v2.4.10
+ GD: '1.20'
+ oracle:
+ description: 'Oracle database support'
+ requires:
+ DBD::Oracle: '1.19'
+ patch_viewer:
+ description: 'Patch Viewer'
+ requires:
+ PatchReader: v0.9.6
+ pg:
+ description: 'Postgres database support'
+ requires:
+ DBD::Pg: v2.19.3
+ rest:
+ description: 'REST Interface'
+ requires:
+ JSON::RPC: '0'
+ Test::Taint: '1.06'
+ smtp_auth:
+ description: 'SMTP Authentication'
+ requires:
+ Authen::SASL: '0'
+ sqlite:
+ description: 'SQLite database support'
+ requires:
+ DBD::SQLite: '1.29'
+ typesniffer:
+ description: 'Sniff MIME type of attachments'
+ requires:
+ File::MimeInfo::Magic: '0'
+ IO::Scalar: '0'
+ updates:
+ description: 'Automatic Update Notifications'
+ requires:
+ LWP::UserAgent: '0'
+ XML::Twig: '0'
+ xmlrpc:
+ description: 'XML-RPC Interface'
+ requires:
+ SOAP::Lite: '0.712'
+ Test::Taint: '1.06'
+ XMLRPC::Lite: '0.712'
+recommends:
+ Safe: '2.30'
+requires:
+ CGI: '3.51'
+ CPAN::Meta::Prereqs: '2.132830'
+ CPAN::Meta::Requirements: '2.121'
+ Crypt::CBC: '0'
+ Crypt::DES: '0'
+ Crypt::DES_EDE3: '0'
+ Crypt::OpenPGP: '1.02'
+ Crypt::SMIME: '0'
+ DBI: '1.614'
+ Daemon::Generic: '0'
+ Date::Format: '2.23'
+ DateTime: '0.75'
+ DateTime::TimeZone: '1.64'
+ Digest::SHA: '0'
+ Email::Address: '0'
+ Email::MIME: '1.904'
+ Email::Send: '1.911'
+ File::MimeInfo::Magic: '0'
+ File::Slurp: '9999.13'
+ HTML::Tree: '0'
+ IO::Compress::Gzip: '0'
+ IO::Scalar: '0'
+ JSON: '0'
+ JSON::XS: '2.0'
+ LWP: '5.835'
+ LWP::UserAgent: '0'
+ List::MoreUtils: '0.22'
+ Math::Random::ISAAC: v1.0.1
+ Module::Metadata: '1.000033'
+ Module::Runtime: '0'
+ Parse::CPAN::Meta: '1.44'
+ Regexp::Common: '0'
+ Sys::Syslog: '0'
+ Template: '2.24'
+ Text::Diff: '0'
+ Tie::IxHash: '0'
+ URI: '1.55'
+ perl: '5.010001'
+ version: '0.87'
+version: '42'
diff --git a/Makefile.PL b/Makefile.PL
new file mode 100644
index 000000000..3d6857bc3
--- /dev/null
+++ b/Makefile.PL
@@ -0,0 +1,387 @@
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+# This file has detailed POD docs, do "perldoc checksetup.pl" to see them.
+
+######################################################################
+# Initialization
+######################################################################
+
+use 5.10.1;
+use strict;
+use warnings;
+use lib qw(. lib local/lib/perl5);
+
+use ExtUtils::MakeMaker 6.55;
+use constant BUGZILLA_VERSION => $ENV{BUGZILLA_VERSION} // 42;
+use File::Basename;
+use File::Spec;
+
+# META.json and META.yml exist only for the benefit of older
+# installs where cpanm can't get the optional features out of Makefile.PL
+# Unfortunately having META.json and META.yml commited to the repo is weird
+# and MakeMaker always prefers their content to the internal data (unless CPAN::META
+# is not installed).
+# Since we (Bugzilla) require this cludge, we hide the files from MakeMaker.
+BEGIN {
+ warn "Hiding META.{json,yml} from MakeMaker...\n";
+ rename( 'META.json', 'META.json.hide' ) || unlink("META.json");
+ rename( 'META.yml', 'META.yml.hide' ) || unlink("META.yml");
+
+ if (!eval { ExtUtils::MakeMaker->VERSION('6.57_07') }) {
+ warn "WARNING: ExtUtils::MakeMaker should be at least 6.57_07 in order to support updating META.json files\n";
+ }
+}
+
+END {
+ warn "Unhiding META.{json,yml}...\n";
+ rename( 'META.json.hide', 'META.json' );
+ rename( 'META.yml.hide', 'META.yml' );
+}
+
+# PREREQ_PM
+my %requires = (
+ 'CGI' => '3.51',
+ 'DBI' => '1.614',
+ 'Date::Format' => '2.23',
+ 'DateTime' => '0.75',
+ 'DateTime::TimeZone' => '1.64',
+ 'Digest::SHA' => 0,
+ 'Email::MIME' => '1.904',
+ 'Email::Send' => '1.911',
+ 'File::Slurp' => '9999.13',
+ 'JSON::XS' => '2.01',
+ 'List::MoreUtils' => '0.22',
+ 'Math::Random::ISAAC' => '1.0.1',
+ 'Template' => '2.24',
+ 'URI' => '1.55',
+ 'version' => '0.87',
+ 'Parse::CPAN::Meta' => '1.44',
+ 'CPAN::Meta::Prereqs' => '2.132830',
+ 'CPAN::Meta::Requirements' => '2.121',
+ 'Module::Metadata' => '1.000033',
+ 'Module::Runtime' => 0,
+);
+my %build_requires = (
+ 'ExtUtils::MakeMaker' => '6.57_07',
+);
+my %test_requires = (
+ 'Test::More' => 0,
+ 'Pod::Coverage' => 0,
+ 'Test::WWW::Selenium' => 0.
+);
+my %recommends = ( Safe => '2.30' );
+
+# Windows requires some additional modules.
+if ( $^O eq 'MSWin32' ) {
+ $requires{'Win32'} = '0.35';
+ $requires{'Win32::API'} = '0.55';
+ $requires{'DateTime::TimeZone::Local::Win32'} = '1.64';
+}
+
+my %optional_features = (
+ smtp_auth => {
+ prereqs => { runtime => { requires => { 'Authen::SASL' => 0 } } },
+ description => 'SMTP Authentication'
+ },
+ detect_charset => {
+ prereqs => {
+ runtime =>
+ { requires => { 'Encode::Detect' => 0, Encode => '2.21' } }
+ },
+ description => 'Automatic charset detection for text attachments'
+ },
+ new_charts => {
+ description => 'New Charts',
+ prereqs => {
+ runtime =>
+ { requires => { 'Chart::Lines' => 'v2.4.10', GD => '1.20' } }
+ }
+ },
+ html_desc => {
+ description => 'More HTML in Product/Group Descriptions',
+ prereqs => {
+ runtime => {
+ requires =>
+ { 'HTML::Parser' => '3.67', 'HTML::Scrubber' => 0 }
+ }
+ }
+ },
+ pg => {
+ prereqs => { runtime => { requires => { 'DBD::Pg' => 'v2.19.3' } } },
+ description => 'Postgres database support'
+ },
+ memcached => {
+ description => 'Memcached Support',
+ prereqs => {
+ runtime => { requires => { 'Cache::Memcached' => '0.17' } }
+ }
+ },
+ auth_delegation => {
+ description => 'Auth Delegation',
+ prereqs => { runtime => { requires => { 'LWP::UserAgent' => 0 } } }
+ },
+ updates => {
+ description => 'Automatic Update Notifications',
+ prereqs => {
+ runtime =>
+ { requires => { 'LWP::UserAgent' => 0, 'XML::Twig' => 0 } }
+ }
+ },
+ auth_radius => {
+ description => 'RADIUS Authentication',
+ prereqs => { runtime => { requires => { 'Authen::Radius' => 0 } } }
+ },
+ documentation => {
+ prereqs => {
+ runtime => {
+ requires =>
+ { 'File::Which' => 0, 'File::Copy::Recursive' => 0 }
+ }
+ },
+ description => 'Documentation',
+ },
+ xmlrpc => {
+ description => 'XML-RPC Interface',
+ prereqs => {
+ runtime => {
+ requires => {
+ 'XMLRPC::Lite' => '0.712',
+ 'SOAP::Lite' => '0.712',
+ 'Test::Taint' => '1.06'
+ }
+ }
+ }
+ },
+ auth_ldap => {
+ prereqs => { runtime => { requires => { 'Net::LDAP' => 0 } } },
+ description => 'LDAP Authentication'
+ },
+ old_charts => {
+ prereqs => {
+ runtime =>
+ { requires => { GD => '1.20', 'Chart::Lines' => 'v2.4.10' } }
+ },
+ description => 'Old Charts'
+ },
+ moving => {
+ prereqs => {
+ runtime => {
+ requires => { 'MIME::Parser' => '5.406', 'XML::Twig' => 0 }
+ }
+ },
+ description => 'Move Bugs Between Installations'
+ },
+ oracle => {
+ description => 'Oracle database support',
+ prereqs => { runtime => { requires => { 'DBD::Oracle' => '1.19' } } }
+ },
+ typesniffer => {
+ prereqs => {
+ runtime => {
+ requires =>
+ { 'IO::Scalar' => 0, 'File::MimeInfo::Magic' => 0 }
+ }
+ },
+ description => 'Sniff MIME type of attachments'
+ },
+ sqlite => {
+ prereqs => { runtime => { requires => { 'DBD::SQLite' => '1.29' } } },
+ description => 'SQLite database support'
+ },
+ mysql => {
+ description => 'MySQL database support',
+ prereqs => { runtime => { requires => { 'DBD::mysql' => '4.001' } } }
+ },
+ jsonrpc => {
+ description => 'JSON-RPC Interface',
+ prereqs => {
+ runtime =>
+ { requires => { 'JSON::RPC' => 0, 'Test::Taint' => '1.06' } }
+ }
+ },
+ graphical_reports => {
+ description => 'Graphical Reports',
+ prereqs => {
+ runtime => {
+ requires => {
+ 'GD::Text' => 0,
+ 'Template::Plugin::GD::Image' => 0,
+ 'GD::Graph' => 0,
+ GD => '1.20',
+ }
+ }
+ }
+ },
+ mfa => {
+ description => 'Multi-Factor Authentication',
+ prereqs => {
+ runtime => {
+ requires => {
+ 'Auth::GoogleAuth' => '1.01',
+ 'GD::Barcode::QRcode' => '0',
+ },
+ }
+ },
+ },
+ mod_perl => {
+ description => 'mod_perl support under Apache',
+ prereqs => {
+ runtime => {
+ requires => {
+ 'mod_perl2' => '1.999022',
+ 'Apache2::SizeLimit' => '0.96',
+ }
+ }
+ }
+ },
+ inbound_email => {
+ prereqs => {
+ runtime => {
+ requires => {
+ 'Email::MIME::Attachment::Stripper' => 0,
+ 'Email::Reply' => 0,
+ }
+ }
+ },
+ description => 'Inbound Email'
+ },
+ patch_viewer => {
+ description => 'Patch Viewer',
+ prereqs => { runtime => { requires => { PatchReader => '0.9.6' } } }
+ },
+ rest => {
+ description => 'REST Interface',
+ prereqs => {
+ runtime => {
+ requires => {
+ 'Test::Taint' => '1.06',
+ 'JSON::RPC' => 0,
+ }
+ }
+ }
+ },
+ jobqueue => {
+ description => 'Mail Queueing',
+ prereqs => {
+ runtime => {
+ requires => { TheSchwartz => '1.10', 'Daemon::Generic' => 0 }
+ }
+ }
+ },
+);
+
+for my $file ( glob("extensions/*/Config.pm") ) {
+ my $dir = dirname($file);
+ my $name = basename($dir);
+
+ next if -f File::Spec->catfile( $dir, "disabled" );
+ require $file;
+ my $class = "Bugzilla::Extension::$name";
+ if ( $class->can("REQUIRED_MODULES") ) {
+ foreach my $required_module ( @{ $class->REQUIRED_MODULES() } ) {
+ $requires{ $required_module->{module} }
+ = $required_module->{version};
+ }
+ }
+
+ if ( $class->can('OPTIONAL_MODULES') ) {
+ my $default_feature = 'extension_' . lc($name) . '_optional';
+ foreach my $mod ( @{ $class->OPTIONAL_MODULES } ) {
+ my @features
+ = $mod->{feature} ? @{ $mod->{feature} } : ($default_feature);
+ foreach my $feature (@features) {
+ $optional_features{$feature}{prereqs}{runtime}{requires}
+ { $mod->{module} } = $mod->{version} // 0;
+ }
+ }
+ }
+}
+
+# BMO Customization
+my @bmo_features = grep {
+ !m{
+ ^
+ (?: pg
+ | oracle
+ | mod_perl
+ | sqlite
+ | auth_ldap
+ | auth_radius
+ | smtp_auth
+ | updates)
+ $
+ }mxs;
+} keys %optional_features;
+
+$optional_features{bmo} = {
+ description => 'features that bmo needs',
+ prereqs => {
+ runtime => {
+ requires => {
+ map { %{$optional_features{$_}{prereqs}{runtime}{requires}} } @bmo_features
+ },
+ },
+ },
+};
+
+WriteMakefile(
+ NAME => 'Bugzilla',
+ AUTHOR => q{Bugzilla Developers <developers@bugzilla.org>},
+ VERSION => BUGZILLA_VERSION,
+ ABSTRACT => 'Bugzilla Bug Tracking System',
+ LICENSE => 'Mozilla_2_0',
+ MIN_PERL_VERSION => '5.10.1',
+ CONFIGURE_REQUIRES => { 'ExtUtils::MakeMaker' => $build_requires{'ExtUtils::MakeMaker'} },
+ PREREQ_PM => { %requires },
+ BUILD_REQUIRES => { %build_requires },
+ TEST_REQUIRES => { %test_requires },
+ META_MERGE => {
+ "meta-spec" => {
+ url => "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ version => "2"
+ },
+ dynamic_config => 1,
+ prereqs => {
+ build => { requires => { %build_requires } },
+ runtime => { requires => { %requires }, recommends => { %recommends } },
+ test => { requires => { %test_requires } },
+ },
+ optional_features => \%optional_features,
+ },
+);
+
+sub MY::postamble {
+ my $modules = join(' ',
+ qw(
+ CPAN::Meta
+ CPAN::Meta::Requirements
+ Parse::CPAN::Meta
+ Module::Metadata
+ )
+ );
+ return <<MAKE;
+GEN_CPANFILE_ARGS = -A -U mod_perl -U oracle
+cpanfile: MYMETA.json
+\t\$(PERLRUN) gen-cpanfile.pl \$(GEN_CPANFILE_ARGS)
+
+checksetup_lib: Makefile.PL
+\tcpanm -l .checksetup_lib $modules
+\t-rm -fr .checksetup_lib/man
+\t-rm -fr .checksetup_lib/lib/perl5/*/.meta
+\t-rm -fr .checksetup_lib/lib/perl5/Test
+\t-rm -fr .checksetup_lib/lib/perl5/ok.pm
+\t-find .checksetup_lib '(' -name '*.pod' -or -name .packlist ')' -print0 | xargs -0 rm -f
+
+META.json: Makefile.PL
+\tmake distmeta 2>&1 /dev/null; mv */META.json .
+
+META.yml: Makefile.PL
+\tmake distmeta 2>&1 /dev/null; mv */META.yml .
+MAKE
+}
diff --git a/admin.cgi b/admin.cgi
index 83cc55d8b..d8fc0475d 100755
--- a/admin.cgi
+++ b/admin.cgi
@@ -1,27 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Frédéric Buclin.
-# Portions created by Frédéric Buclin are Copyright (C) 2007
-# Frédéric Buclin. All Rights Reserved.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/attachment.cgi b/attachment.cgi
index 7f6353bdd..da808bd3f 100755
--- a/attachment.cgi
+++ b/attachment.cgi
@@ -1,42 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Myk Melez <myk@mozilla.org>
-# Daniel Raichle <draichle@gmx.net>
-# Dave Miller <justdave@syndicomm.com>
-# Alexander J. Vincent <ajvincent@juno.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Greg Hendricks <ghendricks@novell.com>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Marc Schumann <wurblzap@gmail.com>
-# Byron Jones <bugzilla@glob.com.au>
-
-################################################################################
-# Script Initialization
-################################################################################
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::BugMail;
diff --git a/auth.cgi b/auth.cgi
index 05ec79b5c..86c1f656a 100755
--- a/auth.cgi
+++ b/auth.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -10,7 +10,7 @@ use 5.10.1;
use strict;
use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/buglist.cgi b/buglist.cgi
index 48c3ac57a..850d79d01 100755
--- a/buglist.cgi
+++ b/buglist.cgi
@@ -1,38 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Stephan Niemz <st.n@gmx.net>
-# Andreas Franke <afranke@mathweb.org>
-# Myk Melez <myk@mozilla.org>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-
-################################################################################
-# Script Initialization
-################################################################################
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/chart.cgi b/chart.cgi
index 89fefbc3f..64c07c6c3 100755
--- a/chart.cgi
+++ b/chart.cgi
@@ -1,26 +1,10 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Gervase Markham <gerv@gerv.net>
-# Lance Larsh <lance.larsh@oracle.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# Glossary:
# series: An individual, defined set of data plotted over time.
@@ -43,8 +27,11 @@
# Bonus:
# Offer subscription when you get a "series already exists" error?
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/checksetup.pl b/checksetup.pl
index 9221abd4d..e5df8c5c8 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -1,40 +1,10 @@
-#!/usr/bin/perl -w
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is Holger
-# Schurig. Portions created by Holger Schurig are
-# Copyright (C) 1999 Holger Schurig. All
-# Rights Reserved.
-#
-# Contributor(s): Holger Schurig <holgerschurig@nikocity.de>
-# Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Dave Miller <justdave@syndicomm.com>
-# Zach Lipton <zach@zachlipton.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# Bradley Baetz <bbaetz@student.usyd.edu.au>
-# Tobias Burnus <burnus@net-b.de>
-# Shane H. W. Travis <travis@sedsystems.ca>
-# Gervase Markham <gerv@gerv.net>
-# Erik Stambaugh <erik@dasbistro.com>
-# Dave Lawrence <dkl@redhat.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Joel Peshkin <bugreport@peshkin.net>
-# Lance Larsh <lance.larsh@oracle.com>
-# A. Karl Kornel <karl@kornel.name>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# This file has detailed POD docs, do "perldoc checksetup.pl" to see them.
@@ -42,15 +12,23 @@
# Initialization
######################################################################
+use 5.10.1;
use strict;
-use 5.008001;
+use warnings;
+
use File::Basename;
+BEGIN { chdir dirname($0); }
+use lib qw(. lib local/lib/perl5 .checksetup_lib/lib/perl5);
+
+# the @INC which checksetup needs to operate against.
+our @BUGZILLA_INC = grep { !/checksetup_lib/ } @INC;
+
use Getopt::Long qw(:config bundling);
use Pod::Usage;
+# Bug 1270550 - Tie::Hash::NamedCapture must be loaded before Safe.
+use Tie::Hash::NamedCapture;
use Safe;
-BEGIN { chdir dirname($0); }
-use lib qw(. lib);
use Bugzilla::Constants;
use Bugzilla::Install::Requirements;
use Bugzilla::Install::Util qw(install_string get_version_and_os
@@ -68,34 +46,56 @@ Bugzilla::Install::Util::no_checksetup_from_cgi() if $ENV{'SERVER_SOFTWARE'};
init_console();
my %switch;
-GetOptions(\%switch, 'help|h|?', 'check-modules', 'cpanfile',
+GetOptions(\%switch, 'help|h|?',
'no-templates|t', 'verbose|v|no-silent',
- 'make-admin=s', 'reset-password=s', 'version|V');
+ 'cpanm:s', 'check-modules',
+ 'make-admin=s', 'reset-password=s', 'version|V',
+ 'no-permissions|p');
# Print the help message if that switch was selected.
pod2usage({-verbose => 1, -exitval => 1}) if $switch{'help'};
-# Export cpanfile and exit
-if ($switch{cpanfile}) {
- export_cpanfile();
- exit;
-}
-
# Read in the "answers" file if it exists, for running in
# non-interactive mode.
my $answers_file = $ARGV[0];
my $silent = $answers_file && !$switch{'verbose'};
-
print(install_string('header', get_version_and_os()) . "\n") unless $silent;
-exit if $switch{'version'};
-# Check required --MODULES--
-my $module_results = check_requirements(!$silent);
-Bugzilla::Install::Requirements::print_module_instructions(
- $module_results, !$silent);
-exit if !$module_results->{pass};
-# Break out if checking the modules is all we have been asked to do.
-exit if $switch{'check-modules'};
+exit 0 if $switch{'version'};
+
+if (defined $switch{cpanm}) {
+ my $default = 'all notest -oracle -mysql -pg -mod_perl -old_charts -new_charts -graphical_reports -detect_charset';
+ my @features = split(/\s+/, $switch{cpanm} || $default);
+ my @cpanm_args = ('-l', 'local', '--installdeps');
+ while (my $feature = shift @features) {
+ if ($feature eq 'all') {
+ push @cpanm_args, '--with-all-features';
+ }
+ elsif ($feature eq 'default') {
+ unshift @features, split(/\s+/, $default);
+ }
+ elsif ($feature eq 'notest' || $feature eq 'skip-satisfied' || $feature eq 'quiet') {
+ push @cpanm_args, "--$feature";
+ }
+ elsif ($feature =~ /^-(.+)$/) {
+ push @cpanm_args, "--without-feature=$1";
+ }
+ else {
+ push @cpanm_args, "--with-feature=$feature";
+ }
+ }
+ print "cpanm @cpanm_args \".\"\n" if !$silent;
+ my $rv = system('cpanm', @cpanm_args, '.');
+ exit 1 if $rv != 0;
+}
+
+my $meta = load_cpan_meta();
+my $requirements = check_cpan_requirements($meta, \@BUGZILLA_INC, !$silent);
+exit 1 unless $requirements->{ok};
+
+check_all_cpan_features($meta, \@BUGZILLA_INC, !$silent);
+
+exit 0 if $switch{'check-modules'};
###########################################################################
# Load Bugzilla Modules
###########################################################################
@@ -143,7 +143,7 @@ my $lc_hash = Bugzilla->localconfig;
# At this point, localconfig is defined and is readable. So we know
# everything we need to create the DB. We have to create it early,
-# because some data required to populate data/params is stored in the DB.
+# because some data required to populate data/params.json is stored in the DB.
Bugzilla::DB::bz_check_requirements(!$silent);
Bugzilla::DB::bz_create_database() if $lc_hash->{'db_check'};
@@ -179,7 +179,7 @@ Bugzilla::Template::precompile_templates(!$silent)
# Set proper rights (--CHMOD--)
###########################################################################
-fix_all_file_permissions(!$silent);
+fix_all_file_permissions(!$silent) unless $switch{'no-permissions'};
###########################################################################
# Check GraphViz setup
@@ -187,7 +187,15 @@ fix_all_file_permissions(!$silent);
# If we are using a local 'dot' binary, verify the specified binary exists
# and that the generated images are accessible.
-check_graphviz(!$silent) if Bugzilla->params->{'webdotbase'};
+check_webdotbase(!$silent) if $lc_hash->{'webdotbase'};
+
+###########################################################################
+# Check font file setup
+###########################################################################
+
+# If we are using a local font file, verify the specified file exists and
+# that it has the correct extension.
+check_font_file(!$silent) if $lc_hash->{'font_file'};
###########################################################################
# Changes to the fielddefs --TABLE--
@@ -268,7 +276,7 @@ checksetup.pl - A do-it-all upgrade and installation script for Bugzilla.
=head1 SYNOPSIS
- ./checksetup.pl [--help|--check-modules|--version]
+ ./checksetup.pl [--help|--version]
./checksetup.pl [SCRIPT [--verbose]] [--no-templates|-t]
[--make-admin=user@domain.com]
[--reset-password=user@domain.com]
@@ -289,16 +297,6 @@ the L</"RUNNING CHECKSETUP NON-INTERACTIVELY"> section.
Display this help text
-=item B<--cpanfile>
-
-Outputs a cpanfile in the document root listing the current and optional
-modules with their respective versions. This file can be used by <cpanm>
-and other utilities used to install Perl dependencies.
-
-=item B<--check-modules>
-
-Only check for correct module dependencies and quit afterward.
-
=item B<--make-admin>=username@domain.com
Makes the specified user into a Bugzilla administrator. This is
@@ -325,6 +323,12 @@ Output results of SCRIPT being processed.
Display the version of Bugzilla, Perl, and some info about the
system that Bugzilla is being installed on, and then exit.
+=item B<--no-permissions> (B<-p>)
+
+Don't update file permissions. Owner, group, and mode of files and
+directories will not be changed. Use this if your installation is
+managed by a software packaging system such as RPM or APT.
+
=back
=head1 DESCRIPTION
@@ -409,7 +413,7 @@ L<Bugzilla::Install::Filesystem/create_htaccess>.
=item 9
-Updates the system parameters (stored in F<data/params>), using
+Updates the system parameters (stored in F<data/params.json>), using
L<Bugzilla::Config/update_params>.
=item 10
@@ -502,8 +506,6 @@ The format of that file is as follows:
$answer{'ADMIN_PASSWORD'} = 'fooey';
$answer{'ADMIN_REALNAME'} = 'Joel Peshkin';
- $answer{'SMTP_SERVER'} = 'mail.mydomain.net';
-
$answer{'NO_PAUSE'} = 1
C<NO_PAUSE> means "never stop and prompt the user to hit Enter to continue,
@@ -543,4 +545,3 @@ L<Bugzilla::Config/update_params>
L<Bugzilla::DB/CONNECTION>
=back
-
diff --git a/clean-bug-user-last-visit.pl b/clean-bug-user-last-visit.pl
index 9884b7c48..810fe598c 100755
--- a/clean-bug-user-last-visit.pl
+++ b/clean-bug-user-last-visit.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -22,7 +22,7 @@ It takes no arguments and produces no output except in the case of errors.
use 5.10.1;
use strict;
use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/colchange.cgi b/colchange.cgi
index 844f7615c..2d0a7ba1e 100755
--- a/colchange.cgi
+++ b/colchange.cgi
@@ -1,30 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Gervase Markham <gerv@gerv.net>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Pascal Held <paheld@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/collectstats.pl b/collectstats.pl
index 267685117..396f7ff6e 100755
--- a/collectstats.pl
+++ b/collectstats.pl
@@ -1,32 +1,16 @@
-#!/usr/bin/perl -w
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>,
-# Harrison Page <harrison@netscape.com>
-# Gervase Markham <gerv@gerv.net>
-# Richard Walters <rwalters@qualcomm.com>
-# Jean-Sebastien Guay <jean_seb@hybride.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Getopt::Long qw(:config bundling);
use Pod::Usage;
diff --git a/config.cgi b/config.cgi
index fcc5d82ed..5f29025cd 100755
--- a/config.cgi
+++ b/config.cgi
@@ -1,35 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Myk Melez <myk@mozilla.org>
-# Frank Becker <Frank@Frank-Becker.de>
-
-################################################################################
-# Script Initialization
-################################################################################
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/contrib/clear-memcached.pl b/contrib/clear-memcached.pl
index 01202ce7c..31fe3bb00 100755
--- a/contrib/clear-memcached.pl
+++ b/contrib/clear-memcached.pl
@@ -10,9 +10,8 @@
use strict;
use warnings;
-use FindBin qw($Bin);
-use lib "$Bin/..";
-use lib "$Bin/../lib";
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
use Bugzilla;
use Bugzilla::Constants;
diff --git a/contrib/clear-templates.pl b/contrib/clear-templates.pl
index 8b0864d46..ba89cb6d5 100755
--- a/contrib/clear-templates.pl
+++ b/contrib/clear-templates.pl
@@ -9,7 +9,8 @@
use strict;
use warnings;
-use lib qw(. lib);
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
use Bugzilla;
use Bugzilla::Constants;
diff --git a/contrib/fixperms.pl b/contrib/fixperms.pl
index 406c149cb..3246fc06b 100755
--- a/contrib/fixperms.pl
+++ b/contrib/fixperms.pl
@@ -21,7 +21,8 @@
use strict;
use warnings;
-use lib qw(. lib);
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
use Bugzilla;
use Bugzilla::Install::Filesystem qw(fix_all_file_permissions);
diff --git a/contrib/nagios_blocker_checker.pl b/contrib/nagios_blocker_checker.pl
index 768053126..f0d18f509 100755
--- a/contrib/nagios_blocker_checker.pl
+++ b/contrib/nagios_blocker_checker.pl
@@ -10,9 +10,9 @@
use strict;
use warnings;
-use FindBin qw($Bin);
-use lib "$Bin/..";
-use lib "$Bin/../lib";
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
+
use Bugzilla;
use Bugzilla::Constants;
diff --git a/cpanfile b/cpanfile
new file mode 100644
index 000000000..51867bd59
--- /dev/null
+++ b/cpanfile
@@ -0,0 +1,87 @@
+requires 'Auth::GoogleAuth', '==1.01';
+requires 'CGI', '==3.51';
+requires 'CPAN::Meta::Prereqs', '2.132830';
+requires 'CPAN::Meta::Requirements', '2.121';
+requires 'Cache::Memcached';
+requires 'Chart::Lines', '==2.4.10';
+requires 'Crypt::CBC';
+requires 'Crypt::DES';
+requires 'Crypt::DES_EDE3';
+requires 'Crypt::OpenPGP';
+requires 'Crypt::SMIME';
+requires 'DBD::SQLite', '1.29';
+requires 'DBD::mysql', '==4.022';
+requires 'DBI', '==1.622';
+requires 'Daemon::Generic';
+requires 'Date::Format', '==2.23';
+requires 'Params::Validate', '==0.95';
+requires 'DateTime', '==1.03';
+requires 'DateTime::Locale', '==0.45';
+requires 'DateTime::TimeZone', '==1.69';
+requires 'Digest::SHA';
+requires 'Email::Address';
+requires 'Email::MIME', '1.904';
+requires 'Email::MIME::Attachment::Stripper';
+requires 'Email::Reply';
+requires 'Email::Send', '1.911';
+requires 'Encode', '2.21';
+requires 'Encode::Detect';
+requires 'File::Copy::Recursive';
+requires 'File::MimeInfo::Magic';
+requires 'File::Slurp', '9999.13';
+requires 'File::Which';
+requires 'GD', '1.20';
+requires 'GD::Barcode::QRcode';
+requires 'GD::Graph';
+requires 'GD::Text';
+requires 'HTML::Parser', '3.67';
+requires 'HTML::Scrubber';
+requires 'HTML::Tree';
+requires 'IO::Compress::Gzip';
+requires 'IO::Scalar', '==2.110',
+requires 'JSON', '==2.50';
+requires 'JSON::RPC', '==1.01';
+requires 'JSON::XS', '==2.3';
+requires 'LWP', '==5.835';
+requires 'LWP::UserAgent', '==5.835';
+requires 'Scalar::Util', '==1.21';
+requires 'List::Util', '==1.21';
+requires 'List::MoreUtils', '==0.22';
+requires 'MIME::Parser', '5.406';
+requires 'Math::Random::ISAAC', 'v1.0.1';
+requires 'Module::Metadata', '1.000033';
+requires 'Module::Runtime';
+requires 'Mozilla::CA';
+requires 'Net::SFTP';
+requires 'Parse::CPAN::Meta', '1.44';
+requires 'PatchReader', 'v0.9.6';
+requires 'Regexp::Common';
+requires 'SOAP::Lite';
+requires 'Sys::Syslog';
+requires 'Template', '==2.24';
+requires 'Template::Plugin::GD::Image';
+requires 'Test::Taint', '==1.06';
+requires 'Text::Diff';
+requires 'TheSchwartz', '1.10';
+requires 'Tie::IxHash';
+requires 'URI', '1.55';
+requires 'XML::Simple';
+requires 'XML::Twig';
+requires 'XMLRPC::Lite';
+requires 'perl', '5.010001';
+requires 'version', '0.87';
+requires 'Safe', '2.30';
+
+on configure => sub {
+ requires 'ExtUtils::MakeMaker', '6.57_07';
+};
+
+on build => sub {
+ requires 'ExtUtils::MakeMaker', '6.57_07';
+};
+
+on test => sub {
+ requires 'Pod::Coverage';
+ requires 'Test::More';
+ requires 'Test::WWW::Selenium';
+};
diff --git a/cpanfile.snapshot b/cpanfile.snapshot
new file mode 100644
index 000000000..9ab261353
--- /dev/null
+++ b/cpanfile.snapshot
@@ -0,0 +1,4614 @@
+# carton snapshot format: version 1.0
+DISTRIBUTIONS
+ Algorithm-Diff-1.1903
+ pathname: T/TY/TYEMQ/Algorithm-Diff-1.1903.tar.gz
+ provides:
+ Algorithm::Diff 1.1903
+ Algorithm::Diff::_impl 1.1903
+ requirements:
+ ExtUtils::MakeMaker 0
+ Alt-Crypt-RSA-BigInt-0.05
+ pathname: D/DA/DANAJ/Alt-Crypt-RSA-BigInt-0.05.tar.gz
+ provides:
+ Alt::Crypt::RSA::BigInt 0.05
+ requirements:
+ Benchmark 0
+ Bytes::Random::Secure 0.23
+ Carp 0
+ Class::Loader 0
+ Convert::ASCII::Armour 0
+ Crypt::Blowfish 0
+ Crypt::CBC 2.17
+ Data::Buffer 0
+ Data::Dumper 0
+ Digest::MD2 0
+ Digest::MD5 0
+ Digest::SHA 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ MIME::Base64 0
+ Math::BigInt 1.78
+ Math::BigInt::GMP 0
+ Math::Prime::Util 0.17
+ Math::Prime::Util::GMP 0
+ Sort::Versions 0
+ Test::More 0.45
+ Tie::EncryptedHash 0
+ perl 5.008
+ AnyEvent-7.12
+ pathname: M/ML/MLEHMANN/AnyEvent-7.12.tar.gz
+ provides:
+ AE undef
+ AE::Log::COLLECT undef
+ AE::Log::FILTER undef
+ AE::Log::LOG undef
+ AnyEvent 7.12
+ AnyEvent::Base 7.12
+ AnyEvent::CondVar 7.12
+ AnyEvent::CondVar::Base 7.12
+ AnyEvent::DNS undef
+ AnyEvent::Debug undef
+ AnyEvent::Debug::Backtrace undef
+ AnyEvent::Debug::Wrap undef
+ AnyEvent::Debug::Wrapped undef
+ AnyEvent::Debug::shell undef
+ AnyEvent::Handle undef
+ AnyEvent::IO undef
+ AnyEvent::IO::IOAIO undef
+ AnyEvent::IO::Perl undef
+ AnyEvent::Impl::Cocoa undef
+ AnyEvent::Impl::EV undef
+ AnyEvent::Impl::Event undef
+ AnyEvent::Impl::EventLib undef
+ AnyEvent::Impl::FLTK undef
+ AnyEvent::Impl::Glib undef
+ AnyEvent::Impl::IOAsync undef
+ AnyEvent::Impl::Irssi undef
+ AnyEvent::Impl::POE undef
+ AnyEvent::Impl::Perl undef
+ AnyEvent::Impl::Qt undef
+ AnyEvent::Impl::Qt::Io undef
+ AnyEvent::Impl::Qt::Timer undef
+ AnyEvent::Impl::Tk undef
+ AnyEvent::Impl::UV undef
+ AnyEvent::Log undef
+ AnyEvent::Log::COLLECT undef
+ AnyEvent::Log::Ctx undef
+ AnyEvent::Log::FILTER undef
+ AnyEvent::Log::LOG undef
+ AnyEvent::Loop undef
+ AnyEvent::Socket undef
+ AnyEvent::Strict undef
+ AnyEvent::TLS undef
+ AnyEvent::Util undef
+ requirements:
+ Canary::Stability 0
+ ExtUtils::MakeMaker 6.52
+ Apache-LogFormat-Compiler-0.33
+ pathname: K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.33.tar.gz
+ provides:
+ Apache::LogFormat::Compiler 0.33
+ requirements:
+ Module::Build 0.38
+ POSIX 0
+ POSIX::strftime::Compiler 0.30
+ Time::Local 0
+ perl 5.008001
+ AppConfig-1.71
+ pathname: N/NE/NEILB/AppConfig-1.71.tar.gz
+ provides:
+ AppConfig 1.71
+ AppConfig::Args 1.71
+ AppConfig::CGI 1.71
+ AppConfig::File 1.71
+ AppConfig::Getopt 1.71
+ AppConfig::State 1.71
+ AppConfig::Sys 1.71
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::More 0
+ perl 5.008008
+ Auth-GoogleAuth-1.01
+ pathname: G/GR/GRYPHON/Auth-GoogleAuth-1.01.tar.gz
+ provides:
+ Auth::GoogleAuth 1.01
+ requirements:
+ Carp 0
+ Class::Accessor 0
+ Convert::Base32 0
+ Digest::HMAC_SHA1 0
+ ExtUtils::MakeMaker 0
+ Math::Random::MT 0
+ URI::Escape 0
+ base 0
+ perl 5.006
+ strict 0
+ warnings 0
+ B-Hooks-EndOfScope-0.21
+ pathname: E/ET/ETHER/B-Hooks-EndOfScope-0.21.tar.gz
+ provides:
+ B::Hooks::EndOfScope 0.21
+ B::Hooks::EndOfScope::PP 0.21
+ B::Hooks::EndOfScope::XS 0.21
+ requirements:
+ ExtUtils::MakeMaker 0
+ Module::Implementation 0.05
+ Sub::Exporter::Progressive 0.001006
+ Text::ParseWords 0
+ Variable::Magic 0.48
+ perl 5.008001
+ strict 0
+ warnings 0
+ Bytes-Random-Secure-0.29
+ pathname: D/DA/DAVIDO/Bytes-Random-Secure-0.29.tar.gz
+ provides:
+ Bytes::Random::Secure 0.29
+ requirements:
+ Carp 0
+ Crypt::Random::Seed 0
+ ExtUtils::MakeMaker 6.56
+ MIME::Base64 0
+ MIME::QuotedPrint 3.03
+ Math::Random::ISAAC 0
+ Scalar::Util 1.21
+ Test::More 0.98
+ perl 5.006000
+ CGI.pm-3.51
+ pathname: M/MA/MARKSTOS/CGI.pm-3.51.tar.gz
+ provides:
+ CGI 3.51
+ CGI::Apache 1.01
+ CGI::Carp 3.51
+ CGI::Cookie 1.30
+ CGI::Fast 1.08
+ CGI::Pretty 3.46
+ CGI::Push 1.05
+ CGI::Switch 1.01
+ CGI::Util 3.51
+ CGITempFile 3.51
+ Fh 3.51
+ MultipartBuffer 3.51
+ utf8 3.51
+ requirements:
+ ExtUtils::MakeMaker 0
+ FCGI 0.67
+ File::Spec 0.82
+ Test::More 0.8
+ perl 5.006000
+ CPAN-Meta-2.150005
+ pathname: D/DA/DAGOLDEN/CPAN-Meta-2.150005.tar.gz
+ provides:
+ CPAN::Meta 2.150005
+ CPAN::Meta::Converter 2.150005
+ CPAN::Meta::Feature 2.150005
+ CPAN::Meta::History 2.150005
+ CPAN::Meta::Merge 2.150005
+ CPAN::Meta::Prereqs 2.150005
+ CPAN::Meta::Spec 2.150005
+ CPAN::Meta::Validator 2.150005
+ requirements:
+ CPAN::Meta::Requirements 2.121
+ CPAN::Meta::YAML 0.008
+ Carp 0
+ ExtUtils::MakeMaker 6.17
+ JSON::PP 2.27200
+ Parse::CPAN::Meta 1.4414
+ Scalar::Util 0
+ perl 5.008
+ strict 0
+ version 0.88
+ warnings 0
+ CPAN-Meta-Requirements-2.140
+ pathname: D/DA/DAGOLDEN/CPAN-Meta-Requirements-2.140.tar.gz
+ provides:
+ CPAN::Meta::Requirements 2.140
+ requirements:
+ B 0
+ Carp 0
+ ExtUtils::MakeMaker 6.17
+ perl 5.006
+ strict 0
+ version 0.88
+ warnings 0
+ CPAN-Meta-YAML-0.018
+ pathname: D/DA/DAGOLDEN/CPAN-Meta-YAML-0.018.tar.gz
+ provides:
+ CPAN::Meta::YAML 0.018
+ requirements:
+ B 0
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 6.17
+ Fcntl 0
+ Scalar::Util 0
+ perl 5.008001
+ strict 0
+ warnings 0
+ Cache-Memcached-1.30
+ pathname: D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz
+ provides:
+ Cache::Memcached 1.30
+ Cache::Memcached::GetParser undef
+ requirements:
+ Encode 0
+ ExtUtils::MakeMaker 0
+ Storable 0
+ String::CRC32 0
+ Time::HiRes 0
+ Canary-Stability-2011
+ pathname: M/ML/MLEHMANN/Canary-Stability-2011.tar.gz
+ provides:
+ Canary::Stability 2011
+ requirements:
+ ExtUtils::MakeMaker 0
+ Chart-2.4.10
+ pathname: C/CH/CHARTGRP/Chart-2.4.10.tar.gz
+ provides:
+ Chart undef
+ Chart::Bars 2.004010
+ Chart::Base 2.004010
+ Chart::BrushStyles 2.004010
+ Chart::Composite 2.004010
+ Chart::Constants undef
+ Chart::Direction 2.004010
+ Chart::ErrorBars 2.004010
+ Chart::HorizontalBars 2.004010
+ Chart::Lines 2.004010
+ Chart::LinesPoints 2.004010
+ Chart::Mountain 2.004010
+ Chart::Pareto 2.004010
+ Chart::Pie 2.004010
+ Chart::Points 2.004010
+ Chart::Split 2.004010
+ Chart::StackedBars 2.004010
+ requirements:
+ ExtUtils::MakeMaker 0
+ GD 2
+ Class-Accessor-0.34
+ pathname: K/KA/KASEI/Class-Accessor-0.34.tar.gz
+ provides:
+ Class::Accessor 0.34
+ Class::Accessor::Fast 0.34
+ Class::Accessor::Faster 0.34
+ requirements:
+ ExtUtils::MakeMaker 0
+ base 1.01
+ Class-Accessor-Lite-0.08
+ pathname: K/KA/KAZUHO/Class-Accessor-Lite-0.08.tar.gz
+ provides:
+ Class::Accessor::Lite 0.08
+ requirements:
+ ExtUtils::MakeMaker 6.36
+ Class-Data-Inheritable-0.08
+ pathname: T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz
+ provides:
+ Class::Data::Inheritable 0.08
+ requirements:
+ ExtUtils::MakeMaker 0
+ Class-ErrorHandler-0.04
+ pathname: T/TO/TOKUHIROM/Class-ErrorHandler-0.04.tar.gz
+ provides:
+ Class::ErrorHandler 0.04
+ requirements:
+ ExtUtils::MakeMaker 0
+ perl 5.008_001
+ Class-Inspector-1.28
+ pathname: A/AD/ADAMK/Class-Inspector-1.28.tar.gz
+ provides:
+ Class::Inspector 1.28
+ Class::Inspector::Functions 1.28
+ requirements:
+ ExtUtils::MakeMaker 6.59
+ File::Spec 0.80
+ Test::More 0.47
+ perl 5.006
+ Class-Load-0.23
+ pathname: E/ET/ETHER/Class-Load-0.23.tar.gz
+ provides:
+ Class::Load 0.23
+ Class::Load::PP 0.23
+ requirements:
+ Carp 0
+ Data::OptList 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ Module::Implementation 0.04
+ Module::Runtime 0.012
+ Package::Stash 0.14
+ Scalar::Util 0
+ Try::Tiny 0
+ base 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Class-Loader-2.03
+ pathname: V/VI/VIPUL/Class-Loader-2.03.tar.gz
+ provides:
+ Class::Loader 2.03
+ Class::LoaderTest undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ Class-Singleton-1.5
+ pathname: S/SH/SHAY/Class-Singleton-1.5.tar.gz
+ provides:
+ Class::Singleton 1.5
+ requirements:
+ ExtUtils::MakeMaker 0
+ Class-Trigger-0.14
+ pathname: M/MI/MIYAGAWA/Class-Trigger-0.14.tar.gz
+ provides:
+ Class::Trigger 0.14
+ requirements:
+ ExtUtils::MakeMaker 6.42
+ Filter::Util::Call 0
+ IO::Scalar 0
+ IO::WrapTie 0
+ Test::More 0.32
+ Compress-Raw-Bzip2-2.069
+ pathname: P/PM/PMQS/Compress-Raw-Bzip2-2.069.tar.gz
+ provides:
+ Compress::Raw::Bzip2 2.069
+ requirements:
+ ExtUtils::MakeMaker 0
+ Compress-Raw-Zlib-2.069
+ pathname: P/PM/PMQS/Compress-Raw-Zlib-2.069.tar.gz
+ provides:
+ Compress::Raw::Zlib 2.069
+ requirements:
+ ExtUtils::MakeMaker 0
+ Convert-ASCII-Armour-1.4
+ pathname: V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz
+ provides:
+ Convert::ASCII::Armor undef
+ Convert::ASCII::Armour 1.4
+ requirements:
+ Compress::Zlib 0
+ Digest::MD5 0
+ ExtUtils::MakeMaker 0
+ MIME::Base64 0
+ Convert-ASN1-0.27
+ pathname: G/GB/GBARR/Convert-ASN1-0.27.tar.gz
+ provides:
+ Convert::ASN1 0.27
+ requirements:
+ ExtUtils::MakeMaker 6.30
+ Math::BigInt 1.997
+ Test::More 0.90
+ Convert-Base32-0.06
+ pathname: I/IK/IKEGAMI/Convert-Base32-0.06.tar.gz
+ provides:
+ Convert::Base32 0.06
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::Exception 0
+ Test::More 0
+ Convert-PEM-0.08
+ pathname: B/BT/BTROTT/Convert-PEM-0.08.tar.gz
+ provides:
+ Convert::PEM 0.08
+ Convert::PEM::CBC undef
+ requirements:
+ Class::ErrorHandler 0
+ Convert::ASN1 0.10
+ Crypt::DES_EDE3 0
+ Digest::MD5 0
+ ExtUtils::MakeMaker 6.42
+ Filter::Util::Call 0
+ MIME::Base64 0
+ Test::Exception 0
+ Test::More 0
+ perl 5.008001
+ Cookie-Baker-0.06
+ pathname: K/KA/KAZEBURO/Cookie-Baker-0.06.tar.gz
+ provides:
+ Cookie::Baker 0.06
+ requirements:
+ Exporter 0
+ Module::Build 0.38
+ URI::Escape 0
+ perl 5.008001
+ Crypt-Blowfish-2.14
+ pathname: D/DP/DPARIS/Crypt-Blowfish-2.14.tar.gz
+ provides:
+ Crypt::Blowfish 2.14
+ requirements:
+ ExtUtils::MakeMaker 0
+ Crypt-CAST5_PP-1.04
+ pathname: B/BO/BOBMATH/Crypt-CAST5_PP-1.04.tar.gz
+ provides:
+ Crypt::CAST5_PP 1.04
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::More 0.47
+ Crypt-CBC-2.33
+ pathname: L/LD/LDS/Crypt-CBC-2.33.tar.gz
+ provides:
+ Crypt::CBC 2.33
+ requirements:
+ Digest::MD5 2.00
+ ExtUtils::MakeMaker 0
+ Crypt-Curve25519-0.05
+ pathname: A/AJ/AJGB/Crypt-Curve25519-0.05.tar.gz
+ provides:
+ Crypt::Curve25519 0.05
+ requirements:
+ ExtUtils::MakeMaker 0
+ Crypt-DES-2.07
+ pathname: D/DP/DPARIS/Crypt-DES-2.07.tar.gz
+ provides:
+ Crypt::DES 2.07
+ requirements:
+ ExtUtils::MakeMaker 0
+ Crypt-DES_EDE3-0.01
+ pathname: B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz
+ provides:
+ Crypt::DES_EDE3 0.01
+ requirements:
+ Crypt::DES 0
+ ExtUtils::MakeMaker 0
+ Crypt-DH-0.07
+ pathname: M/MI/MITHALDU/Crypt-DH-0.07.tar.gz
+ provides:
+ Crypt::DH 0.07
+ requirements:
+ ExtUtils::MakeMaker 6.59
+ Math::BigInt 1.60
+ Math::BigInt::GMP 1.24
+ Test::More 0.47
+ perl 5.006
+ Crypt-DSA-1.17
+ pathname: A/AD/ADAMK/Crypt-DSA-1.17.tar.gz
+ provides:
+ BufferWithInt 1.17
+ Crypt::DSA 1.17
+ Crypt::DSA::Key 1.17
+ Crypt::DSA::Key::PEM 1.17
+ Crypt::DSA::Key::SSH2 1.17
+ Crypt::DSA::KeyChain 1.17
+ Crypt::DSA::Signature 1.17
+ Crypt::DSA::Util 1.17
+ requirements:
+ Data::Buffer 0.01
+ Digest::SHA1 0
+ ExtUtils::MakeMaker 6.42
+ File::Spec 0
+ File::Which 0.05
+ IPC::Open3 0
+ MIME::Base64 0
+ Math::BigInt 1.78
+ Test::More 0.42
+ perl 5.006
+ Crypt-IDEA-1.10
+ pathname: D/DP/DPARIS/Crypt-IDEA-1.10.tar.gz
+ provides:
+ Crypt::IDEA 1.10
+ IDEA 1.10
+ requirements:
+ ExtUtils::MakeMaker 0
+ Crypt-OpenPGP-1.12
+ pathname: S/SR/SROMANOV/Crypt-OpenPGP-1.12.tar.gz
+ provides:
+ Crypt::OpenPGP 1.12
+ Crypt::OpenPGP::Armour undef
+ Crypt::OpenPGP::Buffer undef
+ Crypt::OpenPGP::CFB undef
+ Crypt::OpenPGP::Certificate undef
+ Crypt::OpenPGP::Cipher undef
+ Crypt::OpenPGP::Cipher::Blowfish undef
+ Crypt::OpenPGP::Cipher::CAST5 undef
+ Crypt::OpenPGP::Cipher::DES3 undef
+ Crypt::OpenPGP::Cipher::IDEA undef
+ Crypt::OpenPGP::Cipher::Rijndael undef
+ Crypt::OpenPGP::Cipher::Rijndael192 undef
+ Crypt::OpenPGP::Cipher::Rijndael256 undef
+ Crypt::OpenPGP::Cipher::Twofish undef
+ Crypt::OpenPGP::Ciphertext undef
+ Crypt::OpenPGP::Compressed undef
+ Crypt::OpenPGP::Config undef
+ Crypt::OpenPGP::Config::GnuPG undef
+ Crypt::OpenPGP::Config::PGP2 undef
+ Crypt::OpenPGP::Config::PGP5 undef
+ Crypt::OpenPGP::Constants undef
+ Crypt::OpenPGP::Digest undef
+ Crypt::OpenPGP::Digest::MD5 undef
+ Crypt::OpenPGP::Digest::RIPEMD160 undef
+ Crypt::OpenPGP::Digest::SHA1 undef
+ Crypt::OpenPGP::Digest::SHA224 undef
+ Crypt::OpenPGP::Digest::SHA256 undef
+ Crypt::OpenPGP::Digest::SHA384 undef
+ Crypt::OpenPGP::Digest::SHA512 undef
+ Crypt::OpenPGP::ElGamal::Private undef
+ Crypt::OpenPGP::ElGamal::Public undef
+ Crypt::OpenPGP::ErrorHandler undef
+ Crypt::OpenPGP::Key undef
+ Crypt::OpenPGP::Key::Public undef
+ Crypt::OpenPGP::Key::Public::DSA undef
+ Crypt::OpenPGP::Key::Public::ElGamal undef
+ Crypt::OpenPGP::Key::Public::RSA undef
+ Crypt::OpenPGP::Key::Secret undef
+ Crypt::OpenPGP::Key::Secret::DSA undef
+ Crypt::OpenPGP::Key::Secret::ElGamal undef
+ Crypt::OpenPGP::Key::Secret::RSA undef
+ Crypt::OpenPGP::KeyBlock undef
+ Crypt::OpenPGP::KeyRing undef
+ Crypt::OpenPGP::KeyServer undef
+ Crypt::OpenPGP::MDC undef
+ Crypt::OpenPGP::Marker undef
+ Crypt::OpenPGP::Message undef
+ Crypt::OpenPGP::OnePassSig undef
+ Crypt::OpenPGP::PacketFactory undef
+ Crypt::OpenPGP::Plaintext undef
+ Crypt::OpenPGP::S2k undef
+ Crypt::OpenPGP::S2k::Salt_Iter undef
+ Crypt::OpenPGP::S2k::Salted undef
+ Crypt::OpenPGP::S2k::Simple undef
+ Crypt::OpenPGP::SKSessionKey undef
+ Crypt::OpenPGP::SessionKey undef
+ Crypt::OpenPGP::Signature undef
+ Crypt::OpenPGP::Signature::SubPacket undef
+ Crypt::OpenPGP::Trust undef
+ Crypt::OpenPGP::UserID undef
+ Crypt::OpenPGP::Util undef
+ Crypt::OpenPGP::Words undef
+ requirements:
+ Alt::Crypt::RSA::BigInt 0
+ Compress::Zlib 0
+ Crypt::Blowfish 0
+ Crypt::CAST5_PP 0
+ Crypt::DES_EDE3 0
+ Crypt::DSA 0
+ Crypt::IDEA 0
+ Crypt::RIPEMD160 0
+ Crypt::Rijndael 0
+ Crypt::Twofish 0
+ Data::Buffer 0.04
+ Digest::MD5 0
+ Digest::SHA 0
+ ExtUtils::MakeMaker 0
+ File::HomeDir 0
+ LWP::UserAgent 0
+ MIME::Base64 0
+ Math::BigInt 0
+ URI::Escape 0
+ Crypt-RIPEMD160-0.06
+ pathname: T/TO/TODDR/Crypt-RIPEMD160-0.06.tar.gz
+ provides:
+ Crypt::RIPEMD160 0.06
+ Crypt::RIPEMD160::MAC 0.01
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::More 0
+ Crypt-Random-Seed-0.03
+ pathname: D/DA/DANAJ/Crypt-Random-Seed-0.03.tar.gz
+ provides:
+ Crypt::Random::Seed 0.03
+ requirements:
+ Carp 0
+ Crypt::Random::TESHA2 0
+ Exporter 5.562
+ ExtUtils::MakeMaker 0
+ Fcntl 0
+ Test::More 0.45
+ base 0
+ constant 0
+ perl 5.006002
+ Crypt-Random-TESHA2-0.01
+ pathname: D/DA/DANAJ/Crypt-Random-TESHA2-0.01.tar.gz
+ provides:
+ Crypt::Random::TESHA2 0.01
+ Crypt::Random::TESHA2::Config 0.01
+ requirements:
+ Carp 0
+ Digest::SHA 5.22
+ Exporter 5.562
+ ExtUtils::MakeMaker 0
+ Test::More 0.45
+ Time::HiRes 1.9711
+ base 0
+ perl 5.006002
+ Crypt-Rijndael-1.13
+ pathname: L/LE/LEONT/Crypt-Rijndael-1.13.tar.gz
+ provides:
+ Crypt::Rijndael 1.13
+ requirements:
+ ExtUtils::MakeMaker 0
+ perl 5.006
+ Crypt-SMIME-0.17
+ pathname: M/MI/MIKAGE/Crypt-SMIME-0.17.tar.gz
+ provides:
+ Crypt::SMIME 0.17
+ requirements:
+ ExtUtils::CChecker 0
+ ExtUtils::Constant 0.23
+ ExtUtils::MakeMaker 0
+ ExtUtils::PkgConfig 0
+ Test::Exception 0
+ Test::More 0
+ XSLoader 0
+ Crypt-Twofish-2.17
+ pathname: A/AM/AMS/Crypt-Twofish-2.17.tar.gz
+ provides:
+ Crypt::Twofish 2.17
+ requirements:
+ ExtUtils::MakeMaker 0
+ strict 0
+ CryptX-0.039
+ pathname: M/MI/MIK/CryptX-0.039.tar.gz
+ provides:
+ Crypt::AuthEnc undef
+ Crypt::AuthEnc::CCM undef
+ Crypt::AuthEnc::EAX undef
+ Crypt::AuthEnc::GCM undef
+ Crypt::AuthEnc::OCB undef
+ Crypt::Checksum undef
+ Crypt::Checksum::Adler32 undef
+ Crypt::Checksum::CRC32 undef
+ Crypt::Cipher undef
+ Crypt::Cipher::AES undef
+ Crypt::Cipher::Anubis undef
+ Crypt::Cipher::Blowfish undef
+ Crypt::Cipher::CAST5 undef
+ Crypt::Cipher::Camellia undef
+ Crypt::Cipher::DES undef
+ Crypt::Cipher::DES_EDE undef
+ Crypt::Cipher::KASUMI undef
+ Crypt::Cipher::Khazad undef
+ Crypt::Cipher::MULTI2 undef
+ Crypt::Cipher::Noekeon undef
+ Crypt::Cipher::RC2 undef
+ Crypt::Cipher::RC5 undef
+ Crypt::Cipher::RC6 undef
+ Crypt::Cipher::SAFERP undef
+ Crypt::Cipher::SAFER_K128 undef
+ Crypt::Cipher::SAFER_K64 undef
+ Crypt::Cipher::SAFER_SK128 undef
+ Crypt::Cipher::SAFER_SK64 undef
+ Crypt::Cipher::SEED undef
+ Crypt::Cipher::Skipjack undef
+ Crypt::Cipher::Twofish undef
+ Crypt::Cipher::XTEA undef
+ Crypt::Digest undef
+ Crypt::Digest::CHAES undef
+ Crypt::Digest::MD2 undef
+ Crypt::Digest::MD4 undef
+ Crypt::Digest::MD5 undef
+ Crypt::Digest::RIPEMD128 undef
+ Crypt::Digest::RIPEMD160 undef
+ Crypt::Digest::RIPEMD256 undef
+ Crypt::Digest::RIPEMD320 undef
+ Crypt::Digest::SHA1 undef
+ Crypt::Digest::SHA224 undef
+ Crypt::Digest::SHA256 undef
+ Crypt::Digest::SHA384 undef
+ Crypt::Digest::SHA512 undef
+ Crypt::Digest::SHA512_224 undef
+ Crypt::Digest::SHA512_256 undef
+ Crypt::Digest::Tiger192 undef
+ Crypt::Digest::Whirlpool undef
+ Crypt::KeyDerivation undef
+ Crypt::Mac undef
+ Crypt::Mac::F9 undef
+ Crypt::Mac::HMAC undef
+ Crypt::Mac::OMAC undef
+ Crypt::Mac::PMAC undef
+ Crypt::Mac::Pelican undef
+ Crypt::Mac::XCBC undef
+ Crypt::Misc undef
+ Crypt::Mode undef
+ Crypt::Mode::CBC undef
+ Crypt::Mode::CFB undef
+ Crypt::Mode::CTR undef
+ Crypt::Mode::ECB undef
+ Crypt::Mode::OFB undef
+ Crypt::PK undef
+ Crypt::PK::DH undef
+ Crypt::PK::DSA undef
+ Crypt::PK::ECC undef
+ Crypt::PK::RSA undef
+ Crypt::PRNG undef
+ Crypt::PRNG::Fortuna undef
+ Crypt::PRNG::RC4 undef
+ Crypt::PRNG::Sober128 undef
+ Crypt::PRNG::Yarrow undef
+ CryptX 0.039
+ Math::BigInt::LTM undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ perl 5.006
+ DBD-SQLite-1.50
+ pathname: I/IS/ISHIGAKI/DBD-SQLite-1.50.tar.gz
+ provides:
+ DBD::SQLite 1.50
+ DBD::SQLite::Constants undef
+ DBD::SQLite::VirtualTable 1.50
+ DBD::SQLite::VirtualTable::Cursor 1.50
+ DBD::SQLite::VirtualTable::FileContent undef
+ DBD::SQLite::VirtualTable::FileContent::Cursor undef
+ DBD::SQLite::VirtualTable::PerlData undef
+ DBD::SQLite::VirtualTable::PerlData::Cursor undef
+ requirements:
+ DBI 1.57
+ ExtUtils::MakeMaker 0
+ File::Spec 0.82
+ Test::Builder 0.86
+ Test::More 0.47
+ Tie::Hash 0
+ perl 5.006
+ DBD-mysql-4.022
+ pathname: C/CA/CAPTTOFU/DBD-mysql-4.022.tar.gz
+ provides:
+ Bundle::DBD::mysql 4.004
+ DBD::mysql 4.022
+ DBD::mysql::GetInfo undef
+ DBD::mysql::db 4.022
+ DBD::mysql::dr 4.022
+ DBD::mysql::st 4.022
+ requirements:
+ DBI 1.08
+ Data::Dumper 0
+ Test::More 0
+ perl 5.005
+ DBI-1.622
+ pathname: T/TI/TIMB/DBI-1.622.tar.gz
+ provides:
+ Bundle::DBI 12.008695
+ DBD::DBM 0.06
+ DBD::DBM::Statement 0.06
+ DBD::DBM::Table 0.06
+ DBD::DBM::db 0.06
+ DBD::DBM::dr 0.06
+ DBD::DBM::st 0.06
+ DBD::ExampleP 12.014310
+ DBD::ExampleP::db 12.014310
+ DBD::ExampleP::dr 12.014310
+ DBD::ExampleP::st 12.014310
+ DBD::File 0.40
+ DBD::File::Statement 0.40
+ DBD::File::Table 0.40
+ DBD::File::TieMeta 0.40
+ DBD::File::TieTables 0.40
+ DBD::File::db 0.40
+ DBD::File::dr 0.40
+ DBD::File::st 0.40
+ DBD::Gofer 0.015326
+ DBD::Gofer::Policy::Base 0.010087
+ DBD::Gofer::Policy::classic 0.010087
+ DBD::Gofer::Policy::pedantic 0.010087
+ DBD::Gofer::Policy::rush 0.010087
+ DBD::Gofer::Transport::Base 0.014120
+ DBD::Gofer::Transport::corostream undef
+ DBD::Gofer::Transport::null 0.010087
+ DBD::Gofer::Transport::pipeone 0.010087
+ DBD::Gofer::Transport::stream 0.014598
+ DBD::Gofer::db 0.015326
+ DBD::Gofer::dr 0.015326
+ DBD::Gofer::st 0.015326
+ DBD::NullP 12.014714
+ DBD::NullP::db 12.014714
+ DBD::NullP::dr 12.014714
+ DBD::NullP::st 12.014714
+ DBD::Proxy 0.2004
+ DBD::Proxy::RPC::PlClient 0.2004
+ DBD::Proxy::db 0.2004
+ DBD::Proxy::dr 0.2004
+ DBD::Proxy::st 0.2004
+ DBD::Sponge 12.010002
+ DBD::Sponge::db 12.010002
+ DBD::Sponge::dr 12.010002
+ DBD::Sponge::st 12.010002
+ DBDI 12.015128
+ DBI 1.622
+ DBI::Const::GetInfo::ANSI 2.008696
+ DBI::Const::GetInfo::ODBC 2.011373
+ DBI::Const::GetInfoReturn 2.008696
+ DBI::Const::GetInfoType 2.008696
+ DBI::DBD 12.015128
+ DBI::DBD::Metadata 2.014213
+ DBI::DBD::SqlEngine 0.03
+ DBI::DBD::SqlEngine::Statement 0.03
+ DBI::DBD::SqlEngine::Table 0.03
+ DBI::DBD::SqlEngine::db 0.03
+ DBI::DBD::SqlEngine::dr 0.03
+ DBI::DBD::SqlEngine::st 0.03
+ DBI::FAQ 1.014934
+ DBI::Gofer::Execute 0.014282
+ DBI::Gofer::Request 0.012536
+ DBI::Gofer::Response 0.011565
+ DBI::Gofer::Serializer::Base 0.009949
+ DBI::Gofer::Serializer::DataDumper 0.009949
+ DBI::Gofer::Serializer::Storable 0.009949
+ DBI::Gofer::Transport::Base 0.012536
+ DBI::Gofer::Transport::pipeone 0.012536
+ DBI::Gofer::Transport::stream 0.012536
+ DBI::Profile 2.015064
+ DBI::ProfileData 2.010007
+ DBI::ProfileDumper 2.015324
+ DBI::ProfileDumper::Apache 2.014120
+ DBI::ProfileSubs 0.009395
+ DBI::ProxyServer 0.3005
+ DBI::ProxyServer::db 0.3005
+ DBI::ProxyServer::dr 0.3005
+ DBI::ProxyServer::st 0.3005
+ DBI::SQL::Nano 1.014600
+ DBI::SQL::Nano::Statement_ 1.014600
+ DBI::SQL::Nano::Table_ 1.014600
+ DBI::Util::CacheMemory 0.010314
+ DBI::Util::_accessor 0.009478
+ DBI::common 1.622
+ requirements:
+ ExtUtils::MakeMaker 6.48
+ Test::Simple 0.90
+ perl 5.008
+ Daemon-Generic-0.84
+ pathname: M/MU/MUIR/modules/Daemon-Generic-0.84.tar.gz
+ provides:
+ Daemon::Generic 0.84
+ Daemon::Generic::AnyEvent 0.84
+ Daemon::Generic::Event 0.84
+ Daemon::Generic::While1 0.84
+ requirements:
+ AnyEvent 0
+ Cwd 0
+ Eval::LineNumbers 0
+ Event 0
+ ExtUtils::MakeMaker 0
+ File::Basename 0
+ File::Flock 2013.06
+ File::Slurp 0
+ Getopt::Long 0
+ Text::Wrap 0
+ Time::HiRes 0
+ Data-Buffer-0.04
+ pathname: B/BT/BTROTT/Data-Buffer-0.04.tar.gz
+ provides:
+ Data::Buffer 0.04
+ requirements:
+ ExtUtils::MakeMaker 0
+ Data-ObjectDriver-0.14
+ pathname: S/SI/SIXAPART/Data-ObjectDriver-0.14.tar.gz
+ provides:
+ Data::ObjectDriver 0.14
+ Data::ObjectDriver::BaseObject undef
+ Data::ObjectDriver::BaseView undef
+ Data::ObjectDriver::Driver::BaseCache undef
+ Data::ObjectDriver::Driver::Cache::Apache undef
+ Data::ObjectDriver::Driver::Cache::Cache undef
+ Data::ObjectDriver::Driver::Cache::Memcached undef
+ Data::ObjectDriver::Driver::Cache::RAM undef
+ Data::ObjectDriver::Driver::DBD undef
+ Data::ObjectDriver::Driver::DBD::Oracle undef
+ Data::ObjectDriver::Driver::DBD::Oracle::db undef
+ Data::ObjectDriver::Driver::DBD::Pg undef
+ Data::ObjectDriver::Driver::DBD::SQLite undef
+ Data::ObjectDriver::Driver::DBD::mysql undef
+ Data::ObjectDriver::Driver::DBI undef
+ Data::ObjectDriver::Driver::GearmanDBI undef
+ Data::ObjectDriver::Driver::MultiPartition undef
+ Data::ObjectDriver::Driver::Multiplexer undef
+ Data::ObjectDriver::Driver::Partition undef
+ Data::ObjectDriver::Driver::SimplePartition undef
+ Data::ObjectDriver::Errors undef
+ Data::ObjectDriver::Iterator undef
+ Data::ObjectDriver::Profiler undef
+ Data::ObjectDriver::ResultSet undef
+ Data::ObjectDriver::SQL undef
+ Data::ObjectDriver::SQL::Oracle undef
+ requirements:
+ Class::Accessor::Fast 0
+ Class::Data::Inheritable 0
+ Class::Trigger 0
+ DBI 0
+ ExtUtils::MakeMaker 6.59
+ List::Util 0
+ Module::Build::Tiny 0.035
+ Test::Exception 0
+ perl 5.006001
+ Data-OptList-0.110
+ pathname: R/RJ/RJBS/Data-OptList-0.110.tar.gz
+ provides:
+ Data::OptList 0.110
+ requirements:
+ ExtUtils::MakeMaker 0
+ List::Util 0
+ Params::Util 0
+ Sub::Install 0.921
+ strict 0
+ warnings 0
+ Data-Structure-Util-0.16
+ pathname: A/AN/ANDYA/Data-Structure-Util-0.16.tar.gz
+ provides:
+ Data::Structure::Util 0.16
+ requirements:
+ Digest::MD5 0
+ ExtUtils::MakeMaker 0
+ Scalar::Util 1.01
+ Storable 0
+ perl 5.008
+ DateTime-1.03
+ pathname: D/DR/DROLSKY/DateTime-1.03.tar.gz
+ provides:
+ DateTime 1.03
+ DateTime::Duration 1.03
+ DateTime::Helpers 1.03
+ DateTime::Infinite 1.03
+ DateTime::Infinite::Future 1.03
+ DateTime::Infinite::Past 1.03
+ DateTime::LeapSecond 1.03
+ requirements:
+ Carp 0
+ DateTime::Locale 0.41
+ DateTime::TimeZone 1.09
+ ExtUtils::CBuilder 0
+ Module::Build 0.3601
+ POSIX 0
+ Params::Validate 0.76
+ Scalar::Util 0
+ Try::Tiny 0
+ XSLoader 0
+ base 0
+ constant 0
+ integer 0
+ overload 0
+ perl 5.008001
+ strict 0
+ vars 0
+ warnings 0
+ DateTime-Locale-0.45
+ pathname: D/DR/DROLSKY/DateTime-Locale-0.45.tar.gz
+ provides:
+ DateTime::Locale 0.45
+ DateTime::Locale::Base undef
+ DateTime::Locale::Catalog undef
+ DateTime::Locale::aa undef
+ DateTime::Locale::aa_DJ undef
+ DateTime::Locale::aa_ER undef
+ DateTime::Locale::aa_ER_SAAHO undef
+ DateTime::Locale::aa_ET undef
+ DateTime::Locale::af undef
+ DateTime::Locale::af_NA undef
+ DateTime::Locale::af_ZA undef
+ DateTime::Locale::ak undef
+ DateTime::Locale::ak_GH undef
+ DateTime::Locale::am undef
+ DateTime::Locale::am_ET undef
+ DateTime::Locale::ar undef
+ DateTime::Locale::ar_AE undef
+ DateTime::Locale::ar_BH undef
+ DateTime::Locale::ar_DZ undef
+ DateTime::Locale::ar_EG undef
+ DateTime::Locale::ar_IQ undef
+ DateTime::Locale::ar_JO undef
+ DateTime::Locale::ar_KW undef
+ DateTime::Locale::ar_LB undef
+ DateTime::Locale::ar_LY undef
+ DateTime::Locale::ar_MA undef
+ DateTime::Locale::ar_OM undef
+ DateTime::Locale::ar_QA undef
+ DateTime::Locale::ar_SA undef
+ DateTime::Locale::ar_SD undef
+ DateTime::Locale::ar_SY undef
+ DateTime::Locale::ar_TN undef
+ DateTime::Locale::ar_YE undef
+ DateTime::Locale::as undef
+ DateTime::Locale::as_IN undef
+ DateTime::Locale::az undef
+ DateTime::Locale::az_AZ undef
+ DateTime::Locale::az_Cyrl undef
+ DateTime::Locale::az_Cyrl_AZ undef
+ DateTime::Locale::az_Latn undef
+ DateTime::Locale::az_Latn_AZ undef
+ DateTime::Locale::be undef
+ DateTime::Locale::be_BY undef
+ DateTime::Locale::bg undef
+ DateTime::Locale::bg_BG undef
+ DateTime::Locale::bn undef
+ DateTime::Locale::bn_BD undef
+ DateTime::Locale::bn_IN undef
+ DateTime::Locale::bo undef
+ DateTime::Locale::bo_CN undef
+ DateTime::Locale::bo_IN undef
+ DateTime::Locale::bs undef
+ DateTime::Locale::bs_BA undef
+ DateTime::Locale::byn undef
+ DateTime::Locale::byn_ER undef
+ DateTime::Locale::ca undef
+ DateTime::Locale::ca_ES undef
+ DateTime::Locale::cch undef
+ DateTime::Locale::cch_NG undef
+ DateTime::Locale::cop undef
+ DateTime::Locale::cs undef
+ DateTime::Locale::cs_CZ undef
+ DateTime::Locale::cy undef
+ DateTime::Locale::cy_GB undef
+ DateTime::Locale::da undef
+ DateTime::Locale::da_DK undef
+ DateTime::Locale::de undef
+ DateTime::Locale::de_AT undef
+ DateTime::Locale::de_BE undef
+ DateTime::Locale::de_CH undef
+ DateTime::Locale::de_DE undef
+ DateTime::Locale::de_LI undef
+ DateTime::Locale::de_LU undef
+ DateTime::Locale::dv undef
+ DateTime::Locale::dv_MV undef
+ DateTime::Locale::dz undef
+ DateTime::Locale::dz_BT undef
+ DateTime::Locale::ee undef
+ DateTime::Locale::ee_GH undef
+ DateTime::Locale::ee_TG undef
+ DateTime::Locale::el undef
+ DateTime::Locale::el_CY undef
+ DateTime::Locale::el_GR undef
+ DateTime::Locale::el_POLYTON undef
+ DateTime::Locale::en undef
+ DateTime::Locale::en_AS undef
+ DateTime::Locale::en_AU undef
+ DateTime::Locale::en_BE undef
+ DateTime::Locale::en_BW undef
+ DateTime::Locale::en_BZ undef
+ DateTime::Locale::en_CA undef
+ DateTime::Locale::en_Dsrt undef
+ DateTime::Locale::en_Dsrt_US undef
+ DateTime::Locale::en_GB undef
+ DateTime::Locale::en_GU undef
+ DateTime::Locale::en_HK undef
+ DateTime::Locale::en_IE undef
+ DateTime::Locale::en_IN undef
+ DateTime::Locale::en_JM undef
+ DateTime::Locale::en_MH undef
+ DateTime::Locale::en_MP undef
+ DateTime::Locale::en_MT undef
+ DateTime::Locale::en_NA undef
+ DateTime::Locale::en_NZ undef
+ DateTime::Locale::en_PH undef
+ DateTime::Locale::en_PK undef
+ DateTime::Locale::en_SG undef
+ DateTime::Locale::en_Shaw undef
+ DateTime::Locale::en_TT undef
+ DateTime::Locale::en_UM undef
+ DateTime::Locale::en_US undef
+ DateTime::Locale::en_US_POSIX undef
+ DateTime::Locale::en_VI undef
+ DateTime::Locale::en_ZA undef
+ DateTime::Locale::en_ZW undef
+ DateTime::Locale::eo undef
+ DateTime::Locale::es undef
+ DateTime::Locale::es_AR undef
+ DateTime::Locale::es_BO undef
+ DateTime::Locale::es_CL undef
+ DateTime::Locale::es_CO undef
+ DateTime::Locale::es_CR undef
+ DateTime::Locale::es_DO undef
+ DateTime::Locale::es_EC undef
+ DateTime::Locale::es_ES undef
+ DateTime::Locale::es_GT undef
+ DateTime::Locale::es_HN undef
+ DateTime::Locale::es_MX undef
+ DateTime::Locale::es_NI undef
+ DateTime::Locale::es_PA undef
+ DateTime::Locale::es_PE undef
+ DateTime::Locale::es_PR undef
+ DateTime::Locale::es_PY undef
+ DateTime::Locale::es_SV undef
+ DateTime::Locale::es_US undef
+ DateTime::Locale::es_UY undef
+ DateTime::Locale::es_VE undef
+ DateTime::Locale::et undef
+ DateTime::Locale::et_EE undef
+ DateTime::Locale::eu undef
+ DateTime::Locale::eu_ES undef
+ DateTime::Locale::fa undef
+ DateTime::Locale::fa_AF undef
+ DateTime::Locale::fa_IR undef
+ DateTime::Locale::fi undef
+ DateTime::Locale::fi_FI undef
+ DateTime::Locale::fil undef
+ DateTime::Locale::fil_PH undef
+ DateTime::Locale::fo undef
+ DateTime::Locale::fo_FO undef
+ DateTime::Locale::fr undef
+ DateTime::Locale::fr_BE undef
+ DateTime::Locale::fr_CA undef
+ DateTime::Locale::fr_CH undef
+ DateTime::Locale::fr_FR undef
+ DateTime::Locale::fr_LU undef
+ DateTime::Locale::fr_MC undef
+ DateTime::Locale::fr_SN undef
+ DateTime::Locale::fur undef
+ DateTime::Locale::fur_IT undef
+ DateTime::Locale::ga undef
+ DateTime::Locale::ga_IE undef
+ DateTime::Locale::gaa undef
+ DateTime::Locale::gaa_GH undef
+ DateTime::Locale::gez undef
+ DateTime::Locale::gez_ER undef
+ DateTime::Locale::gez_ET undef
+ DateTime::Locale::gl undef
+ DateTime::Locale::gl_ES undef
+ DateTime::Locale::gsw undef
+ DateTime::Locale::gsw_CH undef
+ DateTime::Locale::gu undef
+ DateTime::Locale::gu_IN undef
+ DateTime::Locale::gv undef
+ DateTime::Locale::gv_GB undef
+ DateTime::Locale::ha undef
+ DateTime::Locale::ha_Arab undef
+ DateTime::Locale::ha_Arab_NG undef
+ DateTime::Locale::ha_Arab_SD undef
+ DateTime::Locale::ha_GH undef
+ DateTime::Locale::ha_Latn undef
+ DateTime::Locale::ha_Latn_GH undef
+ DateTime::Locale::ha_Latn_NE undef
+ DateTime::Locale::ha_Latn_NG undef
+ DateTime::Locale::ha_NE undef
+ DateTime::Locale::ha_NG undef
+ DateTime::Locale::ha_SD undef
+ DateTime::Locale::haw undef
+ DateTime::Locale::haw_US undef
+ DateTime::Locale::he undef
+ DateTime::Locale::he_IL undef
+ DateTime::Locale::hi undef
+ DateTime::Locale::hi_IN undef
+ DateTime::Locale::hr undef
+ DateTime::Locale::hr_HR undef
+ DateTime::Locale::hu undef
+ DateTime::Locale::hu_HU undef
+ DateTime::Locale::hy undef
+ DateTime::Locale::hy_AM undef
+ DateTime::Locale::hy_AM_REVISED undef
+ DateTime::Locale::ia undef
+ DateTime::Locale::id undef
+ DateTime::Locale::id_ID undef
+ DateTime::Locale::ig undef
+ DateTime::Locale::ig_NG undef
+ DateTime::Locale::ii undef
+ DateTime::Locale::ii_CN undef
+ DateTime::Locale::is undef
+ DateTime::Locale::is_IS undef
+ DateTime::Locale::it undef
+ DateTime::Locale::it_CH undef
+ DateTime::Locale::it_IT undef
+ DateTime::Locale::iu undef
+ DateTime::Locale::ja undef
+ DateTime::Locale::ja_JP undef
+ DateTime::Locale::ka undef
+ DateTime::Locale::ka_GE undef
+ DateTime::Locale::kaj undef
+ DateTime::Locale::kaj_NG undef
+ DateTime::Locale::kam undef
+ DateTime::Locale::kam_KE undef
+ DateTime::Locale::kcg undef
+ DateTime::Locale::kcg_NG undef
+ DateTime::Locale::kfo undef
+ DateTime::Locale::kfo_CI undef
+ DateTime::Locale::kk undef
+ DateTime::Locale::kk_Cyrl undef
+ DateTime::Locale::kk_Cyrl_KZ undef
+ DateTime::Locale::kk_KZ undef
+ DateTime::Locale::kl undef
+ DateTime::Locale::kl_GL undef
+ DateTime::Locale::km undef
+ DateTime::Locale::km_KH undef
+ DateTime::Locale::kn undef
+ DateTime::Locale::kn_IN undef
+ DateTime::Locale::ko undef
+ DateTime::Locale::ko_KR undef
+ DateTime::Locale::kok undef
+ DateTime::Locale::kok_IN undef
+ DateTime::Locale::kpe undef
+ DateTime::Locale::kpe_GN undef
+ DateTime::Locale::kpe_LR undef
+ DateTime::Locale::ku undef
+ DateTime::Locale::ku_Arab undef
+ DateTime::Locale::ku_Arab_IQ undef
+ DateTime::Locale::ku_Arab_IR undef
+ DateTime::Locale::ku_Arab_SY undef
+ DateTime::Locale::ku_IQ undef
+ DateTime::Locale::ku_IR undef
+ DateTime::Locale::ku_Latn undef
+ DateTime::Locale::ku_Latn_TR undef
+ DateTime::Locale::ku_SY undef
+ DateTime::Locale::ku_TR undef
+ DateTime::Locale::kw undef
+ DateTime::Locale::kw_GB undef
+ DateTime::Locale::ky undef
+ DateTime::Locale::ky_KG undef
+ DateTime::Locale::ln undef
+ DateTime::Locale::ln_CD undef
+ DateTime::Locale::ln_CG undef
+ DateTime::Locale::lo undef
+ DateTime::Locale::lo_LA undef
+ DateTime::Locale::lt undef
+ DateTime::Locale::lt_LT undef
+ DateTime::Locale::lv undef
+ DateTime::Locale::lv_LV undef
+ DateTime::Locale::mk undef
+ DateTime::Locale::mk_MK undef
+ DateTime::Locale::ml undef
+ DateTime::Locale::ml_IN undef
+ DateTime::Locale::mn undef
+ DateTime::Locale::mn_CN undef
+ DateTime::Locale::mn_Cyrl undef
+ DateTime::Locale::mn_Cyrl_MN undef
+ DateTime::Locale::mn_MN undef
+ DateTime::Locale::mn_Mong undef
+ DateTime::Locale::mn_Mong_CN undef
+ DateTime::Locale::mo undef
+ DateTime::Locale::mr undef
+ DateTime::Locale::mr_IN undef
+ DateTime::Locale::ms undef
+ DateTime::Locale::ms_BN undef
+ DateTime::Locale::ms_MY undef
+ DateTime::Locale::mt undef
+ DateTime::Locale::mt_MT undef
+ DateTime::Locale::my undef
+ DateTime::Locale::my_MM undef
+ DateTime::Locale::nb undef
+ DateTime::Locale::nb_NO undef
+ DateTime::Locale::nds undef
+ DateTime::Locale::nds_DE undef
+ DateTime::Locale::ne undef
+ DateTime::Locale::ne_IN undef
+ DateTime::Locale::ne_NP undef
+ DateTime::Locale::nl undef
+ DateTime::Locale::nl_BE undef
+ DateTime::Locale::nl_NL undef
+ DateTime::Locale::nn undef
+ DateTime::Locale::nn_NO undef
+ DateTime::Locale::no undef
+ DateTime::Locale::nr undef
+ DateTime::Locale::nr_ZA undef
+ DateTime::Locale::nso undef
+ DateTime::Locale::nso_ZA undef
+ DateTime::Locale::ny undef
+ DateTime::Locale::ny_MW undef
+ DateTime::Locale::oc undef
+ DateTime::Locale::oc_FR undef
+ DateTime::Locale::om undef
+ DateTime::Locale::om_ET undef
+ DateTime::Locale::om_KE undef
+ DateTime::Locale::or undef
+ DateTime::Locale::or_IN undef
+ DateTime::Locale::pa undef
+ DateTime::Locale::pa_Arab undef
+ DateTime::Locale::pa_Arab_PK undef
+ DateTime::Locale::pa_Guru undef
+ DateTime::Locale::pa_Guru_IN undef
+ DateTime::Locale::pa_IN undef
+ DateTime::Locale::pa_PK undef
+ DateTime::Locale::pl undef
+ DateTime::Locale::pl_PL undef
+ DateTime::Locale::ps undef
+ DateTime::Locale::ps_AF undef
+ DateTime::Locale::pt undef
+ DateTime::Locale::pt_BR undef
+ DateTime::Locale::pt_PT undef
+ DateTime::Locale::ro undef
+ DateTime::Locale::ro_MD undef
+ DateTime::Locale::ro_RO undef
+ DateTime::Locale::root undef
+ DateTime::Locale::ru undef
+ DateTime::Locale::ru_RU undef
+ DateTime::Locale::ru_UA undef
+ DateTime::Locale::rw undef
+ DateTime::Locale::rw_RW undef
+ DateTime::Locale::sa undef
+ DateTime::Locale::sa_IN undef
+ DateTime::Locale::se undef
+ DateTime::Locale::se_FI undef
+ DateTime::Locale::se_NO undef
+ DateTime::Locale::sh undef
+ DateTime::Locale::sh_BA undef
+ DateTime::Locale::sh_CS undef
+ DateTime::Locale::sh_YU undef
+ DateTime::Locale::si undef
+ DateTime::Locale::si_LK undef
+ DateTime::Locale::sid undef
+ DateTime::Locale::sid_ET undef
+ DateTime::Locale::sk undef
+ DateTime::Locale::sk_SK undef
+ DateTime::Locale::sl undef
+ DateTime::Locale::sl_SI undef
+ DateTime::Locale::so undef
+ DateTime::Locale::so_DJ undef
+ DateTime::Locale::so_ET undef
+ DateTime::Locale::so_KE undef
+ DateTime::Locale::so_SO undef
+ DateTime::Locale::sq undef
+ DateTime::Locale::sq_AL undef
+ DateTime::Locale::sr undef
+ DateTime::Locale::sr_BA undef
+ DateTime::Locale::sr_CS undef
+ DateTime::Locale::sr_Cyrl undef
+ DateTime::Locale::sr_Cyrl_BA undef
+ DateTime::Locale::sr_Cyrl_CS undef
+ DateTime::Locale::sr_Cyrl_ME undef
+ DateTime::Locale::sr_Cyrl_RS undef
+ DateTime::Locale::sr_Cyrl_YU undef
+ DateTime::Locale::sr_Latn undef
+ DateTime::Locale::sr_Latn_BA undef
+ DateTime::Locale::sr_Latn_CS undef
+ DateTime::Locale::sr_Latn_ME undef
+ DateTime::Locale::sr_Latn_RS undef
+ DateTime::Locale::sr_Latn_YU undef
+ DateTime::Locale::sr_ME undef
+ DateTime::Locale::sr_RS undef
+ DateTime::Locale::sr_YU undef
+ DateTime::Locale::ss undef
+ DateTime::Locale::ss_SZ undef
+ DateTime::Locale::ss_ZA undef
+ DateTime::Locale::st undef
+ DateTime::Locale::st_LS undef
+ DateTime::Locale::st_ZA undef
+ DateTime::Locale::sv undef
+ DateTime::Locale::sv_FI undef
+ DateTime::Locale::sv_SE undef
+ DateTime::Locale::sw undef
+ DateTime::Locale::sw_KE undef
+ DateTime::Locale::sw_TZ undef
+ DateTime::Locale::syr undef
+ DateTime::Locale::syr_SY undef
+ DateTime::Locale::ta undef
+ DateTime::Locale::ta_IN undef
+ DateTime::Locale::te undef
+ DateTime::Locale::te_IN undef
+ DateTime::Locale::tg undef
+ DateTime::Locale::tg_Cyrl undef
+ DateTime::Locale::tg_Cyrl_TJ undef
+ DateTime::Locale::tg_TJ undef
+ DateTime::Locale::th undef
+ DateTime::Locale::th_TH undef
+ DateTime::Locale::ti undef
+ DateTime::Locale::ti_ER undef
+ DateTime::Locale::ti_ET undef
+ DateTime::Locale::tig undef
+ DateTime::Locale::tig_ER undef
+ DateTime::Locale::tl undef
+ DateTime::Locale::tn undef
+ DateTime::Locale::tn_ZA undef
+ DateTime::Locale::to undef
+ DateTime::Locale::to_TO undef
+ DateTime::Locale::tr undef
+ DateTime::Locale::tr_TR undef
+ DateTime::Locale::trv undef
+ DateTime::Locale::trv_TW undef
+ DateTime::Locale::ts undef
+ DateTime::Locale::ts_ZA undef
+ DateTime::Locale::tt undef
+ DateTime::Locale::tt_RU undef
+ DateTime::Locale::ug undef
+ DateTime::Locale::ug_Arab undef
+ DateTime::Locale::ug_Arab_CN undef
+ DateTime::Locale::ug_CN undef
+ DateTime::Locale::uk undef
+ DateTime::Locale::uk_UA undef
+ DateTime::Locale::ur undef
+ DateTime::Locale::ur_IN undef
+ DateTime::Locale::ur_PK undef
+ DateTime::Locale::uz undef
+ DateTime::Locale::uz_AF undef
+ DateTime::Locale::uz_Arab undef
+ DateTime::Locale::uz_Arab_AF undef
+ DateTime::Locale::uz_Cyrl undef
+ DateTime::Locale::uz_Cyrl_UZ undef
+ DateTime::Locale::uz_Latn undef
+ DateTime::Locale::uz_Latn_UZ undef
+ DateTime::Locale::uz_UZ undef
+ DateTime::Locale::ve undef
+ DateTime::Locale::ve_ZA undef
+ DateTime::Locale::vi undef
+ DateTime::Locale::vi_VN undef
+ DateTime::Locale::wal undef
+ DateTime::Locale::wal_ET undef
+ DateTime::Locale::wo undef
+ DateTime::Locale::wo_Latn undef
+ DateTime::Locale::wo_Latn_SN undef
+ DateTime::Locale::wo_SN undef
+ DateTime::Locale::xh undef
+ DateTime::Locale::xh_ZA undef
+ DateTime::Locale::yo undef
+ DateTime::Locale::yo_NG undef
+ DateTime::Locale::zh undef
+ DateTime::Locale::zh_CN undef
+ DateTime::Locale::zh_HK undef
+ DateTime::Locale::zh_Hans undef
+ DateTime::Locale::zh_Hans_CN undef
+ DateTime::Locale::zh_Hans_HK undef
+ DateTime::Locale::zh_Hans_MO undef
+ DateTime::Locale::zh_Hans_SG undef
+ DateTime::Locale::zh_Hant undef
+ DateTime::Locale::zh_Hant_HK undef
+ DateTime::Locale::zh_Hant_MO undef
+ DateTime::Locale::zh_Hant_TW undef
+ DateTime::Locale::zh_MO undef
+ DateTime::Locale::zh_SG undef
+ DateTime::Locale::zh_TW undef
+ DateTime::Locale::zu undef
+ DateTime::Locale::zu_ZA undef
+ requirements:
+ List::MoreUtils 0
+ Module::Build 0
+ Params::Validate 0.91
+ perl 5.006
+ DateTime-TimeZone-1.69
+ pathname: D/DR/DROLSKY/DateTime-TimeZone-1.69.tar.gz
+ provides:
+ DateTime::TimeZone 1.69
+ DateTime::TimeZone::Africa::Abidjan 1.69
+ DateTime::TimeZone::Africa::Accra 1.69
+ DateTime::TimeZone::Africa::Addis_Ababa 1.69
+ DateTime::TimeZone::Africa::Algiers 1.69
+ DateTime::TimeZone::Africa::Asmara 1.69
+ DateTime::TimeZone::Africa::Bamako 1.69
+ DateTime::TimeZone::Africa::Bangui 1.69
+ DateTime::TimeZone::Africa::Banjul 1.69
+ DateTime::TimeZone::Africa::Bissau 1.69
+ DateTime::TimeZone::Africa::Blantyre 1.69
+ DateTime::TimeZone::Africa::Brazzaville 1.69
+ DateTime::TimeZone::Africa::Bujumbura 1.69
+ DateTime::TimeZone::Africa::Cairo 1.69
+ DateTime::TimeZone::Africa::Casablanca 1.69
+ DateTime::TimeZone::Africa::Ceuta 1.69
+ DateTime::TimeZone::Africa::Conakry 1.69
+ DateTime::TimeZone::Africa::Dakar 1.69
+ DateTime::TimeZone::Africa::Dar_es_Salaam 1.69
+ DateTime::TimeZone::Africa::Djibouti 1.69
+ DateTime::TimeZone::Africa::Douala 1.69
+ DateTime::TimeZone::Africa::El_Aaiun 1.69
+ DateTime::TimeZone::Africa::Freetown 1.69
+ DateTime::TimeZone::Africa::Gaborone 1.69
+ DateTime::TimeZone::Africa::Harare 1.69
+ DateTime::TimeZone::Africa::Johannesburg 1.69
+ DateTime::TimeZone::Africa::Kampala 1.69
+ DateTime::TimeZone::Africa::Khartoum 1.69
+ DateTime::TimeZone::Africa::Kigali 1.69
+ DateTime::TimeZone::Africa::Kinshasa 1.69
+ DateTime::TimeZone::Africa::Lagos 1.69
+ DateTime::TimeZone::Africa::Libreville 1.69
+ DateTime::TimeZone::Africa::Lome 1.69
+ DateTime::TimeZone::Africa::Luanda 1.69
+ DateTime::TimeZone::Africa::Lubumbashi 1.69
+ DateTime::TimeZone::Africa::Lusaka 1.69
+ DateTime::TimeZone::Africa::Malabo 1.69
+ DateTime::TimeZone::Africa::Maputo 1.69
+ DateTime::TimeZone::Africa::Maseru 1.69
+ DateTime::TimeZone::Africa::Mbabane 1.69
+ DateTime::TimeZone::Africa::Mogadishu 1.69
+ DateTime::TimeZone::Africa::Monrovia 1.69
+ DateTime::TimeZone::Africa::Nairobi 1.69
+ DateTime::TimeZone::Africa::Ndjamena 1.69
+ DateTime::TimeZone::Africa::Niamey 1.69
+ DateTime::TimeZone::Africa::Nouakchott 1.69
+ DateTime::TimeZone::Africa::Ouagadougou 1.69
+ DateTime::TimeZone::Africa::Porto_Novo 1.69
+ DateTime::TimeZone::Africa::Sao_Tome 1.69
+ DateTime::TimeZone::Africa::Tripoli 1.69
+ DateTime::TimeZone::Africa::Tunis 1.69
+ DateTime::TimeZone::Africa::Windhoek 1.69
+ DateTime::TimeZone::America::Adak 1.69
+ DateTime::TimeZone::America::Anchorage 1.69
+ DateTime::TimeZone::America::Antigua 1.69
+ DateTime::TimeZone::America::Araguaina 1.69
+ DateTime::TimeZone::America::Argentina::Buenos_Aires 1.69
+ DateTime::TimeZone::America::Argentina::Catamarca 1.69
+ DateTime::TimeZone::America::Argentina::Cordoba 1.69
+ DateTime::TimeZone::America::Argentina::Jujuy 1.69
+ DateTime::TimeZone::America::Argentina::La_Rioja 1.69
+ DateTime::TimeZone::America::Argentina::Mendoza 1.69
+ DateTime::TimeZone::America::Argentina::Rio_Gallegos 1.69
+ DateTime::TimeZone::America::Argentina::Salta 1.69
+ DateTime::TimeZone::America::Argentina::San_Juan 1.69
+ DateTime::TimeZone::America::Argentina::San_Luis 1.69
+ DateTime::TimeZone::America::Argentina::Tucuman 1.69
+ DateTime::TimeZone::America::Argentina::Ushuaia 1.69
+ DateTime::TimeZone::America::Asuncion 1.69
+ DateTime::TimeZone::America::Atikokan 1.69
+ DateTime::TimeZone::America::Bahia 1.69
+ DateTime::TimeZone::America::Bahia_Banderas 1.69
+ DateTime::TimeZone::America::Barbados 1.69
+ DateTime::TimeZone::America::Belem 1.69
+ DateTime::TimeZone::America::Belize 1.69
+ DateTime::TimeZone::America::Blanc_Sablon 1.69
+ DateTime::TimeZone::America::Boa_Vista 1.69
+ DateTime::TimeZone::America::Bogota 1.69
+ DateTime::TimeZone::America::Boise 1.69
+ DateTime::TimeZone::America::Cambridge_Bay 1.69
+ DateTime::TimeZone::America::Campo_Grande 1.69
+ DateTime::TimeZone::America::Cancun 1.69
+ DateTime::TimeZone::America::Caracas 1.69
+ DateTime::TimeZone::America::Cayenne 1.69
+ DateTime::TimeZone::America::Cayman 1.69
+ DateTime::TimeZone::America::Chicago 1.69
+ DateTime::TimeZone::America::Chihuahua 1.69
+ DateTime::TimeZone::America::Costa_Rica 1.69
+ DateTime::TimeZone::America::Creston 1.69
+ DateTime::TimeZone::America::Cuiaba 1.69
+ DateTime::TimeZone::America::Curacao 1.69
+ DateTime::TimeZone::America::Danmarkshavn 1.69
+ DateTime::TimeZone::America::Dawson 1.69
+ DateTime::TimeZone::America::Dawson_Creek 1.69
+ DateTime::TimeZone::America::Denver 1.69
+ DateTime::TimeZone::America::Detroit 1.69
+ DateTime::TimeZone::America::Edmonton 1.69
+ DateTime::TimeZone::America::Eirunepe 1.69
+ DateTime::TimeZone::America::El_Salvador 1.69
+ DateTime::TimeZone::America::Fortaleza 1.69
+ DateTime::TimeZone::America::Glace_Bay 1.69
+ DateTime::TimeZone::America::Godthab 1.69
+ DateTime::TimeZone::America::Goose_Bay 1.69
+ DateTime::TimeZone::America::Grand_Turk 1.69
+ DateTime::TimeZone::America::Guatemala 1.69
+ DateTime::TimeZone::America::Guayaquil 1.69
+ DateTime::TimeZone::America::Guyana 1.69
+ DateTime::TimeZone::America::Halifax 1.69
+ DateTime::TimeZone::America::Havana 1.69
+ DateTime::TimeZone::America::Hermosillo 1.69
+ DateTime::TimeZone::America::Indiana::Indianapolis 1.69
+ DateTime::TimeZone::America::Indiana::Knox 1.69
+ DateTime::TimeZone::America::Indiana::Marengo 1.69
+ DateTime::TimeZone::America::Indiana::Petersburg 1.69
+ DateTime::TimeZone::America::Indiana::Tell_City 1.69
+ DateTime::TimeZone::America::Indiana::Vevay 1.69
+ DateTime::TimeZone::America::Indiana::Vincennes 1.69
+ DateTime::TimeZone::America::Indiana::Winamac 1.69
+ DateTime::TimeZone::America::Inuvik 1.69
+ DateTime::TimeZone::America::Iqaluit 1.69
+ DateTime::TimeZone::America::Jamaica 1.69
+ DateTime::TimeZone::America::Juneau 1.69
+ DateTime::TimeZone::America::Kentucky::Louisville 1.69
+ DateTime::TimeZone::America::Kentucky::Monticello 1.69
+ DateTime::TimeZone::America::La_Paz 1.69
+ DateTime::TimeZone::America::Lima 1.69
+ DateTime::TimeZone::America::Los_Angeles 1.69
+ DateTime::TimeZone::America::Maceio 1.69
+ DateTime::TimeZone::America::Managua 1.69
+ DateTime::TimeZone::America::Manaus 1.69
+ DateTime::TimeZone::America::Martinique 1.69
+ DateTime::TimeZone::America::Matamoros 1.69
+ DateTime::TimeZone::America::Mazatlan 1.69
+ DateTime::TimeZone::America::Menominee 1.69
+ DateTime::TimeZone::America::Merida 1.69
+ DateTime::TimeZone::America::Metlakatla 1.69
+ DateTime::TimeZone::America::Mexico_City 1.69
+ DateTime::TimeZone::America::Miquelon 1.69
+ DateTime::TimeZone::America::Moncton 1.69
+ DateTime::TimeZone::America::Monterrey 1.69
+ DateTime::TimeZone::America::Montevideo 1.69
+ DateTime::TimeZone::America::Montreal 1.69
+ DateTime::TimeZone::America::Nassau 1.69
+ DateTime::TimeZone::America::New_York 1.69
+ DateTime::TimeZone::America::Nipigon 1.69
+ DateTime::TimeZone::America::Nome 1.69
+ DateTime::TimeZone::America::Noronha 1.69
+ DateTime::TimeZone::America::North_Dakota::Beulah 1.69
+ DateTime::TimeZone::America::North_Dakota::Center 1.69
+ DateTime::TimeZone::America::North_Dakota::New_Salem 1.69
+ DateTime::TimeZone::America::Ojinaga 1.69
+ DateTime::TimeZone::America::Panama 1.69
+ DateTime::TimeZone::America::Pangnirtung 1.69
+ DateTime::TimeZone::America::Paramaribo 1.69
+ DateTime::TimeZone::America::Phoenix 1.69
+ DateTime::TimeZone::America::Port_au_Prince 1.69
+ DateTime::TimeZone::America::Port_of_Spain 1.69
+ DateTime::TimeZone::America::Porto_Velho 1.69
+ DateTime::TimeZone::America::Puerto_Rico 1.69
+ DateTime::TimeZone::America::Rainy_River 1.69
+ DateTime::TimeZone::America::Rankin_Inlet 1.69
+ DateTime::TimeZone::America::Recife 1.69
+ DateTime::TimeZone::America::Regina 1.69
+ DateTime::TimeZone::America::Resolute 1.69
+ DateTime::TimeZone::America::Rio_Branco 1.69
+ DateTime::TimeZone::America::Santa_Isabel 1.69
+ DateTime::TimeZone::America::Santarem 1.69
+ DateTime::TimeZone::America::Santiago 1.69
+ DateTime::TimeZone::America::Santo_Domingo 1.69
+ DateTime::TimeZone::America::Sao_Paulo 1.69
+ DateTime::TimeZone::America::Scoresbysund 1.69
+ DateTime::TimeZone::America::Sitka 1.69
+ DateTime::TimeZone::America::St_Johns 1.69
+ DateTime::TimeZone::America::Swift_Current 1.69
+ DateTime::TimeZone::America::Tegucigalpa 1.69
+ DateTime::TimeZone::America::Thule 1.69
+ DateTime::TimeZone::America::Thunder_Bay 1.69
+ DateTime::TimeZone::America::Tijuana 1.69
+ DateTime::TimeZone::America::Toronto 1.69
+ DateTime::TimeZone::America::Vancouver 1.69
+ DateTime::TimeZone::America::Whitehorse 1.69
+ DateTime::TimeZone::America::Winnipeg 1.69
+ DateTime::TimeZone::America::Yakutat 1.69
+ DateTime::TimeZone::America::Yellowknife 1.69
+ DateTime::TimeZone::Antarctica::Casey 1.69
+ DateTime::TimeZone::Antarctica::Davis 1.69
+ DateTime::TimeZone::Antarctica::DumontDUrville 1.69
+ DateTime::TimeZone::Antarctica::Macquarie 1.69
+ DateTime::TimeZone::Antarctica::Mawson 1.69
+ DateTime::TimeZone::Antarctica::Palmer 1.69
+ DateTime::TimeZone::Antarctica::Rothera 1.69
+ DateTime::TimeZone::Antarctica::Syowa 1.69
+ DateTime::TimeZone::Antarctica::Troll 1.69
+ DateTime::TimeZone::Antarctica::Vostok 1.69
+ DateTime::TimeZone::Asia::Aden 1.69
+ DateTime::TimeZone::Asia::Almaty 1.69
+ DateTime::TimeZone::Asia::Amman 1.69
+ DateTime::TimeZone::Asia::Anadyr 1.69
+ DateTime::TimeZone::Asia::Aqtau 1.69
+ DateTime::TimeZone::Asia::Aqtobe 1.69
+ DateTime::TimeZone::Asia::Ashgabat 1.69
+ DateTime::TimeZone::Asia::Baghdad 1.69
+ DateTime::TimeZone::Asia::Bahrain 1.69
+ DateTime::TimeZone::Asia::Baku 1.69
+ DateTime::TimeZone::Asia::Bangkok 1.69
+ DateTime::TimeZone::Asia::Beirut 1.69
+ DateTime::TimeZone::Asia::Bishkek 1.69
+ DateTime::TimeZone::Asia::Brunei 1.69
+ DateTime::TimeZone::Asia::Choibalsan 1.69
+ DateTime::TimeZone::Asia::Chongqing 1.69
+ DateTime::TimeZone::Asia::Colombo 1.69
+ DateTime::TimeZone::Asia::Damascus 1.69
+ DateTime::TimeZone::Asia::Dhaka 1.69
+ DateTime::TimeZone::Asia::Dili 1.69
+ DateTime::TimeZone::Asia::Dubai 1.69
+ DateTime::TimeZone::Asia::Dushanbe 1.69
+ DateTime::TimeZone::Asia::Gaza 1.69
+ DateTime::TimeZone::Asia::Harbin 1.69
+ DateTime::TimeZone::Asia::Hebron 1.69
+ DateTime::TimeZone::Asia::Ho_Chi_Minh 1.69
+ DateTime::TimeZone::Asia::Hong_Kong 1.69
+ DateTime::TimeZone::Asia::Hovd 1.69
+ DateTime::TimeZone::Asia::Irkutsk 1.69
+ DateTime::TimeZone::Asia::Jakarta 1.69
+ DateTime::TimeZone::Asia::Jayapura 1.69
+ DateTime::TimeZone::Asia::Jerusalem 1.69
+ DateTime::TimeZone::Asia::Kabul 1.69
+ DateTime::TimeZone::Asia::Kamchatka 1.69
+ DateTime::TimeZone::Asia::Karachi 1.69
+ DateTime::TimeZone::Asia::Kashgar 1.69
+ DateTime::TimeZone::Asia::Kathmandu 1.69
+ DateTime::TimeZone::Asia::Khandyga 1.69
+ DateTime::TimeZone::Asia::Kolkata 1.69
+ DateTime::TimeZone::Asia::Krasnoyarsk 1.69
+ DateTime::TimeZone::Asia::Kuala_Lumpur 1.69
+ DateTime::TimeZone::Asia::Kuching 1.69
+ DateTime::TimeZone::Asia::Kuwait 1.69
+ DateTime::TimeZone::Asia::Macau 1.69
+ DateTime::TimeZone::Asia::Magadan 1.69
+ DateTime::TimeZone::Asia::Makassar 1.69
+ DateTime::TimeZone::Asia::Manila 1.69
+ DateTime::TimeZone::Asia::Muscat 1.69
+ DateTime::TimeZone::Asia::Nicosia 1.69
+ DateTime::TimeZone::Asia::Novokuznetsk 1.69
+ DateTime::TimeZone::Asia::Novosibirsk 1.69
+ DateTime::TimeZone::Asia::Omsk 1.69
+ DateTime::TimeZone::Asia::Oral 1.69
+ DateTime::TimeZone::Asia::Phnom_Penh 1.69
+ DateTime::TimeZone::Asia::Pontianak 1.69
+ DateTime::TimeZone::Asia::Pyongyang 1.69
+ DateTime::TimeZone::Asia::Qatar 1.69
+ DateTime::TimeZone::Asia::Qyzylorda 1.69
+ DateTime::TimeZone::Asia::Rangoon 1.69
+ DateTime::TimeZone::Asia::Riyadh 1.69
+ DateTime::TimeZone::Asia::Sakhalin 1.69
+ DateTime::TimeZone::Asia::Samarkand 1.69
+ DateTime::TimeZone::Asia::Seoul 1.69
+ DateTime::TimeZone::Asia::Shanghai 1.69
+ DateTime::TimeZone::Asia::Singapore 1.69
+ DateTime::TimeZone::Asia::Taipei 1.69
+ DateTime::TimeZone::Asia::Tashkent 1.69
+ DateTime::TimeZone::Asia::Tbilisi 1.69
+ DateTime::TimeZone::Asia::Tehran 1.69
+ DateTime::TimeZone::Asia::Thimphu 1.69
+ DateTime::TimeZone::Asia::Tokyo 1.69
+ DateTime::TimeZone::Asia::Ulaanbaatar 1.69
+ DateTime::TimeZone::Asia::Urumqi 1.69
+ DateTime::TimeZone::Asia::Ust_Nera 1.69
+ DateTime::TimeZone::Asia::Vientiane 1.69
+ DateTime::TimeZone::Asia::Vladivostok 1.69
+ DateTime::TimeZone::Asia::Yakutsk 1.69
+ DateTime::TimeZone::Asia::Yekaterinburg 1.69
+ DateTime::TimeZone::Asia::Yerevan 1.69
+ DateTime::TimeZone::Atlantic::Azores 1.69
+ DateTime::TimeZone::Atlantic::Bermuda 1.69
+ DateTime::TimeZone::Atlantic::Canary 1.69
+ DateTime::TimeZone::Atlantic::Cape_Verde 1.69
+ DateTime::TimeZone::Atlantic::Faroe 1.69
+ DateTime::TimeZone::Atlantic::Madeira 1.69
+ DateTime::TimeZone::Atlantic::Reykjavik 1.69
+ DateTime::TimeZone::Atlantic::South_Georgia 1.69
+ DateTime::TimeZone::Atlantic::St_Helena 1.69
+ DateTime::TimeZone::Atlantic::Stanley 1.69
+ DateTime::TimeZone::Australia::Adelaide 1.69
+ DateTime::TimeZone::Australia::Brisbane 1.69
+ DateTime::TimeZone::Australia::Broken_Hill 1.69
+ DateTime::TimeZone::Australia::Currie 1.69
+ DateTime::TimeZone::Australia::Darwin 1.69
+ DateTime::TimeZone::Australia::Eucla 1.69
+ DateTime::TimeZone::Australia::Hobart 1.69
+ DateTime::TimeZone::Australia::Lindeman 1.69
+ DateTime::TimeZone::Australia::Lord_Howe 1.69
+ DateTime::TimeZone::Australia::Melbourne 1.69
+ DateTime::TimeZone::Australia::Perth 1.69
+ DateTime::TimeZone::Australia::Sydney 1.69
+ DateTime::TimeZone::CET 1.69
+ DateTime::TimeZone::CST6CDT 1.69
+ DateTime::TimeZone::Catalog 1.69
+ DateTime::TimeZone::EET 1.69
+ DateTime::TimeZone::EST 1.69
+ DateTime::TimeZone::EST5EDT 1.69
+ DateTime::TimeZone::Europe::Amsterdam 1.69
+ DateTime::TimeZone::Europe::Andorra 1.69
+ DateTime::TimeZone::Europe::Athens 1.69
+ DateTime::TimeZone::Europe::Belgrade 1.69
+ DateTime::TimeZone::Europe::Berlin 1.69
+ DateTime::TimeZone::Europe::Brussels 1.69
+ DateTime::TimeZone::Europe::Bucharest 1.69
+ DateTime::TimeZone::Europe::Budapest 1.69
+ DateTime::TimeZone::Europe::Chisinau 1.69
+ DateTime::TimeZone::Europe::Copenhagen 1.69
+ DateTime::TimeZone::Europe::Dublin 1.69
+ DateTime::TimeZone::Europe::Gibraltar 1.69
+ DateTime::TimeZone::Europe::Helsinki 1.69
+ DateTime::TimeZone::Europe::Istanbul 1.69
+ DateTime::TimeZone::Europe::Kaliningrad 1.69
+ DateTime::TimeZone::Europe::Kiev 1.69
+ DateTime::TimeZone::Europe::Lisbon 1.69
+ DateTime::TimeZone::Europe::London 1.69
+ DateTime::TimeZone::Europe::Luxembourg 1.69
+ DateTime::TimeZone::Europe::Madrid 1.69
+ DateTime::TimeZone::Europe::Malta 1.69
+ DateTime::TimeZone::Europe::Minsk 1.69
+ DateTime::TimeZone::Europe::Monaco 1.69
+ DateTime::TimeZone::Europe::Moscow 1.69
+ DateTime::TimeZone::Europe::Oslo 1.69
+ DateTime::TimeZone::Europe::Paris 1.69
+ DateTime::TimeZone::Europe::Prague 1.69
+ DateTime::TimeZone::Europe::Riga 1.69
+ DateTime::TimeZone::Europe::Rome 1.69
+ DateTime::TimeZone::Europe::Samara 1.69
+ DateTime::TimeZone::Europe::Simferopol 1.69
+ DateTime::TimeZone::Europe::Sofia 1.69
+ DateTime::TimeZone::Europe::Stockholm 1.69
+ DateTime::TimeZone::Europe::Tallinn 1.69
+ DateTime::TimeZone::Europe::Tirane 1.69
+ DateTime::TimeZone::Europe::Uzhgorod 1.69
+ DateTime::TimeZone::Europe::Vienna 1.69
+ DateTime::TimeZone::Europe::Vilnius 1.69
+ DateTime::TimeZone::Europe::Volgograd 1.69
+ DateTime::TimeZone::Europe::Warsaw 1.69
+ DateTime::TimeZone::Europe::Zaporozhye 1.69
+ DateTime::TimeZone::Europe::Zurich 1.69
+ DateTime::TimeZone::Floating 1.69
+ DateTime::TimeZone::HST 1.69
+ DateTime::TimeZone::Indian::Antananarivo 1.69
+ DateTime::TimeZone::Indian::Chagos 1.69
+ DateTime::TimeZone::Indian::Christmas 1.69
+ DateTime::TimeZone::Indian::Cocos 1.69
+ DateTime::TimeZone::Indian::Comoro 1.69
+ DateTime::TimeZone::Indian::Kerguelen 1.69
+ DateTime::TimeZone::Indian::Mahe 1.69
+ DateTime::TimeZone::Indian::Maldives 1.69
+ DateTime::TimeZone::Indian::Mauritius 1.69
+ DateTime::TimeZone::Indian::Mayotte 1.69
+ DateTime::TimeZone::Indian::Reunion 1.69
+ DateTime::TimeZone::Local 1.69
+ DateTime::TimeZone::Local::Unix 1.69
+ DateTime::TimeZone::Local::VMS 1.69
+ DateTime::TimeZone::Local::Win32 1.69
+ DateTime::TimeZone::MET 1.69
+ DateTime::TimeZone::MST 1.69
+ DateTime::TimeZone::MST7MDT 1.69
+ DateTime::TimeZone::OffsetOnly 1.69
+ DateTime::TimeZone::OlsonDB 1.69
+ DateTime::TimeZone::OlsonDB::Change 1.69
+ DateTime::TimeZone::OlsonDB::Observance 1.69
+ DateTime::TimeZone::OlsonDB::Rule 1.69
+ DateTime::TimeZone::OlsonDB::Zone 1.69
+ DateTime::TimeZone::PST8PDT 1.69
+ DateTime::TimeZone::Pacific::Apia 1.69
+ DateTime::TimeZone::Pacific::Auckland 1.69
+ DateTime::TimeZone::Pacific::Chatham 1.69
+ DateTime::TimeZone::Pacific::Chuuk 1.69
+ DateTime::TimeZone::Pacific::Easter 1.69
+ DateTime::TimeZone::Pacific::Efate 1.69
+ DateTime::TimeZone::Pacific::Enderbury 1.69
+ DateTime::TimeZone::Pacific::Fakaofo 1.69
+ DateTime::TimeZone::Pacific::Fiji 1.69
+ DateTime::TimeZone::Pacific::Funafuti 1.69
+ DateTime::TimeZone::Pacific::Galapagos 1.69
+ DateTime::TimeZone::Pacific::Gambier 1.69
+ DateTime::TimeZone::Pacific::Guadalcanal 1.69
+ DateTime::TimeZone::Pacific::Guam 1.69
+ DateTime::TimeZone::Pacific::Honolulu 1.69
+ DateTime::TimeZone::Pacific::Kiritimati 1.69
+ DateTime::TimeZone::Pacific::Kosrae 1.69
+ DateTime::TimeZone::Pacific::Kwajalein 1.69
+ DateTime::TimeZone::Pacific::Majuro 1.69
+ DateTime::TimeZone::Pacific::Marquesas 1.69
+ DateTime::TimeZone::Pacific::Midway 1.69
+ DateTime::TimeZone::Pacific::Nauru 1.69
+ DateTime::TimeZone::Pacific::Niue 1.69
+ DateTime::TimeZone::Pacific::Norfolk 1.69
+ DateTime::TimeZone::Pacific::Noumea 1.69
+ DateTime::TimeZone::Pacific::Pago_Pago 1.69
+ DateTime::TimeZone::Pacific::Palau 1.69
+ DateTime::TimeZone::Pacific::Pitcairn 1.69
+ DateTime::TimeZone::Pacific::Pohnpei 1.69
+ DateTime::TimeZone::Pacific::Port_Moresby 1.69
+ DateTime::TimeZone::Pacific::Rarotonga 1.69
+ DateTime::TimeZone::Pacific::Saipan 1.69
+ DateTime::TimeZone::Pacific::Tahiti 1.69
+ DateTime::TimeZone::Pacific::Tarawa 1.69
+ DateTime::TimeZone::Pacific::Tongatapu 1.69
+ DateTime::TimeZone::Pacific::Wake 1.69
+ DateTime::TimeZone::Pacific::Wallis 1.69
+ DateTime::TimeZone::UTC 1.69
+ DateTime::TimeZone::WET 1.69
+ requirements:
+ Class::Load 0
+ Class::Singleton 1.03
+ Cwd 3
+ ExtUtils::MakeMaker 6.30
+ File::Basename 0
+ File::Compare 0
+ File::Find 0
+ File::Spec 0
+ List::Util 0
+ Params::Validate 0.72
+ constant 0
+ parent 0
+ strict 0
+ vars 0
+ warnings 0
+ Devel-CheckLib-1.07
+ pathname: M/MA/MATTN/Devel-CheckLib-1.07.tar.gz
+ provides:
+ Devel::CheckLib 1.07
+ requirements:
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ File::Spec 0
+ File::Temp 0.16
+ IO::CaptureOutput 1.0801
+ Test::More 0.62
+ perl 5.00405
+ Devel-StackTrace-2.01
+ pathname: D/DR/DROLSKY/Devel-StackTrace-2.01.tar.gz
+ provides:
+ Devel::StackTrace 2.01
+ Devel::StackTrace::Frame 2.01
+ requirements:
+ ExtUtils::MakeMaker 0
+ File::Spec 0
+ Scalar::Util 0
+ overload 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Devel-StackTrace-AsHTML-0.15
+ pathname: M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz
+ provides:
+ Devel::StackTrace::AsHTML 0.15
+ requirements:
+ Devel::StackTrace 0
+ ExtUtils::MakeMaker 0
+ Devel-Symdump-2.17
+ pathname: A/AN/ANDK/Devel-Symdump-2.17.tar.gz
+ provides:
+ Devel::Symdump 2.17
+ Devel::Symdump::Export undef
+ requirements:
+ Compress::Zlib 0
+ ExtUtils::MakeMaker 0
+ Test::More 0
+ perl 5.004
+ Digest-BubbleBabble-0.02
+ pathname: B/BT/BTROTT/Digest-BubbleBabble-0.02.tar.gz
+ provides:
+ Digest::BubbleBabble 0.02
+ requirements:
+ ExtUtils::MakeMaker 6.42
+ Filter::Util::Call 0
+ Test::More 0
+ perl 5.008001
+ Digest-HMAC-1.03
+ pathname: G/GA/GAAS/Digest-HMAC-1.03.tar.gz
+ provides:
+ Digest::HMAC 1.03
+ Digest::HMAC_MD5 1.01
+ Digest::HMAC_SHA1 1.03
+ requirements:
+ Digest::MD5 2
+ Digest::SHA 1
+ ExtUtils::MakeMaker 0
+ perl 5.004
+ Digest-MD2-2.04
+ pathname: G/GA/GAAS/Digest-MD2-2.04.tar.gz
+ provides:
+ Digest::MD2 2.04
+ requirements:
+ ExtUtils::MakeMaker 0
+ Digest-SHA1-2.13
+ pathname: G/GA/GAAS/Digest-SHA1-2.13.tar.gz
+ provides:
+ Digest::SHA1 2.13
+ requirements:
+ Digest::base 1.00
+ ExtUtils::MakeMaker 0
+ perl 5.004
+ Dist-CheckConflicts-0.11
+ pathname: D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz
+ provides:
+ Dist::CheckConflicts 0.11
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 6.30
+ Module::Runtime 0.009
+ base 0
+ strict 0
+ warnings 0
+ Email-Abstract-3.008
+ pathname: R/RJ/RJBS/Email-Abstract-3.008.tar.gz
+ provides:
+ Email::Abstract 3.008
+ Email::Abstract::EmailMIME 3.008
+ Email::Abstract::EmailSimple 3.008
+ Email::Abstract::MIMEEntity 3.008
+ Email::Abstract::MailInternet 3.008
+ Email::Abstract::MailMessage 3.008
+ Email::Abstract::Plugin 3.008
+ requirements:
+ Carp 0
+ Email::Simple 1.998
+ ExtUtils::MakeMaker 0
+ MRO::Compat 0
+ Module::Pluggable 1.5
+ Scalar::Util 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Email-Address-1.908
+ pathname: R/RJ/RJBS/Email-Address-1.908.tar.gz
+ provides:
+ Email::Address 1.908
+ requirements:
+ ExtUtils::MakeMaker 0
+ overload 0
+ strict 0
+ warnings 0
+ Email-Date-Format-1.005
+ pathname: R/RJ/RJBS/Email-Date-Format-1.005.tar.gz
+ provides:
+ Email::Date::Format 1.005
+ requirements:
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Time::Local 0
+ strict 0
+ warnings 0
+ Email-MIME-1.937
+ pathname: R/RJ/RJBS/Email-MIME-1.937.tar.gz
+ provides:
+ Email::MIME 1.937
+ Email::MIME::Creator 1.937
+ Email::MIME::Encode 1.937
+ Email::MIME::Header 1.937
+ Email::MIME::Modifier 1.937
+ requirements:
+ Carp 0
+ Email::Address 0
+ Email::MIME::ContentType 1.016
+ Email::MIME::Encodings 1.314
+ Email::MessageID 0
+ Email::Simple 2.206
+ Email::Simple::Creator 0
+ Email::Simple::Header 0
+ Encode 1.9801
+ ExtUtils::MakeMaker 0
+ MIME::Base64 0
+ MIME::Types 1.13
+ Scalar::Util 0
+ parent 0
+ perl 5.008001
+ strict 0
+ warnings 0
+ Email-MIME-Attachment-Stripper-1.317
+ pathname: R/RJ/RJBS/Email-MIME-Attachment-Stripper-1.317.tar.gz
+ provides:
+ Email::MIME::Attachment::Stripper 1.317
+ requirements:
+ Carp 0
+ Email::Abstract 0
+ Email::MIME 1.861
+ Email::MIME::ContentType 1.016
+ ExtUtils::MakeMaker 6.30
+ strict 0
+ warnings 0
+ Email-MIME-ContentType-1.018
+ pathname: R/RJ/RJBS/Email-MIME-ContentType-1.018.tar.gz
+ provides:
+ Email::MIME::ContentType 1.018
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ strict 0
+ warnings 0
+ Email-MIME-Encodings-1.315
+ pathname: R/RJ/RJBS/Email-MIME-Encodings-1.315.tar.gz
+ provides:
+ Email::MIME::Encodings 1.315
+ requirements:
+ Carp 0
+ ExtUtils::MakeMaker 6.30
+ MIME::Base64 3.05
+ MIME::QuotedPrint 3.05
+ strict 0
+ warnings 0
+ Email-MessageID-1.406
+ pathname: R/RJ/RJBS/Email-MessageID-1.406.tar.gz
+ provides:
+ Email::MessageID 1.406
+ requirements:
+ ExtUtils::MakeMaker 0
+ Sys::Hostname 0
+ overload 0
+ strict 0
+ warnings 0
+ Email-Reply-1.204
+ pathname: R/RJ/RJBS/Email-Reply-1.204.tar.gz
+ provides:
+ Email::Reply 1.204
+ requirements:
+ Email::Abstract 2.01
+ Email::Address 1.80
+ Email::MIME 1.82
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ strict 0
+ warnings 0
+ Email-Send-2.201
+ pathname: R/RJ/RJBS/Email-Send-2.201.tar.gz
+ provides:
+ Email::Send 2.201
+ Email::Send::NNTP 2.201
+ Email::Send::Qmail 2.201
+ Email::Send::SMTP 2.201
+ Email::Send::Sendmail 2.201
+ Email::Send::Test 2.201
+ requirements:
+ Email::Abstract 0
+ Email::Address 1.80
+ Email::Simple 1.92
+ ExtUtils::MakeMaker 0
+ File::Spec 0
+ Module::Pluggable 2.97
+ Net::SMTP 0
+ Return::Value 0
+ Scalar::Util 1.02
+ Symbol 0
+ perl 5.006
+ strict 0
+ vars 0
+ Email-Simple-2.210
+ pathname: R/RJ/RJBS/Email-Simple-2.210.tar.gz
+ provides:
+ Email::Simple 2.210
+ Email::Simple::Creator 2.210
+ Email::Simple::Header 2.210
+ requirements:
+ Carp 0
+ Email::Date::Format 0
+ ExtUtils::MakeMaker 0
+ perl 5.008
+ strict 0
+ warnings 0
+ Encode-Detect-1.01
+ pathname: J/JG/JGMYERS/Encode-Detect-1.01.tar.gz
+ provides:
+ Encode::Detect 1.01
+ Encode::Detect::Detector 1.01
+ requirements:
+ ExtUtils::CBuilder 0
+ Module::Build 0
+ Encode-Locale-1.05
+ pathname: G/GA/GAAS/Encode-Locale-1.05.tar.gz
+ provides:
+ Encode::Locale 1.05
+ requirements:
+ Encode 2
+ Encode::Alias 0
+ ExtUtils::MakeMaker 0
+ perl 5.008
+ Eval-LineNumbers-0.34
+ pathname: M/MU/MUIR/modules/Eval-LineNumbers-0.34.tar.gz
+ provides:
+ Eval::LineNumbers 0.34
+ requirements:
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Event-1.26
+ pathname: E/ET/ETJ/Event-1.26.tar.gz
+ provides:
+ Event 1.26
+ Event::Event::Dataful 1.26
+ Event::Event::Io 1.26
+ Event::MakeMaker undef
+ Event::Watcher undef
+ Event::Watcher::Tied undef
+ Event::generic undef
+ Event::generic::Source undef
+ Event::group undef
+ Event::idle undef
+ Event::io undef
+ Event::msg undef
+ Event::process undef
+ Event::semaphore undef
+ Event::signal undef
+ Event::timer undef
+ Event::type undef
+ Event::var undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test 1
+ perl 5.008000
+ ExtUtils-CBuilder-0.280224
+ pathname: A/AM/AMBS/ExtUtils-CBuilder-0.280224.tar.gz
+ provides:
+ ExtUtils::CBuilder 0.280224
+ ExtUtils::CBuilder::Base 0.280224
+ ExtUtils::CBuilder::Platform::Unix 0.280224
+ ExtUtils::CBuilder::Platform::VMS 0.280224
+ ExtUtils::CBuilder::Platform::Windows 0.280224
+ ExtUtils::CBuilder::Platform::Windows::BCC 0.280224
+ ExtUtils::CBuilder::Platform::Windows::GCC 0.280224
+ ExtUtils::CBuilder::Platform::Windows::MSVC 0.280224
+ ExtUtils::CBuilder::Platform::aix 0.280224
+ ExtUtils::CBuilder::Platform::android 0.280224
+ ExtUtils::CBuilder::Platform::cygwin 0.280224
+ ExtUtils::CBuilder::Platform::darwin 0.280224
+ ExtUtils::CBuilder::Platform::dec_osf 0.280224
+ ExtUtils::CBuilder::Platform::os2 0.280224
+ requirements:
+ Cwd 0
+ ExtUtils::MakeMaker 6.30
+ File::Basename 0
+ File::Spec 3.13
+ File::Temp 0
+ IO::File 0
+ IPC::Cmd 0
+ Perl::OSType 1
+ Text::ParseWords 0
+ ExtUtils-CChecker-0.10
+ pathname: P/PE/PEVANS/ExtUtils-CChecker-0.10.tar.gz
+ provides:
+ ExtUtils::CChecker 0.10
+ requirements:
+ ExtUtils::CBuilder 0
+ Module::Build 0
+ Test::Fatal 0
+ Test::More 0
+ ExtUtils-Config-0.008
+ pathname: L/LE/LEONT/ExtUtils-Config-0.008.tar.gz
+ provides:
+ ExtUtils::Config 0.008
+ requirements:
+ Data::Dumper 0
+ ExtUtils::MakeMaker 6.30
+ strict 0
+ warnings 0
+ ExtUtils-Constant-0.23
+ pathname: N/NW/NWCLARK/ExtUtils-Constant-0.23.tar.gz
+ provides:
+ ExtUtils::Constant 0.23
+ ExtUtils::Constant::Aaargh56Hash undef
+ ExtUtils::Constant::Base 0.05
+ ExtUtils::Constant::ProxySubs 0.08
+ ExtUtils::Constant::Utils 0.03
+ ExtUtils::Constant::XS 0.03
+ requirements:
+ ExtUtils::MakeMaker 0
+ ExtUtils-Helpers-0.022
+ pathname: L/LE/LEONT/ExtUtils-Helpers-0.022.tar.gz
+ provides:
+ ExtUtils::Helpers 0.022
+ ExtUtils::Helpers::Unix 0.022
+ ExtUtils::Helpers::VMS 0.022
+ ExtUtils::Helpers::Windows 0.022
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 6.30
+ File::Basename 0
+ File::Copy 0
+ File::Spec::Functions 0
+ Module::Load 0
+ Text::ParseWords 3.24
+ strict 0
+ warnings 0
+ ExtUtils-InstallPaths-0.011
+ pathname: L/LE/LEONT/ExtUtils-InstallPaths-0.011.tar.gz
+ provides:
+ ExtUtils::InstallPaths 0.011
+ requirements:
+ Carp 0
+ ExtUtils::Config 0.002
+ ExtUtils::MakeMaker 0
+ File::Spec 0
+ perl 5.006
+ strict 0
+ warnings 0
+ ExtUtils-MakeMaker-7.22
+ pathname: B/BI/BINGOS/ExtUtils-MakeMaker-7.22.tar.gz
+ provides:
+ ExtUtils::Command 7.22
+ ExtUtils::Command::MM 7.22
+ ExtUtils::Liblist 7.22
+ ExtUtils::Liblist::Kid 7.22
+ ExtUtils::MM 7.22
+ ExtUtils::MM_AIX 7.22
+ ExtUtils::MM_Any 7.22
+ ExtUtils::MM_BeOS 7.22
+ ExtUtils::MM_Cygwin 7.22
+ ExtUtils::MM_DOS 7.22
+ ExtUtils::MM_Darwin 7.22
+ ExtUtils::MM_MacOS 7.22
+ ExtUtils::MM_NW5 7.22
+ ExtUtils::MM_OS2 7.22
+ ExtUtils::MM_QNX 7.22
+ ExtUtils::MM_UWIN 7.22
+ ExtUtils::MM_Unix 7.22
+ ExtUtils::MM_VMS 7.22
+ ExtUtils::MM_VOS 7.22
+ ExtUtils::MM_Win32 7.22
+ ExtUtils::MM_Win95 7.22
+ ExtUtils::MY 7.22
+ ExtUtils::MakeMaker 7.22
+ ExtUtils::MakeMaker::Config 7.22
+ ExtUtils::MakeMaker::Locale 7.22
+ ExtUtils::MakeMaker::_version 7.22
+ ExtUtils::MakeMaker::charstar 7.22
+ ExtUtils::MakeMaker::version 7.22
+ ExtUtils::MakeMaker::version::regex 7.22
+ ExtUtils::MakeMaker::version::vpp 7.22
+ ExtUtils::Mkbootstrap 7.22
+ ExtUtils::Mksymlists 7.22
+ ExtUtils::testlib 7.22
+ MM 7.22
+ MY 7.22
+ requirements:
+ Data::Dumper 0
+ Encode 0
+ File::Basename 0
+ File::Spec 0.8
+ Pod::Man 0
+ perl 5.006
+ ExtUtils-ParseXS-3.30
+ pathname: S/SM/SMUELLER/ExtUtils-ParseXS-3.30.tar.gz
+ provides:
+ ExtUtils::ParseXS 3.30
+ ExtUtils::ParseXS::Constants 3.30
+ ExtUtils::ParseXS::CountLines 3.30
+ ExtUtils::ParseXS::Eval 3.30
+ ExtUtils::ParseXS::Utilities 3.30
+ ExtUtils::Typemaps 3.30
+ ExtUtils::Typemaps::Cmd 3.30
+ ExtUtils::Typemaps::InputMap 3.30
+ ExtUtils::Typemaps::OutputMap 3.30
+ ExtUtils::Typemaps::Type 3.30
+ requirements:
+ Carp 0
+ Cwd 0
+ DynaLoader 0
+ Exporter 5.57
+ ExtUtils::CBuilder 0
+ ExtUtils::MakeMaker 6.46
+ File::Basename 0
+ File::Spec 0
+ Symbol 0
+ Test::More 0.47
+ ExtUtils-PkgConfig-1.15
+ pathname: X/XA/XAOC/ExtUtils-PkgConfig-1.15.tar.gz
+ provides:
+ ExtUtils::PkgConfig 1.15
+ requirements:
+ ExtUtils::MakeMaker 0
+ FCGI-0.78
+ pathname: E/ET/ETHER/FCGI-0.78.tar.gz
+ provides:
+ FCGI 0.78
+ FCGI::Stream 0.78
+ requirements:
+ ExtUtils::MakeMaker 0
+ XSLoader 0
+ perl 5.006
+ File-BaseDir-0.07
+ pathname: K/KI/KIMRYAN/File-BaseDir-0.07.tar.gz
+ provides:
+ File::BaseDir 0.07
+ File::IconTheme 0.07
+ File::UserDirs 0.07
+ requirements:
+ Carp 0
+ Exporter 0
+ File::Spec 0
+ File::Temp 0
+ File::Which 0
+ IPC::System::Simple 0
+ Module::Build 0.24
+ Test::More 0
+ File-Copy-Recursive-0.38
+ pathname: D/DM/DMUEY/File-Copy-Recursive-0.38.tar.gz
+ provides:
+ File::Copy::Recursive 0.38
+ requirements:
+ ExtUtils::MakeMaker 0
+ File::Copy 0
+ File::Spec 0
+ File-DesktopEntry-0.22
+ pathname: M/MI/MICHIELB/File-DesktopEntry-0.22.tar.gz
+ provides:
+ File::DesktopEntry 0.22
+ requirements:
+ Carp 0
+ Encode 0
+ ExtUtils::MakeMaker 6.30
+ File::BaseDir 0.03
+ File::Path 0
+ File::Spec 0
+ URI::Escape 0
+ perl 5.008006
+ File-Flock-2014.01
+ pathname: M/MU/MUIR/modules/File-Flock-2014.01.tar.gz
+ provides:
+ File::Flock 2014.01
+ File::Flock::Forking undef
+ File::Flock::Subprocess undef
+ File::Flock::Subprocess::Connections undef
+ File::Flock::Subprocess::Master undef
+ requirements:
+ AnyEvent 0
+ Data::Structure::Util 0
+ File::Slurp 0
+ IO::Event 0.812
+ Test::SharedFork 0
+ Time::HiRes 0
+ File-HomeDir-1.00
+ pathname: A/AD/ADAMK/File-HomeDir-1.00.tar.gz
+ provides:
+ File::HomeDir 1.00
+ File::HomeDir::Darwin 1.00
+ File::HomeDir::Darwin::Carbon 1.00
+ File::HomeDir::Darwin::Cocoa 1.00
+ File::HomeDir::Driver 1.00
+ File::HomeDir::FreeDesktop 1.00
+ File::HomeDir::MacOS9 1.00
+ File::HomeDir::TIE 1.00
+ File::HomeDir::Test 1.00
+ File::HomeDir::Unix 1.00
+ File::HomeDir::Windows 1.00
+ requirements:
+ Carp 0
+ Cwd 3.12
+ ExtUtils::MakeMaker 6.36
+ File::Path 2.01
+ File::Spec 3.12
+ File::Temp 0.19
+ File::Which 0.05
+ Test::More 0.47
+ perl 5.00503
+ File-MimeInfo-0.27
+ pathname: M/MI/MICHIELB/File-MimeInfo-0.27.tar.gz
+ provides:
+ File::MimeInfo 0.27
+ File::MimeInfo::Applications 0.27
+ File::MimeInfo::Magic 0.27
+ File::MimeInfo::Rox 0.27
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 6.30
+ Fcntl 0
+ File::BaseDir 0.03
+ File::DesktopEntry 0.04
+ Pod::Usage 0
+ perl 5.006001
+ File-ShareDir-1.102
+ pathname: R/RE/REHSACK/File-ShareDir-1.102.tar.gz
+ provides:
+ File::ShareDir 1.102
+ requirements:
+ Carp 0
+ Class::Inspector 1.12
+ ExtUtils::MakeMaker 0
+ File::ShareDir::Install 0.03
+ File::Spec 0.80
+ perl 5.008001
+ warnings 0
+ File-ShareDir-Install-0.11
+ pathname: E/ET/ETHER/File-ShareDir-Install-0.11.tar.gz
+ provides:
+ File::ShareDir::Install 0.11
+ requirements:
+ Carp 0
+ Exporter 0
+ File::Spec 0
+ IO::Dir 0
+ Module::Build::Tiny 0.034
+ perl 5.008
+ strict 0
+ warnings 0
+ File-Slurp-9999.19
+ pathname: U/UR/URI/File-Slurp-9999.19.tar.gz
+ provides:
+ File::Slurp 9999.19
+ FileSlurp_12 9999.13
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ Fcntl 0
+ POSIX 0
+ perl 5.004
+ File-Which-1.21
+ pathname: P/PL/PLICEASE/File-Which-1.21.tar.gz
+ provides:
+ File::Which 1.21
+ requirements:
+ ExtUtils::MakeMaker 0
+ perl 5.006
+ Filesys-Notify-Simple-0.12
+ pathname: M/MI/MIYAGAWA/Filesys-Notify-Simple-0.12.tar.gz
+ provides:
+ Filesys::Notify::Simple 0.12
+ requirements:
+ ExtUtils::MakeMaker 6.30
+ GD-2.56
+ pathname: L/LD/LDS/GD-2.56.tar.gz
+ provides:
+ GD 2.56
+ GD::Group 1
+ GD::Polygon undef
+ GD::Polyline 0.2
+ GD::Simple undef
+ requirements:
+ ExtUtils::CBuilder 0
+ Math::Trig 0
+ Module::Build 0.42
+ GD-Barcode-1.15
+ pathname: K/KW/KWITKNR/GD-Barcode-1.15.tar.gz
+ provides:
+ GD::Barcode 1.15
+ GD::Barcode::COOP2of5 0.01
+ GD::Barcode::Code39 1.1
+ GD::Barcode::EAN13 1.1
+ GD::Barcode::EAN8 1.1
+ GD::Barcode::IATA2of5 0.01
+ GD::Barcode::ITF 0.01
+ GD::Barcode::Industrial2of5 0.01
+ GD::Barcode::Matrix2of5 0.01
+ GD::Barcode::NW7 1.1
+ GD::Barcode::QRcode 0.01
+ GD::Barcode::UPCA 1.1
+ GD::Barcode::UPCE 1.1
+ requirements:
+ ExtUtils::MakeMaker 0
+ GDGraph-1.53
+ pathname: R/RU/RUZ/GDGraph-1.53.tar.gz
+ provides:
+ GD::Graph 1.53
+ GD::Graph::Data 1.22
+ GD::Graph::Error 1.8
+ GD::Graph::area 1.17
+ GD::Graph::axestype 1.45
+ GD::Graph::bars 1.26
+ GD::Graph::colour 1.10
+ GD::Graph::hbars 1.3
+ GD::Graph::lines 1.15
+ GD::Graph::linespoints 1.8
+ GD::Graph::mixed 1.13
+ GD::Graph::pie 1.21
+ GD::Graph::points 1.13
+ GD::Graph::utils 1.7
+ requirements:
+ ExtUtils::MakeMaker 6.76
+ GD 1.18
+ GD::Text 0.80
+ GDTextUtil-0.86
+ pathname: M/MV/MVERB/GDTextUtil-0.86.tar.gz
+ provides:
+ GD::Text 0.86
+ GD::Text::Align 1.18
+ GD::Text::Wrap 1.20
+ requirements:
+ ExtUtils::MakeMaker 0
+ GD 1
+ HTML-Parser-3.72
+ pathname: G/GA/GAAS/HTML-Parser-3.72.tar.gz
+ provides:
+ HTML::Entities 3.69
+ HTML::Filter 3.72
+ HTML::HeadParser 3.71
+ HTML::LinkExtor 3.69
+ HTML::Parser 3.72
+ HTML::PullParser 3.57
+ HTML::TokeParser 3.69
+ requirements:
+ ExtUtils::MakeMaker 0
+ HTML::Tagset 3
+ XSLoader 0
+ perl 5.008
+ HTML-Scrubber-0.15
+ pathname: N/NI/NIGELM/HTML-Scrubber-0.15.tar.gz
+ provides:
+ HTML::Scrubber 0.15
+ requirements:
+ HTML::Entities 0
+ HTML::Parser 3.47
+ Module::Build 0.28
+ Scalar::Util 0
+ Test::CPAN::Meta 0
+ Test::EOL 0
+ Test::NoTabs 0
+ perl 5.008
+ strict 0
+ warnings 0
+ HTML-Tagset-3.20
+ pathname: P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz
+ provides:
+ HTML::Tagset 3.20
+ requirements:
+ ExtUtils::MakeMaker 0
+ HTML-Tree-5.03
+ pathname: C/CJ/CJM/HTML-Tree-5.03.tar.gz
+ provides:
+ HTML::AsSubs 5.03
+ HTML::Element 5.03
+ HTML::Element::traverse 5.03
+ HTML::Parse 5.03
+ HTML::Tree 5.03
+ HTML::TreeBuilder 5.03
+ requirements:
+ Carp 0
+ Encode 0
+ Exporter 0
+ HTML::Entities 0
+ HTML::Parser 3.46
+ HTML::Tagset 3.02
+ Module::Build 0.2808
+ Scalar::Util 0
+ Test::Fatal 0
+ Test::More 0
+ base 0
+ integer 0
+ perl 5.008
+ HTTP-Body-1.22
+ pathname: G/GE/GETTY/HTTP-Body-1.22.tar.gz
+ provides:
+ HTTP::Body 1.22
+ HTTP::Body::MultiPart 1.22
+ HTTP::Body::OctetStream 1.22
+ HTTP::Body::UrlEncoded 1.22
+ HTTP::Body::XForms 1.22
+ HTTP::Body::XFormsMultipart 1.22
+ requirements:
+ Carp 0
+ Digest::MD5 0
+ ExtUtils::MakeMaker 0
+ File::Temp 0.14
+ HTTP::Headers 0
+ IO::File 1.14
+ HTTP-Date-6.02
+ pathname: G/GA/GAAS/HTTP-Date-6.02.tar.gz
+ provides:
+ HTTP::Date 6.02
+ requirements:
+ ExtUtils::MakeMaker 0
+ Time::Local 0
+ perl 5.006002
+ HTTP-Headers-Fast-0.20
+ pathname: T/TO/TOKUHIROM/HTTP-Headers-Fast-0.20.tar.gz
+ provides:
+ HTTP::Headers::Fast 0.20
+ requirements:
+ HTTP::Date 0
+ Module::Build 0.38
+ perl 5.008001
+ HTTP-Message-6.11
+ pathname: E/ET/ETHER/HTTP-Message-6.11.tar.gz
+ provides:
+ HTTP::Config 6.11
+ HTTP::Headers 6.11
+ HTTP::Headers::Auth 6.11
+ HTTP::Headers::ETag 6.11
+ HTTP::Headers::Util 6.11
+ HTTP::Message 6.11
+ HTTP::Request 6.11
+ HTTP::Request::Common 6.11
+ HTTP::Response 6.11
+ HTTP::Status 6.11
+ requirements:
+ Compress::Raw::Zlib 0
+ Encode 2.21
+ Encode::Locale 1
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ HTTP::Date 6
+ IO::Compress::Bzip2 2.021
+ IO::Compress::Deflate 0
+ IO::Compress::Gzip 0
+ IO::HTML 0
+ IO::Uncompress::Bunzip2 2.021
+ IO::Uncompress::Gunzip 0
+ IO::Uncompress::Inflate 0
+ IO::Uncompress::RawInflate 0
+ LWP::MediaTypes 6
+ MIME::Base64 2.1
+ MIME::QuotedPrint 0
+ URI 1.10
+ perl 5.008001
+ HTTP-Tiny-0.058
+ pathname: D/DA/DAGOLDEN/HTTP-Tiny-0.058.tar.gz
+ provides:
+ HTTP::Tiny 0.058
+ requirements:
+ Carp 0
+ ExtUtils::MakeMaker 6.17
+ Fcntl 0
+ IO::Socket 0
+ MIME::Base64 0
+ Socket 0
+ Time::Local 0
+ bytes 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Hash-MultiValue-0.16
+ pathname: A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz
+ provides:
+ Hash::MultiValue 0.16
+ requirements:
+ ExtUtils::MakeMaker 0
+ perl 5.008001
+ IO-CaptureOutput-1.1104
+ pathname: D/DA/DAGOLDEN/IO-CaptureOutput-1.1104.tar.gz
+ provides:
+ IO::CaptureOutput 1.1104
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 6.17
+ File::Basename 0
+ File::Temp 0.16
+ Symbol 0
+ perl 5.006
+ strict 0
+ vars 0
+ warnings 0
+ IO-Compress-2.069
+ pathname: P/PM/PMQS/IO-Compress-2.069.tar.gz
+ provides:
+ Compress::Zlib 2.069
+ File::GlobMapper 1.000
+ IO::Compress undef
+ IO::Compress::Adapter::Bzip2 2.069
+ IO::Compress::Adapter::Deflate 2.069
+ IO::Compress::Adapter::Identity 2.069
+ IO::Compress::Base 2.069
+ IO::Compress::Base::Common 2.069
+ IO::Compress::Bzip2 2.069
+ IO::Compress::Deflate 2.069
+ IO::Compress::Gzip 2.069
+ IO::Compress::Gzip::Constants 2.069
+ IO::Compress::RawDeflate 2.069
+ IO::Compress::Zip 2.069
+ IO::Compress::Zip::Constants 2.069
+ IO::Compress::Zlib::Constants 2.069
+ IO::Compress::Zlib::Extra 2.069
+ IO::Uncompress::Adapter::Bunzip2 2.069
+ IO::Uncompress::Adapter::Identity 2.069
+ IO::Uncompress::Adapter::Inflate 2.069
+ IO::Uncompress::AnyInflate 2.069
+ IO::Uncompress::AnyUncompress 2.069
+ IO::Uncompress::Base 2.069
+ IO::Uncompress::Bunzip2 2.069
+ IO::Uncompress::Gunzip 2.069
+ IO::Uncompress::Inflate 2.069
+ IO::Uncompress::RawInflate 2.069
+ IO::Uncompress::Unzip 2.069
+ U64 2.069
+ Zlib::OldDeflate 2.069
+ Zlib::OldInflate 2.069
+ requirements:
+ Compress::Raw::Bzip2 2.069
+ Compress::Raw::Zlib 2.069
+ ExtUtils::MakeMaker 0
+ Scalar::Util 0
+ IO-Event-0.813
+ pathname: M/MU/MUIR/modules/IO-Event-0.813.tar.gz
+ provides:
+ IO::Event 0.813
+ IO::Event::AnyEvent undef
+ IO::Event::AnyEvent::Wrapper undef
+ IO::Event::Callback undef
+ IO::Event::Common 0.813
+ IO::Event::Emulate undef
+ IO::Event::Emulate::Idle undef
+ IO::Event::Emulate::Timer undef
+ IO::Event::Event undef
+ IO::Event::INET::Callback undef
+ IO::Event::Socket::INET 0.813
+ IO::Event::Socket::UNIX 0.813
+ IO::Event::UNIX::Callback undef
+ requirements:
+ AnyEvent 0
+ Event 0
+ ExtUtils::MakeMaker 0
+ IO::Handle 0
+ List::MoreUtils 0
+ Test::Simple 0
+ Time::HiRes 0
+ diagnostics 0
+ IO-HTML-1.001
+ pathname: C/CJ/CJM/IO-HTML-1.001.tar.gz
+ provides:
+ IO::HTML 1.001
+ requirements:
+ Carp 0
+ Encode 2.10
+ Exporter 5.57
+ ExtUtils::MakeMaker 6.30
+ IO-SessionData-1.03
+ pathname: P/PH/PHRED/IO-SessionData-1.03.tar.gz
+ provides:
+ IO::SessionData 1.03
+ IO::SessionSet undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ IO-Socket-IP-0.38
+ pathname: P/PE/PEVANS/IO-Socket-IP-0.38.tar.gz
+ provides:
+ IO::Socket::IP 0.38
+ requirements:
+ IO::Socket 0
+ Socket 1.97
+ Test::More 0.88
+ IO-Socket-SSL-2.034
+ pathname: S/SU/SULLR/IO-Socket-SSL-2.034.tar.gz
+ provides:
+ IO::Socket::SSL 2.034
+ IO::Socket::SSL::Intercept 2.014
+ IO::Socket::SSL::OCSP_Cache 2.034
+ IO::Socket::SSL::OCSP_Resolver 2.034
+ IO::Socket::SSL::PublicSuffix undef
+ IO::Socket::SSL::SSL_Context 2.034
+ IO::Socket::SSL::SSL_HANDLE 2.034
+ IO::Socket::SSL::Session_Cache 2.034
+ IO::Socket::SSL::Utils 2.014
+ requirements:
+ ExtUtils::MakeMaker 0
+ Mozilla::CA 0
+ Net::SSLeay 1.46
+ Scalar::Util 0
+ IO-stringy-2.111
+ pathname: D/DS/DSKOLL/IO-stringy-2.111.tar.gz
+ provides:
+ IO::AtomicFile 2.111
+ IO::Clever 1.01
+ IO::InnerFile 2.111
+ IO::Lines 2.111
+ IO::Scalar 2.111
+ IO::ScalarArray 2.111
+ IO::Stringy 2.111
+ IO::Wrap 2.111
+ IO::WrapTie 2.111
+ IO::WrapTie::Master 2.111
+ IO::WrapTie::Slave 2.111
+ requirements:
+ ExtUtils::MakeMaker 0
+ IPC-System-Simple-1.25
+ pathname: P/PJ/PJF/IPC-System-Simple-1.25.tar.gz
+ provides:
+ IPC::System::Simple 1.25
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 6.30
+ List::Util 0
+ POSIX 0
+ Scalar::Util 0
+ constant 0
+ re 0
+ strict 0
+ warnings 0
+ JSON-2.50
+ pathname: M/MA/MAKAMAKA/JSON-2.50.tar.gz
+ provides:
+ JSON 2.50
+ JSON::Backend::PP 2.50
+ JSON::Boolean 2.50
+ JSON::PP 2.27008
+ JSON::PP::IncrParser 2.27008
+ JSON::backportPP::Boolean 2.27008
+ requirements:
+ ExtUtils::MakeMaker 0
+ JSON::XS 2.27
+ Test::More 0
+ JSON-PP-2.27400
+ pathname: M/MA/MAKAMAKA/JSON-PP-2.27400.tar.gz
+ provides:
+ JSON::PP 2.27400
+ JSON::PP::Boolean 2.27400
+ JSON::PP::IncrParser 2.27400
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::More 0
+ JSON-RPC-1.01
+ pathname: D/DM/DMAKI/JSON-RPC-1.01.tar.gz
+ provides:
+ JSON::RPC 1.01
+ JSON::RPC::Constants undef
+ JSON::RPC::Dispatch undef
+ JSON::RPC::Legacy undef
+ JSON::RPC::Legacy::Client 0.93
+ JSON::RPC::Legacy::Procedure 0.90
+ JSON::RPC::Legacy::ReturnObject 0.93
+ JSON::RPC::Legacy::Server 0.92
+ JSON::RPC::Legacy::Server::Apache2 0.05
+ JSON::RPC::Legacy::Server::CGI 0.92
+ JSON::RPC::Legacy::Server::Daemon 0.03
+ JSON::RPC::Legacy::Server::system 0.92
+ JSON::RPC::Legacy::ServiceObject 0.93
+ JSON::RPC::Parser undef
+ JSON::RPC::Procedure undef
+ requirements:
+ CGI 0
+ Class::Accessor::Lite 0
+ ExtUtils::MakeMaker 6.42
+ HTTP::Request 0
+ HTTP::Response 0
+ JSON 0
+ LWP::UserAgent 0
+ Plack 0
+ Plack::Request 0
+ Plack::Test 0
+ Router::Simple 0
+ Test::More 0
+ parent 0
+ JSON-XS-2.3
+ pathname: M/ML/MLEHMANN/JSON-XS-2.3.tar.gz
+ provides:
+ JSON::XS 2.3
+ JSON::XS::Boolean 2.3
+ requirements:
+ ExtUtils::MakeMaker 0
+ common::sense 0
+ LWP-MediaTypes-6.02
+ pathname: G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz
+ provides:
+ LWP::MediaTypes 6.02
+ requirements:
+ ExtUtils::MakeMaker 0
+ perl 5.006002
+ List-MoreUtils-0.22
+ pathname: V/VP/VPARSEVAL/List-MoreUtils-0.22.tar.gz
+ provides:
+ List::MoreUtils 0.22
+ requirements:
+ ExtUtils::MakeMaker 0
+ MIME-Types-2.13
+ pathname: M/MA/MARKOV/MIME-Types-2.13.tar.gz
+ provides:
+ MIME::Type 2.13
+ MIME::Types 2.13
+ MojoX::MIME::Types 2.13
+ requirements:
+ ExtUtils::MakeMaker 0
+ File::Basename 0
+ File::Spec 0
+ List::Util 0
+ Test::More 0.47
+ MIME-tools-5.507
+ pathname: D/DS/DSKOLL/MIME-tools-5.507.tar.gz
+ provides:
+ MIME::Body 5.507
+ MIME::Body::File 5.507
+ MIME::Body::InCore 5.507
+ MIME::Body::Scalar 5.507
+ MIME::Decoder 5.507
+ MIME::Decoder::Base64 5.507
+ MIME::Decoder::BinHex 5.507
+ MIME::Decoder::Binary 5.507
+ MIME::Decoder::Gzip64 5.507
+ MIME::Decoder::NBit 5.507
+ MIME::Decoder::QuotedPrint 5.507
+ MIME::Decoder::UU 5.507
+ MIME::Entity 5.507
+ MIME::Field::ConTraEnc 5.507
+ MIME::Field::ContDisp 5.507
+ MIME::Field::ContType 5.507
+ MIME::Field::ParamVal 5.507
+ MIME::Head 5.507
+ MIME::Parser 5.507
+ MIME::Parser::FileInto undef
+ MIME::Parser::FileUnder undef
+ MIME::Parser::Filer undef
+ MIME::Parser::Reader undef
+ MIME::Parser::Results undef
+ MIME::Tools 5.507
+ MIME::WordDecoder undef
+ MIME::WordDecoder::ISO_8859 undef
+ MIME::WordDecoder::US_ASCII undef
+ MIME::WordDecoder::UTF_8 undef
+ MIME::Words 5.507
+ requirements:
+ ExtUtils::MakeMaker 6.59
+ File::Path 1
+ File::Spec 0.6
+ File::Temp 0.18
+ IO::File 1.13
+ IO::Handle 0
+ MIME::Base64 2.2
+ Mail::Field 1.05
+ Mail::Header 1.01
+ Mail::Internet 1.0203
+ Test::Deep 0
+ Test::More 0
+ perl 5.008
+ MRO-Compat-0.12
+ pathname: B/BO/BOBTFISH/MRO-Compat-0.12.tar.gz
+ provides:
+ MRO::Compat 0.12
+ requirements:
+ ExtUtils::MakeMaker 6.59
+ Test::More 0.47
+ perl 5.006
+ MailTools-2.18
+ pathname: M/MA/MARKOV/MailTools-2.18.tar.gz
+ provides:
+ Mail undef
+ Mail::Address 2.18
+ Mail::Cap 2.18
+ Mail::Field 2.18
+ Mail::Field::AddrList 2.18
+ Mail::Field::Date 2.18
+ Mail::Field::Generic 2.18
+ Mail::Filter 2.18
+ Mail::Header 2.18
+ Mail::Internet 2.18
+ Mail::Mailer 2.18
+ Mail::Mailer::qmail 2.18
+ Mail::Mailer::rfc822 2.18
+ Mail::Mailer::sendmail 2.18
+ Mail::Mailer::smtp 2.18
+ Mail::Mailer::smtp::pipe 2.18
+ Mail::Mailer::smtps 2.18
+ Mail::Mailer::smtps::pipe 2.18
+ Mail::Mailer::testfile 2.18
+ Mail::Mailer::testfile::pipe 2.18
+ Mail::Send 2.18
+ Mail::Util 2.18
+ requirements:
+ Date::Format 0
+ Date::Parse 0
+ ExtUtils::MakeMaker 0
+ IO::Handle 0
+ Net::Domain 1.05
+ Net::SMTP 1.03
+ Test::More 0
+ Math-BigInt-1.999726
+ pathname: P/PJ/PJACKLAM/Math-BigInt-1.999726.tar.gz
+ provides:
+ Math::BigFloat 1.999726
+ Math::BigInt 1.999726
+ Math::BigInt::Calc 1.999726
+ Math::BigInt::CalcEmu 1.999726
+ requirements:
+ ExtUtils::MakeMaker 6.59
+ Math::Complex 1.39
+ Test::More 0.9301
+ perl 5.006001
+ Math-BigInt-GMP-1.51
+ pathname: P/PJ/PJACKLAM/Math-BigInt-GMP-1.51.tar.gz
+ provides:
+ Math::BigInt::GMP 1.51
+ requirements:
+ ExtUtils::MakeMaker 0
+ Math::BigInt 1.999719
+ XSLoader 0.02
+ Math-GMP-2.11
+ pathname: S/SH/SHLOMIF/Math-GMP-2.11.tar.gz
+ provides:
+ Math::GMP 2.11
+ requirements:
+ AutoLoader 0
+ Carp 0
+ Devel::CheckLib 0.9
+ DynaLoader 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ overload 0
+ perl 5.006
+ strict 0
+ vars 0
+ warnings 0
+ Math-Pari-2.01080900
+ pathname: I/IL/ILYAZ/modules/Math-Pari-2.01080900.zip
+ provides:
+ Math::Pari 2.01080900
+ Math::Pari::Arr 2.01080900
+ Math::PariBuild 2.01080604
+ requirements:
+ ExtUtils::MakeMaker 0
+ Math-Prime-Util-0.59
+ pathname: D/DA/DANAJ/Math-Prime-Util-0.59.tar.gz
+ provides:
+ Math::Prime::Util 0.59
+ Math::Prime::Util::MemFree 0.59
+ Math::Prime::Util::PP 0.59
+ Math::Prime::Util::PrimeArray 0.59
+ Math::Prime::Util::PrimeIterator 0.59
+ ntheory 0.59
+ requirements:
+ Bytes::Random::Secure 0.23
+ Carp 0
+ Config 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Math::BigFloat 1.59
+ Math::BigInt 1.88
+ Math::Prime::Util::GMP 0.40
+ Tie::Array 0
+ XSLoader 0.01
+ base 0
+ constant 0
+ perl 5.006002
+ Math-Prime-Util-GMP-0.40
+ pathname: D/DA/DANAJ/Math-Prime-Util-GMP-0.40.tar.gz
+ provides:
+ Math::Prime::Util::GMP 0.40
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ XSLoader 0.01
+ base 0
+ perl 5.006002
+ Math-Random-ISAAC-1.004
+ pathname: J/JA/JAWNSY/Math-Random-ISAAC-1.004.tar.gz
+ provides:
+ Math::Random::ISAAC 1.004
+ Math::Random::ISAAC::PP 1.004
+ requirements:
+ ExtUtils::MakeMaker 6.31
+ Test::More 0.62
+ Test::NoWarnings 0.084
+ Math-Random-MT-1.17
+ pathname: F/FA/FANGLY/Math-Random-MT-1.17.tar.gz
+ provides:
+ Math::Random::MT 1.17
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::More 0
+ Test::Number::Delta 0
+ Module-Build-0.4218
+ pathname: L/LE/LEONT/Module-Build-0.4218.tar.gz
+ provides:
+ Module::Build 0.4218
+ Module::Build::Base 0.4218
+ Module::Build::Compat 0.4218
+ Module::Build::Config 0.4218
+ Module::Build::Cookbook 0.4218
+ Module::Build::Dumper 0.4218
+ Module::Build::Notes 0.4218
+ Module::Build::PPMMaker 0.4218
+ Module::Build::Platform::Default 0.4218
+ Module::Build::Platform::MacOS 0.4218
+ Module::Build::Platform::Unix 0.4218
+ Module::Build::Platform::VMS 0.4218
+ Module::Build::Platform::VOS 0.4218
+ Module::Build::Platform::Windows 0.4218
+ Module::Build::Platform::aix 0.4218
+ Module::Build::Platform::cygwin 0.4218
+ Module::Build::Platform::darwin 0.4218
+ Module::Build::Platform::os2 0.4218
+ Module::Build::PodParser 0.4218
+ requirements:
+ CPAN::Meta 2.142060
+ CPAN::Meta::YAML 0.003
+ Cwd 0
+ Data::Dumper 0
+ ExtUtils::CBuilder 0.27
+ ExtUtils::Install 0
+ ExtUtils::Manifest 0
+ ExtUtils::Mkbootstrap 0
+ ExtUtils::ParseXS 2.21
+ File::Basename 0
+ File::Compare 0
+ File::Copy 0
+ File::Find 0
+ File::Path 0
+ File::Spec 0.82
+ File::Temp 0.15
+ Getopt::Long 0
+ Module::Metadata 1.000002
+ Parse::CPAN::Meta 1.4401
+ Perl::OSType 1
+ Pod::Man 2.17
+ TAP::Harness 3.29
+ Test::More 0.49
+ Text::Abbrev 0
+ Text::ParseWords 0
+ perl 5.006001
+ version 0.87
+ Module-Build-Tiny-0.039
+ pathname: L/LE/LEONT/Module-Build-Tiny-0.039.tar.gz
+ provides:
+ Module::Build::Tiny 0.039
+ requirements:
+ CPAN::Meta 0
+ DynaLoader 0
+ Exporter 5.57
+ ExtUtils::CBuilder 0
+ ExtUtils::Config 0.003
+ ExtUtils::Helpers 0.020
+ ExtUtils::Install 0
+ ExtUtils::InstallPaths 0.002
+ ExtUtils::ParseXS 0
+ File::Basename 0
+ File::Find 0
+ File::Path 0
+ File::Spec::Functions 0
+ Getopt::Long 2.36
+ JSON::PP 2
+ Pod::Man 0
+ TAP::Harness::Env 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Module-Implementation-0.09
+ pathname: D/DR/DROLSKY/Module-Implementation-0.09.tar.gz
+ provides:
+ Module::Implementation 0.09
+ requirements:
+ Carp 0
+ ExtUtils::MakeMaker 0
+ Module::Runtime 0.012
+ Try::Tiny 0
+ strict 0
+ warnings 0
+ Module-Metadata-1.000033
+ pathname: E/ET/ETHER/Module-Metadata-1.000033.tar.gz
+ provides:
+ Module::Metadata 1.000033
+ requirements:
+ Carp 0
+ ExtUtils::MakeMaker 0
+ Fcntl 0
+ File::Find 0
+ File::Spec 0
+ perl 5.006
+ strict 0
+ version 0.87
+ warnings 0
+ Module-Runtime-0.014
+ pathname: Z/ZE/ZEFRAM/Module-Runtime-0.014.tar.gz
+ provides:
+ Module::Runtime 0.014
+ requirements:
+ Module::Build 0
+ Test::More 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Mozilla-CA-20160104
+ pathname: A/AB/ABH/Mozilla-CA-20160104.tar.gz
+ provides:
+ Mozilla::CA 20160104
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test 0
+ perl 5.006
+ Net-SFTP-0.10
+ pathname: D/DB/DBROBINS/Net-SFTP-0.10.tar.gz
+ provides:
+ Net::SFTP 0.10
+ Net::SFTP::Attributes undef
+ Net::SFTP::Buffer undef
+ Net::SFTP::Constants undef
+ Net::SFTP::Util undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ Net::SSH::Perl 1.24
+ Net-SSH-Perl-2.01
+ pathname: S/SC/SCHWIGON/Net-SSH-Perl-2.01.tar.gz
+ provides:
+ Net::SSH::Perl 2.01
+ Net::SSH::Perl::Agent undef
+ Net::SSH::Perl::Auth undef
+ Net::SSH::Perl::Auth::ChallengeResponse undef
+ Net::SSH::Perl::Auth::KeyboardInt undef
+ Net::SSH::Perl::Auth::KeyboardInteractive undef
+ Net::SSH::Perl::Auth::Password undef
+ Net::SSH::Perl::Auth::PublicKey undef
+ Net::SSH::Perl::Auth::RSA undef
+ Net::SSH::Perl::Auth::Rhosts undef
+ Net::SSH::Perl::Auth::Rhosts_RSA undef
+ Net::SSH::Perl::AuthMgr undef
+ Net::SSH::Perl::Buffer undef
+ Net::SSH::Perl::Channel undef
+ Net::SSH::Perl::ChannelMgr undef
+ Net::SSH::Perl::Cipher undef
+ Net::SSH::Perl::Cipher::AES128_CBC undef
+ Net::SSH::Perl::Cipher::AES128_CTR undef
+ Net::SSH::Perl::Cipher::AES192_CBC undef
+ Net::SSH::Perl::Cipher::AES192_CTR undef
+ Net::SSH::Perl::Cipher::AES256_CBC undef
+ Net::SSH::Perl::Cipher::AES256_CTR undef
+ Net::SSH::Perl::Cipher::AES_CBC undef
+ Net::SSH::Perl::Cipher::AES_CTR undef
+ Net::SSH::Perl::Cipher::Blowfish undef
+ Net::SSH::Perl::Cipher::CBC undef
+ Net::SSH::Perl::Cipher::CFB undef
+ Net::SSH::Perl::Cipher::CTR undef
+ Net::SSH::Perl::Cipher::ChachaPoly undef
+ Net::SSH::Perl::Cipher::DES undef
+ Net::SSH::Perl::Cipher::DES3 undef
+ Net::SSH::Perl::Cipher::DES3::EDE3 undef
+ Net::SSH::Perl::Cipher::IDEA undef
+ Net::SSH::Perl::Cipher::RC4 undef
+ Net::SSH::Perl::Comp undef
+ Net::SSH::Perl::Comp::Zlib undef
+ Net::SSH::Perl::Config undef
+ Net::SSH::Perl::Constants undef
+ Net::SSH::Perl::Handle undef
+ Net::SSH::Perl::Handle::SSH1 undef
+ Net::SSH::Perl::Handle::SSH2 undef
+ Net::SSH::Perl::Kex undef
+ Net::SSH::Perl::Kex::C25519 undef
+ Net::SSH::Perl::Kex::DH undef
+ Net::SSH::Perl::Kex::DH1 undef
+ Net::SSH::Perl::Kex::DH14 undef
+ Net::SSH::Perl::Kex::DHGEX undef
+ Net::SSH::Perl::Kex::DHGEXSHA1 undef
+ Net::SSH::Perl::Kex::DHGEXSHA256 undef
+ Net::SSH::Perl::Key undef
+ Net::SSH::Perl::Key::DSA undef
+ Net::SSH::Perl::Key::Ed25519 undef
+ Net::SSH::Perl::Key::RSA undef
+ Net::SSH::Perl::Key::RSA1 undef
+ Net::SSH::Perl::Mac undef
+ Net::SSH::Perl::Mac::MD5 undef
+ Net::SSH::Perl::Mac::SHA1 undef
+ Net::SSH::Perl::Mac::SHA2_256 undef
+ Net::SSH::Perl::Mac::SHA2_512 undef
+ Net::SSH::Perl::Packet undef
+ Net::SSH::Perl::Proxy undef
+ Net::SSH::Perl::SSH1 undef
+ Net::SSH::Perl::SSH2 undef
+ Net::SSH::Perl::Subsystem::Client undef
+ Net::SSH::Perl::Subsystem::Server undef
+ Net::SSH::Perl::Util undef
+ Net::SSH::Perl::Util::Authfile undef
+ Net::SSH::Perl::Util::Hosts undef
+ Net::SSH::Perl::Util::RSA undef
+ Net::SSH::Perl::Util::SSH1MP undef
+ Net::SSH::Perl::Util::SSH1Misc undef
+ Net::SSH::Perl::Util::SSH2MP undef
+ Net::SSH::Perl::Util::Term undef
+ Net::SSH::Perl::Util::Win32 undef
+ requirements:
+ Convert::PEM 0.05
+ Crypt::Curve25519 0.05
+ Crypt::DH 0.01
+ CryptX 0
+ Digest::BubbleBabble 0.01
+ Digest::MD5 0
+ ExtUtils::MakeMaker 0
+ File::HomeDir 0
+ File::Spec 0
+ IO::Socket 0
+ MIME::Base64 0
+ Math::GMP 1.04
+ Math::Pari 2.001804
+ Scalar::Util 0
+ String::CRC32 1.2
+ Net-SSLeay-1.77
+ pathname: M/MI/MIKEM/Net-SSLeay-1.77.tar.gz
+ provides:
+ Net::SSLeay 1.77
+ Net::SSLeay::Handle 0.61
+ requirements:
+ ExtUtils::MakeMaker 6.36
+ MIME::Base64 0
+ Test::More 0.60_01
+ perl 5.005
+ POSIX-strftime-Compiler-0.42
+ pathname: K/KA/KAZEBURO/POSIX-strftime-Compiler-0.42.tar.gz
+ provides:
+ POSIX::strftime::Compiler 0.42
+ requirements:
+ Carp 0
+ Exporter 0
+ Module::Build 0.38
+ POSIX 0
+ Time::Local 0
+ perl 5.008001
+ Package-Stash-0.37
+ pathname: D/DO/DOY/Package-Stash-0.37.tar.gz
+ provides:
+ Package::Stash 0.37
+ Package::Stash::PP 0.37
+ requirements:
+ B 0
+ Carp 0
+ Config 0
+ Dist::CheckConflicts 0.02
+ ExtUtils::MakeMaker 0
+ File::Spec 0
+ Getopt::Long 0
+ Module::Implementation 0.06
+ Package::Stash::XS 0.26
+ Scalar::Util 0
+ Symbol 0
+ Text::ParseWords 0
+ constant 0
+ strict 0
+ warnings 0
+ Package-Stash-XS-0.28
+ pathname: D/DO/DOY/Package-Stash-XS-0.28.tar.gz
+ provides:
+ Package::Stash::XS 0.28
+ requirements:
+ ExtUtils::MakeMaker 6.30
+ XSLoader 0
+ strict 0
+ warnings 0
+ Params-Util-1.07
+ pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz
+ provides:
+ Params::Util 1.07
+ requirements:
+ ExtUtils::CBuilder 0.27
+ ExtUtils::MakeMaker 6.52
+ File::Spec 0.80
+ Scalar::Util 1.18
+ Test::More 0.42
+ perl 5.00503
+ Params-Validate-0.95
+ pathname: D/DR/DROLSKY/Params-Validate-0.95.tar.gz
+ provides:
+ Attribute::Params::Validate 1.07
+ Params::Validate 0.95
+ requirements:
+ Attribute::Handlers 0.79
+ ExtUtils::CBuilder 0
+ Pod::Man 1.14
+ Scalar::Util 1.10
+ Test::More 0.34
+ Parse-CPAN-Meta-1.4422
+ pathname: D/DA/DAGOLDEN/Parse-CPAN-Meta-1.4422.tar.gz
+ provides:
+ Parse::CPAN::Meta 1.4422
+ requirements:
+ CPAN::Meta::YAML 0.011
+ Carp 0
+ Encode 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ File::Spec 0.80
+ JSON::PP 2.27300
+ perl 5.008001
+ strict 0
+ PatchReader-0.9.6
+ pathname: T/TM/TMANNERM/PatchReader-0.9.6.tar.gz
+ provides:
+ PatchReader 0.009006
+ PatchReader::AddCVSContext undef
+ PatchReader::Base undef
+ PatchReader::CVSClient undef
+ PatchReader::DiffPrinter::raw undef
+ PatchReader::DiffPrinter::template undef
+ PatchReader::FilterPatch undef
+ PatchReader::FixPatchRoot undef
+ PatchReader::NarrowPatch undef
+ PatchReader::PatchInfoGrabber undef
+ PatchReader::Raw undef
+ requirements:
+ Cwd 2
+ ExtUtils::MakeMaker 0
+ File::Temp 0.05
+ Perl-OSType-1.010
+ pathname: D/DA/DAGOLDEN/Perl-OSType-1.010.tar.gz
+ provides:
+ Perl::OSType 1.010
+ requirements:
+ Exporter 0
+ ExtUtils::MakeMaker 6.17
+ perl 5.006
+ strict 0
+ warnings 0
+ Plack-1.0039
+ pathname: M/MI/MIYAGAWA/Plack-1.0039.tar.gz
+ provides:
+ HTTP::Message::PSGI undef
+ HTTP::Server::PSGI undef
+ Plack 1.0039
+ Plack::App::CGIBin undef
+ Plack::App::Cascade undef
+ Plack::App::Directory undef
+ Plack::App::File undef
+ Plack::App::PSGIBin undef
+ Plack::App::URLMap undef
+ Plack::App::WrapCGI undef
+ Plack::Builder undef
+ Plack::Component undef
+ Plack::HTTPParser undef
+ Plack::HTTPParser::PP undef
+ Plack::Handler undef
+ Plack::Handler::Apache1 undef
+ Plack::Handler::Apache2 undef
+ Plack::Handler::Apache2::Registry undef
+ Plack::Handler::CGI undef
+ Plack::Handler::CGI::Writer undef
+ Plack::Handler::FCGI undef
+ Plack::Handler::HTTP::Server::PSGI undef
+ Plack::Handler::Standalone undef
+ Plack::LWPish undef
+ Plack::Loader undef
+ Plack::Loader::Delayed undef
+ Plack::Loader::Restarter undef
+ Plack::Loader::Shotgun undef
+ Plack::MIME undef
+ Plack::Middleware undef
+ Plack::Middleware::AccessLog undef
+ Plack::Middleware::AccessLog::Timed undef
+ Plack::Middleware::Auth::Basic undef
+ Plack::Middleware::BufferedStreaming undef
+ Plack::Middleware::Chunked undef
+ Plack::Middleware::Conditional undef
+ Plack::Middleware::ConditionalGET undef
+ Plack::Middleware::ContentLength undef
+ Plack::Middleware::ContentMD5 undef
+ Plack::Middleware::ErrorDocument undef
+ Plack::Middleware::HTTPExceptions undef
+ Plack::Middleware::Head undef
+ Plack::Middleware::IIS6ScriptNameFix undef
+ Plack::Middleware::IIS7KeepAliveFix undef
+ Plack::Middleware::JSONP undef
+ Plack::Middleware::LighttpdScriptNameFix undef
+ Plack::Middleware::Lint undef
+ Plack::Middleware::Log4perl undef
+ Plack::Middleware::LogDispatch undef
+ Plack::Middleware::NullLogger undef
+ Plack::Middleware::RearrangeHeaders undef
+ Plack::Middleware::Recursive undef
+ Plack::Middleware::Refresh undef
+ Plack::Middleware::Runtime undef
+ Plack::Middleware::SimpleContentFilter undef
+ Plack::Middleware::SimpleLogger undef
+ Plack::Middleware::StackTrace undef
+ Plack::Middleware::Static undef
+ Plack::Middleware::XFramework undef
+ Plack::Middleware::XSendfile undef
+ Plack::Recursive::ForwardRequest undef
+ Plack::Request 1.0039
+ Plack::Request::Upload undef
+ Plack::Response 1.0039
+ Plack::Runner undef
+ Plack::TempBuffer undef
+ Plack::Test undef
+ Plack::Test::MockHTTP undef
+ Plack::Test::Server undef
+ Plack::Test::Suite undef
+ Plack::Util undef
+ Plack::Util::Accessor undef
+ Plack::Util::IOWithPath undef
+ Plack::Util::Prototype undef
+ requirements:
+ Apache::LogFormat::Compiler 0.12
+ Cookie::Baker 0.05
+ Devel::StackTrace 1.23
+ Devel::StackTrace::AsHTML 0.11
+ ExtUtils::MakeMaker 0
+ File::ShareDir 1.00
+ File::ShareDir::Install 0.06
+ Filesys::Notify::Simple 0
+ HTTP::Body 1.06
+ HTTP::Headers::Fast 0.18
+ HTTP::Message 5.814
+ HTTP::Tiny 0.034
+ Hash::MultiValue 0.05
+ Pod::Usage 1.36
+ Stream::Buffered 0.02
+ Test::TCP 2.00
+ Try::Tiny 0
+ URI 1.59
+ parent 0
+ perl 5.008001
+ Pod-Coverage-0.23
+ pathname: R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz
+ provides:
+ Pod::Coverage 0.23
+ Pod::Coverage::CountParents undef
+ Pod::Coverage::ExportOnly undef
+ Pod::Coverage::Extractor 0.23
+ Pod::Coverage::Overloader undef
+ requirements:
+ Devel::Symdump 2.01
+ ExtUtils::MakeMaker 0
+ Pod::Find 0.21
+ Pod::Parser 1.13
+ Test::More 0
+ Regexp-Common-2016060801
+ pathname: A/AB/ABIGAIL/Regexp-Common-2016060801.tar.gz
+ provides:
+ Regexp::Common 2016060801
+ Regexp::Common::CC 2016060801
+ Regexp::Common::Entry 2016060801
+ Regexp::Common::SEN 2016060801
+ Regexp::Common::URI 2016060801
+ Regexp::Common::URI::RFC1035 2016060801
+ Regexp::Common::URI::RFC1738 2016060801
+ Regexp::Common::URI::RFC1808 2016060801
+ Regexp::Common::URI::RFC2384 2016060801
+ Regexp::Common::URI::RFC2396 2016060801
+ Regexp::Common::URI::RFC2806 2016060801
+ Regexp::Common::URI::fax 2016060801
+ Regexp::Common::URI::file 2016060801
+ Regexp::Common::URI::ftp 2016060801
+ Regexp::Common::URI::gopher 2016060801
+ Regexp::Common::URI::http 2016060801
+ Regexp::Common::URI::news 2016060801
+ Regexp::Common::URI::pop 2016060801
+ Regexp::Common::URI::prospero 2016060801
+ Regexp::Common::URI::tel 2016060801
+ Regexp::Common::URI::telnet 2016060801
+ Regexp::Common::URI::tv 2016060801
+ Regexp::Common::URI::wais 2016060801
+ Regexp::Common::_support 2016060801
+ Regexp::Common::balanced 2016060801
+ Regexp::Common::comment 2016060801
+ Regexp::Common::delimited 2016060801
+ Regexp::Common::lingua 2016060801
+ Regexp::Common::list 2016060801
+ Regexp::Common::net 2016060801
+ Regexp::Common::number 2016060801
+ Regexp::Common::profanity 2016060801
+ Regexp::Common::whitespace 2016060801
+ Regexp::Common::zip 2016060801
+ requirements:
+ Config 0
+ ExtUtils::MakeMaker 0
+ perl 5.01
+ strict 0
+ vars 0
+ warnings 0
+ Return-Value-1.666005
+ pathname: R/RJ/RJBS/Return-Value-1.666005.tar.gz
+ provides:
+ Return::Value 1.666005
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ overload 0
+ strict 0
+ warnings 0
+ Router-Simple-0.17
+ pathname: T/TO/TOKUHIROM/Router-Simple-0.17.tar.gz
+ provides:
+ Router::Simple 0.17
+ Router::Simple::Declare undef
+ Router::Simple::Route undef
+ Router::Simple::SubMapper undef
+ requirements:
+ Class::Accessor::Lite 0.05
+ List::Util 0
+ Module::Build 0.38
+ Scalar::Util 0
+ parent 0
+ perl 5.008_001
+ SOAP-Lite-1.20
+ pathname: P/PH/PHRED/SOAP-Lite-1.20.tar.gz
+ provides:
+ Apache::SOAP 1.17
+ My::Chat undef
+ My::Examples undef
+ My::Parameters undef
+ My::PersistentIterator undef
+ My::PingPong undef
+ My::SessionIterator undef
+ SOAP 1.20
+ SOAP::Apache undef
+ SOAP::Client 1.20
+ SOAP::Cloneable 1.20
+ SOAP::Constants 1.17
+ SOAP::Custom::XML::Data 1.20
+ SOAP::Custom::XML::Deserializer 1.20
+ SOAP::Data 1.20
+ SOAP::Deserializer 1.20
+ SOAP::Fault 1.20
+ SOAP::Header 1.20
+ SOAP::Lite 1.20
+ SOAP::Lite::COM 1.20
+ SOAP::Lite::Deserializer::XMLSchema1999 undef
+ SOAP::Lite::Deserializer::XMLSchema2001 undef
+ SOAP::Lite::Deserializer::XMLSchemaSOAP1_1 undef
+ SOAP::Lite::Deserializer::XMLSchemaSOAP1_2 undef
+ SOAP::Lite::Packager undef
+ SOAP::Lite::Packager::DIME undef
+ SOAP::Lite::Packager::MIME undef
+ SOAP::Lite::Utils undef
+ SOAP::Packager 1.17
+ SOAP::Packager::DIME 1.17
+ SOAP::Packager::MIME 1.17
+ SOAP::Parser 1.20
+ SOAP::SOM 1.20
+ SOAP::Schema 1.20
+ SOAP::Schema::Deserializer 1.20
+ SOAP::Schema::WSDL 1.20
+ SOAP::Serializer 1.20
+ SOAP::Server 1.20
+ SOAP::Server::Object 1.20
+ SOAP::Server::Parameters 1.20
+ SOAP::Test 1.17
+ SOAP::Test::Server 1.17
+ SOAP::Trace 1.20
+ SOAP::Transport 1.20
+ SOAP::Transport::HTTP 1.17
+ SOAP::Transport::HTTP::Apache 1.17
+ SOAP::Transport::HTTP::CGI 1.17
+ SOAP::Transport::HTTP::Client 1.17
+ SOAP::Transport::HTTP::Daemon 1.17
+ SOAP::Transport::HTTP::Daemon::ForkAfterProcessing undef
+ SOAP::Transport::HTTP::Daemon::ForkOnAccept undef
+ SOAP::Transport::HTTP::FCGI 1.17
+ SOAP::Transport::HTTP::Server 1.17
+ SOAP::Transport::IO 1.17
+ SOAP::Transport::IO::Server 1.17
+ SOAP::Transport::LOCAL 1.17
+ SOAP::Transport::LOCAL::Client 1.17
+ SOAP::Transport::LOOPBACK undef
+ SOAP::Transport::LOOPBACK::Client undef
+ SOAP::Transport::MAILTO 1.17
+ SOAP::Transport::MAILTO::Client 1.17
+ SOAP::Transport::POP3 1.17
+ SOAP::Transport::POP3::Server 1.17
+ SOAP::Transport::TCP 1.17
+ SOAP::Transport::TCP::Client 1.17
+ SOAP::Transport::TCP::Server 1.17
+ SOAP::Utils 1.20
+ SOAP::XMLSchema1999::Serializer 1.20
+ SOAP::XMLSchema2001::Serializer 1.20
+ SOAP::XMLSchema::Serializer 1.20
+ SOAP::XMLSchemaApacheSOAP::Deserializer 1.20
+ URI::tcp 1.17
+ requirements:
+ Class::Inspector 0
+ Compress::Zlib 0
+ ExtUtils::MakeMaker 0
+ IO::SessionData 1.03
+ IO::Socket::SSL 0
+ LWP::Protocol::https 0
+ LWP::UserAgent 0
+ MIME::Base64 0
+ Scalar::Util 0
+ Task::Weaken 0
+ URI 0
+ XML::Parser 2.23
+ constant 0
+ perl 5.006000
+ Safe-2.35
+ pathname: R/RG/RGARCIA/Safe-2.35.tar.gz
+ provides:
+ Safe 2.35
+ requirements:
+ ExtUtils::MakeMaker 0
+ Socket-2.023
+ pathname: P/PE/PEVANS/Socket-2.023.tar.gz
+ provides:
+ Socket 2.023
+ requirements:
+ ExtUtils::CBuilder 0
+ ExtUtils::Constant 0.23
+ ExtUtils::MakeMaker 0
+ perl 5.006001
+ Sort-Versions-1.62
+ pathname: N/NE/NEILB/Sort-Versions-1.62.tar.gz
+ provides:
+ Sort::Versions 1.62
+ requirements:
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Stream-Buffered-0.03
+ pathname: D/DO/DOY/Stream-Buffered-0.03.tar.gz
+ provides:
+ Stream::Buffered 0.03
+ Stream::Buffered::Auto undef
+ Stream::Buffered::File undef
+ Stream::Buffered::PerlIO undef
+ requirements:
+ ExtUtils::MakeMaker 6.30
+ IO::File 1.14
+ String-CRC32-1.5
+ pathname: S/SO/SOENKE/String-CRC32-1.5.tar.gz
+ provides:
+ String::CRC32 1.5
+ requirements:
+ ExtUtils::MakeMaker 0
+ Sub-Exporter-Progressive-0.001011
+ pathname: F/FR/FREW/Sub-Exporter-Progressive-0.001011.tar.gz
+ provides:
+ Sub::Exporter::Progressive 0.001011
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::More 0.88
+ Sub-Install-0.928
+ pathname: R/RJ/RJBS/Sub-Install-0.928.tar.gz
+ provides:
+ Sub::Install 0.928
+ requirements:
+ B 0
+ Carp 0
+ ExtUtils::MakeMaker 6.30
+ Scalar::Util 0
+ strict 0
+ warnings 0
+ Sub-Name-0.15
+ pathname: E/ET/ETHER/Sub-Name-0.15.tar.gz
+ provides:
+ Sub::Name 0.15
+ requirements:
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ XSLoader 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Sub-Uplevel-0.2600
+ pathname: D/DA/DAGOLDEN/Sub-Uplevel-0.2600.tar.gz
+ provides:
+ Sub::Uplevel 0.2600
+ requirements:
+ Carp 0
+ ExtUtils::MakeMaker 6.17
+ constant 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Task-Weaken-1.04
+ pathname: A/AD/ADAMK/Task-Weaken-1.04.tar.gz
+ provides:
+ Task::Weaken 1.04
+ requirements:
+ ExtUtils::MakeMaker 6.42
+ File::Spec 0.80
+ Scalar::Util 1.14
+ Test::More 0.42
+ perl 5.005
+ Template-GD-2.66
+ pathname: A/AB/ABW/Template-GD-2.66.tar.gz
+ provides:
+ Template::GD undef
+ Template::Plugin::GD 2.66
+ Template::Plugin::GD::Constants 1.56
+ Template::Plugin::GD::Graph::area 1.58
+ Template::Plugin::GD::Graph::bars 1.58
+ Template::Plugin::GD::Graph::bars3d 1.58
+ Template::Plugin::GD::Graph::lines 1.58
+ Template::Plugin::GD::Graph::lines3d 1.58
+ Template::Plugin::GD::Graph::linespoints 1.58
+ Template::Plugin::GD::Graph::mixed 1.58
+ Template::Plugin::GD::Graph::pie 1.56
+ Template::Plugin::GD::Graph::pie3d 1.56
+ Template::Plugin::GD::Graph::points 1.58
+ Template::Plugin::GD::Image 1.56
+ Template::Plugin::GD::Polygon 1.56
+ Template::Plugin::GD::Text 1.56
+ Template::Plugin::GD::Text::Align 1.56
+ Template::Plugin::GD::Text::Wrap 1.56
+ requirements:
+ ExtUtils::MakeMaker 0
+ GD 1.14
+ Template 2.14
+ Template-Toolkit-2.24
+ pathname: A/AB/ABW/Template-Toolkit-2.24.tar.gz
+ provides:
+ Template 2.24
+ Template::Base 2.78
+ Template::Config 2.75
+ Template::Constants 2.75
+ Template::Context 2.98
+ Template::Directive 2.2
+ Template::Document 2.79
+ Template::Exception 2.7
+ Template::Filters 2.87
+ Template::Grammar 2.25
+ Template::Iterator 2.68
+ Template::Monad::Assert 1
+ Template::Monad::Scalar 1
+ Template::Namespace::Constants 1.27
+ Template::Parser 2.89
+ Template::Perl 2.2
+ Template::Plugin 2.7
+ Template::Plugin::Assert 1
+ Template::Plugin::CGI 2.7
+ Template::Plugin::Datafile 2.72
+ Template::Plugin::Date 2.78
+ Template::Plugin::Date::Calc 2.78
+ Template::Plugin::Date::Manip 2.78
+ Template::Plugin::Directory 2.7
+ Template::Plugin::Dumper 2.7
+ Template::Plugin::File 2.71
+ Template::Plugin::Filter 1.38
+ Template::Plugin::Format 2.7
+ Template::Plugin::HTML 2.62
+ Template::Plugin::Image 1.21
+ Template::Plugin::Iterator 2.68
+ Template::Plugin::Math 1.16
+ Template::Plugin::Pod 2.69
+ Template::Plugin::Procedural 1.17
+ Template::Plugin::Scalar 1
+ Template::Plugin::String 2.4
+ Template::Plugin::Table 2.71
+ Template::Plugin::URL 2.74
+ Template::Plugin::View 2.68
+ Template::Plugin::Wrap 2.68
+ Template::Plugins 2.77
+ Template::Provider 2.94
+ Template::Service 2.8
+ Template::Stash 2.91
+ Template::Stash::Context 1.63
+ Template::Stash::XS undef
+ Template::Test 2.75
+ Template::TieString 2.75
+ Template::VMethods 2.16
+ Template::View 2.91
+ bytes 2.94
+ requirements:
+ AppConfig 1.56
+ ExtUtils::MakeMaker 0
+ File::Spec 0.8
+ File::Temp 0.12
+ Scalar::Util 0
+ Test-CPAN-Meta-0.25
+ pathname: B/BA/BARBIE/Test-CPAN-Meta-0.25.tar.gz
+ provides:
+ Test::CPAN::Meta 0.25
+ Test::CPAN::Meta::Version 0.25
+ requirements:
+ ExtUtils::MakeMaker 0
+ IO::File 0
+ Parse::CPAN::Meta 0.02
+ Test::Builder 0
+ Test::Builder::Tester 0
+ Test::More 0.70
+ Test-Deep-1.120
+ pathname: R/RJ/RJBS/Test-Deep-1.120.tar.gz
+ provides:
+ Test::Deep 1.120
+ Test::Deep::All undef
+ Test::Deep::Any undef
+ Test::Deep::Array undef
+ Test::Deep::ArrayEach undef
+ Test::Deep::ArrayElementsOnly undef
+ Test::Deep::ArrayLength undef
+ Test::Deep::ArrayLengthOnly undef
+ Test::Deep::Blessed undef
+ Test::Deep::Boolean undef
+ Test::Deep::Cache undef
+ Test::Deep::Cache::Simple undef
+ Test::Deep::Class undef
+ Test::Deep::Cmp undef
+ Test::Deep::Code undef
+ Test::Deep::Hash undef
+ Test::Deep::HashEach undef
+ Test::Deep::HashElements undef
+ Test::Deep::HashKeys undef
+ Test::Deep::HashKeysOnly undef
+ Test::Deep::Ignore undef
+ Test::Deep::Isa undef
+ Test::Deep::ListMethods undef
+ Test::Deep::MM undef
+ Test::Deep::Methods undef
+ Test::Deep::NoTest undef
+ Test::Deep::None undef
+ Test::Deep::Number undef
+ Test::Deep::Obj undef
+ Test::Deep::Ref undef
+ Test::Deep::RefType undef
+ Test::Deep::Regexp undef
+ Test::Deep::RegexpMatches undef
+ Test::Deep::RegexpOnly undef
+ Test::Deep::RegexpRef undef
+ Test::Deep::RegexpRefOnly undef
+ Test::Deep::RegexpVersion undef
+ Test::Deep::ScalarRef undef
+ Test::Deep::ScalarRefOnly undef
+ Test::Deep::Set undef
+ Test::Deep::Shallow undef
+ Test::Deep::Stack undef
+ Test::Deep::String undef
+ Test::Deep::SubHash undef
+ Test::Deep::SubHashElements undef
+ Test::Deep::SubHashKeys undef
+ Test::Deep::SubHashKeysOnly undef
+ Test::Deep::SuperHash undef
+ Test::Deep::SuperHashElements undef
+ Test::Deep::SuperHashKeys undef
+ Test::Deep::SuperHashKeysOnly undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ List::Util 1.09
+ Scalar::Util 1.09
+ Test::Builder 0
+ Test-EOL-1.6
+ pathname: F/FR/FREW/Test-EOL-1.6.tar.gz
+ provides:
+ Test::EOL 1.6
+ requirements:
+ Cwd 0
+ ExtUtils::MakeMaker 0
+ File::Find 0
+ File::Spec 0
+ Test::Builder 0
+ perl 5.006
+ strict 0
+ vars 0
+ warnings 0
+ Test-Exception-0.43
+ pathname: E/EX/EXODIST/Test-Exception-0.43.tar.gz
+ provides:
+ Test::Exception 0.43
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ Sub::Uplevel 0.18
+ Test::Builder 0.7
+ Test::Builder::Tester 1.07
+ Test::Harness 2.03
+ base 0
+ perl 5.006001
+ strict 0
+ warnings 0
+ Test-Fatal-0.014
+ pathname: R/RJ/RJBS/Test-Fatal-0.014.tar.gz
+ provides:
+ Test::Fatal 0.014
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Test::Builder 0
+ Try::Tiny 0.07
+ strict 0
+ warnings 0
+ Test-Harness-3.36
+ pathname: L/LE/LEONT/Test-Harness-3.36.tar.gz
+ provides:
+ App::Prove 3.36
+ App::Prove::State 3.36
+ App::Prove::State::Result 3.36
+ App::Prove::State::Result::Test 3.36
+ Harness::Hook undef
+ TAP::Base 3.36
+ TAP::Formatter::Base 3.36
+ TAP::Formatter::Color 3.36
+ TAP::Formatter::Console 3.36
+ TAP::Formatter::Console::ParallelSession 3.36
+ TAP::Formatter::Console::Session 3.36
+ TAP::Formatter::File 3.36
+ TAP::Formatter::File::Session 3.36
+ TAP::Formatter::Session 3.36
+ TAP::Harness 3.36
+ TAP::Harness::Env 3.36
+ TAP::Object 3.36
+ TAP::Parser 3.36
+ TAP::Parser::Aggregator 3.36
+ TAP::Parser::Grammar 3.36
+ TAP::Parser::Iterator 3.36
+ TAP::Parser::Iterator::Array 3.36
+ TAP::Parser::Iterator::Process 3.36
+ TAP::Parser::Iterator::Stream 3.36
+ TAP::Parser::IteratorFactory 3.36
+ TAP::Parser::Multiplexer 3.36
+ TAP::Parser::Result 3.36
+ TAP::Parser::Result::Bailout 3.36
+ TAP::Parser::Result::Comment 3.36
+ TAP::Parser::Result::Plan 3.36
+ TAP::Parser::Result::Pragma 3.36
+ TAP::Parser::Result::Test 3.36
+ TAP::Parser::Result::Unknown 3.36
+ TAP::Parser::Result::Version 3.36
+ TAP::Parser::Result::YAML 3.36
+ TAP::Parser::ResultFactory 3.36
+ TAP::Parser::Scheduler 3.36
+ TAP::Parser::Scheduler::Job 3.36
+ TAP::Parser::Scheduler::Spinner 3.36
+ TAP::Parser::Source 3.36
+ TAP::Parser::SourceHandler 3.36
+ TAP::Parser::SourceHandler::Executable 3.36
+ TAP::Parser::SourceHandler::File 3.36
+ TAP::Parser::SourceHandler::Handle 3.36
+ TAP::Parser::SourceHandler::Perl 3.36
+ TAP::Parser::SourceHandler::RawTAP 3.36
+ TAP::Parser::YAMLish::Reader 3.36
+ TAP::Parser::YAMLish::Writer 3.36
+ Test::Harness 3.36
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test-NoTabs-1.4
+ pathname: B/BO/BOBTFISH/Test-NoTabs-1.4.tar.gz
+ provides:
+ Test::NoTabs 1.4
+ requirements:
+ ExtUtils::MakeMaker 6.36
+ File::Find 0
+ File::Spec 0
+ FindBin 0
+ Test::Builder 0
+ Test::More 0
+ Test-NoWarnings-1.04
+ pathname: A/AD/ADAMK/Test-NoWarnings-1.04.tar.gz
+ provides:
+ Test::NoWarnings 1.04
+ Test::NoWarnings::Warning 1.04
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::Builder 0.86
+ Test::More 0.47
+ Test::Tester 0.107
+ perl 5.006
+ Test-Number-Delta-1.06
+ pathname: D/DA/DAGOLDEN/Test-Number-Delta-1.06.tar.gz
+ provides:
+ Test::Number::Delta 1.06
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 6.17
+ Test::Builder 0
+ perl 5.006
+ strict 0
+ vars 0
+ warnings 0
+ Test-SharedFork-0.35
+ pathname: E/EX/EXODIST/Test-SharedFork-0.35.tar.gz
+ provides:
+ Test::SharedFork 0.35
+ Test::SharedFork::Array undef
+ Test::SharedFork::Scalar undef
+ Test::SharedFork::Store undef
+ requirements:
+ ExtUtils::MakeMaker 6.64
+ File::Temp 0
+ Test::Builder 0.32
+ Test::Builder::Module 0
+ Test::More 0.88
+ perl 5.008_001
+ Test-Simple-1.302049
+ pathname: E/EX/EXODIST/Test-Simple-1.302049.tar.gz
+ provides:
+ Test2 1.302049
+ Test2::API 1.302049
+ Test2::API::Breakage 1.302049
+ Test2::API::Context 1.302049
+ Test2::API::Instance 1.302049
+ Test2::API::Stack 1.302049
+ Test2::Event 1.302049
+ Test2::Event::Bail 1.302049
+ Test2::Event::Diag 1.302049
+ Test2::Event::Exception 1.302049
+ Test2::Event::Generic 1.302049
+ Test2::Event::Info 1.302049
+ Test2::Event::Note 1.302049
+ Test2::Event::Ok 1.302049
+ Test2::Event::Plan 1.302049
+ Test2::Event::Skip 1.302049
+ Test2::Event::Subtest 1.302049
+ Test2::Event::Waiting 1.302049
+ Test2::Formatter 1.302049
+ Test2::Formatter::TAP 1.302049
+ Test2::Hub 1.302049
+ Test2::Hub::Interceptor 1.302049
+ Test2::Hub::Interceptor::Terminator 1.302049
+ Test2::Hub::Subtest 1.302049
+ Test2::IPC 1.302049
+ Test2::IPC::Driver 1.302049
+ Test2::IPC::Driver::Files 1.302049
+ Test2::Util 1.302049
+ Test2::Util::ExternalMeta 1.302049
+ Test2::Util::HashBase 1.302049
+ Test2::Util::Trace 1.302049
+ Test::Builder 1.302049
+ Test::Builder::Formatter 1.302049
+ Test::Builder::IO::Scalar 2.113
+ Test::Builder::Module 1.302049
+ Test::Builder::Tester 1.302049
+ Test::Builder::Tester::Color 1.302049
+ Test::Builder::Tester::Tie 1.302049
+ Test::Builder::TodoDiag 1.302049
+ Test::More 1.302049
+ Test::Simple 1.302049
+ Test::Tester 1.302049
+ Test::Tester::Capture 1.302049
+ Test::Tester::CaptureRunner 1.302049
+ Test::Tester::Delegate 1.302049
+ Test::use::ok 1.302049
+ ok 1.302049
+ requirements:
+ ExtUtils::MakeMaker 0
+ File::Spec 0
+ File::Temp 0
+ PerlIO 0
+ Scalar::Util 1.13
+ Storable 0
+ perl 5.008001
+ utf8 0
+ Test-TCP-2.16
+ pathname: T/TO/TOKUHIROM/Test-TCP-2.16.tar.gz
+ provides:
+ Net::EmptyPort undef
+ Test::TCP 2.16
+ Test::TCP::CheckPort undef
+ requirements:
+ ExtUtils::MakeMaker 6.64
+ IO::Socket::INET 0
+ IO::Socket::IP 0
+ Test::More 0
+ Test::SharedFork 0.29
+ Time::HiRes 0
+ perl 5.008001
+ Test-Taint-1.06
+ pathname: P/PE/PETDANCE/Test-Taint-1.06.tar.gz
+ provides:
+ Test::Taint 1.06
+ requirements:
+ ExtUtils::MakeMaker 0
+ Scalar::Util 0
+ Test::Builder 0
+ Test::More 0
+ Tie::Array 0
+ Tie::Hash 0
+ Tie::Scalar 0
+ overload 0
+ Test-WWW-Selenium-1.36
+ pathname: M/MA/MATTP/Test-WWW-Selenium-1.36.tar.gz
+ provides:
+ Devel::REPL::Plugin::Selenium 1.36
+ Test::WWW::Selenium 1.36
+ WWW::Selenium 1.36
+ WWW::Selenium::Util 1.36
+ requirements:
+ Carp 0
+ Data::Dumper 0
+ Exporter 0
+ ExtUtils::MakeMaker 6.30
+ HTTP::Headers 0
+ HTTP::Request 0
+ IO::Socket 0
+ LWP::UserAgent 0
+ Test::Builder 0
+ Test::More 0
+ Time::HiRes 0
+ URI::Escape 0
+ base 0
+ namespace::clean 0
+ strict 0
+ warnings 0
+ Text-Diff-1.44
+ pathname: N/NE/NEILB/Text-Diff-1.44.tar.gz
+ provides:
+ Text::Diff 1.44
+ Text::Diff::Base 1.44
+ Text::Diff::Config 1.44
+ Text::Diff::Table 1.44
+ requirements:
+ Algorithm::Diff 1.19
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ perl 5.006
+ TheSchwartz-1.12
+ pathname: J/JF/JFEARN/TheSchwartz-1.12.tar.gz
+ provides:
+ TheSchwartz 1.12
+ TheSchwartz::Error undef
+ TheSchwartz::ExitStatus undef
+ TheSchwartz::FuncMap undef
+ TheSchwartz::Job undef
+ TheSchwartz::JobHandle undef
+ TheSchwartz::Worker undef
+ requirements:
+ Data::ObjectDriver 0.04
+ Digest::MD5 0
+ Module::Build 0
+ Storable 0
+ Test::More 0
+ Tie-EncryptedHash-1.24
+ pathname: V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz
+ provides:
+ Tie::EncryptedHash 1.8
+ requirements:
+ Crypt::Blowfish 0
+ Crypt::CBC 0
+ Crypt::DES 0
+ ExtUtils::MakeMaker 0
+ Tie-IxHash-1.23
+ pathname: C/CH/CHORNY/Tie-IxHash-1.23.tar.gz
+ provides:
+ Tie::IxHash 1.23
+ requirements:
+ Test::More 0
+ perl 5.005
+ TimeDate-1.19
+ pathname: G/GB/GBARR/TimeDate-1.19.tar.gz
+ provides:
+ Date::Format 2.23
+ Date::Format::Generic 2.23
+ Date::Language 1.10
+ Date::Language::Afar 0.99
+ Date::Language::Amharic 1.00
+ Date::Language::Austrian 1.01
+ Date::Language::Brazilian 1.01
+ Date::Language::Chinese 1.00
+ Date::Language::Chinese_GB 1.01
+ Date::Language::Czech 1.01
+ Date::Language::Danish 1.01
+ Date::Language::Dutch 1.02
+ Date::Language::English 1.01
+ Date::Language::Finnish 1.01
+ Date::Language::French 1.04
+ Date::Language::Gedeo 0.99
+ Date::Language::German 1.02
+ Date::Language::Greek 1.00
+ Date::Language::Hungarian 1.01
+ Date::Language::Icelandic 1.01
+ Date::Language::Italian 1.01
+ Date::Language::Norwegian 1.01
+ Date::Language::Oromo 0.99
+ Date::Language::Romanian 1.01
+ Date::Language::Russian 1.01
+ Date::Language::Russian_cp1251 1.01
+ Date::Language::Russian_koi8r 1.01
+ Date::Language::Sidama 0.99
+ Date::Language::Somali 0.99
+ Date::Language::Spanish 1.00
+ Date::Language::Swedish 1.01
+ Date::Language::Tigrinya 1.00
+ Date::Language::TigrinyaEritrean 1.00
+ Date::Language::TigrinyaEthiopian 1.00
+ Date::Language::Turkish 1.0
+ Date::Parse 2.29
+ Time::Zone 2.24
+ TimeDate undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ Try-Tiny-0.24
+ pathname: E/ET/ETHER/Try-Tiny-0.24.tar.gz
+ provides:
+ Try::Tiny 0.24
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ constant 0
+ perl 5.006
+ strict 0
+ warnings 0
+ URI-1.71
+ pathname: E/ET/ETHER/URI-1.71.tar.gz
+ provides:
+ URI 1.71
+ URI::Escape 3.31
+ URI::Heuristic 4.20
+ URI::IRI 1.71
+ URI::QueryParam 1.71
+ URI::Split 1.71
+ URI::URL 5.04
+ URI::WithBase 2.20
+ URI::_foreign 1.71
+ URI::_generic 1.71
+ URI::_idna 1.71
+ URI::_ldap 1.71
+ URI::_login 1.71
+ URI::_punycode 1.71
+ URI::_query 1.71
+ URI::_segment 1.71
+ URI::_server 1.71
+ URI::_userpass 1.71
+ URI::data 1.71
+ URI::file 4.21
+ URI::file::Base 1.71
+ URI::file::FAT 1.71
+ URI::file::Mac 1.71
+ URI::file::OS2 1.71
+ URI::file::QNX 1.71
+ URI::file::Unix 1.71
+ URI::file::Win32 1.71
+ URI::ftp 1.71
+ URI::gopher 1.71
+ URI::http 1.71
+ URI::https 1.71
+ URI::ldap 1.71
+ URI::ldapi 1.71
+ URI::ldaps 1.71
+ URI::mailto 1.71
+ URI::mms 1.71
+ URI::news 1.71
+ URI::nntp 1.71
+ URI::pop 1.71
+ URI::rlogin 1.71
+ URI::rsync 1.71
+ URI::rtsp 1.71
+ URI::rtspu 1.71
+ URI::sftp 1.71
+ URI::sip 1.71
+ URI::sips 1.71
+ URI::snews 1.71
+ URI::ssh 1.71
+ URI::telnet 1.71
+ URI::tn3270 1.71
+ URI::urn 1.71
+ URI::urn::isbn undef
+ URI::urn::oid 1.71
+ requirements:
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ MIME::Base64 2
+ Scalar::Util 0
+ parent 0
+ perl 5.008001
+ utf8 0
+ Variable-Magic-0.59
+ pathname: V/VP/VPIT/Variable-Magic-0.59.tar.gz
+ provides:
+ Variable::Magic 0.59
+ requirements:
+ Carp 0
+ Config 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ IO::Handle 0
+ IO::Select 0
+ IPC::Open3 0
+ POSIX 0
+ Socket 0
+ Test::More 0
+ XSLoader 0
+ base 0
+ lib 0
+ perl 5.008
+ XML-NamespaceSupport-1.11
+ pathname: P/PE/PERIGRIN/XML-NamespaceSupport-1.11.tar.gz
+ provides:
+ XML::NamespaceSupport 1.11
+ requirements:
+ ExtUtils::MakeMaker 6.42
+ Test::More 0.47
+ XML-Parser-2.44
+ pathname: T/TO/TODDR/XML-Parser-2.44.tar.gz
+ provides:
+ XML::Parser 2.44
+ XML::Parser::Expat 2.44
+ XML::Parser::Style::Debug undef
+ XML::Parser::Style::Objects undef
+ XML::Parser::Style::Stream undef
+ XML::Parser::Style::Subs undef
+ XML::Parser::Style::Tree undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ LWP::UserAgent 0
+ Test::More 0
+ perl 5.00405
+ XML-SAX-0.99
+ pathname: G/GR/GRANTM/XML-SAX-0.99.tar.gz
+ provides:
+ XML::SAX 0.99
+ XML::SAX::DocumentLocator undef
+ XML::SAX::ParserFactory 1.01
+ XML::SAX::PurePerl 0.99
+ XML::SAX::PurePerl::DebugHandler undef
+ XML::SAX::PurePerl::Exception undef
+ XML::SAX::PurePerl::Productions undef
+ XML::SAX::PurePerl::Reader undef
+ XML::SAX::PurePerl::Reader::Stream undef
+ XML::SAX::PurePerl::Reader::String undef
+ XML::SAX::PurePerl::Reader::URI undef
+ requirements:
+ ExtUtils::MakeMaker 0
+ File::Temp 0
+ XML::NamespaceSupport 0.03
+ XML::SAX::Base 1.05
+ XML-SAX-Base-1.08
+ pathname: G/GR/GRANTM/XML-SAX-Base-1.08.tar.gz
+ provides:
+ XML::SAX::Base 1.08
+ XML::SAX::Base::NoHandler 1.08
+ XML::SAX::Exception 1.08
+ requirements:
+ ExtUtils::MakeMaker 6.31
+ Test::More 0.88
+ XML-SAX-Expat-0.51
+ pathname: B/BJ/BJOERN/XML-SAX-Expat-0.51.tar.gz
+ provides:
+ XML::SAX::Expat 0.51
+ requirements:
+ ExtUtils::MakeMaker 0
+ XML::NamespaceSupport 0.03
+ XML::Parser 2.27
+ XML::SAX 0.03
+ XML::SAX::Base 1.00
+ XML-Simple-2.22
+ pathname: G/GR/GRANTM/XML-Simple-2.22.tar.gz
+ provides:
+ XML::Simple 2.22
+ requirements:
+ ExtUtils::MakeMaker 0
+ XML::NamespaceSupport 1.04
+ XML::SAX 0.15
+ XML::SAX::Expat 0
+ perl 5.008
+ XML-Twig-3.49
+ pathname: M/MI/MIROD/XML-Twig-3.49.tar.gz
+ provides:
+ XML::Twig 3.49
+ XML::Twig::Elt 3.49
+ XML::Twig::Entity 3.49
+ XML::Twig::Entity_list 3.49
+ XML::Twig::XPath 0.02
+ XML::Twig::XPath::Attribute 0.02
+ XML::Twig::XPath::Elt 0.02
+ XML::Twig::XPath::Namespace 0.02
+ requirements:
+ ExtUtils::MakeMaker 0
+ XML::Parser 2.23
+ XMLRPC-Lite-0.717
+ pathname: P/PH/PHRED/XMLRPC-Lite-0.717.tar.gz
+ provides:
+ Apache::XMLRPC::Lite 0.717
+ My::PingPong 0.717
+ XMLRPC 0.717
+ XMLRPC::Constants 0.717
+ XMLRPC::Data 0.717
+ XMLRPC::Deserializer 0.717
+ XMLRPC::Lite 0.717
+ XMLRPC::SOM 0.717
+ XMLRPC::Serializer 0.717
+ XMLRPC::Server 0.717
+ XMLRPC::Server::Parameters 0.717
+ XMLRPC::Test 0.717
+ XMLRPC::Test::Server 0.717
+ XMLRPC::Transport::HTTP 0.717
+ XMLRPC::Transport::HTTP::Apache 0.717
+ XMLRPC::Transport::HTTP::CGI 0.717
+ XMLRPC::Transport::HTTP::Daemon 0.717
+ XMLRPC::Transport::POP3 0.717
+ XMLRPC::Transport::POP3::Server 0.717
+ XMLRPC::Transport::TCP 0.717
+ XMLRPC::Transport::TCP::Server 0.717
+ requirements:
+ ExtUtils::MakeMaker 0
+ SOAP::Lite 0.716
+ SOAP::Transport::TCP 0.715
+ common-sense-3.74
+ pathname: M/ML/MLEHMANN/common-sense-3.74.tar.gz
+ provides:
+ common::sense 3.74
+ requirements:
+ ExtUtils::MakeMaker 0
+ libwww-perl-5.835
+ pathname: G/GA/GAAS/libwww-perl-5.835.tar.gz
+ provides:
+ Bundle::LWP 5.835
+ File::Listing 5.814
+ File::Listing::apache 5.814
+ File::Listing::dosftp 5.814
+ File::Listing::netware 5.814
+ File::Listing::unix 5.814
+ File::Listing::vms 5.814
+ HTML::Form 5.829
+ HTML::Form::FileInput 5.829
+ HTML::Form::IgnoreInput 5.829
+ HTML::Form::ImageInput 5.829
+ HTML::Form::Input 5.829
+ HTML::Form::KeygenInput 5.829
+ HTML::Form::ListInput 5.829
+ HTML::Form::SubmitInput 5.829
+ HTML::Form::TextInput 5.829
+ HTTP::Config 5.835
+ HTTP::Cookies 5.833
+ HTTP::Cookies::Microsoft 5.821
+ HTTP::Cookies::Netscape 5.832
+ HTTP::Daemon 5.827
+ HTTP::Daemon::ClientConn 5.827
+ HTTP::Date 5.831
+ HTTP::Headers 5.835
+ HTTP::Headers::Auth 5.817
+ HTTP::Headers::ETag 5.810
+ HTTP::Headers::Util 5.817
+ HTTP::Message 5.835
+ HTTP::Negotiate 5.835
+ HTTP::Request 5.827
+ HTTP::Request::Common 5.824
+ HTTP::Response 5.835
+ HTTP::Status 5.817
+ LWP 5.835
+ LWP::Authen::Basic undef
+ LWP::Authen::Digest undef
+ LWP::Authen::Ntlm 5.835
+ LWP::ConnCache 5.810
+ LWP::Debug undef
+ LWP::DebugFile undef
+ LWP::MediaTypes 5.835
+ LWP::MemberMixin undef
+ LWP::Protocol 5.829
+ LWP::Protocol::GHTTP undef
+ LWP::Protocol::MyFTP undef
+ LWP::Protocol::cpan undef
+ LWP::Protocol::data undef
+ LWP::Protocol::file undef
+ LWP::Protocol::ftp undef
+ LWP::Protocol::gopher undef
+ LWP::Protocol::http undef
+ LWP::Protocol::http10 undef
+ LWP::Protocol::http::Socket undef
+ LWP::Protocol::http::SocketMethods undef
+ LWP::Protocol::https undef
+ LWP::Protocol::https10 undef
+ LWP::Protocol::https::Socket undef
+ LWP::Protocol::loopback undef
+ LWP::Protocol::mailto undef
+ LWP::Protocol::nntp undef
+ LWP::Protocol::nogo undef
+ LWP::RobotUA 5.835
+ LWP::Simple 5.835
+ LWP::UserAgent 5.835
+ Net::HTTP 5.834
+ Net::HTTP::Methods 5.834
+ Net::HTTP::NB 5.810
+ Net::HTTPS 5.819
+ WWW::RobotRules 5.832
+ WWW::RobotRules::AnyDBM_File 5.835
+ WWW::RobotRules::InCore 5.832
+ requirements:
+ Compress::Raw::Zlib 0
+ Digest::MD5 0
+ ExtUtils::MakeMaker 0
+ HTML::Parser 3.33
+ HTML::Tagset 0
+ IO::Compress::Deflate 0
+ IO::Compress::Gzip 0
+ IO::Uncompress::Gunzip 0
+ IO::Uncompress::Inflate 0
+ IO::Uncompress::RawInflate 0
+ MIME::Base64 2.1
+ Net::FTP 2.58
+ URI 1.10
+ perl 5.006
+ namespace-clean-0.27
+ pathname: R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz
+ provides:
+ namespace::clean 0.27
+ requirements:
+ B::Hooks::EndOfScope 0.12
+ ExtUtils::MakeMaker 0
+ Package::Stash 0.23
+ Sub::Name 0.04
+ perl 5.008001
+ version-0.9917
+ pathname: J/JP/JPEACOCK/version-0.9917.tar.gz
+ provides:
+ version 0.9917
+ version::regex 0.9917
+ version::vpp 0.9917
+ version::vxs 0.9917
+ requirements:
+ ExtUtils::MakeMaker 6.17
+ File::Temp 0.13
+ Test::More 0.45
+ parent 0.221
+ perl 5.006002
diff --git a/createaccount.cgi b/createaccount.cgi
index acc63e891..c545d9ced 100755
--- a/createaccount.cgi
+++ b/createaccount.cgi
@@ -1,32 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# David Gardiner <david.gardiner@unisa.edu.au>
-# Joe Robins <jmrobins@tgix.com>
-# Christopher Aillon <christopher@aillon.com>
-# Gervase Markham <gerv@gerv.net>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/describecomponents.cgi b/describecomponents.cgi
index ed1f2388c..86f652fcc 100755
--- a/describecomponents.cgi
+++ b/describecomponents.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
@@ -22,8 +22,10 @@
# Bradley Baetz <bbaetz@student.usyd.edu.au>
# Frédéric Buclin <LpSolit@gmail.com>
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/describekeywords.cgi b/describekeywords.cgi
index 3850125cc..f48b88b7f 100755
--- a/describekeywords.cgi
+++ b/describekeywords.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
@@ -21,8 +21,10 @@
# Contributor(s): Terry Weissman <terry@mozilla.org>
# Contributor(s): Gervase Markham <gerv@gerv.net>
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Error;
diff --git a/docs/makedocs.pl b/docs/makedocs.pl
index 6f353dc6d..73bd6ce86 100755
--- a/docs/makedocs.pl
+++ b/docs/makedocs.pl
@@ -30,7 +30,7 @@ use warnings;
use File::Basename;
BEGIN { chdir dirname($0); }
-use lib qw(.. ../lib lib);
+use lib qw(.. ../lib lib ../local/lib/perl5);
use Cwd;
use File::Copy::Recursive qw(rcopy);
diff --git a/duplicates.cgi b/duplicates.cgi
index 798599ed0..a56e27473 100755
--- a/duplicates.cgi
+++ b/duplicates.cgi
@@ -1,29 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-# Gervase Markham <gerv@gerv.net>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editclassifications.cgi b/editclassifications.cgi
index 3ab89f120..2bcf74298 100755
--- a/editclassifications.cgi
+++ b/editclassifications.cgi
@@ -1,27 +1,17 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil; cperl-indent-level: 4 -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Albert Ting
-#
-# Contributor(s): Albert Ting <alt@sonic.net>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editcomponents.cgi b/editcomponents.cgi
index 7da22211b..9f59cda8f 100755
--- a/editcomponents.cgi
+++ b/editcomponents.cgi
@@ -1,30 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is Holger
-# Schurig. Portions created by Holger Schurig are
-# Copyright (C) 1999 Holger Schurig. All
-# Rights Reserved.
-#
-# Contributor(s): Holger Schurig <holgerschurig@nikocity.de>
-# Terry Weissman <terry@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Akamai Technologies <bugzilla-dev@akamai.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editfields.cgi b/editfields.cgi
index cdf1008f7..1c417ab1c 100755
--- a/editfields.cgi
+++ b/editfields.cgi
@@ -1,22 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editflagtypes.cgi b/editflagtypes.cgi
index d28188ad7..a6eebe433 100755
--- a/editflagtypes.cgi
+++ b/editflagtypes.cgi
@@ -1,35 +1,17 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-################################################################################
-# Script Initialization
-################################################################################
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
-# Use Bugzilla's flag modules for handling flag types.
use Bugzilla;
use Bugzilla::Constants;
use Bugzilla::Flag;
diff --git a/editgroups.cgi b/editgroups.cgi
index 68590457e..23e880de9 100755
--- a/editgroups.cgi
+++ b/editgroups.cgi
@@ -1,31 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Dave Miller <justdave@syndicomm.com>
-# Joel Peshkin <bugreport@peshkin.net>
-# Jacob Steenhagen <jake@bugzilla.org>
-# Vlad Dascalu <jocuri@softhome.net>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editkeywords.cgi b/editkeywords.cgi
index 2f0cd563b..906954be4 100755
--- a/editkeywords.cgi
+++ b/editkeywords.cgi
@@ -1,27 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Terry Weissman.
-# Portions created by Terry Weissman are
-# Copyright (C) 2000 Terry Weissman. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editmilestones.cgi b/editmilestones.cgi
index ca1c4368e..41df2b494 100755
--- a/editmilestones.cgi
+++ b/editmilestones.cgi
@@ -1,26 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Initial Developer of the Original Code is Matt Masson.
-# Portions created by Matt Masson are Copyright (C) 2000 Matt Masson.
-# All Rights Reserved.
-#
-# Contributors : Matt Masson <matthew@zeroknowledge.com>
-# Gavin Shelley <bugzilla@chimpychompy.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editparams.cgi b/editparams.cgi
index 0731e5ee3..d3b48b93c 100755
--- a/editparams.cgi
+++ b/editparams.cgi
@@ -1,29 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# J. Paul Reed <preed@sigkill.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editproducts.cgi b/editproducts.cgi
index 6d5c5e593..e0868ad08 100755
--- a/editproducts.cgi
+++ b/editproducts.cgi
@@ -1,35 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is Holger
-# Schurig. Portions created by Holger Schurig are
-# Copyright (C) 1999 Holger Schurig. All
-# Rights Reserved.
-#
-# Contributor(s): Holger Schurig <holgerschurig@nikocity.de>
-# Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Gavin Shelley <bugzilla@chimpychompy.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Greg Hendricks <ghendricks@novell.com>
-# Lance Larsh <lance.larsh@oracle.com>
-# Elliotte Martin <elliotte.martin@yahoo.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editsettings.cgi b/editsettings.cgi
index 981495893..ef419c7e3 100755
--- a/editsettings.cgi
+++ b/editsettings.cgi
@@ -1,23 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Shane H. W. Travis <travis@sedsystems.ca>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editusers.cgi b/editusers.cgi
index 318b858e5..efe6a27e3 100755
--- a/editusers.cgi
+++ b/editusers.cgi
@@ -1,27 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
-# Lance Larsh <lance.larsh@oracle.com>
-# Frédéric Buclin <LpSolit@gmail.com>
-# David Lawrence <dkl@redhat.com>
-# Vlad Dascalu <jocuri@softhome.net>
-# Gavin Shelley <bugzilla@chimpychompy.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editvalues.cgi b/editvalues.cgi
index 53ea78512..4511604da 100755
--- a/editvalues.cgi
+++ b/editvalues.cgi
@@ -1,25 +1,16 @@
-#!/usr/bin/perl -wT
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-# This is a script to edit the values of fields that have drop-down
-# or select boxes. It is largely a copy of editmilestones.cgi, but
-# with some cleanup.
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Util;
diff --git a/editversions.cgi b/editversions.cgi
index 165a174b5..ddfc5418e 100755
--- a/editversions.cgi
+++ b/editversions.cgi
@@ -1,30 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is mozilla.org code.
-#
-# The Initial Developer of the Original Code is Holger
-# Schurig. Portions created by Holger Schurig are
-# Copyright (C) 1999 Holger Schurig. All
-# Rights Reserved.
-#
-# Contributor(s): Holger Schurig <holgerschurig@nikocity.de>
-# Terry Weissman <terry@mozilla.org>
-# Gavin Shelley <bugzilla@chimpychompy.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editwhines.cgi b/editwhines.cgi
index 04e2b548f..23611cd79 100755
--- a/editwhines.cgi
+++ b/editwhines.cgi
@@ -1,33 +1,20 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Erik Stambaugh <erik@dasbistro.com>
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
################################################################################
# Script Initialization
################################################################################
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/editworkflow.cgi b/editworkflow.cgi
index 321f077fe..eef7a9f62 100755
--- a/editworkflow.cgi
+++ b/editworkflow.cgi
@@ -1,27 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Frédéric Buclin.
-# Portions created by Frédéric Buclin are Copyright (C) 2007
-# Frédéric Buclin. All Rights Reserved.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/email_in.pl b/email_in.pl
index 34e57c90c..0e61bf8f1 100755
--- a/email_in.pl
+++ b/email_in.pl
@@ -1,27 +1,23 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Inbound Email System.
-#
-# The Initial Developer of the Original Code is Akamai Technologies, Inc.
-# Portions created by Akamai are Copyright (C) 2006 Akamai Technologies,
-# Inc. All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
use warnings;
+use FindBin;
+BEGIN {
+ require lib;
+ my ($bin) = $FindBin::Bin =~ /^(.*)$/;
+
+ lib->import("$bin", "$bin/lib", "$bin/local/lib/perl5");
+}
+
# MTAs may call this script from any directory, but it should always
# run from this one so that it can find its modules.
use Cwd qw(abs_path);
@@ -32,8 +28,6 @@ BEGIN {
chdir dirname($a);
}
-use lib qw(. lib);
-
use Data::Dumper;
use Email::Address;
use Email::Reply qw(reply);
diff --git a/enter_bug.cgi b/enter_bug.cgi
index afaffd752..4d29ca040 100755
--- a/enter_bug.cgi
+++ b/enter_bug.cgi
@@ -1,28 +1,10 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are Copyright (C) 1998
-# Netscape Communications Corporation. All Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dave Miller <justdave@syndicomm.com>
-# Joe Robins <jmrobins@tgix.com>
-# Gervase Markham <gerv@gerv.net>
-# Shane H. W. Travis <travis@sedsystems.ca>
-# Nitish Bezzala <nbezzala@yahoo.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
##############################################################################
#
@@ -34,9 +16,11 @@
#
##############################################################################
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/extensions/AntiSpam/Config.pm b/extensions/AntiSpam/Config.pm
index 92c32f629..e16add9b7 100644
--- a/extensions/AntiSpam/Config.pm
+++ b/extensions/AntiSpam/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::AntiSpam;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'AntiSpam';
use constant REQUIRED_MODULES => [
diff --git a/extensions/AntiSpam/Extension.pm b/extensions/AntiSpam/Extension.pm
index 2abba291d..19eddb4e7 100644
--- a/extensions/AntiSpam/Extension.pm
+++ b/extensions/AntiSpam/Extension.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::AntiSpam;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/AntiSpam/lib/Config.pm b/extensions/AntiSpam/lib/Config.pm
index 754907d22..b6d1234d9 100644
--- a/extensions/AntiSpam/lib/Config.pm
+++ b/extensions/AntiSpam/lib/Config.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::AntiSpam::Config;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BMO/Config.pm b/extensions/BMO/Config.pm
index 93445f576..153af24cb 100644
--- a/extensions/BMO/Config.pm
+++ b/extensions/BMO/Config.pm
@@ -20,7 +20,10 @@
# Gervase Markham <gerv@gerv.net>
package Bugzilla::Extension::BMO;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'BMO';
diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm
index 5b87d2e8b..ac0acd72d 100644
--- a/extensions/BMO/Extension.pm
+++ b/extensions/BMO/Extension.pm
@@ -22,7 +22,11 @@
# Byron Jones <glob@mozilla.com>
package Bugzilla::Extension::BMO;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::BugMail;
diff --git a/extensions/BMO/bin/bug_1022707.pl b/extensions/BMO/bin/bug_1022707.pl
index c27757220..b0a49aa65 100755
--- a/extensions/BMO/bin/bug_1022707.pl
+++ b/extensions/BMO/bin/bug_1022707.pl
@@ -11,7 +11,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib "$RealBin/../../..";
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants qw( USAGE_MODE_CMDLINE );
diff --git a/extensions/BMO/bin/bug_1093952.pl b/extensions/BMO/bin/bug_1093952.pl
index 55d68b9be..a784e63a3 100755
--- a/extensions/BMO/bin/bug_1093952.pl
+++ b/extensions/BMO/bin/bug_1093952.pl
@@ -10,7 +10,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib "$RealBin/../../..";
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
use Bugzilla::Component;
diff --git a/extensions/BMO/bin/bug_1141452.pl b/extensions/BMO/bin/bug_1141452.pl
index 0d9b891ea..d2d260d7b 100755
--- a/extensions/BMO/bin/bug_1141452.pl
+++ b/extensions/BMO/bin/bug_1141452.pl
@@ -10,7 +10,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib "$RealBin/../../..";
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
BEGIN {
use Bugzilla;
diff --git a/extensions/BMO/bin/migrate-github-pull-requests.pl b/extensions/BMO/bin/migrate-github-pull-requests.pl
index 1d84352a2..11bf8c55f 100755
--- a/extensions/BMO/bin/migrate-github-pull-requests.pl
+++ b/extensions/BMO/bin/migrate-github-pull-requests.pl
@@ -11,7 +11,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib "$RealBin/../../..";
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
BEGIN { Bugzilla->extensions() }
diff --git a/extensions/BMO/lib/Constants.pm b/extensions/BMO/lib/Constants.pm
index c77e14f7b..3670cb9a2 100644
--- a/extensions/BMO/lib/Constants.pm
+++ b/extensions/BMO/lib/Constants.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Constants;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
our @EXPORT = qw(
REQUEST_MAX_ATTACH_LINES
diff --git a/extensions/BMO/lib/Data.pm b/extensions/BMO/lib/Data.pm
index b074cb64a..d4c2e3012 100644
--- a/extensions/BMO/lib/Data.pm
+++ b/extensions/BMO/lib/Data.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Data;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
use Tie::IxHash;
diff --git a/extensions/BMO/lib/FakeBug.pm b/extensions/BMO/lib/FakeBug.pm
index 6127cb560..f84835ddd 100644
--- a/extensions/BMO/lib/FakeBug.pm
+++ b/extensions/BMO/lib/FakeBug.pm
@@ -3,7 +3,9 @@ package Bugzilla::Extension::BMO::FakeBug;
# hack to allow the bug entry templates to use check_can_change_field to see if
# various field values should be available to the current user
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Bug;
diff --git a/extensions/BMO/lib/Reports/Groups.pm b/extensions/BMO/lib/Reports/Groups.pm
index a4816f914..ce7df767c 100644
--- a/extensions/BMO/lib/Reports/Groups.pm
+++ b/extensions/BMO/lib/Reports/Groups.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Reports::Groups;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BMO/lib/Reports/Internship.pm b/extensions/BMO/lib/Reports/Internship.pm
index cad403d09..2dfa583a6 100644
--- a/extensions/BMO/lib/Reports/Internship.pm
+++ b/extensions/BMO/lib/Reports/Internship.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Reports::Internship;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BMO/lib/Reports/ProductSecurity.pm b/extensions/BMO/lib/Reports/ProductSecurity.pm
index 2324e725a..e7ccda171 100644
--- a/extensions/BMO/lib/Reports/ProductSecurity.pm
+++ b/extensions/BMO/lib/Reports/ProductSecurity.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Reports::ProductSecurity;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BMO/lib/Reports/Recruiting.pm b/extensions/BMO/lib/Reports/Recruiting.pm
index bd988d9b1..39eb8327d 100644
--- a/extensions/BMO/lib/Reports/Recruiting.pm
+++ b/extensions/BMO/lib/Reports/Recruiting.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Reports::Recruiting;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BMO/lib/Reports/ReleaseTracking.pm b/extensions/BMO/lib/Reports/ReleaseTracking.pm
index 8894a5169..b6c7c4520 100644
--- a/extensions/BMO/lib/Reports/ReleaseTracking.pm
+++ b/extensions/BMO/lib/Reports/ReleaseTracking.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Reports::ReleaseTracking;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BMO/lib/Reports/Triage.pm b/extensions/BMO/lib/Reports/Triage.pm
index debb50577..e9a987b54 100644
--- a/extensions/BMO/lib/Reports/Triage.pm
+++ b/extensions/BMO/lib/Reports/Triage.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Reports::Triage;
+
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Component;
use Bugzilla::Constants;
diff --git a/extensions/BMO/lib/Reports/UserActivity.pm b/extensions/BMO/lib/Reports/UserActivity.pm
index 0a8e79e1f..8dfe0c5cd 100644
--- a/extensions/BMO/lib/Reports/UserActivity.pm
+++ b/extensions/BMO/lib/Reports/UserActivity.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Reports::UserActivity;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BMO/lib/Util.pm b/extensions/BMO/lib/Util.pm
index df781b9d2..dc9c904f9 100644
--- a/extensions/BMO/lib/Util.pm
+++ b/extensions/BMO/lib/Util.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BMO::Util;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BMO/lib/WebService.pm b/extensions/BMO/lib/WebService.pm
index 87d45085e..6ee7cfa6e 100644
--- a/extensions/BMO/lib/WebService.pm
+++ b/extensions/BMO/lib/WebService.pm
@@ -19,6 +19,7 @@
package Bugzilla::Extension::BMO::WebService;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Bitly/Config.pm b/extensions/Bitly/Config.pm
index aff9d4b4b..a07df0f1b 100644
--- a/extensions/Bitly/Config.pm
+++ b/extensions/Bitly/Config.pm
@@ -6,32 +6,21 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Bitly;
-use strict;
-use Bugzilla::Install::Util qw(vers_cmp);
+use 5.10.1;
+use strict;
+use warnings;
use constant NAME => 'Bitly';
sub REQUIRED_MODULES {
- my @required;
- push @required, {
- package => 'LWP',
- module => 'LWP',
- version => 5,
- };
- # LWP 6 split https support into a separate package
- if (Bugzilla::Install::Requirements::have_vers({
- package => 'LWP',
- module => 'LWP',
- version => 6,
- })) {
- push @required, {
- package => 'LWP-Protocol-https',
- module => 'LWP::Protocol::https',
- version => 0
- };
- }
- return \@required;
+ return [
+ {
+ package => 'LWP',
+ module => 'LWP',
+ version => '5.835',
+ },
+ ];
}
use constant OPTIONAL_MODULES => [
@@ -42,4 +31,6 @@ use constant OPTIONAL_MODULES => [
},
];
+use constant API_VERSION_MAP => { '1_0' => '1_0' };
+
__PACKAGE__->NAME;
diff --git a/extensions/Bitly/Extension.pm b/extensions/Bitly/Extension.pm
index a368b20fe..82f17bc2a 100644
--- a/extensions/Bitly/Extension.pm
+++ b/extensions/Bitly/Extension.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Bitly;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Bitly/lib/WebService.pm b/extensions/Bitly/lib/WebService.pm
index b47accda6..b8ada56d2 100644
--- a/extensions/Bitly/lib/WebService.pm
+++ b/extensions/Bitly/lib/WebService.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Bitly::WebService;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BugModal/Config.pm b/extensions/BugModal/Config.pm
index a60a99a7a..25a864e6e 100644
--- a/extensions/BugModal/Config.pm
+++ b/extensions/BugModal/Config.pm
@@ -6,7 +6,9 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BugModal;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'BugModal';
use constant REQUIRED_MODULES => [ ];
diff --git a/extensions/BugModal/Extension.pm b/extensions/BugModal/Extension.pm
index 01faf06d5..fb3a69cc7 100644
--- a/extensions/BugModal/Extension.pm
+++ b/extensions/BugModal/Extension.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::BugModal;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BugModal/lib/ActivityStream.pm b/extensions/BugModal/lib/ActivityStream.pm
index c9e053934..708c056d4 100644
--- a/extensions/BugModal/lib/ActivityStream.pm
+++ b/extensions/BugModal/lib/ActivityStream.pm
@@ -9,6 +9,8 @@ package Bugzilla::Extension::BugModal::ActivityStream;
1;
package Bugzilla::Bug;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BugModal/lib/MonkeyPatches.pm b/extensions/BugModal/lib/MonkeyPatches.pm
index 61f945a87..88fce11af 100644
--- a/extensions/BugModal/lib/MonkeyPatches.pm
+++ b/extensions/BugModal/lib/MonkeyPatches.pm
@@ -9,6 +9,8 @@ package Bugzilla::Extension::BugModal::MonkeyPatches;
1;
package Bugzilla;
+
+use 5.10.1;
use strict;
use warnings;
@@ -22,6 +24,8 @@ sub treeherder_user {
}
package Bugzilla::Bug;
+
+use 5.10.1;
use strict;
use warnings;
@@ -37,6 +41,8 @@ sub active_attachments {
1;
package Bugzilla::User;
+
+use 5.10.1;
use strict;
use warnings;
@@ -60,6 +66,8 @@ sub moz_nick {
1;
package Bugzilla::Attachment;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BugModal/lib/Util.pm b/extensions/BugModal/lib/Util.pm
index 74311197a..6a453159e 100644
--- a/extensions/BugModal/lib/Util.pm
+++ b/extensions/BugModal/lib/Util.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BugModal::Util;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BugModal/lib/WebService.pm b/extensions/BugModal/lib/WebService.pm
index 7a05f263b..338129e9b 100644
--- a/extensions/BugModal/lib/WebService.pm
+++ b/extensions/BugModal/lib/WebService.pm
@@ -6,6 +6,7 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BugModal::WebService;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BugmailFilter/Config.pm b/extensions/BugmailFilter/Config.pm
index 9932afb40..5948c3b64 100644
--- a/extensions/BugmailFilter/Config.pm
+++ b/extensions/BugmailFilter/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BugmailFilter;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'BugmailFilter';
use constant REQUIRED_MODULES => [];
diff --git a/extensions/BugmailFilter/Extension.pm b/extensions/BugmailFilter/Extension.pm
index dc38e8577..d4d7bb790 100644
--- a/extensions/BugmailFilter/Extension.pm
+++ b/extensions/BugmailFilter/Extension.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BugmailFilter;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BugmailFilter/lib/Constants.pm b/extensions/BugmailFilter/lib/Constants.pm
index 20e5480d0..a6636dda7 100644
--- a/extensions/BugmailFilter/lib/Constants.pm
+++ b/extensions/BugmailFilter/lib/Constants.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::BugmailFilter::Constants;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
diff --git a/extensions/BugmailFilter/lib/FakeField.pm b/extensions/BugmailFilter/lib/FakeField.pm
index 88e4ac1ca..e9f8b1808 100644
--- a/extensions/BugmailFilter/lib/FakeField.pm
+++ b/extensions/BugmailFilter/lib/FakeField.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::BugmailFilter::FakeField;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BugmailFilter/lib/Filter.pm b/extensions/BugmailFilter/lib/Filter.pm
index d59e19fb7..7f2f4cb87 100644
--- a/extensions/BugmailFilter/lib/Filter.pm
+++ b/extensions/BugmailFilter/lib/Filter.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::BugmailFilter::Filter;
use base qw(Bugzilla::Object);
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/BzAPI/Config.pm b/extensions/BzAPI/Config.pm
index 89b8c1e02..bd463b4ba 100644
--- a/extensions/BzAPI/Config.pm
+++ b/extensions/BzAPI/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::BzAPI;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'BzAPI';
diff --git a/extensions/BzAPI/Extension.pm b/extensions/BzAPI/Extension.pm
index f233b26e4..bb9805134 100644
--- a/extensions/BzAPI/Extension.pm
+++ b/extensions/BzAPI/Extension.pm
@@ -7,7 +7,10 @@
package Bugzilla::Extension::BzAPI;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::Extension::BzAPI::Constants;
diff --git a/extensions/BzAPI/lib/Constants.pm b/extensions/BzAPI/lib/Constants.pm
index 65ae00480..fb611aae6 100644
--- a/extensions/BzAPI/lib/Constants.pm
+++ b/extensions/BzAPI/lib/Constants.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::BzAPI::Constants;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
our @EXPORT = qw(
diff --git a/extensions/BzAPI/lib/Resources/Bug.pm b/extensions/BzAPI/lib/Resources/Bug.pm
index 77b567421..f3ff41049 100644
--- a/extensions/BzAPI/lib/Resources/Bug.pm
+++ b/extensions/BzAPI/lib/Resources/Bug.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::BzAPI::Resources::Bug;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Bug;
use Bugzilla::Error;
diff --git a/extensions/BzAPI/lib/Resources/Bugzilla.pm b/extensions/BzAPI/lib/Resources/Bugzilla.pm
index 96b07297e..f39cd29f3 100644
--- a/extensions/BzAPI/lib/Resources/Bugzilla.pm
+++ b/extensions/BzAPI/lib/Resources/Bugzilla.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::BzAPI::Resources::Bugzilla;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla;
use Bugzilla::Constants;
diff --git a/extensions/BzAPI/lib/Resources/User.pm b/extensions/BzAPI/lib/Resources/User.pm
index 7fbcdb871..550a61d28 100644
--- a/extensions/BzAPI/lib/Resources/User.pm
+++ b/extensions/BzAPI/lib/Resources/User.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::BzAPI::Resources::User;
use 5.10.1;
use strict;
+use warnings;
use Bugzilla::Extension::BzAPI::Util;
diff --git a/extensions/BzAPI/lib/Util.pm b/extensions/BzAPI/lib/Util.pm
index e783a1584..9760f4b5e 100644
--- a/extensions/BzAPI/lib/Util.pm
+++ b/extensions/BzAPI/lib/Util.pm
@@ -12,6 +12,7 @@
package Bugzilla::Extension::BzAPI::Util;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/ComponentWatching/Config.pm b/extensions/ComponentWatching/Config.pm
index 560b5c3c5..2014fbbfa 100644
--- a/extensions/ComponentWatching/Config.pm
+++ b/extensions/ComponentWatching/Config.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ComponentWatching;
+
+use 5.10.1;
use strict;
+use warnings;
+
use constant NAME => 'ComponentWatching';
__PACKAGE__->NAME;
diff --git a/extensions/ComponentWatching/Extension.pm b/extensions/ComponentWatching/Extension.pm
index f79b68595..36dee0e1d 100644
--- a/extensions/ComponentWatching/Extension.pm
+++ b/extensions/ComponentWatching/Extension.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ComponentWatching;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::Constants;
diff --git a/extensions/ContributorEngagement/Config.pm b/extensions/ContributorEngagement/Config.pm
index 3984dd60e..d48de3bc6 100644
--- a/extensions/ContributorEngagement/Config.pm
+++ b/extensions/ContributorEngagement/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ContributorEngagement;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'ContributorEngagement';
diff --git a/extensions/ContributorEngagement/Extension.pm b/extensions/ContributorEngagement/Extension.pm
index def41b6ea..949517ecf 100644
--- a/extensions/ContributorEngagement/Extension.pm
+++ b/extensions/ContributorEngagement/Extension.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::ContributorEngagement;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/ContributorEngagement/lib/Constants.pm b/extensions/ContributorEngagement/lib/Constants.pm
index 0e08c02b8..dd379adcd 100644
--- a/extensions/ContributorEngagement/lib/Constants.pm
+++ b/extensions/ContributorEngagement/lib/Constants.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::ContributorEngagement::Constants;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
diff --git a/extensions/EditComments/Config.pm b/extensions/EditComments/Config.pm
index dae675001..b95647940 100644
--- a/extensions/EditComments/Config.pm
+++ b/extensions/EditComments/Config.pm
@@ -9,11 +9,10 @@ package Bugzilla::Extension::EditComments;
use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'EditComments';
-
use constant REQUIRED_MODULES => [];
-
use constant OPTIONAL_MODULES => [];
__PACKAGE__->NAME;
diff --git a/extensions/EditComments/Extension.pm b/extensions/EditComments/Extension.pm
index fef1b7693..1dc22a85e 100644
--- a/extensions/EditComments/Extension.pm
+++ b/extensions/EditComments/Extension.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::EditComments;
use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
diff --git a/extensions/EditComments/lib/WebService.pm b/extensions/EditComments/lib/WebService.pm
index 2621e5f4a..6969ca742 100644
--- a/extensions/EditComments/lib/WebService.pm
+++ b/extensions/EditComments/lib/WebService.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::EditComments::WebService;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/EditTable/Config.pm b/extensions/EditTable/Config.pm
index d601951a4..b9bd003b2 100644
--- a/extensions/EditTable/Config.pm
+++ b/extensions/EditTable/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::EditTable;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'EditTable';
use constant REQUIRED_MODULES => [];
diff --git a/extensions/EditTable/Extension.pm b/extensions/EditTable/Extension.pm
index d353513e1..1eb0d82f9 100644
--- a/extensions/EditTable/Extension.pm
+++ b/extensions/EditTable/Extension.pm
@@ -16,6 +16,7 @@
package Bugzilla::Extension::EditTable;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Ember/Config.pm b/extensions/Ember/Config.pm
index e3405146d..5ceb98ec1 100644
--- a/extensions/Ember/Config.pm
+++ b/extensions/Ember/Config.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::Ember;
use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'Ember';
diff --git a/extensions/Ember/Extension.pm b/extensions/Ember/Extension.pm
index 1c8b8b4e9..8bb558c6f 100644
--- a/extensions/Ember/Extension.pm
+++ b/extensions/Ember/Extension.pm
@@ -9,6 +9,8 @@ package Bugzilla::Extension::Ember;
use 5.10.1;
use strict;
+use warnings;
+
use parent qw(Bugzilla::Extension);
our $VERSION = '0.01';
diff --git a/extensions/Example/Config.pm b/extensions/Example/Config.pm
index 378db359d..e7782ef6c 100644
--- a/extensions/Example/Config.pm
+++ b/extensions/Example/Config.pm
@@ -1,26 +1,16 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by the Initial Developers are Copyright (C) 2009 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Example;
+
+use 5.10.1;
use strict;
+use warnings;
+
use constant NAME => 'Example';
use constant REQUIRED_MODULES => [
{
diff --git a/extensions/Example/Extension.pm b/extensions/Example/Extension.pm
index 4fd2d987f..a8cf8189f 100644
--- a/extensions/Example/Extension.pm
+++ b/extensions/Example/Extension.pm
@@ -1,27 +1,14 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by the Initial Developers are Copyright (C) 2009 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Example;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
use Bugzilla::Constants;
diff --git a/extensions/Example/lib/Auth/Login.pm b/extensions/Example/lib/Auth/Login.pm
index 9f4f37dc3..376fe21a8 100644
--- a/extensions/Example/lib/Auth/Login.pm
+++ b/extensions/Example/lib/Auth/Login.pm
@@ -1,25 +1,14 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Example Plugin.
-#
-# The Initial Developer of the Original Code is Canonical Ltd.
-# Portions created by Canonical are Copyright (C) 2008 Canonical Ltd.
-# All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Example::Auth::Login;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Auth::Login);
use constant user_can_create_account => 0;
use Bugzilla::Constants;
diff --git a/extensions/Example/lib/Auth/Verify.pm b/extensions/Example/lib/Auth/Verify.pm
index 0141a0d6a..cac6d1019 100644
--- a/extensions/Example/lib/Auth/Verify.pm
+++ b/extensions/Example/lib/Auth/Verify.pm
@@ -1,25 +1,14 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Example Plugin.
-#
-# The Initial Developer of the Original Code is Canonical Ltd.
-# Portions created by Canonical are Copyright (C) 2008 Canonical Ltd.
-# All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Example::Auth::Verify;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Auth::Verify);
use Bugzilla::Constants;
diff --git a/extensions/Example/lib/Config.pm b/extensions/Example/lib/Config.pm
index 75db22957..fac0046af 100644
--- a/extensions/Example/lib/Config.pm
+++ b/extensions/Example/lib/Config.pm
@@ -1,25 +1,13 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Example Plugin.
-#
-# The Initial Developer of the Original Code is Canonical Ltd.
-# Portions created by Canonical Ltd. are Copyright (C) 2008
-# Canonical Ltd. All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
-# Bradley Baetz <bbaetz@acm.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Example::Config;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Example/lib/Util.pm b/extensions/Example/lib/Util.pm
index 596f048e9..ccc349c9c 100644
--- a/extensions/Example/lib/Util.pm
+++ b/extensions/Example/lib/Util.pm
@@ -1,24 +1,13 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by Everything Solved, Inc. are Copyright (C) 2009
-# Everything Solved, Inc. All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Example::Util;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Example/lib/WebService.pm b/extensions/Example/lib/WebService.pm
index bb83436e3..7b1940462 100644
--- a/extensions/Example/lib/WebService.pm
+++ b/extensions/Example/lib/WebService.pm
@@ -1,24 +1,13 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by Everything Solved, Inc. are Copyright (C) 2007
-# Everything Solved, Inc. All Rights Reserved.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Example::WebService;
+
+use 5.10.1;
use strict;
use warnings;
use base qw(Bugzilla::WebService);
diff --git a/extensions/FlagDefaultRequestee/Config.pm b/extensions/FlagDefaultRequestee/Config.pm
index 70c5ca33a..dc4fb1353 100644
--- a/extensions/FlagDefaultRequestee/Config.pm
+++ b/extensions/FlagDefaultRequestee/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::FlagDefaultRequestee;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'FlagDefaultRequestee';
diff --git a/extensions/FlagDefaultRequestee/Extension.pm b/extensions/FlagDefaultRequestee/Extension.pm
index 958a1bb85..f599feac2 100644
--- a/extensions/FlagDefaultRequestee/Extension.pm
+++ b/extensions/FlagDefaultRequestee/Extension.pm
@@ -7,7 +7,10 @@
package Bugzilla::Extension::FlagDefaultRequestee;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::Error;
diff --git a/extensions/FlagDefaultRequestee/lib/Constants.pm b/extensions/FlagDefaultRequestee/lib/Constants.pm
index 467028423..fd7298484 100644
--- a/extensions/FlagDefaultRequestee/lib/Constants.pm
+++ b/extensions/FlagDefaultRequestee/lib/Constants.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::FlagDefaultRequestee::Constants;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
diff --git a/extensions/FlagTypeComment/Config.pm b/extensions/FlagTypeComment/Config.pm
index e20be10e3..590ef4555 100644
--- a/extensions/FlagTypeComment/Config.pm
+++ b/extensions/FlagTypeComment/Config.pm
@@ -19,7 +19,10 @@
# byron jones <glob@mozilla.com>
package Bugzilla::Extension::FlagTypeComment;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'FlagTypeComment';
diff --git a/extensions/FlagTypeComment/Extension.pm b/extensions/FlagTypeComment/Extension.pm
index 8da6101ad..34cd4c460 100644
--- a/extensions/FlagTypeComment/Extension.pm
+++ b/extensions/FlagTypeComment/Extension.pm
@@ -19,7 +19,11 @@
# byron jones <glob@mozilla.com>
package Bugzilla::Extension::FlagTypeComment;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::Extension::FlagTypeComment::Constants;
diff --git a/extensions/FlagTypeComment/lib/Constants.pm b/extensions/FlagTypeComment/lib/Constants.pm
index e1a99e5b3..dcac4976a 100644
--- a/extensions/FlagTypeComment/lib/Constants.pm
+++ b/extensions/FlagTypeComment/lib/Constants.pm
@@ -19,7 +19,10 @@
# byron jones <glob@mozilla.com>
package Bugzilla::Extension::FlagTypeComment::Constants;
+
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
our @EXPORT = qw(
diff --git a/extensions/GitHubAuth/Config.pm b/extensions/GitHubAuth/Config.pm
index 88186a91e..1f64ee8a6 100644
--- a/extensions/GitHubAuth/Config.pm
+++ b/extensions/GitHubAuth/Config.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::GitHubAuth;
use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'GitHubAuth';
diff --git a/extensions/GitHubAuth/Extension.pm b/extensions/GitHubAuth/Extension.pm
index b813689cd..24a7cf2f1 100644
--- a/extensions/GitHubAuth/Extension.pm
+++ b/extensions/GitHubAuth/Extension.pm
@@ -9,6 +9,8 @@ package Bugzilla::Extension::GitHubAuth;
use 5.10.1;
use strict;
+use warnings;
+
use parent qw(Bugzilla::Extension);
use Bugzilla::Extension::GitHubAuth::Client;
diff --git a/extensions/GitHubAuth/lib/Client.pm b/extensions/GitHubAuth/lib/Client.pm
index 77c8a6c61..46c070856 100644
--- a/extensions/GitHubAuth/lib/Client.pm
+++ b/extensions/GitHubAuth/lib/Client.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::GitHubAuth::Client;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/GitHubAuth/lib/Client/Error.pm b/extensions/GitHubAuth/lib/Client/Error.pm
index 358df6938..adb6ec07b 100644
--- a/extensions/GitHubAuth/lib/Client/Error.pm
+++ b/extensions/GitHubAuth/lib/Client/Error.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::GitHubAuth::Client::Error;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/GitHubAuth/lib/Config.pm b/extensions/GitHubAuth/lib/Config.pm
index 0dc78531b..0c8874129 100644
--- a/extensions/GitHubAuth/lib/Config.pm
+++ b/extensions/GitHubAuth/lib/Config.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::GitHubAuth::Config;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/GitHubAuth/lib/Login.pm b/extensions/GitHubAuth/lib/Login.pm
index f1effb4e1..3f81467d0 100644
--- a/extensions/GitHubAuth/lib/Login.pm
+++ b/extensions/GitHubAuth/lib/Login.pm
@@ -6,8 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::GitHubAuth::Login;
+
+use 5.10.1;
use strict;
use warnings;
+
use base qw(Bugzilla::Auth::Login);
use fields qw(github_failure);
diff --git a/extensions/GitHubAuth/lib/Verify.pm b/extensions/GitHubAuth/lib/Verify.pm
index ee66c8904..f399af02e 100644
--- a/extensions/GitHubAuth/lib/Verify.pm
+++ b/extensions/GitHubAuth/lib/Verify.pm
@@ -6,8 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::GitHubAuth::Verify;
+
+use 5.10.1;
use strict;
use warnings;
+
use base qw(Bugzilla::Auth::Verify);
use Bugzilla::Constants qw( AUTH_NO_SUCH_USER );
diff --git a/extensions/Gravatar/Config.pm b/extensions/Gravatar/Config.pm
index e15a41ee8..e0c684c9b 100644
--- a/extensions/Gravatar/Config.pm
+++ b/extensions/Gravatar/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::Gravatar;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'Gravatar';
use constant REQUIRED_MODULES => [];
diff --git a/extensions/Gravatar/Extension.pm b/extensions/Gravatar/Extension.pm
index 06e98fb78..97cf23b00 100644
--- a/extensions/Gravatar/Extension.pm
+++ b/extensions/Gravatar/Extension.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Gravatar;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Gravatar/lib/Data.pm b/extensions/Gravatar/lib/Data.pm
index feff503e3..763dba85b 100644
--- a/extensions/Gravatar/lib/Data.pm
+++ b/extensions/Gravatar/lib/Data.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Gravatar::Data;
+
+use 5.10.1;
use strict;
+use warnings;
use base 'Exporter';
our @EXPORT_OK = qw(
diff --git a/extensions/GuidedBugEntry/Config.pm b/extensions/GuidedBugEntry/Config.pm
index e4bc9c70b..316fc6cdc 100644
--- a/extensions/GuidedBugEntry/Config.pm
+++ b/extensions/GuidedBugEntry/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::GuidedBugEntry;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'GuidedBugEntry';
diff --git a/extensions/GuidedBugEntry/Extension.pm b/extensions/GuidedBugEntry/Extension.pm
index 3f739d9fe..2d58d506a 100644
--- a/extensions/GuidedBugEntry/Extension.pm
+++ b/extensions/GuidedBugEntry/Extension.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::GuidedBugEntry;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::Token;
diff --git a/extensions/InlineHistory/Config.pm b/extensions/InlineHistory/Config.pm
index 3834bd81d..56197487b 100644
--- a/extensions/InlineHistory/Config.pm
+++ b/extensions/InlineHistory/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::InlineHistory;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'InlineHistory';
diff --git a/extensions/InlineHistory/Extension.pm b/extensions/InlineHistory/Extension.pm
index d563bede8..fb4a8f98f 100644
--- a/extensions/InlineHistory/Extension.pm
+++ b/extensions/InlineHistory/Extension.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::InlineHistory;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::User::Setting;
diff --git a/extensions/LastResolved/Config.pm b/extensions/LastResolved/Config.pm
index f763167e2..8fd8f106f 100644
--- a/extensions/LastResolved/Config.pm
+++ b/extensions/LastResolved/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::LastResolved;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'LastResolved';
diff --git a/extensions/LastResolved/Extension.pm b/extensions/LastResolved/Extension.pm
index ad0519387..0c3741b84 100644
--- a/extensions/LastResolved/Extension.pm
+++ b/extensions/LastResolved/Extension.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::LastResolved;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
diff --git a/extensions/LimitedEmail/Config.pm b/extensions/LimitedEmail/Config.pm
index ea05f363c..94b9b10eb 100644
--- a/extensions/LimitedEmail/Config.pm
+++ b/extensions/LimitedEmail/Config.pm
@@ -7,7 +7,10 @@
package Bugzilla::Extension::LimitedEmail;
+use 5.10.1;
use strict;
+use warnings;
+
use constant NAME => 'LimitedEmail';
use constant REQUIRED_MODULES => [ ];
use constant OPTIONAL_MODULES => [ ];
diff --git a/extensions/LimitedEmail/Extension.pm b/extensions/LimitedEmail/Extension.pm
index 35cc83567..9b504db91 100644
--- a/extensions/LimitedEmail/Extension.pm
+++ b/extensions/LimitedEmail/Extension.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::LimitedEmail;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
our $VERSION = '2';
diff --git a/extensions/MozProjectReview/Config.pm b/extensions/MozProjectReview/Config.pm
index 5a9d2b730..1a5e14f3d 100644
--- a/extensions/MozProjectReview/Config.pm
+++ b/extensions/MozProjectReview/Config.pm
@@ -6,7 +6,9 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::MozProjectReview;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'MozProjectReview';
diff --git a/extensions/MozProjectReview/Extension.pm b/extensions/MozProjectReview/Extension.pm
index 7229f5d4d..fcad6916c 100644
--- a/extensions/MozProjectReview/Extension.pm
+++ b/extensions/MozProjectReview/Extension.pm
@@ -6,7 +6,9 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::MozProjectReview;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
diff --git a/extensions/MozReview/Config.pm b/extensions/MozReview/Config.pm
index 44d8dd2ff..34d98907c 100644
--- a/extensions/MozReview/Config.pm
+++ b/extensions/MozReview/Config.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::MozReview;
use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'MozReview';
diff --git a/extensions/MozReview/bin/add-mozreview-children.pl b/extensions/MozReview/bin/add-mozreview-children.pl
index a63966a62..f92c2a19b 100755
--- a/extensions/MozReview/bin/add-mozreview-children.pl
+++ b/extensions/MozReview/bin/add-mozreview-children.pl
@@ -15,7 +15,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib "$RealBin/../../..";
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
BEGIN {
use Bugzilla;
diff --git a/extensions/MozReview/lib/Config.pm b/extensions/MozReview/lib/Config.pm
index ab6b8c7c3..e0d6377d8 100644
--- a/extensions/MozReview/lib/Config.pm
+++ b/extensions/MozReview/lib/Config.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::MozReview::Config;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/MozReview/lib/WebService.pm b/extensions/MozReview/lib/WebService.pm
index 8f9d3215b..c6916d1fa 100644
--- a/extensions/MozReview/lib/WebService.pm
+++ b/extensions/MozReview/lib/WebService.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::MozReview::WebService;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/MyDashboard/Config.pm b/extensions/MyDashboard/Config.pm
index 7c14936ff..05f3ec416 100644
--- a/extensions/MyDashboard/Config.pm
+++ b/extensions/MyDashboard/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::MyDashboard;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'MyDashboard';
diff --git a/extensions/MyDashboard/Extension.pm b/extensions/MyDashboard/Extension.pm
index 97b1d9d14..5278cfaa4 100644
--- a/extensions/MyDashboard/Extension.pm
+++ b/extensions/MyDashboard/Extension.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::MyDashboard;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
diff --git a/extensions/MyDashboard/lib/BugInterest.pm b/extensions/MyDashboard/lib/BugInterest.pm
index 4f14eb4fd..cf33900c5 100644
--- a/extensions/MyDashboard/lib/BugInterest.pm
+++ b/extensions/MyDashboard/lib/BugInterest.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::MyDashboard::BugInterest;
use 5.10.1;
use strict;
+use warnings;
use parent qw(Bugzilla::Object);
diff --git a/extensions/MyDashboard/lib/Queries.pm b/extensions/MyDashboard/lib/Queries.pm
index 199e8eb46..d77be7da4 100644
--- a/extensions/MyDashboard/lib/Queries.pm
+++ b/extensions/MyDashboard/lib/Queries.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::MyDashboard::Queries;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla;
use Bugzilla::Bug;
diff --git a/extensions/MyDashboard/lib/Util.pm b/extensions/MyDashboard/lib/Util.pm
index fa7cf83b0..77d9505cb 100644
--- a/extensions/MyDashboard/lib/Util.pm
+++ b/extensions/MyDashboard/lib/Util.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::MyDashboard::Util;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla::CGI;
use Bugzilla::Search;
diff --git a/extensions/MyDashboard/lib/WebService.pm b/extensions/MyDashboard/lib/WebService.pm
index c93553146..7e5ce05cf 100644
--- a/extensions/MyDashboard/lib/WebService.pm
+++ b/extensions/MyDashboard/lib/WebService.pm
@@ -6,6 +6,7 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::MyDashboard::WebService;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Needinfo/Config.pm b/extensions/Needinfo/Config.pm
index 86c99ec59..d523d9d78 100644
--- a/extensions/Needinfo/Config.pm
+++ b/extensions/Needinfo/Config.pm
@@ -5,7 +5,10 @@
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Needinfo;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'Needinfo';
diff --git a/extensions/Needinfo/Extension.pm b/extensions/Needinfo/Extension.pm
index a85bad5c6..cb897e72e 100644
--- a/extensions/Needinfo/Extension.pm
+++ b/extensions/Needinfo/Extension.pm
@@ -6,7 +6,9 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Needinfo;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
diff --git a/extensions/OpenGraph/Config.pm b/extensions/OpenGraph/Config.pm
index 9204db234..92d0a89bc 100644
--- a/extensions/OpenGraph/Config.pm
+++ b/extensions/OpenGraph/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::OpenGraph;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'OpenGraph';
use constant REQUIRED_MODULES => [ ];
diff --git a/extensions/OpenGraph/Extension.pm b/extensions/OpenGraph/Extension.pm
index f278a8958..18ee2c22f 100644
--- a/extensions/OpenGraph/Extension.pm
+++ b/extensions/OpenGraph/Extension.pm
@@ -7,7 +7,11 @@
package Bugzilla::Extension::OpenGraph;
+use 5.10.1;
use strict;
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use base qw(Bugzilla::Extension);
diff --git a/extensions/OrangeFactor/Config.pm b/extensions/OrangeFactor/Config.pm
index 9fb0d74ef..18c6be1cd 100644
--- a/extensions/OrangeFactor/Config.pm
+++ b/extensions/OrangeFactor/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::OrangeFactor;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'OrangeFactor';
diff --git a/extensions/OrangeFactor/Extension.pm b/extensions/OrangeFactor/Extension.pm
index 5e9698718..ab2f1d749 100644
--- a/extensions/OrangeFactor/Extension.pm
+++ b/extensions/OrangeFactor/Extension.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::OrangeFactor;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::User::Setting;
diff --git a/extensions/Persona/Config.pm b/extensions/Persona/Config.pm
index 8709655d1..a839b38ab 100644
--- a/extensions/Persona/Config.pm
+++ b/extensions/Persona/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Persona;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'Persona';
diff --git a/extensions/Persona/Extension.pm b/extensions/Persona/Extension.pm
index 2c8e46add..61e222f53 100644
--- a/extensions/Persona/Extension.pm
+++ b/extensions/Persona/Extension.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Persona;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::Config qw(SetParam write_params);
diff --git a/extensions/Persona/lib/Config.pm b/extensions/Persona/lib/Config.pm
index 9c483cb51..ae40fd94a 100644
--- a/extensions/Persona/lib/Config.pm
+++ b/extensions/Persona/lib/Config.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Persona::Config;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Persona/lib/Login.pm b/extensions/Persona/lib/Login.pm
index c2f8caf2b..b9ba97a7e 100644
--- a/extensions/Persona/lib/Login.pm
+++ b/extensions/Persona/lib/Login.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Persona::Login;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Auth::Login);
use Bugzilla::Constants;
diff --git a/extensions/ProdCompSearch/Config.pm b/extensions/ProdCompSearch/Config.pm
index c28b6d8f6..9631de570 100644
--- a/extensions/ProdCompSearch/Config.pm
+++ b/extensions/ProdCompSearch/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ProdCompSearch;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'ProdCompSearch';
use constant REQUIRED_MODULES => [];
diff --git a/extensions/ProdCompSearch/Extension.pm b/extensions/ProdCompSearch/Extension.pm
index a5955fd8b..ae507a7d6 100644
--- a/extensions/ProdCompSearch/Extension.pm
+++ b/extensions/ProdCompSearch/Extension.pm
@@ -6,7 +6,11 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ProdCompSearch;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
our $VERSION = '1';
diff --git a/extensions/ProdCompSearch/lib/WebService.pm b/extensions/ProdCompSearch/lib/WebService.pm
index 521d1588f..b173137dd 100644
--- a/extensions/ProdCompSearch/lib/WebService.pm
+++ b/extensions/ProdCompSearch/lib/WebService.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::ProdCompSearch::WebService;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/ProductDashboard/Config.pm b/extensions/ProductDashboard/Config.pm
index 3a4654974..88ccdc784 100644
--- a/extensions/ProductDashboard/Config.pm
+++ b/extensions/ProductDashboard/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::ProductDashboard;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'ProductDashboard';
diff --git a/extensions/ProductDashboard/Extension.pm b/extensions/ProductDashboard/Extension.pm
index cc80fa449..18157c1fe 100644
--- a/extensions/ProductDashboard/Extension.pm
+++ b/extensions/ProductDashboard/Extension.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::ProductDashboard;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
diff --git a/extensions/ProductDashboard/lib/Queries.pm b/extensions/ProductDashboard/lib/Queries.pm
index ec27d3c6c..8c9d5bd92 100644
--- a/extensions/ProductDashboard/lib/Queries.pm
+++ b/extensions/ProductDashboard/lib/Queries.pm
@@ -6,7 +6,9 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ProductDashboard::Queries;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
@Bugzilla::Extension::ProductDashboard::Queries::EXPORT = qw(
diff --git a/extensions/ProductDashboard/lib/Util.pm b/extensions/ProductDashboard/lib/Util.pm
index 5d9c161ef..f02f033b2 100644
--- a/extensions/ProductDashboard/lib/Util.pm
+++ b/extensions/ProductDashboard/lib/Util.pm
@@ -6,7 +6,9 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ProductDashboard::Util;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Exporter);
@Bugzilla::Extension::ProductDashboard::Util::EXPORT = qw(
diff --git a/extensions/Profanivore/Config.pm b/extensions/Profanivore/Config.pm
index 354325c58..311400d16 100644
--- a/extensions/Profanivore/Config.pm
+++ b/extensions/Profanivore/Config.pm
@@ -20,7 +20,10 @@
# Gervase Markham <gerv@gerv.net>
package Bugzilla::Extension::Profanivore;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'Profanivore';
diff --git a/extensions/Profanivore/Extension.pm b/extensions/Profanivore/Extension.pm
index 49b2f61c3..76d30e982 100644
--- a/extensions/Profanivore/Extension.pm
+++ b/extensions/Profanivore/Extension.pm
@@ -20,7 +20,11 @@
# Gervase Markham <gerv@gerv.net>
package Bugzilla::Extension::Profanivore;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Email::MIME::ContentType qw(parse_content_type);
diff --git a/extensions/Push/Config.pm b/extensions/Push/Config.pm
index 11e3502fd..860e31a23 100644
--- a/extensions/Push/Config.pm
+++ b/extensions/Push/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::Push;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'Push';
diff --git a/extensions/Push/Extension.pm b/extensions/Push/Extension.pm
index 1d6ec5b62..f682dea35 100644
--- a/extensions/Push/Extension.pm
+++ b/extensions/Push/Extension.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/bin/bugzilla-pushd.pl b/extensions/Push/bin/bugzilla-pushd.pl
index f048df157..8e92381f3 100755
--- a/extensions/Push/bin/bugzilla-pushd.pl
+++ b/extensions/Push/bin/bugzilla-pushd.pl
@@ -10,10 +10,8 @@
use strict;
use warnings;
-use FindBin '$RealBin';
-use lib "$RealBin/../../..";
-use lib "$RealBin/../../../lib";
-use lib "$RealBin/../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
BEGIN {
use Bugzilla;
diff --git a/extensions/Push/bin/nagios_push_checker.pl b/extensions/Push/bin/nagios_push_checker.pl
index f022f584d..092a9da8f 100755
--- a/extensions/Push/bin/nagios_push_checker.pl
+++ b/extensions/Push/bin/nagios_push_checker.pl
@@ -10,10 +10,8 @@
use strict;
use warnings;
-use FindBin '$RealBin';
-use lib "$RealBin/../../..";
-use lib "$RealBin/../../../lib";
-use lib "$RealBin/../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/extensions/Push/lib/Admin.pm b/extensions/Push/lib/Admin.pm
index 5b0bb8e70..fa65e0d69 100644
--- a/extensions/Push/lib/Admin.pm
+++ b/extensions/Push/lib/Admin.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Admin;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/BacklogMessage.pm b/extensions/Push/lib/BacklogMessage.pm
index cd40ebefb..28b17bae3 100644
--- a/extensions/Push/lib/BacklogMessage.pm
+++ b/extensions/Push/lib/BacklogMessage.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::BacklogMessage;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/BacklogQueue.pm b/extensions/Push/lib/BacklogQueue.pm
index 79b9b72ee..a7200c688 100644
--- a/extensions/Push/lib/BacklogQueue.pm
+++ b/extensions/Push/lib/BacklogQueue.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::BacklogQueue;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Backoff.pm b/extensions/Push/lib/Backoff.pm
index 55552e5e1..f0116a2a7 100644
--- a/extensions/Push/lib/Backoff.pm
+++ b/extensions/Push/lib/Backoff.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Backoff;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Config.pm b/extensions/Push/lib/Config.pm
index 7033b4195..337c2696d 100644
--- a/extensions/Push/lib/Config.pm
+++ b/extensions/Push/lib/Config.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Config;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connector.disabled/AMQP.pm b/extensions/Push/lib/Connector.disabled/AMQP.pm
index 7b7d4aa72..f712ee890 100644
--- a/extensions/Push/lib/Connector.disabled/AMQP.pm
+++ b/extensions/Push/lib/Connector.disabled/AMQP.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connector::AMQP;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connector.disabled/ServiceNow.pm b/extensions/Push/lib/Connector.disabled/ServiceNow.pm
index 832cc9262..a6d84cbe0 100644
--- a/extensions/Push/lib/Connector.disabled/ServiceNow.pm
+++ b/extensions/Push/lib/Connector.disabled/ServiceNow.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connector::ServiceNow;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connector/Aha.pm b/extensions/Push/lib/Connector/Aha.pm
index b64610e03..e85b5fadf 100644
--- a/extensions/Push/lib/Connector/Aha.pm
+++ b/extensions/Push/lib/Connector/Aha.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connector::Aha;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connector/Base.pm b/extensions/Push/lib/Connector/Base.pm
index 290ea9740..ee41bd160 100644
--- a/extensions/Push/lib/Connector/Base.pm
+++ b/extensions/Push/lib/Connector/Base.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connector::Base;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connector/File.pm b/extensions/Push/lib/Connector/File.pm
index 563a78567..ae249ffe5 100644
--- a/extensions/Push/lib/Connector/File.pm
+++ b/extensions/Push/lib/Connector/File.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connector::File;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connector/ReviewBoard.pm b/extensions/Push/lib/Connector/ReviewBoard.pm
index 97f489826..1c657a728 100644
--- a/extensions/Push/lib/Connector/ReviewBoard.pm
+++ b/extensions/Push/lib/Connector/ReviewBoard.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connector::ReviewBoard;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connector/Spark.pm b/extensions/Push/lib/Connector/Spark.pm
index a65567916..3194bd3ab 100644
--- a/extensions/Push/lib/Connector/Spark.pm
+++ b/extensions/Push/lib/Connector/Spark.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connector::Spark;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connector/TCL.pm b/extensions/Push/lib/Connector/TCL.pm
index 25e5750dc..f5b430e47 100644
--- a/extensions/Push/lib/Connector/TCL.pm
+++ b/extensions/Push/lib/Connector/TCL.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connector::TCL;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Connectors.pm b/extensions/Push/lib/Connectors.pm
index 026d3f7f1..75a5083ff 100644
--- a/extensions/Push/lib/Connectors.pm
+++ b/extensions/Push/lib/Connectors.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Connectors;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Constants.pm b/extensions/Push/lib/Constants.pm
index 18b12d511..09c5e464c 100644
--- a/extensions/Push/lib/Constants.pm
+++ b/extensions/Push/lib/Constants.pm
@@ -7,7 +7,10 @@
package Bugzilla::Extension::Push::Constants;
+use 5.10.1;
use strict;
+use warnings;
+
use base 'Exporter';
our @EXPORT = qw(
diff --git a/extensions/Push/lib/Daemon.pm b/extensions/Push/lib/Daemon.pm
index c8472e450..7f2459a95 100644
--- a/extensions/Push/lib/Daemon.pm
+++ b/extensions/Push/lib/Daemon.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Daemon;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Log.pm b/extensions/Push/lib/Log.pm
index 6faabea97..8a35a6cf5 100644
--- a/extensions/Push/lib/Log.pm
+++ b/extensions/Push/lib/Log.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Log;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/LogEntry.pm b/extensions/Push/lib/LogEntry.pm
index 848df0480..f4e894b94 100644
--- a/extensions/Push/lib/LogEntry.pm
+++ b/extensions/Push/lib/LogEntry.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::LogEntry;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Logger.pm b/extensions/Push/lib/Logger.pm
index 9824f3476..833cb3b19 100644
--- a/extensions/Push/lib/Logger.pm
+++ b/extensions/Push/lib/Logger.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Logger;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Message.pm b/extensions/Push/lib/Message.pm
index 6d2ed2531..1beb18ef0 100644
--- a/extensions/Push/lib/Message.pm
+++ b/extensions/Push/lib/Message.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Message;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Option.pm b/extensions/Push/lib/Option.pm
index 25d529f98..a08e4c11d 100644
--- a/extensions/Push/lib/Option.pm
+++ b/extensions/Push/lib/Option.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Option;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Push.pm b/extensions/Push/lib/Push.pm
index aaac0bbd6..45b9b05dd 100644
--- a/extensions/Push/lib/Push.pm
+++ b/extensions/Push/lib/Push.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Push;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Queue.pm b/extensions/Push/lib/Queue.pm
index d89cb23c3..3ee0321d9 100644
--- a/extensions/Push/lib/Queue.pm
+++ b/extensions/Push/lib/Queue.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Queue;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Serialise.pm b/extensions/Push/lib/Serialise.pm
index 94f33c754..bb6834c13 100644
--- a/extensions/Push/lib/Serialise.pm
+++ b/extensions/Push/lib/Serialise.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Serialise;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Push/lib/Util.pm b/extensions/Push/lib/Util.pm
index f52db6936..bda6331bf 100644
--- a/extensions/Push/lib/Util.pm
+++ b/extensions/Push/lib/Util.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Push::Util;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/REMO/Config.pm b/extensions/REMO/Config.pm
index 625e2afd9..3317ebc05 100644
--- a/extensions/REMO/Config.pm
+++ b/extensions/REMO/Config.pm
@@ -21,7 +21,10 @@
# David Lawrence <dkl@mozilla.com>
package Bugzilla::Extension::REMO;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'REMO';
diff --git a/extensions/REMO/Extension.pm b/extensions/REMO/Extension.pm
index 9f83f7065..695f126f8 100644
--- a/extensions/REMO/Extension.pm
+++ b/extensions/REMO/Extension.pm
@@ -21,7 +21,11 @@
# David Lawrence <dkl@mozilla.com>
package Bugzilla::Extension::REMO;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::Constants;
diff --git a/extensions/RequestNagger/Config.pm b/extensions/RequestNagger/Config.pm
index 6b9488c80..a338cd441 100644
--- a/extensions/RequestNagger/Config.pm
+++ b/extensions/RequestNagger/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::RequestNagger;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'RequestNagger';
use constant REQUIRED_MODULES => [ ];
diff --git a/extensions/RequestNagger/Extension.pm b/extensions/RequestNagger/Extension.pm
index 63d79040e..65f5e6b84 100644
--- a/extensions/RequestNagger/Extension.pm
+++ b/extensions/RequestNagger/Extension.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::RequestNagger;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/RequestNagger/bin/send-request-nags.pl b/extensions/RequestNagger/bin/send-request-nags.pl
index 03ff8b4ea..b3c654956 100755
--- a/extensions/RequestNagger/bin/send-request-nags.pl
+++ b/extensions/RequestNagger/bin/send-request-nags.pl
@@ -11,7 +11,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib "$RealBin/../../..";
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
BEGIN { Bugzilla->extensions() }
diff --git a/extensions/RequestNagger/lib/Bug.pm b/extensions/RequestNagger/lib/Bug.pm
index bd5bb7fd7..974a688ea 100644
--- a/extensions/RequestNagger/lib/Bug.pm
+++ b/extensions/RequestNagger/lib/Bug.pm
@@ -7,7 +7,10 @@
package Bugzilla::Extension::RequestNagger::Bug;
+use 5.10.1;
use strict;
+use warnings;
+
use parent qw(Bugzilla::Bug);
use feature 'state';
diff --git a/extensions/RequestNagger/lib/Constants.pm b/extensions/RequestNagger/lib/Constants.pm
index 435c0b167..bc6cf3371 100644
--- a/extensions/RequestNagger/lib/Constants.pm
+++ b/extensions/RequestNagger/lib/Constants.pm
@@ -7,7 +7,10 @@
package Bugzilla::Extension::RequestNagger::Constants;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
our @EXPORT = qw(
diff --git a/extensions/RequestNagger/lib/Settings.pm b/extensions/RequestNagger/lib/Settings.pm
index 5407eac1d..393d224ba 100644
--- a/extensions/RequestNagger/lib/Settings.pm
+++ b/extensions/RequestNagger/lib/Settings.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::RequestNagger::Settings;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/RestrictComments/Config.pm b/extensions/RestrictComments/Config.pm
index bef472cc1..be703bed7 100644
--- a/extensions/RestrictComments/Config.pm
+++ b/extensions/RestrictComments/Config.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::RestrictComments;
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'RestrictComments';
use constant REQUIRED_MODULES => [];
diff --git a/extensions/RestrictComments/Extension.pm b/extensions/RestrictComments/Extension.pm
index 61a4912b3..213a1c44a 100644
--- a/extensions/RestrictComments/Extension.pm
+++ b/extensions/RestrictComments/Extension.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::RestrictComments;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/RestrictComments/lib/Config.pm b/extensions/RestrictComments/lib/Config.pm
index 33607e680..55cf11187 100644
--- a/extensions/RestrictComments/lib/Config.pm
+++ b/extensions/RestrictComments/lib/Config.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::RestrictComments::Config;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Review/Config.pm b/extensions/Review/Config.pm
index f7da458af..ea7e8a725 100644
--- a/extensions/Review/Config.pm
+++ b/extensions/Review/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Review;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'Review';
use constant REQUIRED_MODULES => [];
diff --git a/extensions/Review/Extension.pm b/extensions/Review/Extension.pm
index 4fd965b4c..db2b475a1 100644
--- a/extensions/Review/Extension.pm
+++ b/extensions/Review/Extension.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Review;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Review/bin/migrate_mentor_from_whiteboard.pl b/extensions/Review/bin/migrate_mentor_from_whiteboard.pl
index 8d34963ec..ff109a5af 100755
--- a/extensions/Review/bin/migrate_mentor_from_whiteboard.pl
+++ b/extensions/Review/bin/migrate_mentor_from_whiteboard.pl
@@ -13,7 +13,7 @@ use warnings;
$| = 1;
use FindBin qw($RealBin);
-use lib "$RealBin/../../..";
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
BEGIN { Bugzilla->extensions() }
diff --git a/extensions/Review/bin/review_requests_rebuild.pl b/extensions/Review/bin/review_requests_rebuild.pl
index 04f8b1042..6574f3dbe 100755
--- a/extensions/Review/bin/review_requests_rebuild.pl
+++ b/extensions/Review/bin/review_requests_rebuild.pl
@@ -11,8 +11,8 @@ use strict;
use warnings;
$| = 1;
-use FindBin qw($Bin);
-use lib "$Bin/../../..";
+use FindBin qw($RealBin);
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
BEGIN { Bugzilla->extensions() }
diff --git a/extensions/Review/lib/FlagStateActivity.pm b/extensions/Review/lib/FlagStateActivity.pm
index 46e9300a5..35da42351 100644
--- a/extensions/Review/lib/FlagStateActivity.pm
+++ b/extensions/Review/lib/FlagStateActivity.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Review::FlagStateActivity;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Review/lib/Util.pm b/extensions/Review/lib/Util.pm
index c00e31b6b..a8744079d 100644
--- a/extensions/Review/lib/Util.pm
+++ b/extensions/Review/lib/Util.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Review::Util;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Review/lib/WebService.pm b/extensions/Review/lib/WebService.pm
index c4421aca1..ea8910d50 100644
--- a/extensions/Review/lib/WebService.pm
+++ b/extensions/Review/lib/WebService.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::Review::WebService;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/SecureMail/Config.pm b/extensions/SecureMail/Config.pm
index f1975c1c1..8d877a253 100644
--- a/extensions/SecureMail/Config.pm
+++ b/extensions/SecureMail/Config.pm
@@ -20,7 +20,10 @@
# Gervase Markham <gerv@gerv.net>
package Bugzilla::Extension::SecureMail;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'SecureMail';
diff --git a/extensions/SecureMail/Extension.pm b/extensions/SecureMail/Extension.pm
index 3b03f33a6..e62938dc7 100644
--- a/extensions/SecureMail/Extension.pm
+++ b/extensions/SecureMail/Extension.pm
@@ -20,7 +20,11 @@
# Gervase Markham <gerv@gerv.net>
package Bugzilla::Extension::SecureMail;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use Bugzilla::Attachment;
diff --git a/extensions/SiteMapIndex/Config.pm b/extensions/SiteMapIndex/Config.pm
index e10d6ec8b..980938503 100644
--- a/extensions/SiteMapIndex/Config.pm
+++ b/extensions/SiteMapIndex/Config.pm
@@ -21,7 +21,10 @@
# Dave Lawrence <dkl@mozilla.com>
package Bugzilla::Extension::SiteMapIndex;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'SiteMapIndex';
diff --git a/extensions/SiteMapIndex/Extension.pm b/extensions/SiteMapIndex/Extension.pm
index 77fb6b54c..901b80092 100644
--- a/extensions/SiteMapIndex/Extension.pm
+++ b/extensions/SiteMapIndex/Extension.pm
@@ -21,7 +21,11 @@
# Dave Lawrence <dkl@mozilla.com>
package Bugzilla::Extension::SiteMapIndex;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
our $VERSION = '1.0';
diff --git a/extensions/SiteMapIndex/lib/Constants.pm b/extensions/SiteMapIndex/lib/Constants.pm
index fce858121..12f11597e 100644
--- a/extensions/SiteMapIndex/lib/Constants.pm
+++ b/extensions/SiteMapIndex/lib/Constants.pm
@@ -20,7 +20,11 @@
# Max Kanat-Alexander <mkanat@bugzilla.org>
package Bugzilla::Extension::SiteMapIndex::Constants;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
our @EXPORT = qw(
SITEMAP_AGE
diff --git a/extensions/SiteMapIndex/lib/Util.pm b/extensions/SiteMapIndex/lib/Util.pm
index 5c02a5989..38fe1cf80 100644
--- a/extensions/SiteMapIndex/lib/Util.pm
+++ b/extensions/SiteMapIndex/lib/Util.pm
@@ -21,7 +21,11 @@
# Dave Lawrence <dkl@mozilla.com>
package Bugzilla::Extension::SiteMapIndex::Util;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
our @EXPORT = qw(
generate_sitemap
diff --git a/extensions/Splinter/Config.pm b/extensions/Splinter/Config.pm
index d36a28922..7c013bc6f 100644
--- a/extensions/Splinter/Config.pm
+++ b/extensions/Splinter/Config.pm
@@ -1,5 +1,9 @@
package Bugzilla::Extension::Splinter;
+
+use 5.10.1;
use strict;
+use warnings;
+
use constant NAME => 'Splinter';
__PACKAGE__->NAME;
diff --git a/extensions/Splinter/Extension.pm b/extensions/Splinter/Extension.pm
index 42a18d912..e0f42b8d0 100644
--- a/extensions/Splinter/Extension.pm
+++ b/extensions/Splinter/Extension.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::Splinter;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
diff --git a/extensions/Splinter/lib/Config.pm b/extensions/Splinter/lib/Config.pm
index 95b9f5dfa..fb3c16074 100644
--- a/extensions/Splinter/lib/Config.pm
+++ b/extensions/Splinter/lib/Config.pm
@@ -22,6 +22,7 @@
package Bugzilla::Extension::Splinter::Config;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Splinter/lib/Util.pm b/extensions/Splinter/lib/Util.pm
index 6421d2f0b..a24881c1d 100644
--- a/extensions/Splinter/lib/Util.pm
+++ b/extensions/Splinter/lib/Util.pm
@@ -21,7 +21,9 @@
package Bugzilla::Extension::Splinter::Util;
+use 5.10.1;
use strict;
+use warnings;
use Bugzilla;
use Bugzilla::Util;
diff --git a/extensions/TagNewUsers/Config.pm b/extensions/TagNewUsers/Config.pm
index c2330afc8..c791e3a07 100644
--- a/extensions/TagNewUsers/Config.pm
+++ b/extensions/TagNewUsers/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::TagNewUsers;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'TagNewUsers';
use constant REQUIRED_MODULES => [ ];
diff --git a/extensions/TagNewUsers/Extension.pm b/extensions/TagNewUsers/Extension.pm
index e4a62dac8..b94873979 100644
--- a/extensions/TagNewUsers/Extension.pm
+++ b/extensions/TagNewUsers/Extension.pm
@@ -6,12 +6,18 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::TagNewUsers;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
+
use Bugzilla::Field;
use Bugzilla::User;
use Bugzilla::Install::Util qw(indicate_progress);
use Bugzilla::WebService::Util qw(filter_wants);
+
use Date::Parse;
use Scalar::Util qw(blessed);
diff --git a/extensions/TrackingFlags/Config.pm b/extensions/TrackingFlags/Config.pm
index 1854cb9fd..d0bc5ca20 100644
--- a/extensions/TrackingFlags/Config.pm
+++ b/extensions/TrackingFlags/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::TrackingFlags;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'TrackingFlags';
diff --git a/extensions/TrackingFlags/Extension.pm b/extensions/TrackingFlags/Extension.pm
index 08e7968a0..5f6715fc8 100644
--- a/extensions/TrackingFlags/Extension.pm
+++ b/extensions/TrackingFlags/Extension.pm
@@ -7,7 +7,9 @@
package Bugzilla::Extension::TrackingFlags;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
diff --git a/extensions/TrackingFlags/bin/bug_825946.pl b/extensions/TrackingFlags/bin/bug_825946.pl
index 2531228de..8f48a671a 100755
--- a/extensions/TrackingFlags/bin/bug_825946.pl
+++ b/extensions/TrackingFlags/bin/bug_825946.pl
@@ -10,7 +10,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib "$RealBin/../../..";
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
BEGIN {
use Bugzilla;
diff --git a/extensions/TrackingFlags/bin/bulk_flag_clear.pl b/extensions/TrackingFlags/bin/bulk_flag_clear.pl
index 1eff355fe..6b05a50a3 100755
--- a/extensions/TrackingFlags/bin/bulk_flag_clear.pl
+++ b/extensions/TrackingFlags/bin/bulk_flag_clear.pl
@@ -9,10 +9,8 @@
use strict;
use warnings;
-use FindBin '$RealBin';
-use lib "$RealBin/../../..";
-use lib "$RealBin/../../../lib";
-use lib "$RealBin/../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
BEGIN {
use Bugzilla;
diff --git a/extensions/TrackingFlags/bin/migrate_tracking_flags.pl b/extensions/TrackingFlags/bin/migrate_tracking_flags.pl
index 06b3596c4..bca03f9f9 100755
--- a/extensions/TrackingFlags/bin/migrate_tracking_flags.pl
+++ b/extensions/TrackingFlags/bin/migrate_tracking_flags.pl
@@ -12,10 +12,8 @@
use strict;
use warnings;
-use FindBin '$RealBin';
-use lib "$RealBin/../../..";
-use lib "$RealBin/../../../lib";
-use lib "$RealBin/../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
BEGIN {
use Bugzilla;
diff --git a/extensions/TrackingFlags/lib/Admin.pm b/extensions/TrackingFlags/lib/Admin.pm
index 1adcad241..50a0e0a61 100644
--- a/extensions/TrackingFlags/lib/Admin.pm
+++ b/extensions/TrackingFlags/lib/Admin.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::TrackingFlags::Admin;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/TrackingFlags/lib/Constants.pm b/extensions/TrackingFlags/lib/Constants.pm
index 0b1ae3a1a..00827aa7a 100644
--- a/extensions/TrackingFlags/lib/Constants.pm
+++ b/extensions/TrackingFlags/lib/Constants.pm
@@ -7,7 +7,10 @@
package Bugzilla::Extension::TrackingFlags::Constants;
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Exporter);
our @EXPORT = qw(
diff --git a/extensions/TrackingFlags/lib/Flag.pm b/extensions/TrackingFlags/lib/Flag.pm
index 7b6effa98..82c0314e3 100644
--- a/extensions/TrackingFlags/lib/Flag.pm
+++ b/extensions/TrackingFlags/lib/Flag.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::TrackingFlags::Flag;
use base qw(Bugzilla::Object);
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/TrackingFlags/lib/Flag/Bug.pm b/extensions/TrackingFlags/lib/Flag/Bug.pm
index 74b2814fa..7be661720 100644
--- a/extensions/TrackingFlags/lib/Flag/Bug.pm
+++ b/extensions/TrackingFlags/lib/Flag/Bug.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::TrackingFlags::Flag::Bug;
use base qw(Bugzilla::Object);
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/TrackingFlags/lib/Flag/Value.pm b/extensions/TrackingFlags/lib/Flag/Value.pm
index 15be61bc7..4f2aacc3a 100644
--- a/extensions/TrackingFlags/lib/Flag/Value.pm
+++ b/extensions/TrackingFlags/lib/Flag/Value.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::TrackingFlags::Flag::Value;
use base qw(Bugzilla::Object);
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/TrackingFlags/lib/Flag/Visibility.pm b/extensions/TrackingFlags/lib/Flag/Visibility.pm
index 7600d71bd..878c16f99 100644
--- a/extensions/TrackingFlags/lib/Flag/Visibility.pm
+++ b/extensions/TrackingFlags/lib/Flag/Visibility.pm
@@ -9,6 +9,7 @@ package Bugzilla::Extension::TrackingFlags::Flag::Visibility;
use base qw(Bugzilla::Object);
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/TypeSniffer/Config.pm b/extensions/TypeSniffer/Config.pm
index 6ad03b362..4545f69f6 100644
--- a/extensions/TypeSniffer/Config.pm
+++ b/extensions/TypeSniffer/Config.pm
@@ -20,7 +20,10 @@
# Gervase Markham <gerv@mozilla.org>
package Bugzilla::Extension::TypeSniffer;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'TypeSniffer';
diff --git a/extensions/TypeSniffer/Extension.pm b/extensions/TypeSniffer/Extension.pm
index c593b76e8..6c34cb169 100644
--- a/extensions/TypeSniffer/Extension.pm
+++ b/extensions/TypeSniffer/Extension.pm
@@ -20,7 +20,11 @@
# Gervase Markham <gerv@mozilla.org>
package Bugzilla::Extension::TypeSniffer;
+
+use 5.10.1;
use strict;
+use warnings;
+
use base qw(Bugzilla::Extension);
use File::MimeInfo::Magic;
diff --git a/extensions/UserProfile/Config.pm b/extensions/UserProfile/Config.pm
index 99dca9e02..99fae1610 100644
--- a/extensions/UserProfile/Config.pm
+++ b/extensions/UserProfile/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::UserProfile;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'UserProfile';
use constant REQUIRED_MODULES => [ ];
diff --git a/extensions/UserProfile/Extension.pm b/extensions/UserProfile/Extension.pm
index 2c17a2d9f..079f7a948 100644
--- a/extensions/UserProfile/Extension.pm
+++ b/extensions/UserProfile/Extension.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::UserProfile;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/UserProfile/bin/migrate.pl b/extensions/UserProfile/bin/migrate.pl
index 147edef9c..2cde3ce2c 100755
--- a/extensions/UserProfile/bin/migrate.pl
+++ b/extensions/UserProfile/bin/migrate.pl
@@ -11,8 +11,8 @@ use strict;
use warnings;
$| = 1;
-use FindBin qw($Bin);
-use lib "$Bin/../../..";
+use FindBin qw($RealBin);
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
BEGIN { Bugzilla->extensions() }
diff --git a/extensions/UserProfile/bin/update.pl b/extensions/UserProfile/bin/update.pl
index 2a4997aee..af9a81774 100755
--- a/extensions/UserProfile/bin/update.pl
+++ b/extensions/UserProfile/bin/update.pl
@@ -10,8 +10,8 @@
use strict;
use warnings;
-use FindBin qw($Bin);
-use lib "$Bin/../../..";
+use FindBin qw($RealBin);
+use lib ("$RealBin/../../..", "$RealBin/../../../lib", "$RealBin/../../../local/lib/perl5");
use Bugzilla;
BEGIN { Bugzilla->extensions() }
diff --git a/extensions/UserProfile/lib/Util.pm b/extensions/UserProfile/lib/Util.pm
index 71d0e6501..509b131c1 100644
--- a/extensions/UserProfile/lib/Util.pm
+++ b/extensions/UserProfile/lib/Util.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::UserProfile::Util;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/UserStory/Config.pm b/extensions/UserStory/Config.pm
index 8649c71cf..8668deaa7 100644
--- a/extensions/UserStory/Config.pm
+++ b/extensions/UserStory/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::UserStory;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'UserStory';
use constant REQUIRED_MODULES => [
diff --git a/extensions/UserStory/Extension.pm b/extensions/UserStory/Extension.pm
index 2053a0097..f9fdb3f29 100644
--- a/extensions/UserStory/Extension.pm
+++ b/extensions/UserStory/Extension.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::UserStory;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/UserStory/lib/Constants.pm b/extensions/UserStory/lib/Constants.pm
index d09b28fef..6a1c0c449 100644
--- a/extensions/UserStory/lib/Constants.pm
+++ b/extensions/UserStory/lib/Constants.pm
@@ -7,6 +7,7 @@
package Bugzilla::Extension::UserStory::Constants;
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/Voting/Config.pm b/extensions/Voting/Config.pm
index 438f1e054..97c44933e 100644
--- a/extensions/Voting/Config.pm
+++ b/extensions/Voting/Config.pm
@@ -1,26 +1,15 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Frédéric Buclin.
-# Portions created by the Initial Developer is Copyright (C) 2012 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Voting;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'Voting';
diff --git a/extensions/Voting/Extension.pm b/extensions/Voting/Extension.pm
index 39ed7c4b4..25266778c 100644
--- a/extensions/Voting/Extension.pm
+++ b/extensions/Voting/Extension.pm
@@ -1,31 +1,14 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Stephan Niemz <st.n@gmx.net>
-# Christopher Aillon <christopher@aillon.com>
-# Gervase Markham <gerv@gerv.net>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::Voting;
+use 5.10.1;
use strict;
+use warnings;
use base qw(Bugzilla::Extension);
use Bugzilla::Bug;
diff --git a/extensions/ZPushNotify/Config.pm b/extensions/ZPushNotify/Config.pm
index e65169d41..1a31285e2 100644
--- a/extensions/ZPushNotify/Config.pm
+++ b/extensions/ZPushNotify/Config.pm
@@ -6,7 +6,10 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ZPushNotify;
+
+use 5.10.1;
use strict;
+use warnings;
use constant NAME => 'ZPushNotify';
use constant REQUIRED_MODULES => [];
diff --git a/extensions/ZPushNotify/Extension.pm b/extensions/ZPushNotify/Extension.pm
index 2b6c1aeaa..df3ab8f46 100644
--- a/extensions/ZPushNotify/Extension.pm
+++ b/extensions/ZPushNotify/Extension.pm
@@ -6,6 +6,8 @@
# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::Extension::ZPushNotify;
+
+use 5.10.1;
use strict;
use warnings;
diff --git a/extensions/create.pl b/extensions/create.pl
index 1b54e6b33..80fc49448 100755
--- a/extensions/create.pl
+++ b/extensions/create.pl
@@ -1,26 +1,20 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Everything Solved, Inc.
-# Portions created by the Initial Developer are Copyright (C) 2009 the
-# Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use File::Basename;
+BEGIN { chdir dirname($0); }
+
+use lib qw(.. ../lib ../local/lib/perl5);
+
use Bugzilla;
use Bugzilla::Constants;
use Bugzilla::Error;
diff --git a/gen-cpanfile.pl b/gen-cpanfile.pl
new file mode 100755
index 000000000..be07259d1
--- /dev/null
+++ b/gen-cpanfile.pl
@@ -0,0 +1,68 @@
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+# This file has detailed POD docs, do "perldoc checksetup.pl" to see them.
+
+######################################################################
+# Initialization
+######################################################################
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
+
+use Getopt::Long qw(:config gnu_getopt);
+
+if (-f "MYMETA.json") {
+ eval {
+ require CPAN::Meta;
+ require Module::CPANfile;
+
+ my (@with_feature, @without_feature);
+ my $with_all_features = 0;
+ GetOptions(
+ 'with-all-features|A!' => \$with_all_features,
+ 'with-feature|D=s@' => \@with_feature,
+ 'without-feature|U=s@' => \@without_feature
+ );
+
+
+ my $meta = CPAN::Meta->load_file("MYMETA.json");
+
+ my @phases = qw(configure build test develop runtime);
+ my @types = qw(requires recommends suggests conflicts);
+
+ my %features;
+ if ($with_all_features) {
+ $features{$_->identifier} = 1 foreach ($meta->features);
+ }
+ $features{$_} = 1 foreach @with_feature;
+ $features{$_} = 0 foreach @without_feature;
+ my @features = grep { $features{$_} } keys %features;
+
+ my $prereqs = $meta->effective_prereqs(\@features)->as_string_hash;
+ my $filtered = {};
+
+ while (my($phase, $types) = each %$prereqs) {
+ while (my($type, $reqs) = each %$types) {
+ $filtered->{$phase}{$type} = $reqs;
+ }
+ }
+
+ my $cpanfile = Module::CPANfile->from_prereqs($filtered);
+ open my $cpanfile_fh, '>', 'cpanfile' or die "cannot write to cpanfile: $!";
+ print $cpanfile_fh $cpanfile->to_string();
+ close $cpanfile_fh;
+ };
+ die "Unable generate cpanfile: $@\n" if $@;
+}
+else {
+ die "MYMETA.yml is missing, cannot generate cpanfile\n";
+}
diff --git a/github.cgi b/github.cgi
index 74111eae3..703617b32 100755
--- a/github.cgi
+++ b/github.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -8,7 +8,9 @@
use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Util qw( correct_urlbase );
diff --git a/importxml.pl b/importxml.pl
index 63004af6f..19081e52b 100755
--- a/importxml.pl
+++ b/importxml.pl
@@ -1,35 +1,18 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Dawn Endico <endico@mozilla.org>
-# Gregary Hendricks <ghendricks@novell.com>
-# Vance Baarda <vrb@novell.com>
-# Guzman Braso <gbn@hqso.net>
-# Erik Purins <epurins@day1studios.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# This script reads in xml bug data from standard input and inserts
# a new bug into bugzilla. Everything before the beginning <?xml line
# is removed so you can pipe in email messages.
+use 5.10.1;
use strict;
+use warnings;
#####################################################################
#
@@ -63,7 +46,7 @@ BEGIN {
chdir(File::Basename::dirname($dir));
}
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
# Data dumber is used for debugging, I got tired of copying it back in
# and then removing it.
#use Data::Dumper;
diff --git a/index.cgi b/index.cgi
index fac26434a..1dd62d9fb 100755
--- a/index.cgi
+++ b/index.cgi
@@ -1,35 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Jacob Steenhagen <jake@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-###############################################################################
-# Script Initialization
-###############################################################################
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
+use warnings;
-# Include the Bugzilla CGI and general utility library.
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/jobqueue.pl b/jobqueue.pl
index e086d9404..ebc9118e8 100755
--- a/jobqueue.pl
+++ b/jobqueue.pl
@@ -1,27 +1,14 @@
-#!/usr/bin/perl -w
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Mozilla Corporation.
-# Portions created by the Initial Developer are Copyright (C) 2008
-# Mozilla Corporation. All Rights Reserved.
-#
-# Contributor(s):
-# Mark Smith <mark@mozilla.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
use Cwd qw(abs_path);
use File::Basename;
@@ -31,7 +18,7 @@ BEGIN {
chdir dirname($a);
}
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::JobQueue::Runner;
diff --git a/jsonrpc.cgi b/jsonrpc.cgi
index ad910e79e..95ea5c208 100755
--- a/jsonrpc.cgi
+++ b/jsonrpc.cgi
@@ -1,27 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla JSON Webservices Interface.
-#
-# The Initial Developer of the Original Code is the San Jose State
-# University Foundation. Portions created by the Initial Developer
-# are Copyright (C) 2008 the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/long_list.cgi b/long_list.cgi
index 58bd255a3..91f3208b3 100755
--- a/long_list.cgi
+++ b/long_list.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
@@ -21,8 +21,12 @@
# Contributor(s): Terry Weissman <terry@mozilla.org>
# Gervase Markham <gerv@gerv.net>
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
+
use Bugzilla;
my $cgi = Bugzilla->cgi;
diff --git a/metrics.pl b/metrics.pl
index c48629c45..afcd7d22d 100755
--- a/metrics.pl
+++ b/metrics.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -7,6 +7,7 @@
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
use warnings;
@@ -14,9 +15,8 @@ BEGIN {
delete $ENV{SERVER_SOFTWARE};
}
-use FindBin qw($Bin);
-use lib $Bin;
-use lib "$Bin/lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/.", "$RealBin/lib", "$RealBin/local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/migrate.pl b/migrate.pl
index df6b833a0..8980248c7 100755
--- a/migrate.pl
+++ b/migrate.pl
@@ -1,29 +1,18 @@
-#!/usr/bin/perl -w
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is The Bugzilla Migration Tool.
-#
-# The Initial Developer of the Original Code is Lambda Research
-# Corporation. Portions created by the Initial Developer are Copyright
-# (C) 2009 the Initial Developer. All Rights Reserved.
-#
-# Contributor(s):
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
+
use File::Basename;
BEGIN { chdir dirname($0); }
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Migrate;
diff --git a/mod_perl.pl b/mod_perl.pl
index 83784d3fe..76d3d4920 100644
--- a/mod_perl.pl
+++ b/mod_perl.pl
@@ -1,30 +1,28 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Bugzilla::ModPerl;
+
+use 5.10.1;
use strict;
use warnings;
# This sets up our libpath without having to specify it in the mod_perl
# configuration.
use File::Basename;
-use lib dirname(__FILE__);
+use File::Spec;
+BEGIN {
+ require lib;
+ my $dir = dirname(__FILE__);
+ lib->import($dir, File::Spec->catdir($dir, "lib"), File::Spec->catdir($dir, qw(local lib perl5)));
+}
+
use Bugzilla::Constants ();
-use lib Bugzilla::Constants::bz_locations()->{'ext_libpath'};
# If you have an Apache2::Status handler in your Apache configuration,
# you need to load Apache2::Status *here*, so that any later-loaded modules
diff --git a/page.cgi b/page.cgi
index f4e5a9f6b..f2a0ca819 100755
--- a/page.cgi
+++ b/page.cgi
@@ -1,25 +1,10 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Gervase Markham <gerv@gerv.net>
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
###############################################################################
# This CGI is a general template display engine. To display templates using it,
@@ -28,9 +13,11 @@
# a content-type, e.g. html.
###############################################################################
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Error;
diff --git a/post_bug.cgi b/post_bug.cgi
index 46596fddc..0975e32ae 100755
--- a/post_bug.cgi
+++ b/post_bug.cgi
@@ -1,31 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Joe Robins <jmrobins@tgix.com>
-# Gervase Markham <gerv@gerv.net>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Attachment;
diff --git a/process_bug.cgi b/process_bug.cgi
index 1a2b61717..80018cfb3 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -1,49 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Dave Miller <justdave@syndicomm.com>
-# Christopher Aillon <christopher@aillon.com>
-# Myk Melez <myk@mozilla.org>
-# Jeff Hedlund <jeff.hedlund@matrixsi.com>
-# Frédéric Buclin <LpSolit@gmail.com>
-# Lance Larsh <lance.larsh@oracle.com>
-# Akamai Technologies <bugzilla-dev@akamai.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-
-# Implementation notes for this file:
-#
-# 1) the 'id' form parameter is validated early on, and if it is not a valid
-# bugid an error will be reported, so it is OK for later code to simply check
-# for a defined form 'id' value, and it can assume a valid bugid.
-#
-# 2) If the 'id' form parameter is not defined (after the initial validation),
-# then we are processing multiple bugs, and @idlist will contain the ids.
-#
-# 3) If we are processing just the one id, then it is stored in @idlist for
-# later processing.
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/qa/t/lib/QA/REST.pm b/qa/t/lib/QA/REST.pm
new file mode 100644
index 000000000..f900cc352
--- /dev/null
+++ b/qa/t/lib/QA/REST.pm
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+package QA::REST;
+
+use 5.10.1;
+use strict;
+use warnings;
+use autodie;
+
+use LWP::UserAgent;
+use JSON;
+use QA::Util;
+
+use parent qw(LWP::UserAgent Exporter);
+
+@QA::REST::EXPORT = qw(
+ MUST_FAIL
+ get_rest_client
+);
+
+use constant MUST_FAIL => 1;
+
+sub get_rest_client {
+ my $rest_client = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0 } );
+ bless($rest_client, 'QA::REST');
+ my $config = $rest_client->{bz_config} = get_config();
+ $rest_client->{bz_url} = $config->{browser_url} . '/' . $config->{bugzilla_installation} . '/rest/';
+ $rest_client->{bz_default_headers} = {'Accept' => 'application/json', 'Content-Type' => 'application/json'};
+ return $rest_client;
+}
+
+sub bz_config { return $_[0]->{bz_config}; }
+
+sub call {
+ my ($self, $method, $data, $http_verb, $expect_to_fail) = @_;
+ $http_verb = lc($http_verb || 'GET');
+ $data //= {};
+
+ my %args = %{ $self->{bz_default_headers} };
+ # We do not pass the API key in the URL, so that it's not logged by the web server.
+ if ($http_verb eq 'get' && $data->{api_key}) {
+ $args{'X-BUGZILLA-API-KEY'} = $data->{api_key};
+ }
+ elsif ($http_verb ne 'get') {
+ $args{Content} = encode_json($data);
+ }
+
+ my $response = $self->$http_verb($self->{bz_url} . $method, %args);
+ my $res = decode_json($response->decoded_content);
+ if ($response->is_success xor $expect_to_fail) {
+ return $res;
+ }
+ else {
+ die 'error ' . $res->{code} . ': ' . $res->{message} . "\n";
+ }
+}
diff --git a/qa/t/rest_bugzilla.t b/qa/t/rest_bugzilla.t
new file mode 100644
index 000000000..cffab80db
--- /dev/null
+++ b/qa/t/rest_bugzilla.t
@@ -0,0 +1,60 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+#######################################
+# Tests for REST calls in Bugzilla.pm #
+#######################################
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use FindBin qw($RealBin);
+use lib "$RealBin/lib", "$RealBin/../../lib", "$RealBin/../../local/lib/perl5";
+
+use Test::More tests => 11;
+use QA::REST;
+
+my $rest = get_rest_client();
+my $config = $rest->bz_config;
+
+my $version = $rest->call('version')->{version};
+ok($version, "GET /rest/version returns $version");
+
+my $extensions = $rest->call('extensions')->{extensions};
+isa_ok($extensions, 'HASH', 'GET /rest/extensions');
+my @ext_names = sort keys %$extensions;
+# There is always at least the QA extension enabled.
+ok(scalar(@ext_names), scalar(@ext_names) . ' extension(s) found: ' . join(', ', @ext_names));
+ok($extensions->{QA}, 'The QA extension is enabled, with version ' . $extensions->{QA}->{version});
+
+my $timezone = $rest->call('timezone')->{timezone};
+ok($timezone, "GET /rest/timezone retuns $timezone");
+
+my $time = $rest->call('time');
+foreach my $type (qw(db_time web_time)) {
+ ok($time->{$type}, "GET /rest/time returns $type = " . $time->{$type});
+}
+
+# Logged-out users can only access the maintainer and requirelogin parameters.
+my $params = $rest->call('parameters')->{parameters};
+my @param_names = sort keys %$params;
+ok(@param_names == 2 && defined $params->{maintainer} && defined $params->{requirelogin},
+ 'Only 2 parameters accessible to logged-out users: ' . join(', ', @param_names));
+
+# Powerless users can access much more parameters.
+$params = $rest->call('parameters', { api_key => $config->{unprivileged_user_api_key} })->{parameters};
+@param_names = sort keys %$params;
+ok(@param_names > 2, scalar(@param_names) . ' parameters accessible to powerless users');
+
+# Admins can access all parameters.
+$params = $rest->call('parameters', { api_key => $config->{admin_user_api_key} })->{parameters};
+@param_names = sort keys %$params;
+ok(@param_names > 2, scalar(@param_names) . ' parameters accessible to admins');
+
+my $timestamp = $rest->call('last_audit_time')->{last_audit_time};
+ok($timestamp, "GET /rest/last_audit_time returns $timestamp");
diff --git a/qa/t/rest_classification.t b/qa/t/rest_classification.t
new file mode 100644
index 000000000..d3806680a
--- /dev/null
+++ b/qa/t/rest_classification.t
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+#############################################
+# Tests for REST calls in Classification.pm #
+#############################################
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use FindBin qw($RealBin);
+use lib "$RealBin/lib", "$RealBin/../../lib", "$RealBin/../../local/lib/perl5";
+
+use Test::More tests => 7;
+use QA::REST;
+
+my $rest = get_rest_client();
+my $config = $rest->bz_config;
+my $args = { api_key => $config->{admin_user_api_key} };
+
+my $params = $rest->call('parameters', $args)->{parameters};
+my $use_class = $params->{useclassification};
+ok(defined($use_class), 'Classifications are ' . ($use_class ? 'enabled' : 'disabled'));
+
+# Admins can always access classifications, even when they are disabled.
+my $class = $rest->call('classification/1', $args)->{classifications}->[0];
+ok($class->{id}, "Admin found classification '" . $class->{name} . "' with the description '" . $class->{description} . "'");
+my @products = sort map { $_->{name} } @{ $class->{products} };
+ok(scalar(@products), scalar(@products) . ' product(s) found: ' . join(', ', @products));
+
+$class = $rest->call('classification/Class2_QA', $args)->{classifications}->[0];
+ok($class->{id}, "Admin found classification '" . $class->{name} . "' with the description '" . $class->{description} . "'");
+@products = sort map { $_->{name} } @{ $class->{products} };
+ok(scalar(@products), scalar(@products) . ' product(s) found: ' . join(', ', @products));
+
+if ($use_class) {
+ # When classifications are enabled, everybody can query classifications...
+ # ... including logged-out users.
+ $class = $rest->call('classification/1')->{classifications}->[0];
+ ok($class->{id}, 'Logged-out users can access classification ' . $class->{name});
+ # ... and non-admins.
+ $class = $rest->call('classification/1', { api_key => $config->{editbugs_user_api_key} })->{classifications}->[0];
+ ok($class->{id}, 'Non-admins can access classification ' . $class->{name});
+}
+else {
+ # When classifications are disabled, only users in the 'editclassifications'
+ # group can access this method...
+ # ... logged-out users get an error.
+ my $error = $rest->call('classification/1', undef, undef, MUST_FAIL);
+ ok($error->{error} && $error->{code} == 900,
+ 'Logged-out users cannot query classifications when disabled: ' . $error->{message});
+ # ... as well as non-admins.
+ $error = $rest->call('classification/1', { api_key => $config->{editbugs_user_api_key} }, undef, MUST_FAIL);
+ ok($error->{error} && $error->{code} == 900,
+ 'Non-admins cannot query classifications when disabled: ' . $error->{message});
+}
diff --git a/qa/t/test_password_complexity.t b/qa/t/test_password_complexity.t
new file mode 100644
index 000000000..5d358864b
--- /dev/null
+++ b/qa/t/test_password_complexity.t
@@ -0,0 +1,99 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use FindBin qw($RealBin);
+use lib "$RealBin/lib", "$RealBin/../../lib", "$RealBin/../../local/lib/perl5";
+
+use Test::More "no_plan";
+use QA::Util;
+
+my ($sel, $config) = get_selenium();
+log_in($sel, $config, 'admin');
+
+set_parameters($sel, {"Administrative Policies" => {"allowuserdeletion-on" => undef},
+ "User Authentication" => {"createemailregexp" => {type => "text", value => '.*'},
+ "emailsuffix" => {type => "text", value => ''}} });
+
+# Set the password complexity to BMO.
+# Password must contain at least one UPPER and one lowercase letter.
+my @invalid_bmo = qw(lowercase UPPERCASE 1234567890 123lowercase 123UPPERCASE !@%&^lower !@&^UPPER);
+
+check_passwords($sel, 'bmo', \@invalid_bmo, ['Longerthan12chars', '%9rT#j22S']);
+
+# Set the password complexity to No Constraints.
+check_passwords($sel, 'no_constraints', ['12xY!', 'aaaaa'], ['aaaaaaaa', '>F12Xy?#']);
+
+logout($sel);
+
+sub check_passwords {
+ my ($sel, $param, $invalid_passwords, $valid_passwords) = @_;
+
+ set_parameters($sel, { "User Authentication" => {"password_complexity" => {type => "select", value => $param}} });
+ my $new_user = 'selenium-' . random_string(10) . '@bugzilla.org';
+
+ go_to_admin($sel);
+ $sel->click_ok("link=Users");
+ $sel->wait_for_page_to_load_ok(WAIT_TIME);
+ $sel->title_is('Search users');
+ $sel->click_ok('link=add a new user');
+ $sel->wait_for_page_to_load_ok(WAIT_TIME);
+ $sel->title_is('Add user');
+ $sel->type_ok('login', $new_user);
+
+ foreach my $password (@$invalid_passwords) {
+ $sel->type_ok('password', $password, 'Enter password');
+ $sel->click_ok('add');
+ $sel->wait_for_page_to_load_ok(WAIT_TIME);
+ if ($param eq 'no_constraints') {
+ $sel->title_is('Password Too Short');
+ }
+ else {
+ $sel->title_is('Password Fails Requirements');
+ }
+
+ my $error_msg = trim($sel->get_text("error_msg"));
+ if ($param eq 'bmo') {
+ ok($error_msg =~ /must meet three of the following requirements/,
+ "Password fails requirement: $password");
+ }
+ else {
+ ok($error_msg =~ /The password must be at least \d+ characters long/,
+ "Password Too Short: $password");
+ }
+ $sel->go_back_ok();
+ $sel->wait_for_page_to_load_ok(WAIT_TIME);
+ }
+
+ my $created = 0;
+
+ foreach my $password (@$valid_passwords) {
+ $sel->type_ok('password', $password, 'Enter password');
+ $sel->click_ok($created ? 'update' : 'add');
+ $sel->wait_for_page_to_load_ok(WAIT_TIME);
+ $sel->title_is($created ? "User $new_user updated" : "Edit user $new_user");
+ my $msg = trim($sel->get_text('message'));
+ if ($created++) {
+ ok($msg =~ /A new password has been set/, 'Account updated');
+ }
+ else {
+ ok($msg =~ /The user account $new_user has been created successfully/, 'Account created');
+ }
+ }
+
+ return unless $created;
+
+ $sel->click_ok('delete');
+ $sel->wait_for_page_to_load_ok(WAIT_TIME);
+ $sel->title_is("Confirm deletion of user $new_user");
+ $sel->click_ok('delete');
+ $sel->wait_for_page_to_load_ok(WAIT_TIME);
+ $sel->title_is("User $new_user deleted");
+}
diff --git a/query.cgi b/query.cgi
index 47c6a87d6..3cf3c079b 100755
--- a/query.cgi
+++ b/query.cgi
@@ -1,32 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# David Gardiner <david.gardiner@unisa.edu.au>
-# Matthias Radestock <matthias@sorted.org>
-# Gervase Markham <gerv@gerv.net>
-# Byron Jones <bugzilla@glob.com.au>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Bug;
@@ -39,7 +23,7 @@ use Bugzilla::Error;
use Bugzilla::Product;
use Bugzilla::Keyword;
use Bugzilla::Field;
-use Bugzilla::Install::Util qw(vers_cmp);
+use Bugzilla::Version qw(vers_cmp);
use Bugzilla::Token;
my $cgi = Bugzilla->cgi;
diff --git a/quips.cgi b/quips.cgi
index 14126e43c..be6983d84 100755
--- a/quips.cgi
+++ b/quips.cgi
@@ -1,31 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Owen Taylor <otaylor@redhat.com>
-# Gervase Markham <gerv@gerv.net>
-# David Fallon <davef@tetsubo.com>
-# Tobias Burnus <burnus@net-b.de>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/relogin.cgi b/relogin.cgi
index 85ba70534..a66c5d28d 100755
--- a/relogin.cgi
+++ b/relogin.cgi
@@ -1,29 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Gervase Markham <gerv@gerv.net>
-# A. Karl Kornel <karl@kornel.name>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Mailer;
diff --git a/report.cgi b/report.cgi
index 7a6093c8c..f9ed26ad7 100755
--- a/report.cgi
+++ b/report.cgi
@@ -1,28 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Gervase Markham <gerv@gerv.net>
-# <rdean@cambianetworks.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/reports.cgi b/reports.cgi
index 7009d2973..e7ed5335c 100755
--- a/reports.cgi
+++ b/reports.cgi
@@ -1,36 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Harrison Page <harrison@netscape.com>
-# Terry Weissman <terry@mozilla.org>
-# Dawn Endico <endico@mozilla.org>
-# Bryce Nesbitt <bryce@nextbus.com>
-# Joe Robins <jmrobins@tgix.com>
-# Gervase Markham <gerv@gerv.net>
-# Adam Spiers <adam@spiers.net>
-# Myk Melez <myk@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/request.cgi b/request.cgi
index 589d773fb..131614890 100755
--- a/request.cgi
+++ b/request.cgi
@@ -1,34 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-################################################################################
-# Script Initialization
-################################################################################
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Util;
diff --git a/reset_password.cgi b/reset_password.cgi
index f784afb81..fb095c27d 100755
--- a/reset_password.cgi
+++ b/reset_password.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -7,9 +7,11 @@
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/rest.cgi b/rest.cgi
index 928eb9ce4..2df7e50bb 100755
--- a/rest.cgi
+++ b/rest.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -8,7 +8,9 @@
use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/runtests.pl b/runtests.pl
index 092d8069b..844f2f839 100755
--- a/runtests.pl
+++ b/runtests.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
@@ -22,8 +22,10 @@
# Make it harder for us to do dangerous things in Perl.
use diagnostics;
+use 5.10.1;
use strict;
-use lib qw(lib);
+use warnings;
+use lib qw(. lib local/lib/perl5);
use Test::Harness qw(&runtests $verbose);
diff --git a/sanitycheck.cgi b/sanitycheck.cgi
index 5acf79f06..db4d0a802 100755
--- a/sanitycheck.cgi
+++ b/sanitycheck.cgi
@@ -1,32 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Matthew Tuck <matty@chariot.net.au>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Marc Schumann <wurblzap@gmail.com>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Bug;
diff --git a/sanitycheck.pl b/sanitycheck.pl
index ca7aaea2d..bf3680bd6 100755
--- a/sanitycheck.pl
+++ b/sanitycheck.pl
@@ -1,27 +1,16 @@
-#!/usr/bin/perl -w
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Frédéric Buclin.
-# Portions created by Frédéric Buclin are Copyright (C) 2007
-# Frédéric Buclin. All Rights Reserved.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/addcustomfield.pl b/scripts/addcustomfield.pl
index 886d1ac5c..6e128ab6f 100755
--- a/scripts/addcustomfield.pl
+++ b/scripts/addcustomfield.pl
@@ -17,7 +17,8 @@
# David Miller <justdave@mozilla.com>
use strict;
-use lib qw(. lib);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/clear-memcached.pl b/scripts/clear-memcached.pl
index 01202ce7c..0ce97e7a0 100755
--- a/scripts/clear-memcached.pl
+++ b/scripts/clear-memcached.pl
@@ -10,9 +10,8 @@
use strict;
use warnings;
-use FindBin qw($Bin);
-use lib "$Bin/..";
-use lib "$Bin/../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/clear-templates.pl b/scripts/clear-templates.pl
index 8b0864d46..81c85646b 100755
--- a/scripts/clear-templates.pl
+++ b/scripts/clear-templates.pl
@@ -9,7 +9,8 @@
use strict;
use warnings;
-use lib qw(. lib);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/close_bugs_wontfix.pl b/scripts/close_bugs_wontfix.pl
index 34c871373..e0bd5351b 100755
--- a/scripts/close_bugs_wontfix.pl
+++ b/scripts/close_bugs_wontfix.pl
@@ -10,8 +10,8 @@ use 5.10.1;
use strict;
use warnings;
-use FindBin '$RealBin';
-use lib "$RealBin/../..", "$RealBin/../../lib";
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
use Bugzilla;
use Bugzilla::Bug;
diff --git a/scripts/convert_datetime.pl b/scripts/convert_datetime.pl
index b87e3561a..b6b71546c 100755
--- a/scripts/convert_datetime.pl
+++ b/scripts/convert_datetime.pl
@@ -10,6 +10,9 @@ use 5.10.1;
use strict;
use warnings;
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
+
use Bugzilla;
use Bugzilla::Constants;
use Bugzilla::DB;
diff --git a/scripts/cpanfile_fixed_versions.pl b/scripts/cpanfile_fixed_versions.pl
index fdbf25b1f..680e8ece3 100755
--- a/scripts/cpanfile_fixed_versions.pl
+++ b/scripts/cpanfile_fixed_versions.pl
@@ -10,6 +10,9 @@ use 5.10.1;
use strict;
use warnings;
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
+
use Bugzilla::Constants;
use Bugzilla::Install::Requirements;
use Bugzilla::Install::Util;
diff --git a/scripts/fix-attachment-sizes.pl b/scripts/fix-attachment-sizes.pl
index a50e241ce..328c0595e 100755
--- a/scripts/fix-attachment-sizes.pl
+++ b/scripts/fix-attachment-sizes.pl
@@ -10,9 +10,8 @@
use strict;
use feature 'say';
-use FindBin qw( $RealBin );
-use lib "$RealBin/..";
-use lib "$RealBin/../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/fix_all_open_status_queries.pl b/scripts/fix_all_open_status_queries.pl
index e10fdd44d..da40cb140 100755
--- a/scripts/fix_all_open_status_queries.pl
+++ b/scripts/fix_all_open_status_queries.pl
@@ -8,7 +8,8 @@
use strict;
-use lib qw(. lib);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/fixgroupqueries.pl b/scripts/fixgroupqueries.pl
index 13dd0cb3e..1934561df 100755
--- a/scripts/fixgroupqueries.pl
+++ b/scripts/fixgroupqueries.pl
@@ -22,7 +22,8 @@
use strict;
-use lib qw(. lib);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/fixperms.pl b/scripts/fixperms.pl
index 406c149cb..f470eabe6 100755
--- a/scripts/fixperms.pl
+++ b/scripts/fixperms.pl
@@ -21,7 +21,8 @@
use strict;
use warnings;
-use lib qw(. lib);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Install::Filesystem qw(fix_all_file_permissions);
diff --git a/scripts/fixqueries.pl b/scripts/fixqueries.pl
index 1fe25f261..2619081ce 100755
--- a/scripts/fixqueries.pl
+++ b/scripts/fixqueries.pl
@@ -22,7 +22,8 @@
use strict;
-use lib qw(. lib);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/group-set-members.pl b/scripts/group-set-members.pl
index 3271b2e24..10955b00d 100755
--- a/scripts/group-set-members.pl
+++ b/scripts/group-set-members.pl
@@ -11,8 +11,8 @@ use strict;
use warnings;
use feature 'say';
use FindBin;
-use lib "$FindBin::Bin/../..";
-use lib "$FindBin::Bin/../../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/issue-api-key.pl b/scripts/issue-api-key.pl
index 334cddeaa..3e4b2c000 100755
--- a/scripts/issue-api-key.pl
+++ b/scripts/issue-api-key.pl
@@ -10,9 +10,8 @@
use strict;
use feature 'say';
-use FindBin qw( $RealBin );
-use lib "$RealBin/..";
-use lib "$RealBin/../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/merge-users.pl b/scripts/merge-users.pl
index ebe68a6a8..d2b8196b5 100755
--- a/scripts/merge-users.pl
+++ b/scripts/merge-users.pl
@@ -1,27 +1,14 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
=head1 NAME
@@ -44,7 +31,7 @@ merge-users.pl - Merge two user accounts.
=cut
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/migrate-attachments.pl b/scripts/migrate-attachments.pl
index 26cb3fb26..b514f1620 100755
--- a/scripts/migrate-attachments.pl
+++ b/scripts/migrate-attachments.pl
@@ -12,7 +12,7 @@ use warnings;
$| = 1;
use FindBin qw($RealBin);
-use lib "$RealBin/..", "$RealBin/../lib";
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Attachment;
diff --git a/scripts/migrate-cab-review.pl b/scripts/migrate-cab-review.pl
index 1c33a2a0f..aa30c518f 100755
--- a/scripts/migrate-cab-review.pl
+++ b/scripts/migrate-cab-review.pl
@@ -11,7 +11,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib "$RealBin/..";
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Bug;
diff --git a/scripts/migrate_whiteboard_keyword.pl b/scripts/migrate_whiteboard_keyword.pl
index aa70543c4..f31a30521 100644
--- a/scripts/migrate_whiteboard_keyword.pl
+++ b/scripts/migrate_whiteboard_keyword.pl
@@ -32,7 +32,8 @@ use 5.10.1;
use strict;
use warnings;
-use lib qw(. lib);
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/move_flag_types.pl b/scripts/move_flag_types.pl
index 1f4398be1..bf0bf0eca 100755
--- a/scripts/move_flag_types.pl
+++ b/scripts/move_flag_types.pl
@@ -82,7 +82,8 @@ Without this argument, changes are not actually committed to the database.
use strict;
use warnings;
-use lib '.';
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Getopt::Long;
diff --git a/scripts/move_os.pl b/scripts/move_os.pl
index 96b58d616..48f6d0031 100755
--- a/scripts/move_os.pl
+++ b/scripts/move_os.pl
@@ -10,8 +10,8 @@ use 5.10.1;
use strict;
use warnings;
-use FindBin '$RealBin';
-use lib "$RealBin/../..", "$RealBin/../../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Field;
diff --git a/scripts/movebugs.pl b/scripts/movebugs.pl
index ebe41ceb4..45f329ad2 100755
--- a/scripts/movebugs.pl
+++ b/scripts/movebugs.pl
@@ -12,8 +12,8 @@ use strict;
use Cwd 'abs_path';
use File::Basename;
use FindBin;
-use lib "$FindBin::Bin/../..";
-use lib "$FindBin::Bin/../../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/movecomponent.pl b/scripts/movecomponent.pl
index cb07b84fc..10fa956c4 100755
--- a/scripts/movecomponent.pl
+++ b/scripts/movecomponent.pl
@@ -8,8 +8,8 @@
use strict;
-use FindBin '$RealBin';
-use lib "$RealBin/../..", "$RealBin/../../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Component;
diff --git a/scripts/nagios_blocker_checker.pl b/scripts/nagios_blocker_checker.pl
index 768053126..a6c5e5d7b 100755
--- a/scripts/nagios_blocker_checker.pl
+++ b/scripts/nagios_blocker_checker.pl
@@ -10,9 +10,8 @@
use strict;
use warnings;
-use FindBin qw($Bin);
-use lib "$Bin/..";
-use lib "$Bin/../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/nagios_push_checker.pl b/scripts/nagios_push_checker.pl
index 109f794d7..1fa28bf1d 100755
--- a/scripts/nagios_push_checker.pl
+++ b/scripts/nagios_push_checker.pl
@@ -11,7 +11,7 @@ use strict;
use warnings;
use FindBin qw($RealBin);
-use lib ("$RealBin/..", "$RealBin/../lib");
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/nightly_group_bug_cleaner.pl b/scripts/nightly_group_bug_cleaner.pl
index d8ce4cb54..a32588673 100755
--- a/scripts/nightly_group_bug_cleaner.pl
+++ b/scripts/nightly_group_bug_cleaner.pl
@@ -8,6 +8,10 @@
use 5.10.1;
use strict;
use warnings;
+
+use FindBin;
+use lib "$FindBin::Bin/..", "$FindBin::Bin/../lib", "$FindBin::Bin/../local/lib/perl5";
+
use Bugzilla;
use Bugzilla::Constants;
use Bugzilla::Field;
diff --git a/scripts/nuke-bugs.pl b/scripts/nuke-bugs.pl
index 0226c1726..35774ff8d 100755
--- a/scripts/nuke-bugs.pl
+++ b/scripts/nuke-bugs.pl
@@ -8,7 +8,8 @@
use strict;
-use lib qw(.);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/reassign_open_bugs.pl b/scripts/reassign_open_bugs.pl
index 6496f9a95..343a99617 100755
--- a/scripts/reassign_open_bugs.pl
+++ b/scripts/reassign_open_bugs.pl
@@ -10,8 +10,8 @@ use 5.10.1;
use strict;
use warnings;
-use FindBin '$RealBin';
-use lib "$RealBin/../..", "$RealBin/../../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::User;
diff --git a/scripts/remove-non-public-data.pl b/scripts/remove-non-public-data.pl
index 06fc693fa..8b5d2b2e7 100755
--- a/scripts/remove-non-public-data.pl
+++ b/scripts/remove-non-public-data.pl
@@ -9,7 +9,7 @@
use strict;
use FindBin qw($RealBin);
-use lib "$RealBin/..", "$RealBin/../lib";
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/remove_idle_group_members.pl b/scripts/remove_idle_group_members.pl
index d0eda387a..510d0623b 100755
--- a/scripts/remove_idle_group_members.pl
+++ b/scripts/remove_idle_group_members.pl
@@ -10,8 +10,8 @@
use strict;
use warnings;
-use FindBin qw($Bin);
-use lib "$Bin/..";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
BEGIN { Bugzilla->extensions() }
diff --git a/scripts/reset_default_user.pl b/scripts/reset_default_user.pl
index 173d03849..2888df48c 100755
--- a/scripts/reset_default_user.pl
+++ b/scripts/reset_default_user.pl
@@ -8,7 +8,8 @@
use strict;
-use lib '.';
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/sanitizeme.pl b/scripts/sanitizeme.pl
index 64178f3f3..8f241de34 100755
--- a/scripts/sanitizeme.pl
+++ b/scripts/sanitizeme.pl
@@ -24,8 +24,8 @@
use strict;
-use FindBin '$RealBin';
-use lib "$RealBin/..", "$RealBin/lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Bug;
diff --git a/scripts/security_remove.pl b/scripts/security_remove.pl
index 85f415218..7c01e8002 100755
--- a/scripts/security_remove.pl
+++ b/scripts/security_remove.pl
@@ -10,8 +10,8 @@ use 5.10.1;
use strict;
use warnings;
-use FindBin '$RealBin';
-use lib "$RealBin/../..", "$RealBin/../../lib";
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/sendunsentbugmail.pl b/scripts/sendunsentbugmail.pl
index eeee41ced..3dae4a341 100755
--- a/scripts/sendunsentbugmail.pl
+++ b/scripts/sendunsentbugmail.pl
@@ -1,29 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Dave Miller <justdave@bugzilla.org>
-# Myk Melez <myk@mozilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/syncflags.pl b/scripts/syncflags.pl
index 520a8305c..7250cdf89 100755
--- a/scripts/syncflags.pl
+++ b/scripts/syncflags.pl
@@ -24,7 +24,8 @@
use strict;
-use lib qw(. lib);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/syncmsandversions.pl b/scripts/syncmsandversions.pl
index 20e88252e..e886d9e5b 100755
--- a/scripts/syncmsandversions.pl
+++ b/scripts/syncmsandversions.pl
@@ -24,7 +24,8 @@
use strict;
-use lib qw(. lib);
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/scripts/update-bug-groups.pl b/scripts/update-bug-groups.pl
index 173269e7c..0aed32e9b 100755
--- a/scripts/update-bug-groups.pl
+++ b/scripts/update-bug-groups.pl
@@ -12,7 +12,7 @@ use warnings;
$| = 1;
use FindBin qw($RealBin);
-use lib "$RealBin/..", "$RealBin/../lib";
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::CGI;
diff --git a/scripts/update-crash-signatures.pl b/scripts/update-crash-signatures.pl
index 179d0decb..f8efca7ff 100755
--- a/scripts/update-crash-signatures.pl
+++ b/scripts/update-crash-signatures.pl
@@ -12,7 +12,7 @@ use warnings;
$| = 1;
use FindBin qw($RealBin);
-use lib "$RealBin/..", "$RealBin/../lib";
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use constant BATCH_SIZE => 100;
diff --git a/scripts/user-prefs.pl b/scripts/user-prefs.pl
index ee980b3eb..b7c860f48 100755
--- a/scripts/user-prefs.pl
+++ b/scripts/user-prefs.pl
@@ -10,8 +10,8 @@
use strict;
use 5.10.1;
-use FindBin qw( $RealBin );
-use lib ("$RealBin/..", "$RealBin/../lib");
+use FindBin qw($RealBin);
+use lib ("$RealBin/..", "$RealBin/../lib", "$RealBin/../local/lib/perl5");
use Bugzilla;
use Bugzilla::Constants;
diff --git a/search_plugin.cgi b/search_plugin.cgi
index b50467911..329ed6f0c 100755
--- a/search_plugin.cgi
+++ b/search_plugin.cgi
@@ -1,22 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Error;
diff --git a/sentry.pl b/sentry.pl
index 95cd1846f..8d8b878e9 100755
--- a/sentry.pl
+++ b/sentry.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -13,15 +13,17 @@
# called by Bugzilla::Sentry
#
+use 5.10.1;
use strict;
use warnings;
+# exit early if there's nothing to send
+use FindBin qw($RealBin);
+use lib ("$RealBin/.", "$RealBin/lib", "$RealBin/local/lib/perl5");
+
BEGIN {
delete $ENV{SERVER_SOFTWARE};
- # exit early if there's nothing to send
- use FindBin qw($Bin);
- use lib $Bin, "$Bin/lib";
use Bugzilla::Constants;
exit(0) unless glob(bz_locations()->{error_reports} . '/*.dump');
}
diff --git a/show_activity.cgi b/show_activity.cgi
index b05c1c95a..96ff1b312 100755
--- a/show_activity.cgi
+++ b/show_activity.cgi
@@ -1,30 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Myk Melez <myk@mozilla.org>
-# Gervase Markham <gerv@gerv.net>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Error;
diff --git a/show_bug.cgi b/show_bug.cgi
index fbcf4e828..517017688 100755
--- a/show_bug.cgi
+++ b/show_bug.cgi
@@ -1,28 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/showattachment.cgi b/showattachment.cgi
index e90a01533..73cb6eb58 100755
--- a/showattachment.cgi
+++ b/showattachment.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
@@ -21,9 +21,11 @@
# Contributor(s): Terry Weissman <terry@mozilla.org>
# Jacob Steenhagen <jake@bugzilla.org>
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Util;
diff --git a/showdependencygraph.cgi b/showdependencygraph.cgi
index 5dc3928ed..764aad5b9 100755
--- a/showdependencygraph.cgi
+++ b/showdependencygraph.cgi
@@ -1,29 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Gervase Markham <gerv@gerv.net>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use File::Temp;
diff --git a/showdependencytree.cgi b/showdependencytree.cgi
index b50b38ce2..7f594632e 100755
--- a/showdependencytree.cgi
+++ b/showdependencytree.cgi
@@ -1,32 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Andreas Franke <afranke@mathweb.org>
-# Christian Reis <kiko@async.com.br>
-# Myk Melez <myk@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Error;
diff --git a/summarize_time.cgi b/summarize_time.cgi
index dd8ba741b..2502747e3 100755
--- a/summarize_time.cgi
+++ b/summarize_time.cgi
@@ -1,25 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Christian Reis <kiko@async.com.br>
-# Shane H. W. Travis <travis@sedsystems.ca>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Date::Parse; # strptime
diff --git a/t/001compile.t b/t/001compile.t
index a2176babd..f8ba8d1c7 100644
--- a/t/001compile.t
+++ b/t/001compile.t
@@ -1,41 +1,31 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# The Initial Developer of the Original Code is Zach Lipton
-# Portions created by Zach Lipton are Copyright (C) 2001 Zach Lipton.
-# All Rights Reserved.
-#
-# Contributor(s): Zach Lipton <zach@zachlipton.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
#################
#Bugzilla Test 1#
###Compilation###
+use 5.10.1;
use strict;
-use 5.008001;
-use lib qw(. lib t);
+use warnings;
+
+use lib qw(. lib local/lib/perl5 t);
use Config;
use Support::Files;
-use Test::More tests => scalar(@Support::Files::testitems);
+use Test::More tests => scalar(@Support::Files::testitems)
+ + scalar(@Support::Files::test_files);
BEGIN {
use_ok('Bugzilla::Constants');
use_ok('Bugzilla::Install::Requirements');
use_ok('Bugzilla');
}
+Bugzilla->usage_mode(USAGE_MODE_TEST);
sub compile_file {
my ($file) = @_;
@@ -65,12 +55,12 @@ sub compile_file {
$T = "T";
}
- my $libs = '';
+ my $libs = '-It ';
if ($ENV{PERL5LIB}) {
- $libs = join " ", map { "-I\"$_\"" } split /$Config{path_sep}/, $ENV{PERL5LIB};
+ $libs .= join " ", map { "-I\"$_\"" } split /$Config{path_sep}/, $ENV{PERL5LIB};
}
my $perl = qq{"$^X"};
- my $output = `$perl $libs -wc$T $file 2>&1`;
+ my $output = `$perl $libs -c$T -MSupport::Systemexec $file 2>&1`;
chomp($output);
my $return_val = $?;
$output =~ s/^\Q$file\E syntax OK$//ms;
@@ -78,7 +68,7 @@ sub compile_file {
ok(!$return_val, $file) or diag('--ERROR');
}
-my @testitems = @Support::Files::testitems;
+my @testitems = (@Support::Files::testitems, @Support::Files::test_files);
my $file_features = map_files_to_features();
# Test the scripts by compiling them
@@ -102,8 +92,7 @@ foreach my $file (@testitems) {
and $file ne "Bugzilla/DB/Schema.pm")
{
my $module = lc($1);
- my $dbd = DB_MODULE->{$module}->{dbd}->{module};
- eval("use $dbd; 1") or skip "$file: $dbd not installed", 1;
+ Bugzilla->feature($module) or skip "$file: Driver for $module not installed", 1;
}
compile_file($file);
diff --git a/t/002goodperl.t b/t/002goodperl.t
index 77b014f6a..7b2e74acc 100644
--- a/t/002goodperl.t
+++ b/t/002goodperl.t
@@ -1,40 +1,28 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# The Initial Developer of the Original Code is Zach Lipton
-# Portions created by Zach Lipton are
-# Copyright (C) 2001 Zach Lipton. All
-# Rights Reserved.
-#
-# Contributor(s): Zach Lipton <zach@zachlipton.com>
-# Jacob Steenhagen <jake@bugzilla.org>
-# David D. Kilzer <ddkilzer@theracingworld.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
#################
#Bugzilla Test 2#
####GoodPerl#####
+use 5.10.1;
use strict;
+use warnings;
-use lib 't';
+use lib qw(. lib local/lib/perl5 t);
use Support::Files;
-use Test::More tests => (scalar(@Support::Files::testitems) * 4);
+use Test::More tests => (scalar(@Support::Files::testitems)
+ + scalar(@Support::Files::test_files)) * 6;
-my @testitems = @Support::Files::testitems; # get the files to test.
+my @testitems = (@Support::Files::test_files, @Support::Files::testitems);
+my @require_taint = qw(email_in.pl importxml.pl mod_perl.pl whine.pl);
foreach my $file (@testitems) {
$file =~ s/\s.*$//; # nuke everything after the first space (#comment)
@@ -49,28 +37,38 @@ foreach my $file (@testitems) {
my $ext = $1;
if ($file_line1 !~ m/^#\!/) {
- ok(1,"$file does not have a shebang");
+ ok(1,"$file does not have a shebang");
} else {
my $flags;
- if (!defined $ext || $ext eq "pl") {
+ if (!defined $ext || $ext eq 'pl' || $ext eq 'psgi') {
# standalone programs aren't taint checked yet
- $flags = "w";
+ if (grep { $file eq $_ } @require_taint) {
+ $flags = 'T';
+ }
+ else {
+ $flags = '';
+ }
} elsif ($ext eq "pm") {
ok(0, "$file is a module, but has a shebang");
next;
} elsif ($ext eq "cgi") {
# cgi files must be taint checked
- $flags = "wT";
+ $flags = 'T';
} else {
ok(0, "$file has shebang but unknown extension");
next;
}
- if ($file_line1 =~ m#^\#\!/usr/bin/perl\s#) {
- if ($file_line1 =~ m#\s-$flags#) {
- ok(1,"$file uses standard perl location and -$flags");
- } else {
- ok(0,"$file is MISSING -$flags --WARNING");
+ if ($file_line1 =~ m#^\#\!/usr/bin/perl(?:\s-(\w+))?$#) {
+ my $file_flags = $1 || '';
+ if ($flags eq $file_flags) {
+ ok(1, "$file uses standard perl location" . ($flags ? " and -$flags flag" : ""));
+ }
+ elsif ($flags) {
+ ok(0, "$file is MISSING -$flags flag --WARNING");
+ }
+ else {
+ ok(0, "$file has unexpected -$file_flags flag --WARNING");
}
} else {
ok(0,"$file uses non-standard perl location");
@@ -79,7 +77,10 @@ foreach my $file (@testitems) {
}
foreach my $file (@testitems) {
+ my $found_use_perl = 0;
my $found_use_strict = 0;
+ my $found_use_warnings = 0;
+
$file =~ s/\s.*$//; # nuke everything after the first space (#comment)
next if (!$file); # skip null entries
if (! open (FILE, $file)) {
@@ -87,17 +88,29 @@ foreach my $file (@testitems) {
next;
}
while (my $file_line = <FILE>) {
- if ($file_line =~ m/^\s*use strict/) {
- $found_use_strict = 1;
- last;
- }
+ $found_use_perl = 1 if $file_line =~ m/^\s*use 5.10.1/;
+ $found_use_strict = 1 if $file_line =~ m/^\s*use strict/;
+ $found_use_warnings = 1 if $file_line =~ m/^\s*use warnings/;
+ last if ($found_use_perl && $found_use_strict && $found_use_warnings);
}
close (FILE);
+ if ($found_use_perl) {
+ ok(1,"$file requires Perl 5.10.1");
+ } else {
+ ok(0,"$file DOES NOT require Perl 5.10.1 --WARNING");
+ }
+
if ($found_use_strict) {
ok(1,"$file uses strict");
} else {
ok(0,"$file DOES NOT use strict --WARNING");
}
+
+ if ($found_use_warnings) {
+ ok(1,"$file uses warnings");
+ } else {
+ ok(0,"$file DOES NOT use warnings --WARNING");
+ }
}
# Check to see that all error messages use tags (for l10n reasons.)
diff --git a/t/003safesys.t b/t/003safesys.t
deleted file mode 100644
index a69500b7a..000000000
--- a/t/003safesys.t
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# The Initial Developer of the Original Code is Zach Lipton
-# Portions created by Zach Lipton are
-# Copyright (C) 2001 Zach Lipton. All
-# Rights Reserved.
-#
-# Contributor(s): Zach Lipton <zach@zachlipton.com>
-
-
-#################
-#Bugzilla Test 3#
-###Safesystem####
-
-use strict;
-
-use lib 't';
-
-use Support::Files;
-use File::Slurp;
-
-use Test::More tests => scalar(@Support::Files::testitems);
-
-# Capture the TESTOUT from Test::More or Test::Builder for printing errors.
-# This will handle verbosity for us automatically.
-my $fh;
-{
- local $^W = 0; # Don't complain about non-existent filehandles
- if (-e \*Test::More::TESTOUT) {
- $fh = \*Test::More::TESTOUT;
- } elsif (-e \*Test::Builder::TESTOUT) {
- $fh = \*Test::Builder::TESTOUT;
- } else {
- $fh = \*STDOUT;
- }
-}
-
-my @testitems = @Support::Files::testitems;
-my $perlapp = "\"$^X\"";
-
-foreach my $file (@testitems) {
- $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
- next if (!$file); # skip null entries
-
- my $contents = read_file($file);
- if ($contents !~ /\b(system|exec)\b/) {
- ok(1,"$file does not contain any system or exec calls");
- next;
- }
-
- my $command = "$perlapp -c -It -MSupport::Systemexec $file 2>&1";
- my $loginfo=`$command`;
- if ($loginfo =~ /arguments for Support::Systemexec::(system|exec)/im) {
- ok(0,"$file DOES NOT use proper system or exec calls");
- print $fh $loginfo;
- } else {
- ok(1,"$file uses proper system and exec calls");
- }
-}
-
-exit 0;
diff --git a/t/004template.t b/t/004template.t
index 666ce5fa4..909f1a231 100644
--- a/t/004template.t
+++ b/t/004template.t
@@ -1,35 +1,19 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla tests.
-#
-# The Initial Developer of the Original Code is Jacob Steenhagen.
-# Portions created by Jacob Steenhagen are
-# Copyright (C) 2001 Jacob Steenhagen. All
-# Rights Reserved.
-#
-# Contributor(s): Jacob Steenhagen <jake@bugzilla.org>
-# Zach Lipton <zach@zachlipton.com>
-# David D. Kilzer <ddkilzer@kilzer.net>
-# Tobias Burnus <burnus@net-b.de>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
#################
#Bugzilla Test 4#
####Templates####
+use 5.10.1;
use strict;
+use warnings;
-use lib 't';
+use lib qw(. lib local/lib/perl5 t);
use Support::Templates;
@@ -44,7 +28,7 @@ use Test::More tests => ( scalar(@referenced_files) + 2 * $num_actual_files );
# This will handle verbosity for us automatically.
my $fh;
{
- local $^W = 0; # Don't complain about non-existent filehandles
+ no warnings qw(unopened); # Don't complain about non-existent filehandles
if (-e \*Test::More::TESTOUT) {
$fh = \*Test::More::TESTOUT;
} elsif (-e \*Test::Builder::TESTOUT) {
@@ -55,22 +39,21 @@ my $fh;
}
# Check to make sure all templates that are referenced in Bugzilla
-# exist in the proper place in the English template directory.
+# exist in the proper place in the English template or extension directory.
# All other languages may or may not include any template as Bugzilla will
# fall back to English if necessary.
foreach my $file (@referenced_files) {
- my @path = map(File::Spec->catfile($_, $file), @include_paths);
- push(@path, File::Spec->catfile($english_default_include_path, $file));
- my $found;
- foreach my $path (@path) {
- $found = $path if -e $path;
- }
- if ($found) {
- ok(1, "$file exists");
- } else {
- ok(0, "$file cannot be located --ERROR");
+ my $found = 0;
+ foreach my $path (@english_default_include_paths) {
+ my $pathfile = File::Spec->catfile($path, $file);
+ if (-e $pathfile) {
+ $found = 1;
+ last;
+ }
}
+
+ ok($found, "$file found");
}
foreach my $include_path (@include_paths) {
@@ -83,17 +66,13 @@ foreach my $include_path (@include_paths) {
# See Template.pm for the actual codebase definitions.
# Initialize templates (f.e. by loading plugins like Hook).
- PRE_PROCESS => "global/initialize.none.tmpl",
+ PRE_PROCESS => "global/variables.none.tmpl",
FILTERS =>
{
html_linebreak => sub { return $_; },
- no_break => sub { return $_; } ,
js => sub { return $_ } ,
base64 => sub { return $_ } ,
- inactive => [ sub { return sub { return $_; } }, 1] ,
- closed => [ sub { return sub { return $_; } }, 1] ,
- obsolete => [ sub { return sub { return $_; } }, 1] ,
url_quote => sub { return $_ } ,
css_class_quote => sub { return $_ } ,
xml => sub { return $_ } ,
@@ -105,6 +84,7 @@ foreach my $include_path (@include_paths) {
wrap_comment => sub { return $_ },
none => sub { return $_ } ,
ics => [ sub { return sub { return $_; } }, 1] ,
+ markdown => sub { return $_ } ,
},
}
);
diff --git a/t/005whitespace.t b/t/005whitespace.t
index edba8b274..be13890bb 100644
--- a/t/005whitespace.t
+++ b/t/005whitespace.t
@@ -1,44 +1,29 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla tests.
-#
-# The Initial Developer of the Original Code is Jacob Steenhagen.
-# Portions created by Jacob Steenhagen are
-# Copyright (C) 2001 Jacob Steenhagen. All
-# Rights Reserved.
-#
-# Contributor(s): Jacob Steenhagen <jake@bugzilla.org>
-# David D. Kilzer <ddkilzer@kilzer.net>
-# Colin Ogilvie <mozilla@colinogilvie.co.uk>
-# Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
#################
#Bugzilla Test 5#
#####no_tabs#####
+use 5.10.1;
use strict;
+use warnings;
-use lib 't';
+use lib qw(. lib local/lib/perl5 t);
use Support::Files;
use Support::Templates;
use File::Spec;
-use Test::More tests => ( scalar(@Support::Files::testitems)
+use Test::More tests => (scalar(@Support::Files::testitems)
+ + scalar(@Support::Files::test_files)
+ $Support::Templates::num_actual_files) * 3;
-my @testitems = @Support::Files::testitems;
+my @testitems = (@Support::Files::testitems, @Support::Files::test_files);
for my $path (@Support::Templates::include_paths) {
push(@testitems, map(File::Spec->catfile($path, $_),
Support::Templates::find_actual_files($path)));
diff --git a/t/006spellcheck.t b/t/006spellcheck.t
index e311be8ec..70181ef85 100644
--- a/t/006spellcheck.t
+++ b/t/006spellcheck.t
@@ -1,62 +1,31 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# The Initial Developer of the Original Code is Zach Lipton
-# Portions created by Zach Lipton are
-# Copyright (C) 2002 Zach Lipton. All
-# Rights Reserved.
-#
-# Contributor(s): Zach Lipton <zach@zachlipton.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
#################
#Bugzilla Test 6#
####Spelling#####
-use lib 't';
-use Support::Files;
+use 5.10.1;
+use strict;
+use warnings;
-BEGIN { # yes the indenting is off, deal with it
-#add the words to check here:
-@evilwords = qw(
-anyways
-appearence
-arbitary
-cancelled
-critera
-databasa
-dependan
-existance
-existant
-paramater
-refered
-repsentation
-retreive
-suported
-varsion
-);
-
-$testcount = scalar(@Support::Files::testitems);
-}
+use lib qw(. lib local/lib/perl5 t);
+use Support::Files;
-use Test::More tests => $testcount;
+# -1 because 006spellcheck.t must not be checked.
+use Test::More tests => scalar(@Support::Files::testitems)
+ + scalar(@Support::Files::test_files) - 1;
# Capture the TESTOUT from Test::More or Test::Builder for printing errors.
# This will handle verbosity for us automatically.
my $fh;
{
- local $^W = 0; # Don't complain about non-existent filehandles
+ no warnings qw(unopened); # Don't complain about non-existent filehandles
if (-e \*Test::More::TESTOUT) {
$fh = \*Test::More::TESTOUT;
} elsif (-e \*Test::Builder::TESTOUT) {
@@ -66,14 +35,35 @@ my $fh;
}
}
-my @testitems = @Support::Files::testitems;
+my @testitems = (@Support::Files::testitems, @Support::Files::test_files);
+
+#add the words to check here:
+my @evilwords = qw(
+ anyways
+ appearence
+ arbitary
+ cancelled
+ critera
+ databasa
+ dependan
+ existance
+ existant
+ paramater
+ refered
+ repsentation
+ retreive
+ suported
+ varsion
+);
-# at last, here we actually run the test...
my $evilwordsregexp = join('|', @evilwords);
foreach my $file (@testitems) {
$file =~ s/\s.*$//; # nuke everything after the first space (#comment)
next if (!$file); # skip null entries
+ # Do not try to validate this file as it obviously contains a list
+ # of wrongly spelled words.
+ next if ($file eq 't/006spellcheck.t');
if (open (FILE, $file)) { # open the file for reading
diff --git a/t/007util.t b/t/007util.t
index b32a1b90c..b8e9505d8 100644
--- a/t/007util.t
+++ b/t/007util.t
@@ -1,36 +1,26 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# The Initial Developer of the Original Code is Zach Lipton
-# Portions created by Zach Lipton are Copyright (C) 2002 Zach Lipton.
-# All Rights Reserved.
-#
-# Contributor(s): Zach Lipton <zach@zachlipton.com>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
#################
#Bugzilla Test 7#
#####Util.pm#####
-use lib 't';
+use 5.10.1;
+use strict;
+use warnings;
+
+use lib qw(. lib local/lib/perl5 t);
use Support::Files;
-use Test::More tests => 15;
+use Test::More tests => 17;
+use DateTime;
BEGIN {
- use_ok(Bugzilla);
- use_ok(Bugzilla::Util);
+ use_ok('Bugzilla');
+ use_ok('Bugzilla::Util');
}
# We need to override user preferences so we can get an expected value when
@@ -73,6 +63,16 @@ foreach my $input (keys %email_strings) {
"email_filter('$input')");
}
+# validate_email_syntax. We need to override some parameters.
+my $params = Bugzilla->params;
+$params->{emailregexp} = '.*';
+$params->{emailsuffix} = '';
+my $ascii_email = 'admin@company.com';
+# U+0430 returns the Cyrillic "а", which looks similar to the ASCII "a".
+my $utf8_email = "\N{U+0430}dmin\@company.com";
+ok(validate_email_syntax($ascii_email), 'correctly formatted ASCII-only email address is valid');
+ok(!validate_email_syntax($utf8_email), 'correctly formatted email address with non-ASCII characters is rejected');
+
# diff_arrays():
my @old_array = qw(alpha beta alpha gamma gamma beta alpha delta epsilon gamma);
my @new_array = qw(alpha alpha beta gamma epsilon delta beta delta);
diff --git a/t/008filter.t b/t/008filter.t
index 1111c16f6..b8d05af8a 100644
--- a/t/008filter.t
+++ b/t/008filter.t
@@ -1,23 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla tests.
-#
-# The Initial Developer of the Original Code is Jacob Steenhagen.
-# Portions created by Jacob Steenhagen are
-# Copyright (C) 2001 Jacob Steenhagen. All
-# Rights Reserved.
-#
-# Contributor(s): Gervase Markham <gerv@gerv.net>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
#################
#Bugzilla Test 8#
@@ -29,10 +15,11 @@
# Sample exploit code: '>"><script>alert('Oh dear...')</script>
+use 5.10.1;
use strict;
-use lib qw(. lib t);
+use warnings;
-use vars qw(%safe);
+use lib qw(. lib local/lib/perl5 t);
use Bugzilla::Constants;
use Support::Templates;
@@ -44,6 +31,7 @@ use Cwd;
my $oldrecsep = $/;
my $topdir = cwd;
$/ = undef;
+our %safe;
foreach my $path (@Support::Templates::include_paths) {
$path =~ s|\\|/|g if ON_WINDOWS; # convert \ to / in path if on windows
@@ -94,13 +82,13 @@ foreach my $path (@Support::Templates::include_paths) {
foreach my $file (@testitems) {
# There are some files we don't check, because there is no need to
# filter their contents due to their content-type.
- if ($file =~ /\.(pm|txt|png)\.tmpl$/) {
+ if ($file =~ /\.(pm|txt|rst|png)\.tmpl$/) {
ok(1, "($lang/$flavor) $file is filter-safe");
next;
}
-
+
# Read the entire file into a string
- open (FILE, "<$file") || die "Can't open $file: $!\n";
+ open (FILE, "<$file") || die "Can't open $file: $!\n";
my $slurp = <FILE>;
close (FILE);
@@ -225,8 +213,8 @@ sub directive_ok {
return 1 if $directive =~ /FILTER\ (html|csv|js|base64|css_class_quote|ics|
quoteUrls|time|uri|xml|lower|html_light|
obsolete|inactive|closed|unitconvert|
- txt|html_linebreak|none|json|null|id)\b/x;
-
+ txt|html_linebreak|none|json|null|id|
+ markdown)\b/x;
return 0;
}
diff --git a/t/009bugwords.t b/t/009bugwords.t
index 242ac478d..740cbf6aa 100644
--- a/t/009bugwords.t
+++ b/t/009bugwords.t
@@ -1,24 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla tests.
-#
-# The Initial Developer of the Original Code is Jacob Steenhagen.
-# Portions created by Jacob Steenhagen are
-# Copyright (C) 2001 Jacob Steenhagen. All
-# Rights Reserved.
-#
-# Contributor(s): Gervase Markham <gerv@gerv.net>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
#################
#Bugzilla Test 9#
@@ -30,9 +15,11 @@
# "[% terms.bug %]". This test makes sure the relevant words aren't used
# bare.
+use 5.10.1;
use strict;
+use warnings;
-use lib 't';
+use lib qw(. lib local/lib/perl5 t);
use Support::Files;
use Support::Templates;
@@ -75,15 +62,6 @@ foreach my $file (@testitems) {
next;
}
}
-
- # "Bugzilla"
- if (grep /(?<!X\-)Bugzilla(?!_|::|-&gt|\.pm)/, $text) {
- # Exclude JS comments, hyperlinks, USE, and variable assignment.
- unless (grep /(\/\/.*|org.*>|api\/|USE |= )Bugzilla/, $text) {
- push(@errors, [$lineno, $text]);
- next;
- }
- }
}
if (scalar(@errors)) {
diff --git a/t/010dependencies.t b/t/010dependencies.t
index 3289d098e..777d42ed1 100644
--- a/t/010dependencies.t
+++ b/t/010dependencies.t
@@ -1,27 +1,20 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# Contributor(s): David Miller <justdave@bugzilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
##################
#Bugzilla Test 10#
## dependencies ##
+use 5.10.1;
use strict;
-use lib qw(. lib t);
+use warnings;
+
+use lib qw(. lib local/lib/perl5 t);
use Support::Files;
use Test::More qw(no_plan);
@@ -37,7 +30,7 @@ use constant MODULE_REGEX => qr/
['"]?
([\w:\.\\]+)
/x;
-use constant BASE_REGEX => qr/^use base qw\(([^\)]+)/;
+use constant BASE_REGEX => qr/^use (?:base|parent) (?:-norequire, )?qw\(([^\)]+)/;
# Extract all Perl modules.
foreach my $file (@Support::Files::testitems) {
@@ -69,7 +62,7 @@ foreach my $module (keys %mods) {
}
elsif ($line =~ BASE_REGEX or $line =~ MODULE_REGEX) {
my $used_string = $1;
- # "use base" can have multiple modules
+ # "use base"/"use parent" can have multiple modules
my @used_array = split(/\s+/, $used_string);
foreach my $used (@used_array) {
next if $used !~ /^Bugzilla/;
diff --git a/t/011pod.t b/t/011pod.t
index 517ca03ad..4f5fa87f7 100644
--- a/t/011pod.t
+++ b/t/011pod.t
@@ -1,27 +1,19 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
##################
#Bugzilla Test 11#
##POD validation##
+use 5.10.1;
use strict;
+use warnings;
-use lib 't';
+use lib qw(. lib local/lib/perl5 t);
use Support::Files;
use Pod::Checker;
@@ -32,7 +24,7 @@ use Test::More tests => scalar(@Support::Files::testitems);
# This will handle verbosity for us automatically.
my $fh;
{
- local $^W = 0; # Don't complain about non-existent filehandles
+ no warnings 'unopened';
if (-e \*Test::More::TESTOUT) {
$fh = \*Test::More::TESTOUT;
} elsif (-e \*Test::Builder::TESTOUT) {
diff --git a/t/012throwables.t b/t/012throwables.t
index 590fb8aa5..4317c0e89 100644
--- a/t/012throwables.t
+++ b/t/012throwables.t
@@ -1,25 +1,9 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-# vim: ts=4 sw=4 et tw=80
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# The Initial Developer of the Original Code is Zach Lipton
-# Portions created by Zach Lipton are
-# Copyright (C) 2001 Zach Lipton. All
-# Rights Reserved.
-#
-# Contributor(s): Dennis Melentyev <dennis.melentyev@infopulse.com.ua>
-# Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
@@ -27,8 +11,11 @@
#Bugzilla Test 12#
######Errors######
+use 5.10.1;
use strict;
-use lib qw(. lib t);
+use warnings;
+
+use lib qw(. lib local/lib/perl5 t);
use Bugzilla::Constants;
use Bugzilla::WebService::Constants;
@@ -63,6 +50,13 @@ foreach my $include_path (@include_paths) {
$file =~ s|\\|/|g if ON_WINDOWS; # convert \ to / in path if on windows
$test_templates{$file} = ()
if $file =~ m#global/(code|user)-error(?:-errors)?\.html\.tmpl#;
+
+ # Make sure the extension is not disabled
+ if ($file =~ m#^(extensions/[^/]+/)#) {
+ $test_templates{$file} = ()
+ if ! -e "${1}disabled"
+ && $file =~ m#global/(code|user)-error-errors\.html\.tmpl#;
+ }
}
}
diff --git a/t/013remote_ip.t b/t/013remote_ip.t
deleted file mode 100644
index 4bba7c95e..000000000
--- a/t/013remote_ip.t
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/perl
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#
-# This Source Code Form is "Incompatible With Secondary Licenses", as
-# defined by the Mozilla Public License, v. 2.0.
-
-use strict;
-use lib qw(. lib t);
-use Test::More qw(no_plan);
-use Bugzilla;
-use Bugzilla::Util qw(remote_ip);
-
-my $params = Bugzilla->params;
-local Bugzilla->localconfig->{param_override}{inbound_proxies} = undef;
-
-{
- local $params->{inbound_proxies} = '10.0.0.1,10.0.0.2';
- local $ENV{REMOTE_ADDR} = '10.0.0.2';
- local $ENV{HTTP_X_FORWARDED_FOR} = '10.42.42.42';
-
- is(remote_ip(), '10.42.42.42', "from proxy 2");
-}
-
-{
- local $params->{inbound_proxies} = '10.0.0.1,10.0.0.2';
- local $ENV{REMOTE_ADDR} = '10.0.0.1';
- local $ENV{HTTP_X_FORWARDED_FOR} = '10.42.42.42';
-
- is(remote_ip(), '10.42.42.42', "from proxy 1");
-}
-
-{
- local $params->{inbound_proxies} = '10.0.0.1,10.0.0.2';
- local $ENV{REMOTE_ADDR} = '10.0.0.3';
- local $ENV{HTTP_X_FORWARDED_FOR} = '10.42.42.42';
-
- is(remote_ip(), '10.0.0.3', "not a proxy");
-}
-
-{
- local $params->{inbound_proxies} = '*';
- local $ENV{REMOTE_ADDR} = '10.0.0.3';
- local $ENV{HTTP_X_FORWARDED_FOR} = '10.42.42.42,1.4.9.2';
-
- is(remote_ip(), '10.42.42.42', "always proxy");
-}
-
-{
- local $params->{inbound_proxies} = '';
- local $ENV{REMOTE_ADDR} = '10.9.8.7';
- local $ENV{HTTP_X_FORWARDED_FOR} = '10.42.42.42,1.4.9.2';
-
- is(remote_ip(), '10.9.8.7', "never proxy");
-}
-
-
-{
- local $params->{inbound_proxies} = '10.0.0.1,2600:cafe::cafe:ffff:bf42:4998';
- local $ENV{REMOTE_ADDR} = '2600:cafe::cafe:ffff:bf42:4998';
- local $ENV{HTTP_X_FORWARDED_FOR} = '2600:cafe::cafe:ffff:bf42:BEEF';
-
- is(remote_ip(), '2600:cafe::cafe:ffff:bf42:BEEF', "from proxy ipv6");
-}
-
-{
- local $params->{inbound_proxies} = '10.0.0.1,2600:cafe::cafe:ffff:bf42:4998';
- local $ENV{REMOTE_ADDR} = '2600:cafe::cafe:ffff:bf42:DEAD';
- local $ENV{HTTP_X_FORWARDED_FOR} = '2600:cafe::cafe:ffff:bf42:BEEF';
-
- is(remote_ip(), '2600:cafe::cafe:ffff:bf42:DEAD', "invalid proxy ipv6");
-}
-
-
-{
- local $params->{inbound_proxies} = '*';
- local $ENV{REMOTE_ADDR} = '2600:cafe::cafe:ffff:bf42:DEAD';
- local $ENV{HTTP_X_FORWARDED_FOR} = '';
-
- is(remote_ip(), '2600:cafe::cafe:ffff:bf42:DEAD', "always proxy ipv6");
-}
diff --git a/t/Support/Files.pm b/t/Support/Files.pm
index 00e0efd34..1bdf2eac7 100644
--- a/t/Support/Files.pm
+++ b/t/Support/Files.pm
@@ -1,45 +1,40 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla Tests.
-#
-# The Initial Developer of the Original Code is Zach Lipton
-# Portions created by Zach Lipton are
-# Copyright (C) 2001 Zach Lipton. All
-# Rights Reserved.
-#
-# Contributor(s): Zach Lipton <zach@zachlipton.com>
-# Joel Peshkin <bugreport@peshkin.net>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Support::Files;
-use Bugzilla;
+use 5.10.1;
+use strict;
+use warnings;
use File::Find;
+our @additional_files = ();
+
use constant IGNORE => qw(
Bugzilla/DuoAPI.pm
Bugzilla/DuoWeb.pm
);
-@additional_files = ();
+our @files = glob('*');
+find(sub { push(@files, $File::Find::name) if $_ =~ /\.pm$/;}, qw(Bugzilla docs));
+push(@files, 'extensions/create.pl', 'docs/makedocs.pl', 'cpanfile');
+
+our @extensions =
+ grep { $_ ne 'extensions/create.pl' && ! -e "$_/disabled" }
+ glob('extensions/*');
+
+foreach my $extension (@extensions) {
+ find(sub { push(@files, $File::Find::name) if $_ =~ /\.pm$/;}, $extension);
+}
-@files = glob('*');
-my @extension_paths = map { $_->package_dir } @{ Bugzilla->extensions };
-find(sub { push(@files, $File::Find::name) if $_ =~ /\.pm$/;}, 'Bugzilla', @extension_paths);
-push(@files, 'extensions/create.pl');
+our @test_files = glob('t/*.t xt/*/*.t');
-my @extensions = glob('extensions/*');
foreach my $extension (@extensions) {
# Skip disabled extensions
next if -e "$extension/disabled";
@@ -55,7 +50,7 @@ sub isTestingFile {
return undef if $ignore eq $file;
}
- if ($file =~ /\.cgi$|\.pl$|\.pm$/) {
+ if ($file =~ /\.psgi$|\.cgi$|\.pl$|\.pm$/) {
return 1;
}
my $additional;
@@ -65,11 +60,13 @@ sub isTestingFile {
return undef;
}
-foreach $currentfile (@files) {
+our (@testitems, @module_files);
+
+foreach my $currentfile (@files) {
if (isTestingFile($currentfile)) {
- push(@testitems,$currentfile);
+ push(@testitems, $currentfile);
}
+ push(@module_files, $currentfile) if $currentfile =~ /\.pm$/;
}
-
1;
diff --git a/t/Support/Systemexec.pm b/t/Support/Systemexec.pm
index 676ee02a4..e73763f8f 100644
--- a/t/Support/Systemexec.pm
+++ b/t/Support/Systemexec.pm
@@ -1,14 +1,25 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Support::Systemexec;
-require Exporter;
-@ISA = qw(Exporter);
-@EXPORT = qw(system exec);
-@EXPORT_OK = qw();
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use parent qw(Exporter);
+@Support::Systemexec::EXPORT = qw(system exec);
+
sub system($$@) {
1;
}
+
sub exec($$@) {
1;
}
+
1;
diff --git a/t/Support/Templates.pm b/t/Support/Templates.pm
index 81dc8cc3f..5071d67ae 100644
--- a/t/Support/Templates.pm
+++ b/t/Support/Templates.pm
@@ -1,38 +1,21 @@
-# -*- Mode: perl; indent-tabs-mode: nil -*-
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code are the Bugzilla tests.
-#
-# The Initial Developer of the Original Code is Jacob Steenhagen.
-# Portions created by Jacob Steenhagen are
-# Copyright (C) 2001 Jacob Steenhagen. All
-# Rights Reserved.
-#
-# Contributor(s): Jacob Steenhagen <jake@bugzilla.org>
-# David D. Kilzer <ddkilzer@kilzer.net>
-# Tobias Burnus <burnus@net-b.de>
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
package Support::Templates;
+use 5.10.1;
use strict;
+use warnings;
use lib 't';
use base qw(Exporter);
-@Support::Templates::EXPORT =
- qw(@languages @include_paths $english_default_include_path
- %include_path @referenced_files %actual_files $num_actual_files);
-use vars qw(@languages @include_paths $english_default_include_path
- %include_path @referenced_files %actual_files $num_actual_files);
+@Support::Templates::EXPORT =
+ qw(@languages @include_paths @english_default_include_paths
+ %include_path @referenced_files %actual_files $num_actual_files);
use Bugzilla;
use Bugzilla::Constants;
@@ -42,33 +25,32 @@ use Support::Files;
use File::Find;
use File::Spec;
-# The available template languages
-@languages = ();
+# English default include paths
+our @english_default_include_paths =
+ (File::Spec->catdir(bz_locations()->{'templatedir'}, 'en', 'default'));
-# The colon separated includepath per language
-%include_path = ();
-
-# All include paths
-@include_paths = ();
-
-# English default include path
-$english_default_include_path =
- File::Spec->catdir(bz_locations()->{'templatedir'}, 'en', 'default');
+# And the extensions too
+foreach my $extension (@Support::Files::extensions) {
+ my $dir = File::Spec->catdir($extension, 'template', 'en', 'default');
+ if (-e $dir) {
+ push @english_default_include_paths, $dir;
+ }
+}
# Files which are referenced in the cgi files
-@referenced_files = ();
+our @referenced_files = ();
# All files sorted by include_path
-%actual_files = ();
+our %actual_files = ();
# total number of actual_files
-$num_actual_files = 0;
+our $num_actual_files = 0;
# Set the template available languages and include paths
-@languages = @{ Bugzilla->languages };
-@include_paths = @{ template_include_path({ language => Bugzilla->languages }) };
+our @languages = @{ Bugzilla->languages };
+our @include_paths = @{ template_include_path({ language => Bugzilla->languages }) };
-my @files;
+our @files;
# Local subroutine used with File::Find
sub find_templates {
diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl
index df6aac31d..18650de7d 100644
--- a/template/en/default/global/code-error.html.tmpl
+++ b/template/en/default/global/code-error.html.tmpl
@@ -133,7 +133,8 @@
[% ELSIF error == "cookies_need_value" %]
Every cookie must have a value.
-
+ [% ELSIF error == "cpan_meta_missing" %]
+ META.json/MYMETA.json file is missing.
[% ELSIF error == "env_no_email" %]
[% terms.Bugzilla %] did not receive an email address from the
environment.
diff --git a/template/en/default/setup/strings.txt.pl b/template/en/default/setup/strings.txt.pl
index d7c7e0500..2151c24e8 100644
--- a/template/en/default/setup/strings.txt.pl
+++ b/template/en/default/setup/strings.txt.pl
@@ -1,20 +1,9 @@
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Initial Developer of the Original Code is Everything Solved.
-# Portions created by Everything Solved are Copyright (C) 2007
-# Everything Solved. All Rights Reserved.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# This file contains a single hash named %strings, which is used by the
# installation code to display strings before Template-Toolkit can safely
@@ -27,6 +16,7 @@
# Please keep the strings in alphabetical order by their name.
%strings = (
+ all_optional_features_require => 'All optional features above require the following modules to be found:',
any => 'any',
apachectl_failed => <<END,
WARNING: We could not check the configuration of Apache. This sometimes
@@ -48,9 +38,6 @@ can connect to your MySQL database and drop the bz_schema table, as a last
resort.
END
checking_for => 'Checking for',
- checking_dbd => 'Checking available perl DBD modules...',
- checking_optional => 'The following Perl modules are optional:',
- checking_modules => 'Checking perl modules...',
chmod_failed => '##path##: Failed to change permissions: ##error##',
chown_failed => '##path##: Failed to change ownership: ##error##',
commands_dbd => <<EOT,
@@ -93,44 +80,11 @@ END
Extensions must return their name, not <code>1</code> or a number. See
the documentation of Bugzilla::Extension for details.
END
- feature_auth_ldap => 'LDAP Authentication',
- feature_auth_radius => 'RADIUS Authentication',
- feature_documentation => 'Documentation',
- feature_elasticsearch => 'ElasticSearch Support',
- feature_graphical_reports => 'Graphical Reports',
- feature_html_desc => 'More HTML in Product/Group Descriptions',
- feature_inbound_email => 'Inbound Email',
- feature_jobqueue => 'Mail Queueing',
- feature_jsonrpc => 'JSON-RPC Interface',
- feature_jsonrpc_faster => 'Make JSON-RPC Faster',
- feature_new_charts => 'New Charts',
- feature_old_charts => 'Old Charts',
- feature_memcached => 'Memcached Support',
- feature_mfa => 'Two-Factor Authentication',
- feature_mod_perl => 'mod_perl',
- feature_moving => 'Move Bugs Between Installations',
- feature_patch_viewer => 'Patch Viewer',
- feature_rest => 'REST Interface',
- feature_s3 => 'Attachment S3 Storage',
- feature_smtp_auth => 'SMTP Authentication',
- feature_updates => 'Automatic Update Notifications',
- feature_xmlrpc => 'XML-RPC Interface',
- feature_detect_charset => 'Automatic charset detection for text attachments',
-
file_remove => 'Removing ##name##...',
file_rename => 'Renaming ##from## to ##to##...',
header => "* This is Bugzilla ##bz_ver## on perl ##perl_ver##\n"
. "* Running on ##os_name## ##os_ver##",
- install_all => <<EOT,
-
-To attempt an automatic install of every required and optional module
-with one command, do:
-
- ##perl## checksetup.pl --cpanfile
- cpanm --installdeps --with-recommends --with-all-features \\
- --without-feature oracle --without-feature sqlite \\
- --without-feature pg.
-EOT
+ installation_failed => '*** Installation aborted. Read the messages above. ***',
install_data_too_long => <<EOT,
WARNING: Some of the data in the ##table##.##column## column is longer than
its new length limit of ##max_length## characters. The data that needs to be
@@ -138,15 +92,6 @@ fixed is printed below with the value of the ##id_column## column first and
then the value of the ##column## column that needs to be fixed:
EOT
- install_module => 'Installing ##module## version ##version##...',
- installation_failed => '*** Installation aborted. Read the messages above. ***',
- install_no_compiler => <<END,
-ERROR: Using install-module.pl requires that you install a compiler, such as
-gcc.
-END
- install_no_make => <<END,
-ERROR: Using install-module.pl requires that you install "make".
-END
lc_new_vars => <<'END',
This version of Bugzilla contains some variables that you may want to
change and adapt to your local settings. The following variables are
@@ -299,12 +244,15 @@ EOT
***********************************************************************
* APACHE MODULES *
***********************************************************************
-* Normally, when Bugzilla is upgraded, all Bugzilla users have to *
-* clear their browser cache or Bugzilla will break. If you enable *
-* certain modules in your Apache configuration (usually called *
-* httpd.conf or apache2.conf) then your users will not have to clear *
-* their caches when you upgrade Bugzilla. The modules you need to *
-* enable are: *
+* Some Apache modules allow to extend Bugzilla functionalities. *
+* These modules can be enabled in the Apache configuration file *
+* (usually called httpd.conf or apache2.conf). *
+* - mod_headers, mod_env and mod_expires permit to automatically *
+* refresh the browser cache of your users when upgrading Bugzilla. *
+* - mod_rewrite permits to write shorter URLs used by the REST API. *
+* - mod_version permits to write rules in .htaccess specific to *
+* Apache 2.2 or 2.4. *
+* The modules you need to enable are: *
* *
END
modules_message_db => <<EOT,
diff --git a/testagent.cgi b/testagent.cgi
index 4ecaa15fd..a1c200e10 100755
--- a/testagent.cgi
+++ b/testagent.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
@@ -17,7 +17,9 @@
# are being run instead of shown. This script does not rely on database access
# or correct params.
+use 5.10.1;
use strict;
+use warnings;
print "content-type:text/plain\n\n";
print "OK " . ($::ENV{MOD_PERL} || "mod_cgi") . "\n";
exit;
diff --git a/testserver.pl b/testserver.pl
index ffe4b1ad5..f5cdae451 100755
--- a/testserver.pl
+++ b/testserver.pl
@@ -1,25 +1,20 @@
-#!/usr/bin/perl -w
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# Contributor(s): Joel Peshkin <bugreport@peshkin.net>
-# Byron Jones <byron@glob.com.au>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# testserver.pl is invoked with the baseurl of the Bugzilla installation
# as its only argument. It attempts to troubleshoot as many installation
# issues as possible.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/token.cgi b/token.cgi
index fd3a38a8e..136e76137 100755
--- a/token.cgi
+++ b/token.cgi
@@ -1,34 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Myk Melez <myk@mozilla.org>
-# Frédéric Buclin <LpSolit@gmail.com>
-
-############################################################################
-# Script Initialization
-############################################################################
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
-# Make it harder for us to do dangerous things in Perl.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/userprefs.cgi b/userprefs.cgi
index 3f5d2038c..015f6bf4e 100755
--- a/userprefs.cgi
+++ b/userprefs.cgi
@@ -1,30 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Dan Mosedale <dmose@mozilla.org>
-# Alan Raetz <al_raetz@yahoo.com>
-# David Miller <justdave@syndicomm.com>
-# Christopher Aillon <christopher@aillon.com>
-# Gervase Markham <gerv@gerv.net>
-# Vlad Dascalu <jocuri@softhome.net>
-# Shane H. W. Travis <travis@sedsystems.ca>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::BugMail;
diff --git a/view_job_queue.cgi b/view_job_queue.cgi
index 6903acff0..5ea871104 100755
--- a/view_job_queue.cgi
+++ b/view_job_queue.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -10,7 +10,7 @@ use 5.10.1;
use strict;
use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/votes.cgi b/votes.cgi
index ef9227af0..8344d7494 100755
--- a/votes.cgi
+++ b/votes.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
@@ -23,8 +23,10 @@
# This script remains as a backwards-compatibility URL for before
# the time that Voting was an extension.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Error;
diff --git a/whine.pl b/whine.pl
index a701d36a7..a1b3ea8bc 100755
--- a/whine.pl
+++ b/whine.pl
@@ -1,32 +1,20 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Erik Stambaugh <erik@dasbistro.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
################################################################################
# Script Initialization
################################################################################
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;
diff --git a/whineatnews.pl b/whineatnews.pl
index 3bfe29871..e1da6f9e4 100755
--- a/whineatnews.pl
+++ b/whineatnews.pl
@@ -1,26 +1,10 @@
-#!/usr/bin/perl -w
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# The Initial Developer of the Original Code is Netscape Communications
-# Corporation. Portions created by Netscape are
-# Copyright (C) 1998 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s): Terry Weissman <terry@mozilla.org>
-# Joseph Heenan <joseph@heenan.me.uk>
-# Frédéric Buclin <LpSolit@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
# This is a script suitable for running once a day from a cron job. It
@@ -30,8 +14,11 @@
# param. (We have NEW and REOPENED in there to keep compatibility with old
# Bugzillas.)
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Mailer;
diff --git a/xml.cgi b/xml.cgi
index ce6a7c39b..1b5fac9fa 100755
--- a/xml.cgi
+++ b/xml.cgi
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -wT
+#!/usr/bin/perl -T
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
@@ -22,9 +22,11 @@
# Terry Weissman <terry@mozilla.org>
# Gervase Markham <gerv@gerv.net>
+use 5.10.1;
use strict;
+use warnings;
-use lib qw(. lib);
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
my $cgi = Bugzilla->cgi;
diff --git a/xmlrpc.cgi b/xmlrpc.cgi
index 8b1e69f28..74923e18d 100755
--- a/xmlrpc.cgi
+++ b/xmlrpc.cgi
@@ -1,22 +1,16 @@
-#!/usr/bin/perl -wT
-# -*- Mode: perl; indent-tabs-mode: nil -*-
+#!/usr/bin/perl -T
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Bugzilla Bug Tracking System.
-#
-# Contributor(s): Marc Schumann <wurblzap@gmail.com>
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+use 5.10.1;
use strict;
-use lib qw(. lib);
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
use Bugzilla;
use Bugzilla::Constants;