From 432ace33d4216ecb3e3082d53cf06907dc329663 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 19 Feb 2014 10:55:00 +0100 Subject: [PATCH] Clean up svn environment to fix OSX issues, fixes #2708, refs #2146 --- src/Composer/Downloader/SvnDownloader.php | 6 ++++-- src/Composer/Package/Loader/RootPackageLoader.php | 3 +++ src/Composer/Repository/Vcs/SvnDriver.php | 2 ++ src/Composer/Util/Svn.php | 6 ++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Composer/Downloader/SvnDownloader.php b/src/Composer/Downloader/SvnDownloader.php index ec789c92a..f3ec821ba 100644 --- a/src/Composer/Downloader/SvnDownloader.php +++ b/src/Composer/Downloader/SvnDownloader.php @@ -26,8 +26,9 @@ class SvnDownloader extends VcsDownloader */ public function doDownload(PackageInterface $package, $path) { - $url = $package->getSourceUrl(); - $ref = $package->getSourceReference(); + SvnUtil::cleanEnv(); + $url = $package->getSourceUrl(); + $ref = $package->getSourceReference(); $this->io->write(" Checking out ".$package->getSourceReference()); $this->execute($url, "svn co", sprintf("%s/%s", $url, $ref), null, $path); @@ -38,6 +39,7 @@ class SvnDownloader extends VcsDownloader */ public function doUpdate(PackageInterface $initial, PackageInterface $target, $path) { + SvnUtil::cleanEnv(); $url = $target->getSourceUrl(); $ref = $target->getSourceReference(); diff --git a/src/Composer/Package/Loader/RootPackageLoader.php b/src/Composer/Package/Loader/RootPackageLoader.php index 5cedf9395..2dc4e220d 100644 --- a/src/Composer/Package/Loader/RootPackageLoader.php +++ b/src/Composer/Package/Loader/RootPackageLoader.php @@ -22,6 +22,7 @@ use Composer\Repository\Vcs\HgDriver; use Composer\IO\NullIO; use Composer\Util\ProcessExecutor; use Composer\Util\Git as GitUtil; +use Composer\Util\Svn as SvnUtil; /** * ArrayLoader built for the sole purpose of loading the root package @@ -303,6 +304,8 @@ class RootPackageLoader extends ArrayLoader private function guessSvnVersion(array $config) { + SvnUtil::cleanEnv(); + // try to fetch current version from svn if (0 === $this->process->execute('svn info --xml', $output)) { $trunkPath = isset($config['trunk-path']) ? preg_quote($config['trunk-path'], '#') : 'trunk'; diff --git a/src/Composer/Repository/Vcs/SvnDriver.php b/src/Composer/Repository/Vcs/SvnDriver.php index d69230cce..892afc3ed 100644 --- a/src/Composer/Repository/Vcs/SvnDriver.php +++ b/src/Composer/Repository/Vcs/SvnDriver.php @@ -51,6 +51,8 @@ class SvnDriver extends VcsDriver { $this->url = $this->baseUrl = rtrim(self::normalizeUrl($this->url), '/'); + SvnUtil::cleanEnv(); + if (isset($this->repoConfig['trunk-path'])) { $this->trunkPath = $this->repoConfig['trunk-path']; } diff --git a/src/Composer/Util/Svn.php b/src/Composer/Util/Svn.php index 510b45daa..9db0930e6 100644 --- a/src/Composer/Util/Svn.php +++ b/src/Composer/Util/Svn.php @@ -69,6 +69,12 @@ class Svn $this->process = $process ?: new ProcessExecutor; } + public static function cleanEnv() + { + // clean up env for OSX, see https://github.com/composer/composer/issues/2146#issuecomment-35478940 + putenv("DYLD_LIBRARY_PATH"); + } + /** * Execute an SVN command and try to fix up the process with credentials * if necessary.