diff --git a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 index c97a23c54..6a17b9c8d 100644 --- a/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 +++ b/images/linux/scripts/SoftwareReport/SoftwareReport.Common.psm1 @@ -236,8 +236,14 @@ function Get-PHPVersions { } function Get-ComposerVersion { - $(composer --version) -match "Composer version (?\d+\.\d+\.\d+)\s" | Out-Null - return $Matches.version + $rawVersion = composer --version + if (Test-IsUbuntu18) { + $rawVersion -match "Composer version (?\d+\.\d+\.\d+)\s" | Out-Null + $composerVersion = $Matches.version + } else { + $composerVersion = $rawVersion | Take-OutputPart -Part 1 + } + return $composerVersion } function Get-PHPUnitVersion { diff --git a/images/linux/scripts/installers/php.sh b/images/linux/scripts/installers/php.sh index c11eb620d..01aebd79b 100644 --- a/images/linux/scripts/installers/php.sh +++ b/images/linux/scripts/installers/php.sh @@ -96,7 +96,12 @@ apt-get install -y --no-install-recommends snmp # Install composer php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === file_get_contents('https://composer.github.io/installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" -php composer-setup.php +# Composer 2.3 increased the required PHP version to >=7.2.5 and thus stop supporting PHP 5.3.2 - 7.2.4 +if isUbuntu18; then + php composer-setup.php --version=2.2.9 +else + php composer-setup.php +fi sudo mv composer.phar /usr/bin/composer php -r "unlink('composer-setup.php');" diff --git a/images/linux/scripts/tests/Common.Tests.ps1 b/images/linux/scripts/tests/Common.Tests.ps1 index ccd1efd04..783e122d4 100644 --- a/images/linux/scripts/tests/Common.Tests.ps1 +++ b/images/linux/scripts/tests/Common.Tests.ps1 @@ -20,6 +20,10 @@ Describe "PHP" { "composer --version" | Should -ReturnZeroExitCode } + It "Composer 2.2.9 on Ubuntu Server 18" -Skip:(-not (Test-IsUbuntu18)) { + composer --version | Should -Match "2.2.9" + } + It "Pear" { "pear" | Should -ReturnZeroExitCode }