From b46a32c85f192f122554280a550bd35b41588e73 Mon Sep 17 00:00:00 2001 From: Aryeh Gregor Date: Tue, 9 Apr 2019 10:52:38 +0300 Subject: [PATCH] Set MW_INSTALL_PATH in Maintenance.php Otherwise, if running update.php, there are require_once failures from extensions (at least Echo and Flow) if they aren't inside extensions/ -- e.g., if they're just symlinked from there. Change-Id: Iaf4231abae1621627f01171f955b5bb7a0fa77d8 --- maintenance/Maintenance.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/maintenance/Maintenance.php b/maintenance/Maintenance.php index 0d4f14c812..c0dd7f8ed3 100644 --- a/maintenance/Maintenance.php +++ b/maintenance/Maintenance.php @@ -42,6 +42,13 @@ define( 'DO_MAINTENANCE', RUN_MAINTENANCE_IF_MAIN ); // original name, harmless $maintClass = false; +// Some extensions rely on MW_INSTALL_PATH to find core files to include. Setting it here helps them +// if they're included by a core script (like DatabaseUpdater) after Maintenance.php has already +// been run. +if ( strval( getenv( 'MW_INSTALL_PATH' ) ) === '' ) { + putenv( 'MW_INSTALL_PATH=' . realpath( __DIR__ . '/..' ) ); +} + use Wikimedia\Rdbms\IDatabase; use MediaWiki\Logger\LoggerFactory; use MediaWiki\MediaWikiServices; @@ -171,11 +178,8 @@ abstract class Maintenance { * their own constructors */ public function __construct() { - // Setup $IP, using MW_INSTALL_PATH if it exists global $IP; - $IP = strval( getenv( 'MW_INSTALL_PATH' ) ) !== '' - ? getenv( 'MW_INSTALL_PATH' ) - : realpath( __DIR__ . '/..' ); + $IP = getenv( 'MW_INSTALL_PATH' ); $this->addDefaultParams(); register_shutdown_function( [ $this, 'outputChanneled' ], false ); -- 2.20.1