Adapted for v2.0.8 from From 2cb9630320370109a733b214049b6c2028712307 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Tue, 26 Jan 2021 15:54:21 +0100 Subject: [PATCH] Fix $_SERVER var not being updated when using putenv, refs b80038804ff791a9d4608d737ad937b6033b0bae and fixes #9372 diff -up ./src/Composer/EventDispatcher/EventDispatcher.php.old ./src/Composer/EventDispatcher/EventDispatcher.php --- ./src/Composer/EventDispatcher/EventDispatcher.php.old 2021-01-26 16:53:39.118387399 +0100 +++ ./src/Composer/EventDispatcher/EventDispatcher.php 2021-01-26 16:54:45.679025338 +0100 @@ -243,6 +243,8 @@ class EventDispatcher if (strpos($exec, '@putenv ') === 0) { putenv(substr($exec, 8)); + list($var, $value) = explode('=', substr($exec, 8), 2); + $_SERVER[$var] = $value; continue; } diff -up ./src/Composer/Util/Git.php.old ./src/Composer/Util/Git.php --- ./src/Composer/Util/Git.php.old 2021-01-26 16:53:11.000000000 +0100 +++ ./src/Composer/Util/Git.php 2021-01-26 16:53:39.118387399 +0100 @@ -354,7 +354,7 @@ class Git // added in git 1.7.1, prevents prompting the user for username/password if (getenv('GIT_ASKPASS') !== 'echo') { putenv('GIT_ASKPASS=echo'); - unset($_SERVER['GIT_ASKPASS']); + $_SERVER['GIT_ASKPASS'] = 'echo'; } // clean up rogue git env vars in case this is running in a git hook @@ -370,6 +370,7 @@ class Git // Run processes with predictable LANGUAGE if (getenv('LANGUAGE') !== 'C') { putenv('LANGUAGE=C'); + $_SERVER['LANGUAGE'] = 'C'; } // clean up env for OSX, see https://github.com/composer/composer/issues/2146#issuecomment-35478940