[GM-commit] GraphicsMagick: 2 new changesets
Swiss army knife of image processing
Brought to you by:
bfriesen
|
From: GraphicsMagick C. <gra...@li...> - 2025-02-16 22:19:45
|
changeset 502958ac63e9 in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=502958ac63e9 summary: OSS-Fuzz build notes update and zlib build fix changeset b07fe7ec07ae in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=b07fe7ec07ae summary: fuzzing/oss-fuzz-build.sh: Build zlib outside of source tree. Libzip mysteriously needs -DBUILD_TOOLS=ON to succeed. diffstat: fuzzing/README.txt | 22 +++++++++++----------- fuzzing/oss-fuzz-build.sh | 30 +++++++++++++++++------------- 2 files changed, 28 insertions(+), 24 deletions(-) diffs (124 lines): diff -r 3f193f5aefd8 -r b07fe7ec07ae fuzzing/README.txt --- a/fuzzing/README.txt Fri Feb 14 11:14:05 2025 -0600 +++ b/fuzzing/README.txt Sun Feb 16 16:19:14 2025 -0600 @@ -37,7 +37,7 @@ Pull the latest Docker images:: - $ python infra/helper.py pull_images + $ python3 infra/helper.py pull_images Optionally remove the existing build directory (in git checkout): @@ -49,39 +49,39 @@ Build the project image:: - python infra/helper.py build_image graphicsmagick + python3 infra/helper.py build_image graphicsmagick Build project fuzzer target:: - python infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> \ + python3 infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> \ --architecture <x86_64/i386> graphicsmagick - python infra/helper.py build_fuzzers --sanitizer address --architecture x86_64 graphicsmagick + python3 infra/helper.py build_fuzzers --sanitizer address --architecture x86_64 graphicsmagick Reproduce using local source checkout (mount local sources into the running container):: - python infra/helper.py build_fuzzers \ + python3 infra/helper.py build_fuzzers \ --sanitizer <address/memory/undefined> graphicsmagick <source_path> - python infra/helper.py build_fuzzers --sanitizer address --architecture x86_64 graphicsmagick <source_path> - python infra/helper.py reproduce graphicsmagick <fuzz_target_name> <testcase_path> + python3 infra/helper.py build_fuzzers --sanitizer address --architecture x86_64 graphicsmagick <source_path> + python3 infra/helper.py reproduce graphicsmagick <fuzz_target_name> <testcase_path> Reproducing bugs:: - $ python infra/helper.py reproduce graphicsmagick <fuzz_target_name> <testcase_path> + $ python3 infra/helper.py reproduce graphicsmagick <fuzz_target_name> <testcase_path> Check the build (this can take very long!):: - python infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> \ + python3 infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> \ --engine <libfuzzer/afl/honggfuzz/centipede> --architecture <x86_64/i386> graphicsmagick - python infra/helper.py check_build --sanitizer <address/memory/undefined> \ + python3 infra/helper.py check_build --sanitizer <address/memory/undefined> \ --engine <libfuzzer/afl/honggfuzz/centipede> --architecture <x86_64/i386> graphicsmagick \ <fuzz_target_name> Get a shell into the container and compile:: - python infra/helper.py shell --sanitizer address --architecture x86_64 graphicsmagick + python3 infra/helper.py shell --sanitizer address --architecture x86_64 graphicsmagick compile 2>&1 | tee build.log Copy fuzzing build script into running container (given simultaneous shell session):: diff -r 3f193f5aefd8 -r b07fe7ec07ae fuzzing/oss-fuzz-build.sh --- a/fuzzing/oss-fuzz-build.sh Fri Feb 14 11:14:05 2025 -0600 +++ b/fuzzing/oss-fuzz-build.sh Sun Feb 16 16:19:14 2025 -0600 @@ -65,6 +65,7 @@ enable_x265=true enable_xml=false enable_xz=true +enable_zlib=true enable_zstd=true export PKG_CONFIG_PATH="$WORK/lib/pkgconfig" @@ -98,14 +99,21 @@ # build zlib # PKG_CONFIG_PATH=/work/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --static zlib --libs # -L/work/lib -lz -printf "=== Building zlib...\n" -pushd "$SRC/zlib" -./configure \ - --static \ - --prefix="$WORK" -make -j$(nproc) CFLAGS="$CFLAGS -fPIC" -make install -popd +if $enable_zlib +then + printf "=== Building zlib...\n" + ZLIB_SRC="${SRC}/zlib" + ZLIB_BUILD="${SRC}/zlib_build" + rm -rf "${ZLIB_BUILD}" + mkdir -p "${ZLIB_BUILD}" + pushd "${ZLIB_BUILD}" + ${ZLIB_SRC}/configure \ + --static \ + --prefix="$WORK" + make -j$(nproc) CFLAGS="$CFLAGS -fPIC" + make install + popd +fi # build xz # PKG_CONFIG_PATH=/work/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --static liblzma --libs @@ -680,10 +688,7 @@ pushd ${LIBZIP_BUILD} cmake \ -DBUILD_SHARED_LIBS=off \ - -DBUILD_TESTING=off \ -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_CXX_COMPILER=$CXX \ - -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_COMPILER=$CC \ -DCMAKE_C_FLAGS="$CFLAGS -fPIC" \ -DCMAKE_INSTALL_PREFIX=$WORK \ @@ -692,8 +697,7 @@ -DBUILD_EXAMPLES=OFF \ -DBUILD_OSSFUZZ=OFF \ -DBUILD_REGRESS=OFF \ - -DBUILD_TOOLS=OFF \ - -DBUILD_TOOLS=OFF \ + -DBUILD_TOOLS=ON \ -DENABLE_GNUTLS=OFF \ -DENABLE_MBEDTLS=OFF \ -DENABLE_OPENSSL=OFF \ |