google / google/oss-fuzz

Make Django image use Python 3.10

Open
#9,638 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
12.6k
Forks
2.9k
Avg merge
2d 2h
Merged PRs (30d)
62

Description

Django 5.0 will require Python 3.10 or newer. The current Python base image seems to only have Python 3.8 available.

```
Starting Step #3 - "compile-libfuzzer-address-x86_64"
Step #3 - "compile-libfuzzer-address-x86_64": Already have image (with digest): gcr.io/cloud-builders/docker
Step #3 - "compile-libfuzzer-address-x86_64": ---------------------------------------------------------------
Step #3 - "compile-libfuzzer-address-x86_64": Compiling libFuzzer to /usr/lib/libFuzzingEngine.a... done.
Step #3 - "compile-libfuzzer-address-x86_64": ---------------------------------------------------------------
Step #3 - "compile-libfuzzer-address-x86_64": CC=clang
Step #3 - "compile-libfuzzer-address-x86_64": CXX=clang++
Step #3 - "compile-libfuzzer-address-x86_64": CFLAGS=-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link -fno-sanitize=function,leak,vptr,
Step #3 - "compile-libfuzzer-address-x86_64": CXXFLAGS=-O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize=fuzzer-no-link -stdlib=libc++ -fno-sanitize=function,leak,vptr
Step #3 - "compile-libfuzzer-address-x86_64": RUSTFLAGS=--cfg fuzzing -Zsanitizer=address -Cdebuginfo=1 -Cforce-frame-pointers
Step #3 - "compile-libfuzzer-address-x86_64": ---------------------------------------------------------------
Step #3 - "compile-libfuzzer-address-x86_64": + pip3 install .
Step #3 - "compile-libfuzzer-address-x86_64": Processing /src/django
Step #3 - "compile-libfuzzer-address-x86_64": Installing build dependencies ... done
Step #3 - "compile-libfuzzer-address-x86_64": Getting requirements to build wheel ... done
Step #3 - "compile-libfuzzer-address-x86_64": Installing backend dependencies ... done
Step #3 - "compile-libfuzzer-address-x86_64": Preparing wheel metadata ... done
Step #3 - "compile-libfuzzer-address-x86_64": ERROR: Package 'Django-5.0.dev20230207193000' requires a different Python: 3.8.3 not in '>=3.10'
Step #3 - "compile-libfuzzer-address-x86_64": WARNING: You are using pip version 19.2.3, however version 23.0 is available.
Step #3 - "compile-libfuzzer-address-x86_64": You should consider upgrading via the 'pip install --upgrade pip' command.
Step #3 - "compile-libfuzzer-address-x86_64": ********************************************************************************
Step #3 - "compile-libfuzzer-address-x86_64": Failed to build.
Step #3 - "compile-libfuzzer-address-x86_64": To reproduce, run:
Step #3 - "compile-libfuzzer-address-x86_64": python infra/helper.py build_image django
Step #3 - "compile-libfuzzer-address-x86_64": python infra/helper.py build_fuzzers --sanitizer address --engine libfuzzer --architecture x86_64 django
Step #3 - "compile-libfuzzer-address-x86_64": ********************************************************************************
Finished Step #3 - "compile-libfuzzer-address-x86_64"
ERROR
ERROR: build step 3 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
```

Contributor guide

Open the contributing guide

Research direction

Start with the Django image build path used by infra/helper.py build_image django and reproduce the failure with the two commands in the issue. Inspect which Python base image is selected for that image and verify the fuzzing build completes with Python 3.10 or newer.

Written by the indexing model from the issue text.

Assessment

Tech stack
django, docker, python
Domain
build-system, devops
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.