GraphicsMagick: fuzzing/oss-fuzz-build.sh: Add bzip2 and libjbig...

GraphicsMagick Commits <[email protected]> Thu, 30 Nov 2023 16:50:59 -0600
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.7952.1701384688.1716.graphicsmagick-commit@lists.sourceforge.net>
changeset eda85ada83a6 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=eda85ada83a6
summary: fuzzing/oss-fuzz-build.sh: Add bzip2 and libjbig to the oss-fuzz build

diffstat:

 ChangeLog                              |   5 ++
 VisualMagick/installer/inc/version.isx |   4 +-
 fuzzing/oss-fuzz-build.sh              |  73 ++++++++++++++++++++++++++-------
 magick/version.h                       |   4 +-
 www/Changelog.html                     |   7 +++
 5 files changed, 72 insertions(+), 21 deletions(-)

diffs (229 lines):

diff -r 22336286aa57 -r eda85ada83a6 ChangeLog
--- a/ChangeLog	Wed Nov 29 18:54:31 2023 -0600
+++ b/ChangeLog	Thu Nov 30 16:50:56 2023 -0600
@@ -1,3 +1,8 @@
+2023-11-30  Bob Friesenhahn  <[email protected]>
+
+	* fuzzing/oss-fuzz-build.sh: Add bzip2 and libjbig to the oss-fuzz
+	build.
+
 2023-11-29  Bob Friesenhahn  <[email protected]>
 
 	* fuzzing/oss-fuzz-build.sh: Build zlib and zstd as static.
diff -r 22336286aa57 -r eda85ada83a6 VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Wed Nov 29 18:54:31 2023 -0600
+++ b/VisualMagick/installer/inc/version.isx	Thu Nov 30 16:50:56 2023 -0600
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020231129"
-#define public MagickPackageReleaseDate "snapshot-20231129"
+#define public MagickPackageVersionAddendum ".020231130"
+#define public MagickPackageReleaseDate "snapshot-20231130"
diff -r 22336286aa57 -r eda85ada83a6 fuzzing/oss-fuzz-build.sh
--- a/fuzzing/oss-fuzz-build.sh	Wed Nov 29 18:54:31 2023 -0600
+++ b/fuzzing/oss-fuzz-build.sh	Thu Nov 30 16:50:56 2023 -0600
@@ -21,9 +21,8 @@
 printf "WORK=${WORK}\n"
 printf "OUT=${OUT}\n"
 
