Source: jpeg-xl
Severity: serious
Version: 0.7.0-10
X-Debbugs-CC: ma...@debian.org
Control: tags -1 +patch

Dear Debian jpeg-xl packager,

Unfortunately jpeg-xl in Sid now FTBFS more due to a corner case in searching 
of its
build-dependency libwebp.

In jpeg-xl CMakeLists.txt, it searches libwebp in order to build some test 
binaries.
Unfortunately the CMakeList.txt is hardcoding the logic to prefer static 
library if
present, and fall back to using shared library. However, with libwebp 1.3.x 
series,
the static library of libwebp also depends on symbols in libsharpyuv (which is 
built
together with libwebp). The building of jpeg-xl will unfortunately FTBFS if the 
static
libsharpyuv is not linked together with libwebp explicitly.

I am preparing a patch to solve this problem, which adds the logic of static 
libsharpyuv
linkage. Unfortunately this patch will be incompatible with libwebp (<< 1.3). 
The
alternative solution is to enforce dynamic linking at all time, which will be 
compatible
with all libwebp versions.

Thanks,
Boyuan Yang
From: Boyuan Yang <by...@debian.org>
Date: Fri, 22 Sep 2023 17:12:33 -0400
Subject: tools/CMakeLists.txt: Fix compatibility with static libwebp 1.3.x

---
 tools/CMakeLists.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 934ed89..6556845 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -249,7 +249,12 @@ if(JPEGXL_ENABLE_BENCHMARK AND JPEGXL_ENABLE_TOOLS)
       message(WARNING "Using dynamic libwebp")
       target_link_libraries(benchmark_xl PkgConfig::WebP)
     else()
+      # Debian-specific patch
+      # libwebp 1.3.x: libsharpyuv static library must be linked as well
+      find_library(SHARPYUV_STATIC_LINK_LIBRARY NAMES libsharpyuv.a
+          PATHS "${WebP_LIBDIR}" REQUIRED)
       target_link_libraries(benchmark_xl "${WebP_STATIC_LINK_LIBRARY}")
+      target_link_libraries(benchmark_xl "${SHARPYUV_STATIC_LINK_LIBRARY}")
       target_include_directories(benchmark_xl
           PRIVATE ${WebP_STATIC_INCLUDE_DIRS})
       target_compile_options(benchmark_xl PRIVATE ${WebP_STATIC_CFLAGS_OTHER})

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to