Skip to content

Commit f215c79

Browse files
committed
Add 3.10.0a1
1 parent a57a40f commit f215c79

File tree

6 files changed

+523
-0
lines changed

6 files changed

+523
-0
lines changed

3.10-rc/alpine3.12/Dockerfile

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
#
2+
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
3+
#
4+
# PLEASE DO NOT EDIT IT DIRECTLY.
5+
#
6+
7+
FROM alpine:3.12
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 A035C8C19219BA821ECEA86B64E628F8D684696D
21+
ENV PYTHON_VERSION 3.10.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+
bluez-dev \
42+
bzip2-dev \
43+
coreutils \
44+
dpkg-dev dpkg \
45+
expat-dev \
46+
findutils \
47+
gcc \
48+
gdbm-dev \
49+
libc-dev \
50+
libffi-dev \
51+
libnsl-dev \
52+
libtirpc-dev \
53+
linux-headers \
54+
make \
55+
ncurses-dev \
56+
openssl-dev \
57+
pax-utils \
58+
readline-dev \
59+
sqlite-dev \
60+
tcl-dev \
61+
tk \
62+
tk-dev \
63+
util-linux-dev \
64+
xz-dev \
65+
zlib-dev \
66+
# add build deps before removing fetch deps in case there's overlap
67+
&& apk del --no-network .fetch-deps \
68+
\
69+
&& cd /usr/src/python \
70+
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
71+
&& ./configure \
72+
--build="$gnuArch" \
73+
--enable-loadable-sqlite-extensions \
74+
--enable-optimizations \
75+
--enable-option-checking=fatal \
76+
--enable-shared \
77+
--with-system-expat \
78+
--with-system-ffi \
79+
--without-ensurepip \
80+
&& make -j "$(nproc)" \
81+
# set thread stack size to 1MB so we don't segfault before we hit sys.getrecursionlimit()
82+
# https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
83+
EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000" \
84+
LDFLAGS="-Wl,--strip-all" \
85+
&& make install \
86+
&& rm -rf /usr/src/python \
87+
\
88+
&& find /usr/local -depth \
89+
\( \
90+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
91+
-o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name '*.a' \) \) \
92+
\) -exec rm -rf '{}' + \
93+
\
94+
&& find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \
95+
| tr ',' '\n' \
96+
| sort -u \
97+
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
98+
| xargs -rt apk add --no-cache --virtual .python-rundeps \
99+
&& apk del --no-network .build-deps \
100+
\
101+
&& python3 --version
102+
103+
# make some useful symlinks that are expected to exist
104+
RUN cd /usr/local/bin \
105+
&& ln -s idle3 idle \
106+
&& ln -s pydoc3 pydoc \
107+
&& ln -s python3 python \
108+
&& ln -s python3-config python-config
109+
110+
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
111+
ENV PYTHON_PIP_VERSION 20.2.3
112+
# https://github.com/pypa/get-pip
113+
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/fa7dc83944936bf09a0e4cb5d5ec852c0d256599/get-pip.py
114+
ENV PYTHON_GET_PIP_SHA256 6e0bb0a2c2533361d7f297ed547237caf1b7507f197835974c0dd7eba998c53c
115+
116+
RUN set -ex; \
117+
\
118+
wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \
119+
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum -c -; \
120+
\
121+
python get-pip.py \
122+
--disable-pip-version-check \
123+
--no-cache-dir \
124+
"pip==$PYTHON_PIP_VERSION" \
125+
; \
126+
pip --version; \
127+
\
128+
find /usr/local -depth \
129+
\( \
130+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
131+
-o \
132+
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
133+
\) -exec rm -rf '{}' +; \
134+
rm -f get-pip.py
135+
136+
CMD ["python3"]

