Skip to content

Commit 925dabd

Browse files
authored
Merge pull request #439 from infosiftr/3.9-rc
Add 3.9-rc builds
2 parents 147f9b4 + a7db8db commit 925dabd

File tree

7 files changed

+383
-0
lines changed

7 files changed

+383
-0
lines changed

.appveyor.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ image: Visual Studio 2017
33

44
environment:
55
matrix:
6+
- version: 3.9-rc
7+
variant: windowsservercore-ltsc2016
68
- version: 3.8
79
variant: windowsservercore-ltsc2016
810
- version: 3.7

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ services: docker
33

44
matrix:
55
include:
6+
- os: linux
7+
env: VERSION=3.9-rc VARIANT=buster
8+
- os: linux
9+
env: VERSION=3.9-rc VARIANT=alpine3.10
610
- os: linux
711
env: VERSION=3.8 VARIANT=buster
812
- os: linux

3.9-rc/alpine3.10/Dockerfile

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
#
2+
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
3+
#
4+
# PLEASE DO NOT EDIT IT DIRECTLY.
5+
#
6+
7+
FROM alpine:3.10
8+
9+
# ensure local python is preferred over distribution python
10+
ENV PATH /usr/local/bin:$PATH
11+
12+
# http://bugs.python.org/issue19846
13+
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK.
14+
ENV LANG C.UTF-8
15+
16+
# install ca-certificates so that HTTPS works consistently
17+
# other runtime dependencies for Python are installed later
18+
RUN apk add --no-cache ca-certificates
19+
20+
ENV GPG_KEY E3FF2839C048B25C084DEBE9B26995E310250568
21+
ENV PYTHON_VERSION 3.9.0a1
22+
23+
RUN set -ex \
24+
&& apk add --no-cache --virtual .fetch-deps \
25+
gnupg \
26+
tar \
27+
xz \
28+
\
29+
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
30+
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
31+
&& export GNUPGHOME="$(mktemp -d)" \
32+
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
33+
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \
34+
&& { command -v gpgconf > /dev/null && gpgconf --kill all || :; } \
35+
&& rm -rf "$GNUPGHOME" python.tar.xz.asc \
36+
&& mkdir -p /usr/src/python \
37+
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \
38+
&& rm python.tar.xz \
39+
\
40+
&& apk add --no-cache --virtual .build-deps \
41+
bzip2-dev \
42+
coreutils \
43+
dpkg-dev dpkg \
44+
expat-dev \
45+
findutils \
46+
gcc \
47+
gdbm-dev \
48+
libc-dev \
49+
libffi-dev \
50+
libnsl-dev \
51+
libtirpc-dev \
52+
linux-headers \
53+
make \
54+
ncurses-dev \
55+
openssl-dev \
56+
pax-utils \
57+
readline-dev \
58+
sqlite-dev \
59+
tcl-dev \
60+
tk \
61+
tk-dev \
62+
util-linux-dev \
63+
xz-dev \
64+
zlib-dev \
65+
# add build deps before removing fetch deps in case there's overlap
66+
&& apk del .fetch-deps \
67+
\
68+
&& cd /usr/src/python \
69+
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
70+
&& ./configure \
71+
--build="$gnuArch" \
72+
--enable-loadable-sqlite-extensions \
73+
--enable-optimizations \
74+
--enable-shared \
75+
--with-system-expat \
76+
--with-system-ffi \
77+
--without-ensurepip \
78+
&& make -j "$(nproc)" \
79+
# set thread stack size to 1MB so we don't segfault before we hit sys.getrecursionlimit()
80+
# https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
81+
EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000" \
82+
&& make install \
83+
\
84+
&& find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \
85+
| tr ',' '\n' \
86+
| sort -u \
87+
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
88+
| xargs -rt apk add --no-cache --virtual .python-rundeps \
89+
&& apk del .build-deps \
90+
\
91+
&& find /usr/local -depth \
92+
\( \
93+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
94+
-o \
95+
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
96+
\) -exec rm -rf '{}' + \
97+
&& rm -rf /usr/src/python \
98+
\
99+
&& python3 --version
100+
101+
# make some useful symlinks that are expected to exist
102+
RUN cd /usr/local/bin \
103+
&& ln -s idle3 idle \
104+
&& ln -s pydoc3 pydoc \
105+
&& ln -s python3 python \
106+
&& ln -s python3-config python-config
107+
108+
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
109+
ENV PYTHON_PIP_VERSION 19.3.1
110+
# https://github.com/pypa/get-pip
111+
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/ffe826207a010164265d9cc807978e3604d18ca0/get-pip.py
112+
ENV PYTHON_GET_PIP_SHA256 b86f36cc4345ae87bfd4f10ef6b2dbfa7a872fbff70608a1e43944d283fd0eee
113+
114+
RUN set -ex; \
115+
\
116+
wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \
117+
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum -c -; \
118+
\
119+
python get-pip.py \
120+
--disable-pip-version-check \
121+
--no-cache-dir \
122+
"pip==$PYTHON_PIP_VERSION" \
123+
; \
124+
pip --version; \
125+
\
126+
find /usr/local -depth \
127+
\( \
128+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
129+
-o \
130+
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
131+
\) -exec rm -rf '{}' +; \
132+
rm -f get-pip.py
133+
134+
CMD ["python3"]