-#rm -rf $WORK/bin/
-#rm -rf $WORK/lib/
 rm -rf $WORK/*
+rm -f $OUT/*
 
 set -x
 
@@ -70,8 +69,8 @@
 pushd "${ZSTD_BUILD}"
 cmake -DCMAKE_C_COMPILER=$CC \
       -DCMAKE_CXX_COMPILER=$CXX \
-      -DCMAKE_C_FLAGS="$CFLAGS" \
-      -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
+      -DCMAKE_C_FLAGS="${CFLAGS} -fPIC" \
+      -DCMAKE_CXX_FLAGS="${CXXFLAGS} -fPIC" \
       -DCMAKE_INSTALL_PREFIX=$WORK \
       -DZSTD_BUILD_STATIC=ON \
       -DZSTD_BUILD_SHARED=OFF \
@@ -132,7 +131,7 @@
        #PKG_CONFIG_PATH="$WORK/lib/pkgconfig" PKG_CONFIG='pkg-config --static'
        ./configure \
            CPPFLAGS="-I$WORK/include" \
-           CFLAGS="$CFLAGS" \
+           CFLAGS="$CFLAGS -fPIC" \
            LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \
            --enable-libwebpmux \
            --disable-shared \
@@ -144,16 +143,50 @@
            --disable-tiff \
            --disable-gif \
            --disable-wic \
-           --prefix="$WORK" \
-           CFLAGS="$CFLAGS -fPIC"
+           --prefix="$WORK"
        make -j$(nproc)
        make install
        popd
 fi
 
-# FIXME: Add libbzip2 build here
+printf "=== Building ${SRC}/bzip2...\n"
+BZIP2_BUILD="${SRC}/bzip2_build"
+rm -rf "${BZIP2_BUILD}"
+mkdir -p "${BZIP2_BUILD}"
+pushd "${BZIP2_BUILD}"
+cmake -G "Unix Makefiles" \
+      -DCMAKE_BUILD_TYPE=Release \
+      -DCMAKE_C_COMPILER=$CC \
+      -DCMAKE_CXX_COMPILER=$CXX \
+      -DCMAKE_C_FLAGS="$CFLAGS -fPIC" \
+      -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
+      -DCMAKE_INSTALL_PREFIX="$WORK" \
+      -DENABLE_LIB_ONLY=ON \
+      -DENABLE_SHARED_LIB=OFF \
+      -DENABLE_STATIC_LIB=ON \
+      ${SRC}/bzip2
+make clean
+make -j$(nproc)
+make install
+mv "${WORK}/lib/libbz2_static.a" "${WORK}/lib/libbz2.a"
+popd
 
-# FIXME: Add libjbig build here
+# Build libjbig
+# This incantation is borrowed from libtiff contrib/oss-fuzz/build.sh
+printf "=== Building ${SRC}/jbigkit...\n"
+pushd "$SRC/jbigkit"
+if [ "$ARCHITECTURE" = "i386" ]; then
+    echo "#!/bin/bash" > gcc
+    echo "clang -m32 \$*" >> gcc
+    chmod +x gcc
+    PATH=$PWD:$PATH make lib
+else
+    make lib
+fi
+
+mv "$SRC"/jbigkit/libjbig/*.a "$WORK/lib/"
+mv "$SRC"/jbigkit/libjbig/*.h "$WORK/include/"
+popd
 
 # FXIME: Add libdeflate, and libdeflate build here
 
@@ -168,7 +201,7 @@
        #PKG_CONFIG_PATH="$WORK/lib/pkgconfig" PKG_CONFIG='pkg-config --static'
        ./configure \
            CPPFLAGS="-I$WORK/include" \
-           CFLAGS="$CFLAGS" \
+           CFLAGS="$CFLAGS -fPIC" \
            LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \
            --prefix="$WORK" \
            --disable-old-jpeg \
@@ -194,7 +227,7 @@
 autoreconf -fiv
 ./configure \
     CPPFLAGS="-I$WORK/include" \
-    CFLAGS="$CFLAGS" \
+    CFLAGS="$CFLAGS -fPIC" \
     LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \
     --prefix="$WORK" \
     --disable-shared \
@@ -214,7 +247,7 @@
 ./autogen.sh
 ./configure \
     CPPFLAGS="-I$WORK/include" \
-    CFLAGS="$CFLAGS" \
+    CFLAGS="$CFLAGS -fPIC" \
     LDFLAGS="${LDFLAGS:-} -L$WORK/lib" \
     --prefix="$WORK" \
     --enable-freetype-config \
@@ -235,7 +268,7 @@
     cmake -G "Unix Makefiles" \
           -DCMAKE_C_COMPILER=$CC \
           -DCMAKE_CXX_COMPILER=$CXX \
-          -DCMAKE_C_FLAGS="$CFLAGS" \
+          -DCMAKE_C_FLAGS="$CFLAGS -fPIC" \
           -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
           -DCMAKE_INSTALL_PREFIX="$WORK" \
           -DENABLE_SHARED:bool=off \
@@ -252,6 +285,7 @@
     pushd "$SRC/libde265"
     ./autogen.sh
     ./configure \
+        CFLAGS="$CFLAGS -fPIC" \
         --prefix="$WORK" \
         --disable-shared \
         --enable-static \
@@ -276,7 +310,7 @@
     cmake -G "Unix Makefiles" \
           -DCMAKE_C_COMPILER=$CC \
           -DCMAKE_CXX_COMPILER=$CXX \
-          -DCMAKE_C_FLAGS="$CFLAGS" \
+          -DCMAKE_C_FLAGS="$CFLAGS -fPIC" \
           -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
           -DCMAKE_INSTALL_PREFIX="$WORK" \
           -DENABLE_SHARED:bool=off \
@@ -307,7 +341,7 @@
     cmake --preset=fuzzing \
           -DCMAKE_C_COMPILER=$CC \
           -DCMAKE_CXX_COMPILER=$CXX \
-          -DCMAKE_C_FLAGS="$CFLAGS" \
+          -DCMAKE_C_FLAGS="$CFLAGS -fPIC" \
           -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
           -DCMAKE_INSTALL_PREFIX=$WORK \
           -DFUZZING_COMPILE_OPTIONS="" \
@@ -349,9 +383,10 @@
            -DJPEGXL_ENABLE_SJPEG=false \
            -DJPEGXL_ENABLE_TOOLS=false \
            -DJPEGXL_ENABLE_VIEWERS=false \
+           -DJPEGXL_ENABLE_JPEGLI=false \
            -DJPEGXL_FORCE_SYSTEM_LCMS2=true \
-           -DCMAKE_C_FLAGS="-DHWY_DISABLED_TARGETS=HWY_SSSE3 ${CFLAGS}" \
-           -DCMAKE_CXX_FLAGS="-DHWY_DISABLED_TARGETS=HWY_SSSE3 ${CXXFLAGS}" \
+           -DCMAKE_C_FLAGS="-DHWY_DISABLED_TARGETS=HWY_SSSE3 ${CFLAGS} -fPIC" \
+           -DCMAKE_CXX_FLAGS="-DHWY_DISABLED_TARGETS=HWY_SSSE3 ${CXXFLAGS} -fPIC" \
            "${SRC}/libjxl"
        make -j$(nproc)
        # libjxl claims to require libjxl_cms, but does not build/install one!
@@ -375,6 +410,10 @@
     pushd "${JASPER_BUILD}"
     cmake -G "Unix Makefiles" -H"$SRC/jasper" \
       -DJAS_ENABLE_SHARED=false \
+      -DCMAKE_C_COMPILER=$CC \
+      -DCMAKE_CXX_COMPILER=$CXX \
+      -DCMAKE_C_FLAGS="$CFLAGS -fPIC" \
+      -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
       -DCMAKE_INSTALL_PREFIX=$WORK \
       -DJAS_INCLUDE_BMP_CODEC=false \
       -DJAS_INCLUDE_JPG_CODEC=false \
diff -r 22336286aa57 -r eda85ada83a6 magick/version.h
--- a/magick/version.h	Wed Nov 29 18:54:31 2023 -0600
+++ b/magick/version.h	Thu Nov 30 16:50:56 2023 -0600
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x272404
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 27,24,4
-#define MagickChangeDate   "20231129"
-#define MagickReleaseDate  "snapshot-20231129"
+#define MagickChangeDate   "20231130"
+#define MagickReleaseDate  "snapshot-20231130"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 22336286aa57 -r eda85ada83a6 www/Changelog.html
--- a/www/Changelog.html	Wed Nov 29 18:54:31 2023 -0600
+++ b/www/Changelog.html	Thu Nov 30 16:50:56 2023 -0600
@@ -37,6 +37,13 @@
 </div>
 
 <div class="document">
+<p>2023-11-30  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
+<blockquote>
+<ul class="simple">
+<li><p>fuzzing/oss-fuzz-build.sh: Add bzip2 and libjbig to the oss-fuzz
+build.</p></li>
+</ul>
+</blockquote>
 <p>2023-11-29  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
 <blockquote>
 <ul class="simple">