f7bb4f1595
This PR enables one to create the Hadoop release tarball on Windows, complete with the native binaries (including winutils.exe). This PR contains the following changes - * Prevents splitting during array element expansion - this is needed since we need to pass the arguments correctly to maven. * Install Python 3.11.8 and pip to the Windows docker image for building Hadoop. * pom file changes to get maven to invoke the releasedocmaker script through bash.exe on Windows.
55 lines
2.2 KiB
PowerShell
55 lines
2.2 KiB
PowerShell
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# The code lines below are derived from -
|
|
# https://github.com/docker-library/python/blob/105d6f34e7d70aad6f8c3e249b8208efa591916a/3.11/windows/windowsservercore-ltsc2022/Dockerfile
|
|
|
|
$url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f ($Env:PYTHON_VERSION -replace '[a-z]+[0-9]*$', ''), $Env:PYTHON_VERSION)
|
|
Write-Host ('Downloading {0} ...' -f $url)
|
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
Invoke-WebRequest -Uri $url -OutFile 'python.exe'
|
|
|
|
Write-Host 'Installing ...'
|
|
$exitCode = (Start-Process python.exe -Wait -NoNewWindow -PassThru `
|
|
-ArgumentList @(
|
|
'/quiet',
|
|
'InstallAllUsers=1',
|
|
'TargetDir=C:\Python',
|
|
'PrependPath=1',
|
|
'Shortcuts=0',
|
|
'Include_doc=0',
|
|
'Include_pip=0',
|
|
'Include_test=0'
|
|
)
|
|
).ExitCode
|
|
if ($exitCode -ne 0) {
|
|
Write-Host ('Running python installer failed with exit code: {0}' -f $exitCode)
|
|
Get-ChildItem $Env:TEMP | Sort-Object -Descending -Property LastWriteTime | Select-Object -First 1 | Get-Content
|
|
exit $exitCode
|
|
}
|
|
|
|
# the installer updated PATH, so we should refresh our local value
|
|
$Env:PATH = [Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::Machine)
|
|
|
|
Write-Host 'Verifying install ...'
|
|
Write-Host "python --version $(python --version)"
|
|
|
|
Write-Host 'Removing ...'
|
|
Remove-Item python.exe -Force
|
|
Remove-Item $Env:TEMP\Python*.log -Force
|
|
|
|
Write-Host 'Complete.'
|