GraphicsMagick: fuzzing/oss-fuzz-build.sh: Add -DJPEGXL_ENABLE_S...

GraphicsMagick Commits <[email protected]> Sat, 09 Dec 2023 18:35:21 -0600
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.11033.1702168537.7940.graphicsmagick-commit@lists.sourceforge.net>
changeset 71e92633585d in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=71e92633585d
summary: fuzzing/oss-fuzz-build.sh: Add -DJPEGXL_ENABLE_SKCMS=false to libjxl build since skcms is not working with static linkage.

diffstat:

 ChangeLog                 |   3 +
 fuzzing/oss-fuzz-build.sh |  78 ++++++++++++++++++++++++----------------------
 www/Changelog.html        |   2 +
 3 files changed, 46 insertions(+), 37 deletions(-)

diffs (119 lines):

diff -r 32ae2d8f103d -r 71e92633585d ChangeLog
--- a/ChangeLog	Sat Dec 09 14:11:47 2023 -0600
+++ b/ChangeLog	Sat Dec 09 18:35:18 2023 -0600
@@ -1,5 +1,8 @@
 2023-12-09  Bob Friesenhahn  <[email protected]>
 
+	* fuzzing/oss-fuzz-build.sh: Add -DJPEGXL_ENABLE_SKCMS=false to
+	libjxl build since skcms is not working with static linkage.
+
 	* configure.ac: Try really hard to configure everything, even if
 	pkg-config is not present or misbehaves. If pkg-config is not
 	present, it may be necessary to manually set CPPFLAGs in order to
diff -r 32ae2d8f103d -r 71e92633585d fuzzing/oss-fuzz-build.sh
--- a/fuzzing/oss-fuzz-build.sh	Sat Dec 09 14:11:47 2023 -0600
+++ b/fuzzing/oss-fuzz-build.sh	Sat Dec 09 18:35:18 2023 -0600
@@ -232,7 +232,7 @@
     fi
 
     mv "$SRC"/jbigkit/libjbig/*.a "$WORK/lib/"
-    mv "$SRC"/jbigkit/libjbig/*.h "$WORK/include/"
+    cp -p "$SRC"/jbigkit/libjbig/*.h "$WORK/include/"
     popd
 fi
 
@@ -427,42 +427,46 @@
 
 if $enable_jxl
 then
-       # Build libjxl
-       #  PKG_CONFIG_PATH=/work/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --static libjxl_threads --libs
-       #    -L/work/lib -ljxl_threads -lm
-       #  PKG_CONFIG_PATH=/work/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --static libjxl --libs
-       #    -L/work/lib -L -ljxl -lm -lhwy -lbrotlienc -lbrotlidec -lbrotlicommon -ljxl_cms -lm
-       #
-       printf "=== Building ${SRC}/libjxl...\n"
-       LIBJXL_BUILD="${SRC}/libjxl_build"
-       rm -rf "${LIBJXL_BUILD}"
-       mkdir -p "${LIBJXL_BUILD}"
-       pushd "${LIBJXL_BUILD}"
-       cmake \
-           -DCMAKE_INSTALL_PREFIX=$WORK \
-           -DBUILD_TESTING=off \
-           -DBUILD_SHARED_LIBS=false \
-           -DCMAKE_BUILD_TYPE=Release \
-           -DJPEGXL_ENABLE_BENCHMARK=false \
-           -DJPEGXL_ENABLE_EXAMPLES=false \
-           -DJPEGXL_ENABLE_FUZZERS=false \
-           -DJPEGXL_ENABLE_JPEGLI=false \
-           -DJPEGXL_ENABLE_MANPAGES=OFF \
-           -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} -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!
-       sed -i 's/ libjxl_cms//' ./lib/libjxl.pc
-       make install
-       cp third_party/brotli/*.a $WORK/lib
-       cp third_party/brotli/*.pc $WORK/lib/pkgconfig
-       popd
+    # Build libjxl
+    #  PKG_CONFIG_PATH=/work/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --static libjxl_threads --libs
+    #    -L/work/lib -ljxl_threads -lm
+    #  PKG_CONFIG_PATH=/work/lib/pkgconfig:/usr/lib/pkgconfig pkg-config --static libjxl --libs
+    #    -L/work/lib -L -ljxl -lm -lhwy -lbrotlienc -lbrotlidec -lbrotlicommon -ljxl_cms -lm
+    #
+    # Removed -DJPEGXL_FORCE_SYSTEM_LCMS2=true
+    # Added -DJPEGXL_ENABLE_SKCMS=true, -DJPEGXL_BUNDLE_SKCMS=true
+    printf "=== Building ${SRC}/libjxl...\n"
+    LIBJXL_BUILD="${SRC}/libjxl_build"
+    rm -rf "${LIBJXL_BUILD}"
+    mkdir -p "${LIBJXL_BUILD}"
+    pushd "${LIBJXL_BUILD}"
+    cmake \
+        -DCMAKE_INSTALL_PREFIX=$WORK \
+        -DBUILD_TESTING=off \
+        -DBUILD_SHARED_LIBS=false \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DJPEGXL_ENABLE_BENCHMARK=false \
+        -DJPEGXL_ENABLE_EXAMPLES=false \
+        -DJPEGXL_ENABLE_FUZZERS=false \
+        -DJPEGXL_ENABLE_JPEGLI=false \
+        -DJPEGXL_ENABLE_MANPAGES=OFF \
+        -DJPEGXL_ENABLE_SJPEG=false \
+        -DJPEGXL_ENABLE_TOOLS=false \
+        -DJPEGXL_ENABLE_VIEWERS=false \
+        -DJPEGXL_ENABLE_JPEGLI=false \
+        -DJPEGXL_ENABLE_SKCMS=false \
+        -DJPEGXL_BUNDLE_SKCMS=false \
+        -DJPEGXL_FORCE_SYSTEM_LCMS2=false \
+        -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!
+    #sed -i 's/ libjxl_cms//' ./lib/libjxl.pc
+    make install
+    cp third_party/brotli/*.a $WORK/lib
+    cp third_party/brotli/*.pc $WORK/lib/pkgconfig
+    popd
 fi
 
 if $enable_jasper
diff -r 32ae2d8f103d -r 71e92633585d www/Changelog.html
--- a/www/Changelog.html	Sat Dec 09 14:11:47 2023 -0600
+++ b/www/Changelog.html	Sat Dec 09 18:35:18 2023 -0600
@@ -40,6 +40,8 @@
 <p>2023-12-09  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 -DJPEGXL_ENABLE_SKCMS=false to
+libjxl build since skcms is not working with static linkage.</p></li>
 <li><p>configure.ac: Try really hard to configure everything, even if
 pkg-config is not present or misbehaves. If pkg-config is not
 present, it may be necessary to manually set CPPFLAGs in order to