Skip to content

Commit 34b8dd9

Browse files
committed
use cosign
1 parent 3f0cc20 commit 34b8dd9

7 files changed

+22
-8976
lines changed

docker/Dockerfile

+11-16
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,15 @@ RUN export MPDECIMAL_ROOT=mpdecimal-4.0.0 && \
107107
manylinux-entrypoint /build_scripts/build-mpdecimal.sh
108108

109109

110+
FROM --platform=${BUILDPLATFORM} ghcr.io/sigstore/cosign/cosign:v2.4.2 AS cosign-bin
111+
110112
FROM build_base AS build_cpython_system_ssl
111113
COPY --from=build_tcl_tk /manylinux-buildfs /
112114
COPY --from=build_mpdecimal /manylinux-buildfs /
113115
COPY --from=build_sqlite3 /manylinux-buildfs /
114116
COPY build_scripts/build-cpython.sh /build_scripts/
115117
RUN if command -v apk >/dev/null 2>&1; then ldconfig /; else ldconfig; fi
118+
COPY --from=cosign-bin /ko-app/cosign /usr/local/bin/cosign
116119

117120
FROM build_cpython_system_ssl AS build_cpython
118121
COPY build_scripts/build-openssl.sh /build_scripts/
@@ -123,36 +126,28 @@ RUN export OPENSSL_ROOT=openssl-3.0.15 && \
123126

124127

125128
FROM build_cpython_system_ssl AS build_cpython37
126-
COPY build_scripts/cpython-pubkeys.txt /build_scripts/cpython-pubkeys.txt
127-
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.7.17
129+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh [email protected] https://github.com/login/oauth 3.7.17
128130

129131
FROM build_cpython AS build_cpython38
130-
COPY build_scripts/ambv-pubkey.txt /build_scripts/cpython-pubkeys.txt
131-
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.8.20
132+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh [email protected] https://github.com/login/oauth 3.8.20
132133

133134
FROM build_cpython AS build_cpython39
134-
COPY build_scripts/ambv-pubkey.txt /build_scripts/cpython-pubkeys.txt
135-
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.9.21
135+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh [email protected] https://github.com/login/oauth 3.9.21
136136

137137
FROM build_cpython AS build_cpython310
138-
COPY build_scripts/cpython-pubkey-310-311.txt /build_scripts/cpython-pubkeys.txt
139-
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.10.16
138+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh [email protected] https://accounts.google.com 3.10.16
140139

141140
FROM build_cpython AS build_cpython311
142-
COPY build_scripts/cpython-pubkey-310-311.txt /build_scripts/cpython-pubkeys.txt
143-
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.11.11
141+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh [email protected] https://accounts.google.com 3.11.11
144142

145143
FROM build_cpython AS build_cpython312
146-
COPY build_scripts/cpython-pubkey-312-313.txt /build_scripts/cpython-pubkeys.txt
147-
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.12.9
144+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh [email protected] https://accounts.google.com 3.12.9
148145

149146
FROM build_cpython AS build_cpython313
150-
COPY build_scripts/cpython-pubkey-312-313.txt /build_scripts/cpython-pubkeys.txt
151-
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.13.2
147+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh [email protected] https://accounts.google.com 3.13.2
152148

153149
FROM build_cpython AS build_cpython313_nogil
154-
COPY build_scripts/cpython-pubkey-312-313.txt /build_scripts/cpython-pubkeys.txt
155-
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.13.2 nogil
150+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh [email protected] https://accounts.google.com 3.13.2 nogil
156151

157152

158153
FROM runtime_base

docker/build_scripts/ambv-pubkey.txt

-1,010
This file was deleted.

docker/build_scripts/build-cpython.sh

+10-7
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ MY_DIR=$(dirname "${BASH_SOURCE[0]}")
1212
source "${MY_DIR}/build_utils.sh"
1313

1414

15-
CPYTHON_VERSION=$1
15+
CERT_IDENTITY=$1
16+
CERT_OIDC_ISSUER=$2
17+
CPYTHON_VERSION=$3
1618
CPYTHON_DOWNLOAD_URL=https://www.python.org/ftp/python
1719

1820

@@ -26,17 +28,18 @@ function pyver_dist_dir {
2628

2729
CPYTHON_DIST_DIR=$(pyver_dist_dir "${CPYTHON_VERSION}")
2830
fetch_source "Python-${CPYTHON_VERSION}.tar.xz" "${CPYTHON_DOWNLOAD_URL}/${CPYTHON_DIST_DIR}"
29-
fetch_source "Python-${CPYTHON_VERSION}.tar.xz.asc" "${CPYTHON_DOWNLOAD_URL}/${CPYTHON_DIST_DIR}"
30-
gpg --import "${MY_DIR}/cpython-pubkeys.txt"
31-
gpg --verify "Python-${CPYTHON_VERSION}.tar.xz.asc"
31+
fetch_source "Python-${CPYTHON_VERSION}.tar.xz.sigstore" "${CPYTHON_DOWNLOAD_URL}/${CPYTHON_DIST_DIR}"
32+
cosign verify-blob "Python-${CPYTHON_VERSION}.tar.xz" --bundle "Python-${CPYTHON_VERSION}.tar.xz.sigstore" --certificate-identity="${CERT_IDENTITY}" --certificate-oidc-issuer="${CERT_OIDC_ISSUER}"
33+
34+
3235
tar -xJf "Python-${CPYTHON_VERSION}.tar.xz"
3336
pushd "Python-${CPYTHON_VERSION}"
3437
PREFIX="/opt/_internal/cpython-${CPYTHON_VERSION}"
3538
mkdir -p "${PREFIX}/lib"
3639
CFLAGS_EXTRA=""
3740
CONFIGURE_ARGS=(--disable-shared --with-ensurepip=no)
3841

39-
if [ "${2:-}" == "nogil" ]; then
42+
if [ "${4:-}" == "nogil" ]; then
4043
PREFIX="${PREFIX}-nogil"
4144
CONFIGURE_ARGS+=(--disable-gil)
4245
fi
@@ -55,7 +58,7 @@ fi
5558
SQLITE_PREFIX=$(find /opt/_internal -maxdepth 1 -name 'sqlite*')
5659
if [ "${SQLITE_PREFIX}" != "" ]; then
5760
case "${CPYTHON_VERSION}" in
58-
3.6.*|3.7.*|3.8.*|3.9.*|3.10.*) sed -i "s|/usr/local/include/sqlite3|/opt/_internal/sqlite3/include|g ; s|sqlite_extra_link_args = ()|sqlite_extra_link_args = ('-Wl,--enable-new-dtags,-rpath=/opt/_internal/sqlite3/lib',)|g" setup.py;;
61+
3.7.*|3.8.*|3.9.*|3.10.*) sed -i "s|/usr/local/include/sqlite3|/opt/_internal/sqlite3/include|g ; s|sqlite_extra_link_args = ()|sqlite_extra_link_args = ('-Wl,--enable-new-dtags,-rpath=/opt/_internal/sqlite3/lib',)|g" setup.py;;
5962
*) ;;
6063
esac
6164
fi
@@ -84,7 +87,7 @@ fi
8487
make > /dev/null
8588
make install > /dev/null
8689
popd
87-
rm -rf "Python-${CPYTHON_VERSION}" "Python-${CPYTHON_VERSION}.tgz" "Python-${CPYTHON_VERSION}.tgz.asc"
90+
rm -rf "Python-${CPYTHON_VERSION}" "Python-${CPYTHON_VERSION}.tar.xz" "Python-${CPYTHON_VERSION}.tar.xz.sigstore"
8891

8992
if [ "${OPENSSL_PREFIX}" != "" ]; then
9093
rm -rf "${OPENSSL_PREFIX:?}/bin" "${OPENSSL_PREFIX}/include" "${OPENSSL_PREFIX}/lib/pkgconfig" "${OPENSSL_PREFIX}/lib/*.so"

docker/build_scripts/cpython-pubkey-310-311.txt

-149
This file was deleted.

docker/build_scripts/cpython-pubkey-312-313.txt

-78
This file was deleted.

0 commit comments

Comments
 (0)