3.10-rc/buster/Dockerfile

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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+
libbluetooth-dev \
19+
tk-dev \
20+
uuid-dev \
21+
&& rm -rf /var/lib/apt/lists/*
22+
23+
ENV GPG_KEY A035C8C19219BA821ECEA86B64E628F8D684696D
24+
ENV PYTHON_VERSION 3.10.0a1
25+
26+
RUN set -ex \
27+
\
28+
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
29+
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
30+
&& export GNUPGHOME="$(mktemp -d)" \
31+
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
32+
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \
33+
&& { command -v gpgconf > /dev/null && gpgconf --kill all || :; } \
34+
&& rm -rf "$GNUPGHOME" python.tar.xz.asc \
35+
&& mkdir -p /usr/src/python \
36+
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \
37+
&& rm python.tar.xz \
38+
\
39+
&& cd /usr/src/python \
40+
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
41+
&& ./configure \
42+
--build="$gnuArch" \
43+
--enable-loadable-sqlite-extensions \
44+
--enable-optimizations \
45+
--enable-option-checking=fatal \
46+
--enable-shared \
47+
--with-system-expat \
48+
--with-system-ffi \
49+
--without-ensurepip \
50+
&& make -j "$(nproc)" \
51+
&& make install \
52+
&& rm -rf /usr/src/python \
53+
\
54+
&& find /usr/local -depth \
55+
\( \
56+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
57+
-o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name '*.a' \) \) \
58+
\) -exec rm -rf '{}' + \
59+
\
60+
&& ldconfig \
61+
\
62+
&& python3 --version
63+
64+
# make some useful symlinks that are expected to exist
65+
RUN cd /usr/local/bin \
66+
&& ln -s idle3 idle \
67+
&& ln -s pydoc3 pydoc \
68+
&& ln -s python3 python \
69+
&& ln -s python3-config python-config
70+
71+
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
72+
ENV PYTHON_PIP_VERSION 20.2.3
73+
# https://github.com/pypa/get-pip
74+
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/fa7dc83944936bf09a0e4cb5d5ec852c0d256599/get-pip.py
75+
ENV PYTHON_GET_PIP_SHA256 6e0bb0a2c2533361d7f297ed547237caf1b7507f197835974c0dd7eba998c53c
76+
77+
RUN set -ex; \
78+
\
79+
wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \
80+
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum --check --strict -; \
81+
\
82+
python get-pip.py \
83+
--disable-pip-version-check \
84+
--no-cache-dir \
85+
"pip==$PYTHON_PIP_VERSION" \
86+
; \
87+
pip --version; \
88+
\
89+
find /usr/local -depth \
90+
\( \
91+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
92+
-o \
93+
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
94+
\) -exec rm -rf '{}' +; \
95+
rm -f get-pip.py
96+
97+
CMD ["python3"]

3.10-rc/buster/slim/Dockerfile

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
#
2+
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
3+
#
4+
# PLEASE DO NOT EDIT IT DIRECTLY.
5+
#
6+
7+
FROM debian:buster-slim
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+
# runtime dependencies
17+
RUN apt-get update && apt-get install -y --no-install-recommends \
18+
ca-certificates \
19+
netbase \
20+
&& rm -rf /var/lib/apt/lists/*
21+
22+
ENV GPG_KEY A035C8C19219BA821ECEA86B64E628F8D684696D
23+
ENV PYTHON_VERSION 3.10.0a1
24+
25+
RUN set -ex \
26+
\
27+
&& savedAptMark="$(apt-mark showmanual)" \
28+
&& apt-get update && apt-get install -y --no-install-recommends \
29+
dpkg-dev \
30+
gcc \
31+
libbluetooth-dev \
32+
libbz2-dev \
33+
libc6-dev \
34+
libexpat1-dev \
35+
libffi-dev \
36+
libgdbm-dev \
37+
liblzma-dev \
38+
libncursesw5-dev \
39+
libreadline-dev \
40+
libsqlite3-dev \
41+
libssl-dev \
42+
make \
43+
tk-dev \
44+
uuid-dev \
45+
wget \
46+
xz-utils \
47+
zlib1g-dev \
48+
# as of Stretch, "gpg" is no longer included by default
49+
$(command -v gpg > /dev/null || echo 'gnupg dirmngr') \
50+
\
51+
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
52+
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
53+
&& export GNUPGHOME="$(mktemp -d)" \
54+
&& gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
55+
&& gpg --batch --verify python.tar.xz.asc python.tar.xz \
56+
&& { command -v gpgconf > /dev/null && gpgconf --kill all || :; } \
57+
&& rm -rf "$GNUPGHOME" python.tar.xz.asc \
58+
&& mkdir -p /usr/src/python \
59+
&& tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \
60+
&& rm python.tar.xz \
61+
\
62+
&& cd /usr/src/python \
63+
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
64+
&& ./configure \
65+
--build="$gnuArch" \
66+
--enable-loadable-sqlite-extensions \
67+
--enable-optimizations \
68+
--enable-option-checking=fatal \
69+
--enable-shared \
70+
--with-system-expat \
71+
--with-system-ffi \
72+
--without-ensurepip \
73+
&& make -j "$(nproc)" \
74+
LDFLAGS="-Wl,--strip-all" \
75+
&& make install \
76+
&& rm -rf /usr/src/python \
77+
\
78+
&& find /usr/local -depth \
79+
\( \
80+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
81+
-o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name '*.a' \) \) \
82+
\) -exec rm -rf '{}' + \
83+
\
84+
&& ldconfig \
85+
\
86+
&& apt-mark auto '.*' > /dev/null \
87+
&& apt-mark manual $savedAptMark \
88+
&& find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' \
89+
| awk '/=>/ { print $(NF-1) }' \
90+
| sort -u \
91+
| xargs -r dpkg-query --search \
92+
| cut -d: -f1 \
93+
| sort -u \
94+
| xargs -r apt-mark manual \
95+
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
96+
&& rm -rf /var/lib/apt/lists/* \
97+
\
98+
&& python3 --version
99+
100+
# make some useful symlinks that are expected to exist
101+
RUN cd /usr/local/bin \
102+
&& ln -s idle3 idle \
103+
&& ln -s pydoc3 pydoc \
104+
&& ln -s python3 python \
105+
&& ln -s python3-config python-config
106+
107+
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
108+
ENV PYTHON_PIP_VERSION 20.2.3
109+
# https://github.com/pypa/get-pip
110+
ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/fa7dc83944936bf09a0e4cb5d5ec852c0d256599/get-pip.py
111+
ENV PYTHON_GET_PIP_SHA256 6e0bb0a2c2533361d7f297ed547237caf1b7507f197835974c0dd7eba998c53c
112+
113+
RUN set -ex; \
114+
\
115+
savedAptMark="$(apt-mark showmanual)"; \
116+
apt-get update; \
117+
apt-get install -y --no-install-recommends wget; \
118+
\
119+
wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \
120+
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum --check --strict -; \
121+
\
122+
apt-mark auto '.*' > /dev/null; \
123+
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
124+
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
125+
rm -rf /var/lib/apt/lists/*; \
126+
\
127+
python get-pip.py \
128+
--disable-pip-version-check \
129+
--no-cache-dir \
130+
"pip==$PYTHON_PIP_VERSION" \
131+
; \
132+
pip --version; \
133+
\
134+
find /usr/local -depth \
135+
\( \
136+
\( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
137+
-o \
138+
\( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
139+
\) -exec rm -rf '{}' +; \
140+
rm -f get-pip.py
141+
142+
CMD ["python3"]

0 commit comments

Comments
 (0)