3.9-rc/buster/Dockerfile

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
#
2+
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
3+
#
4+
# PLEASE DO NOT EDIT IT DIRECTLY.
5+
#
6+
7+
FROM buildpack-deps:buster
8+
9+
# ensure local python is preferred over distribution python
10+
ENV PATH /usr/local/bin:$PATH
11+
12+
# http://bugs.python.org/issue19846
13+
# > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK.
14+
ENV LANG C.UTF-8
15+
16+
# extra dependencies (over what buildpack-deps already includes)
17+
RUN apt-get update && apt-get install -y --no-install-recommends \
18+
tk-dev \
19+
uuid-dev \
20+
&& rm -rf /var/lib/apt/lists/*
21+
22+
ENV GPG_KEY E3FF2839C048B25C084DEBE9B26995E310250568
23+
ENV PYTHON_VERSION 3.9.0a1
24+
25+
RUN set -ex \
26+
\
27+
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
28+
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
29+
&& export GNUPGHOME="$(mktemp -d)" \
30+
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
31+
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \
32+
&& { command -v gpgconf > /dev/null && gpgconf --kill all || :; } \
33+
&& rm -rf "$GNUPGHOME" python.tar.xz.asc \
34+
&& mkdir -p /usr/src/python \
35+
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \
36+
&& rm python.tar.xz \
37+
\
38+
&& cd /usr/src/python \
39+
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
40+
&& ./configure \
41+
--build="$gnuArch" \
42+
--enable-loadable-sqlite-extensions \
43+
--enable-optimizations \
44+
--enable-shared \
45+
--with-system-expat \
46+
--with-system-ffi \
47+
--without-ensurepip \
48+
&& make -j "$(nproc)" \
49+
&& make install \
50+
&& ldconfig \
51+
\
52+
&& find /usr/local -depth \
53+
\( \
54+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
55+
-o \
56+
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
57+
\) -exec rm -rf '{}' + \
58+
&& rm -rf /usr/src/python \
59+
\
60+
&& python3 --version
61+
62+
# make some useful symlinks that are expected to exist
63+
RUN cd /usr/local/bin \
64+
&& ln -s idle3 idle \
65+
&& ln -s pydoc3 pydoc \
66+
&& ln -s python3 python \
67+
&& ln -s python3-config python-config
68+
69+
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
70+
ENV PYTHON_PIP_VERSION 19.3.1
71+
# https://github.com/pypa/get-pip
72+
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/ffe826207a010164265d9cc807978e3604d18ca0/get-pip.py
73+
ENV PYTHON_GET_PIP_SHA256 b86f36cc4345ae87bfd4f10ef6b2dbfa7a872fbff70608a1e43944d283fd0eee
74+
75+
RUN set -ex; \
76+
\
77+
wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \
78+
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum --check --strict -; \
79+
\
80+
python get-pip.py \
81+
--disable-pip-version-check \
82+
--no-cache-dir \
83+
"pip==$PYTHON_PIP_VERSION" \
84+
; \
85+
pip --version; \
86+
\
87+
find /usr/local -depth \
88+
\( \
89+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
90+
-o \
91+
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
92+
\) -exec rm -rf '{}' +; \
93+
rm -f get-pip.py
94+
95+
CMD ["python3"]
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#
2+
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
3+
#
4+
# PLEASE DO NOT EDIT IT DIRECTLY.
5+
#
6+
7+
FROM mcr.microsoft.com/windows/servercore:1809
8+
9+
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
10+
11+
ENV PYTHON_VERSION 3.9.0a1
12+
ENV PYTHON_RELEASE 3.9.0
13+
14+
RUN $url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f $env:PYTHON_RELEASE, $env:PYTHON_VERSION); \
15+
Write-Host ('Downloading {0} ...' -f $url); \
16+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
17+
Invoke-WebRequest -Uri $url -OutFile 'python.exe'; \
18+
\
19+
Write-Host 'Installing ...'; \
20+
# https://docs.python.org/3.5/using/windows.html#installing-without-ui
21+
Start-Process python.exe -Wait \
22+
-ArgumentList @( \
23+
'/quiet', \
24+
'InstallAllUsers=1', \
25+
'TargetDir=C:\Python', \
26+
'PrependPath=1', \
27+
'Shortcuts=0', \
28+
'Include_doc=0', \
29+
'Include_pip=0', \
30+
'Include_test=0' \
31+
); \
32+
\
33+
# the installer updated PATH, so we should refresh our local value
34+
$env:PATH = [Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::Machine); \
35+
\
36+
Write-Host 'Verifying install ...'; \
37+
Write-Host ' python --version'; python --version; \
38+
\
39+
Write-Host 'Removing ...'; \
40+
Remove-Item python.exe -Force; \
41+
\
42+
Write-Host 'Complete.'
43+
44+
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
45+
ENV PYTHON_PIP_VERSION 19.3.1
46+
# https://github.com/pypa/get-pip
47+
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/ffe826207a010164265d9cc807978e3604d18ca0/get-pip.py
48+
ENV PYTHON_GET_PIP_SHA256 b86f36cc4345ae87bfd4f10ef6b2dbfa7a872fbff70608a1e43944d283fd0eee
49+
50+
RUN Write-Host ('Downloading get-pip.py ({0}) ...' -f $env:PYTHON_GET_PIP_URL); \
51+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
52+
Invoke-WebRequest -Uri $env:PYTHON_GET_PIP_URL -OutFile 'get-pip.py'; \
53+
Write-Host ('Verifying sha256 ({0}) ...' -f $env:PYTHON_GET_PIP_SHA256); \
54+
if ((Get-FileHash 'get-pip.py' -Algorithm sha256).Hash -ne $env:PYTHON_GET_PIP_SHA256) { \
55+
Write-Host 'FAILED!'; \
56+
exit 1; \
57+
}; \
58+
\
59+
Write-Host ('Installing pip=={0} ...' -f $env:PYTHON_PIP_VERSION); \
60+
python get-pip.py \
61+
--disable-pip-version-check \
62+
--no-cache-dir \
63+
('pip=={0}' -f $env:PYTHON_PIP_VERSION) \
64+
; \
65+
Remove-Item get-pip.py -Force; \
66+
\
67+
Write-Host 'Verifying pip install ...'; \
68+
pip --version; \
69+
\
70+
Write-Host 'Complete.'
71+
72+
CMD ["python"]
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#
2+
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
3+
#
4+
# PLEASE DO NOT EDIT IT DIRECTLY.
5+
#
6+
7+
FROM mcr.microsoft.com/windows/servercore:ltsc2016
8+
9+
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
10+
11+
ENV PYTHON_VERSION 3.9.0a1
12+
ENV PYTHON_RELEASE 3.9.0
13+
14+
RUN $url = ('https://www.python.org/ftp/python/{0}/python-{1}-amd64.exe' -f $env:PYTHON_RELEASE, $env:PYTHON_VERSION); \
15+
Write-Host ('Downloading {0} ...' -f $url); \
16+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
17+
Invoke-WebRequest -Uri $url -OutFile 'python.exe'; \
18+
\
19+
Write-Host 'Installing ...'; \
20+
# https://docs.python.org/3.5/using/windows.html#installing-without-ui
21+
Start-Process python.exe -Wait \
22+
-ArgumentList @( \
23+
'/quiet', \
24+
'InstallAllUsers=1', \
25+
'TargetDir=C:\Python', \
26+
'PrependPath=1', \
27+
'Shortcuts=0', \
28+
'Include_doc=0', \
29+
'Include_pip=0', \
30+
'Include_test=0' \
31+
); \
32+
\
33+
# the installer updated PATH, so we should refresh our local value
34+
$env:PATH = [Environment]::GetEnvironmentVariable('PATH', [EnvironmentVariableTarget]::Machine); \
35+
\
36+
Write-Host 'Verifying install ...'; \
37+
Write-Host ' python --version'; python --version; \
38+
\
39+
Write-Host 'Removing ...'; \
40+
Remove-Item python.exe -Force; \
41+
\
42+
Write-Host 'Complete.'
43+
44+
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
45+
ENV PYTHON_PIP_VERSION 19.3.1
46+
# https://github.com/pypa/get-pip
47+
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/ffe826207a010164265d9cc807978e3604d18ca0/get-pip.py
48+
ENV PYTHON_GET_PIP_SHA256 b86f36cc4345ae87bfd4f10ef6b2dbfa7a872fbff70608a1e43944d283fd0eee
49+
50+
RUN Write-Host ('Downloading get-pip.py ({0}) ...' -f $env:PYTHON_GET_PIP_URL); \
51+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
52+
Invoke-WebRequest -Uri $env:PYTHON_GET_PIP_URL -OutFile 'get-pip.py'; \
53+
Write-Host ('Verifying sha256 ({0}) ...' -f $env:PYTHON_GET_PIP_SHA256); \
54+
if ((Get-FileHash 'get-pip.py' -Algorithm sha256).Hash -ne $env:PYTHON_GET_PIP_SHA256) { \
55+
Write-Host 'FAILED!'; \
56+
exit 1; \
57+
}; \
58+
\
59+
Write-Host ('Installing pip=={0} ...' -f $env:PYTHON_PIP_VERSION); \
60+
python get-pip.py \
61+
--disable-pip-version-check \
62+
--no-cache-dir \
63+
('pip=={0}' -f $env:PYTHON_PIP_VERSION) \
64+
; \
65+
Remove-Item get-pip.py -Force; \
66+
\
67+
Write-Host 'Verifying pip install ...'; \
68+
pip --version; \
69+
\
70+
Write-Host 'Complete.'
71+
72+
CMD ["python"]

0 commit comments

Comments
 (0)