Skip to content

Commit

Permalink
[macos] Remove python2 UnixTools and adjust brew symlinks (actions#8452)
Browse files Browse the repository at this point in the history
  • Loading branch information
shamil-mubarakshin authored Oct 15, 2023
1 parent 060ad13 commit b3b303d
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 16 deletions.
17 changes: 13 additions & 4 deletions images/macos/provision/core/python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,18 @@ if is_Monterey || is_BigSur; then
echo "Install latest Python 2"
Python2Url="https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg"
download_with_retries $Python2Url "/tmp" "python2.pkg"
sudo installer -pkg /tmp/python2.pkg -target /

sudo installer -showChoiceChangesXML -pkg /tmp/python2.pkg -target / > /tmp/python2_choices.xml

# To avoid symlink conflicts, remove tools installation in /usr/local/bin using installer choices
xmllint --shell /tmp/python2_choices.xml <<EOF
cd //array/dict[string[text()='org.python.Python.PythonUnixTools-2.7']]/integer
set 0
save
EOF

sudo installer -applyChoiceChangesXML /tmp/python2_choices.xml -pkg /tmp/python2.pkg -target /

pip install --upgrade pip

echo "Install Python2 certificates"
Expand All @@ -19,10 +30,8 @@ if is_Veertu; then
close_finder_window
fi

# Explicitly overwrite symlinks created by Python2 such as /usr/local/bin/2to3 since they conflict with symlinks from Python3
# https://github.com/actions/runner-images/issues/2322
echo "Brew Installing Python 3"
brew_smart_install "[email protected]" || brew link --overwrite [email protected]
brew_smart_install "[email protected]"

echo "Installing pipx"
export PIPX_BIN_DIR=/usr/local/opt/pipx_bin
Expand Down
4 changes: 2 additions & 2 deletions images/macos/software-report/SoftwareReport.Common.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ function Get-PipVersion {
[int] $Version
)

$command = If ($Version -eq 2) { "pip --version" } Else { "pip3 --version" }
$command = If ($Version -eq 2) { "/Library/Frameworks/Python.framework/Versions/2.7/bin/pip --version" } Else { "pip3 --version" }
$commandOutput = Run-Command $command
$versionPart1 = $commandOutput | Take-Part -Part 1
$versionPart2 = $commandOutput | Take-Part -Part 4
Expand Down Expand Up @@ -192,7 +192,7 @@ function Get-PerlVersion {
}

function Get-PythonVersion {
$pythonVersion = Run-Command "python --version"
$pythonVersion = Run-Command "/Library/Frameworks/Python.framework/Versions/2.7/bin/python --version"
return ($pythonVersion -replace "^Python").Trim()
}

Expand Down
12 changes: 2 additions & 10 deletions images/macos/tests/Python.Tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,11 @@ Describe "Python3" -Skip:($os.IsVenturaArm64) {

Describe "Python2" -Skip:($os.IsVenturaArm64 -or $os.IsVentura) {
It "Python 2 is available" {
"python --version" | Should -ReturnZeroExitCode
}

It "Python 2 is real 2.x" {
(Get-CommandResult "python --version").Output | Should -BeLike "Python 2.*"
}

It "Python 2 is installed under /usr/local/bin" {
Get-WhichTool "python" | Should -BeLike "/usr/local/bin*"
"/Library/Frameworks/Python.framework/Versions/2.7/bin/python --version" | Should -ReturnZeroExitCode
}

It "Pip 2 is available" {
"pip --version" | Should -ReturnZeroExitCode
"/Library/Frameworks/Python.framework/Versions/2.7/bin/pip --version" | Should -ReturnZeroExitCode
}

It "2to3 symlink does not point to Python 2" {
Expand Down

0 comments on commit b3b303d

Please sign in to comment.