Chad has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/331673 )
Change subject: Fuck you Multiversion ...................................................................... Fuck you Multiversion Revert "Reinstate "Remove MWVersion, fold its two functions into MWMultiVersion"" This reverts commit 8fdc87387da62fc131bb48c0260fe311fc6091af. Change-Id: I575172862e59eaa2a930bbf07ebdf9b7fd292aee --- M multiversion/MWMinimalScriptInit.php M multiversion/MWMultiVersion.php M multiversion/MWScript.php M multiversion/MWVersion.php M rpc/RunJobs.php M w/api.php M w/auth-api.php M w/extract2.php M w/favicon.php M w/img_auth.php M w/index.php M w/load.php M w/mobilelanding.php M w/opensearch_desc.php M w/robots.php M w/static.php M w/thumb.php M w/thumb_handler.php M w/touch.php 19 files changed, 86 insertions(+), 123 deletions(-) Approvals: Chad: Verified; Looks good to me, approved diff --git a/multiversion/MWMinimalScriptInit.php b/multiversion/MWMinimalScriptInit.php index 99d9398..80161f6 100644 --- a/multiversion/MWMinimalScriptInit.php +++ b/multiversion/MWMinimalScriptInit.php @@ -6,5 +6,5 @@ die( 1 ); } } ); -require_once __DIR__ . '/MWMultiVersion.php'; -@require_once MWMultiVersion::getMediaWiki( 'maintenance/commandLine.inc', getenv( 'MW_WIKI' ) ?: 'testwiki' ); +require_once __DIR__ . '/MWVersion.php'; +@require_once getMediaWiki( 'maintenance/commandLine.inc', getenv( 'MW_WIKI' ) ?: 'testwiki' ); diff --git a/multiversion/MWMultiVersion.php b/multiversion/MWMultiVersion.php index 5ff1c48..521b8a8 100644 --- a/multiversion/MWMultiVersion.php +++ b/multiversion/MWMultiVersion.php @@ -367,91 +367,4 @@ trigger_error( $msg, E_USER_ERROR ); exit( 1 ); // sanity } - - /** - * Get the location of the correct version of a MediaWiki web - * entry-point file given environmental variables such as the server name. - * This function should only be called on web views. - * - * If the wiki doesn't exist, then wmf-config/missing.php will - * be included (and thus displayed) and PHP will exit. - * - * If it does, then this function also has some other effects: - * (a) Sets the $IP global variable (path to MediaWiki) - * (b) Sets the MW_INSTALL_PATH environmental variable - * (c) Changes PHP's current directory to the directory of this file. - * - * @param $file string File path (relative to MediaWiki dir) - * @param $wiki string Force the Wiki ID rather than detecting it - * @return string Absolute file path with proper MW location - */ - public static function getMediaWiki( $file, $wiki = null ) { - global $IP; - - if ( $wiki === null ) { - $scriptName = @$_SERVER['SCRIPT_NAME']; - $serverName = @$_SERVER['SERVER_NAME']; - # Upload URL hit (to upload.wikimedia.org rather than wiki of origin)... - if ( $scriptName === '/w/thumb.php' && $serverName === 'upload.wikimedia.org' ) { - $multiVersion = self::initializeForUploadWiki( $_SERVER['PATH_INFO'] ); - # Regular URL hit (wiki of origin)... - } else { - $multiVersion = self::initializeForWiki( $serverName ); - } - } else { - $multiVersion = self::initializeFromDBName( $wiki ); - } - - # Wiki doesn't exist yet? - if ( $multiVersion->isMissing() ) { - header( "Cache-control: no-cache" ); // same hack as CommonSettings.php - include( MEDIAWIKI_DEPLOYMENT_DIR . '/wmf-config/missing.php' ); - exit; - } - - # Get the MediaWiki version running on this wiki... - $version = $multiVersion->getVersion(); - - # Get the correct MediaWiki path based on this version... - $IP = MEDIAWIKI_DEPLOYMENT_DIR . "/$version"; - - chdir( $IP ); - putenv( "MW_INSTALL_PATH=$IP" ); - - return "$IP/$file"; - } - - /** - * Get the location of the correct version of a MediaWiki CLI - * entry-point file given the --wiki parameter passed in. - * - * This also has some other effects: - * (a) Sets the $IP global variable (path to MediaWiki) - * (b) Sets the MW_INSTALL_PATH environmental variable - * (c) Changes PHP's current directory to the directory of this file. - * - * @param $file string File path (relative to MediaWiki dir) - * @return string Absolute file path with proper MW location - */ - public static function getMediaWikiCli( $file ) { - global $IP; - - $multiVersion = self::getInstance(); - if( !$multiVersion ) { - $multiVersion = self::initializeForMaintenance(); - } - if ( $multiVersion->getDatabase() === 'testwiki' ) { - define( 'TESTWIKI', 1 ); - } - - # Get the MediaWiki version running on this wiki... - $version = $multiVersion->getVersion(); - - # Get the correct MediaWiki path based on this version... - $IP = dirname( __DIR__ ) . "/$version"; - - putenv( "MW_INSTALL_PATH=$IP" ); - - return "$IP/$file"; - } } diff --git a/multiversion/MWScript.php b/multiversion/MWScript.php index 19d62bc..281d6ea 100644 --- a/multiversion/MWScript.php +++ b/multiversion/MWScript.php @@ -83,8 +83,8 @@ } # MWScript.php should be in common/ - require_once __DIR__ . '/MWMultiVersion.php'; - $file = MWMultiVersion::getMediaWikiCli( $relFile ); + require_once __DIR__ . '/MWVersion.php'; + $file = getMediaWikiCli( $relFile ); if ( !file_exists( $file ) ) { fwrite( STDERR, "The MediaWiki script file \"{$file}\" does not exist.\n" ); exit( 1 ); diff --git a/multiversion/MWVersion.php b/multiversion/MWVersion.php index 8e6b735..8c5dcae 100644 --- a/multiversion/MWVersion.php +++ b/multiversion/MWVersion.php @@ -17,8 +17,40 @@ * @return string Absolute file path with proper MW location */ function getMediaWiki( $file, $wiki = null ) { + global $IP; require_once( __DIR__ . '/MWMultiVersion.php' ); - require MWMultiVersion::getMediaWiki( $file, $wiki ); + + if ( $wiki === null ) { + $scriptName = @$_SERVER['SCRIPT_NAME']; + $serverName = @$_SERVER['SERVER_NAME']; + # Upload URL hit (to upload.wikimedia.org rather than wiki of origin)... + if ( $scriptName === '/w/thumb.php' && $serverName === 'upload.wikimedia.org' ) { + $multiVersion = MWMultiVersion::initializeForUploadWiki( $_SERVER['PATH_INFO'] ); + # Regular URL hit (wiki of origin)... + } else { + $multiVersion = MWMultiVersion::initializeForWiki( $serverName ); + } + } else { + $multiVersion = MWMultiVersion::initializeFromDBName( $wiki ); + } + + # Wiki doesn't exist yet? + if ( $multiVersion->isMissing() ) { + header( "Cache-control: no-cache" ); // same hack as CommonSettings.php + include( MEDIAWIKI_DEPLOYMENT_DIR . '/wmf-config/missing.php' ); + exit; + } + + # Get the MediaWiki version running on this wiki... + $version = $multiVersion->getVersion(); + + # Get the correct MediaWiki path based on this version... + $IP = MEDIAWIKI_DEPLOYMENT_DIR . "/$version"; + + chdir( $IP ); + putenv( "MW_INSTALL_PATH=$IP" ); + + return "$IP/$file"; } /** @@ -34,6 +66,24 @@ * @return string Absolute file path with proper MW location */ function getMediaWikiCli( $file ) { + global $IP; + require_once( __DIR__ . '/MWMultiVersion.php' ); - require MWMultiVersion::getMediaWikiCli( $file ); + $multiVersion = MWMultiVersion::getInstance(); + if( !$multiVersion ) { + $multiVersion = MWMultiVersion::initializeForMaintenance(); + } + if ( $multiVersion->getDatabase() === 'testwiki' ) { + define( 'TESTWIKI', 1 ); + } + + # Get the MediaWiki version running on this wiki... + $version = $multiVersion->getVersion(); + + # Get the correct MediaWiki path based on this version... + $IP = dirname( __DIR__ ) . "/$version"; + + putenv( "MW_INSTALL_PATH=$IP" ); + + return "$IP/$file"; } diff --git a/rpc/RunJobs.php b/rpc/RunJobs.php index 2db74e7..ccc0e6d 100755 --- a/rpc/RunJobs.php +++ b/rpc/RunJobs.php @@ -26,9 +26,9 @@ define( 'MEDIAWIKI_JOB_RUNNER', 1 ); -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; +require_once __DIR__ . '/../multiversion/MWVersion.php'; $wiki = isset( $_GET['wiki'] ) ? $_GET['wiki'] : ''; -require MWMultiVersion::getMediaWiki( 'includes/WebStart.php', $wiki ); +require getMediaWiki( 'includes/WebStart.php', $wiki ); error_reporting( E_ERROR ); // fatals but not random I/O warnings ini_set( 'display_errors', 1 ); diff --git a/w/api.php b/w/api.php index 78ed40b..8802cc8 100644 --- a/w/api.php +++ b/w/api.php @@ -1,3 +1,3 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'api.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'api.php' ); diff --git a/w/auth-api.php b/w/auth-api.php index 2e53f19..03114ba 100644 --- a/w/auth-api.php +++ b/w/auth-api.php @@ -1,3 +1,3 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'extensions/SecurePoll/auth-api.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'extensions/SecurePoll/auth-api.php' ); diff --git a/w/extract2.php b/w/extract2.php index c9895c5..d4448ba 100644 --- a/w/extract2.php +++ b/w/extract2.php @@ -2,8 +2,8 @@ $lang = 'meta'; putenv( "MW_LANG={$lang}" ); // notify MWMultiVersion -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'includes/WebStart.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'includes/WebStart.php' ); $allowed_templates = array( 'Www.wikimedia.org_template', diff --git a/w/favicon.php b/w/favicon.php index 3e90996..29ce43e 100644 --- a/w/favicon.php +++ b/w/favicon.php @@ -1,6 +1,6 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'includes/WebStart.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'includes/WebStart.php' ); function faviconShowError( $text ) { header( 'Content-Type: text/html; charset=utf-8' ); diff --git a/w/img_auth.php b/w/img_auth.php index fbabd1a..0c2a848 100644 --- a/w/img_auth.php +++ b/w/img_auth.php @@ -1,3 +1,3 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'img_auth.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'img_auth.php' ); diff --git a/w/index.php b/w/index.php index 04ac45d..ec3d0d3 100644 --- a/w/index.php +++ b/w/index.php @@ -1,3 +1,3 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'index.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'index.php' ); diff --git a/w/load.php b/w/load.php index 8f8c03c..5d0c594 100644 --- a/w/load.php +++ b/w/load.php @@ -1,3 +1,3 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'load.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'load.php' ); diff --git a/w/mobilelanding.php b/w/mobilelanding.php index 6811cb6..27bfd19 100644 --- a/w/mobilelanding.php +++ b/w/mobilelanding.php @@ -1,8 +1,8 @@ <?php putenv( 'MW_LANG=en' ); // notify MWMultiVersion -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'includes/WebStart.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'includes/WebStart.php' ); $code = '302'; $state = ZeroBanner\PageRenderingHooks::getState(); diff --git a/w/opensearch_desc.php b/w/opensearch_desc.php index eb6a191..57b4789 100644 --- a/w/opensearch_desc.php +++ b/w/opensearch_desc.php @@ -1,3 +1,3 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'opensearch_desc.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'opensearch_desc.php' ); diff --git a/w/robots.php b/w/robots.php index 127efc2..5cf4ab9 100644 --- a/w/robots.php +++ b/w/robots.php @@ -1,6 +1,6 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'includes/WebStart.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'includes/WebStart.php' ); $wgTitle = Title::newFromText( 'Mediawiki:robots.txt' ); $page = WikiPage::factory( $wgTitle ); diff --git a/w/static.php b/w/static.php index 618a6dc..c7afb50 100644 --- a/w/static.php +++ b/w/static.php @@ -26,8 +26,8 @@ * - wmfstatic.mismatch */ define( 'MW_NO_SESSION', 'warn' ); -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'includes/WebStart.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'includes/WebStart.php' ); function wmfStaticShowError( $message, $status, $smaxage = 60 ) { HttpStatus::header( $status ); diff --git a/w/thumb.php b/w/thumb.php index e44ef58..d10d668 100644 --- a/w/thumb.php +++ b/w/thumb.php @@ -1,3 +1,3 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'thumb.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'thumb.php' ); diff --git a/w/thumb_handler.php b/w/thumb_handler.php index ee0b6f9..a80876f 100644 --- a/w/thumb_handler.php +++ b/w/thumb_handler.php @@ -1,3 +1,3 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'thumb_handler.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'thumb_handler.php' ); diff --git a/w/touch.php b/w/touch.php index 561f540..322889c 100644 --- a/w/touch.php +++ b/w/touch.php @@ -1,6 +1,6 @@ <?php -require_once __DIR__ . '/../multiversion/MWMultiVersion.php'; -require MWMultiVersion::getMediaWiki( 'includes/WebStart.php' ); +require_once __DIR__ . '/../multiversion/MWVersion.php'; +require getMediaWiki( 'includes/WebStart.php' ); function faviconShowError( $text ) { header( 'Content-Type: text/html; charset=utf-8' ); -- To view, visit https://gerrit.wikimedia.org/r/331673 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I575172862e59eaa2a930bbf07ebdf9b7fd292aee Gerrit-PatchSet: 1 Gerrit-Project: operations/mediawiki-config Gerrit-Branch: master Gerrit-Owner: Chad <ch...@wikimedia.org> Gerrit-Reviewer: 20after4 <mmod...@wikimedia.org> Gerrit-Reviewer: Chad <ch...@wikimedia.org> Gerrit-Reviewer: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: Reedy <re...@wikimedia.org> Gerrit-Reviewer: Thcipriani <tcipri...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits