aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2025-04-29 11:55:47 +0200
committerTaras Madan <tarasmadan@google.com>2025-04-29 12:20:39 +0000
commit4a62c0b1c427faab93b443697e66d2f1a9ae3f23 (patch)
treeab639c4e6f8790ea4421f2e8675acae0d0e780e2 /tools
parentaeb6ec69196736aadb8538796e2db8c80a499c98 (diff)
tools/docker/env: update gcloud to 519
It requires appengine dependency update to match golang versions. gcloud-appengine-python patching is needed to fix #4785.
Diffstat (limited to 'tools')
-rw-r--r--tools/docker/env/Dockerfile26
1 files changed, 7 insertions, 19 deletions
diff --git a/tools/docker/env/Dockerfile b/tools/docker/env/Dockerfile
index e77a53073..f96d05d75 100644
--- a/tools/docker/env/Dockerfile
+++ b/tools/docker/env/Dockerfile
@@ -3,17 +3,6 @@
# See /tools/docker/README.md for details.
-# Build Python2 in a separate container to facilitate caching.
-FROM debian:bookworm AS python2-builder
-
-RUN apt-get update --allow-releaseinfo-change
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y -q --no-install-recommends \
- wget gcc make openssl libffi-dev libgdbm-dev libsqlite3-dev libssl-dev zlib1g-dev ca-certificates
-RUN wget -O /tmp/Python-2.7.18.tgz 'https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz'
-RUN cd /tmp/ && tar -zxf Python-2.7.18.tgz
-RUN cd /tmp/Python-2.7.18 && ./configure --prefix=/python2/
-RUN cd /tmp/Python-2.7.18 && make -j4 && make altinstall
-
# Construct a /syzkaller folder.
FROM debian:bookworm as syzkaller-folder
WORKDIR /syzkaller
@@ -117,10 +106,6 @@ RUN dpkg --add-architecture i386 && \
apt-get clean autoclean && \
rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
-# Install Python 2.7.
-COPY --from=python2-builder /python2/ /usr/local/
-RUN ln -s /usr/local/bin/python2.7 /usr/bin/python2
-
# Copy the /syzkaller folder and set the toolchain environment variables.
COPY --from=syzkaller-folder /syzkaller/ /syzkaller/
RUN chmod 0777 /syzkaller
@@ -131,14 +116,17 @@ ENV SOURCEDIR_NETBSD /syzkaller/netbsd
RUN apt-get install -y -q nodejs
# Install gcloud sdk for dashboard/app tests.
-# The newest version (as of 07/10/23) is 437, however, it seems to expect to be run with python3
-# (but still requires python2). But Go's aetest package still runs dev_appserver.py with python2.7.
-# So let's use an older, but working sdk.
-RUN curl https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-400.0.0-linux-x86_64.tar.gz | tar -C /usr/local -xz
+RUN curl https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-519.0.0-linux-x86_64.tar.gz | tar -C /usr/local -xz
ENV PATH /usr/local/google-cloud-sdk/bin:$PATH
RUN gcloud components install --quiet app-engine-python app-engine-go app-engine-python-extras cloud-datastore-emulator
RUN chmod 0777 /usr/local/google-cloud-sdk
+# Patch gcloud app-engine-python to fix projected queries problem, see issue #4785.
+RUN sed -i "s/entity\.key\.MergeFrom(original_entity\.key())/entity\.key\.MergeFrom(original_entity\.key)/g" \
+ /usr/local/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_sqlite_stub.py
+RUN sed -i "s/array\.array('B', str(value_data))))/entity_pb2\.PropertyValue, array\.array('B', value_data)))/g" \
+ /usr/local/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_sqlite_stub.py
+
# The default Docker prompt is too ugly and takes the whole line:
# I have no name!@0f3331d2fb54:~/gopath/src/github.com/google/syzkaller$
RUN echo "export PS1='syz-env🈴 '" > /syzkaller/.bashrc