From 2991c20c6129d5d9a66508571cdffd603f060032 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Mon, 14 Dec 2020 20:55:58 -0800 Subject: [PATCH] libpng: properly fix zlib issue The previous commit meant to avoid adding an LDFLAG but it just avoided the issue. The real issue is PNG_BUILD_ZLIB being turned to ON. This variable is for specifying a custom zlib location, which is not necessary. Switching it to OFF calls find_package and links properly. Backported two zlib related patches. The latter is a somewhat impoarant fix. Signed-off-by: Rosen Penev --- libs/libpng/Makefile | 4 +- libs/libpng/patches/020-cmake-zlib.patch | 67 ++++++++++++++++++++ libs/libpng/patches/030-pkgconfig-zlib.patch | 22 +++++++ 3 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 libs/libpng/patches/020-cmake-zlib.patch create mode 100644 libs/libpng/patches/030-pkgconfig-zlib.patch diff --git a/libs/libpng/Makefile b/libs/libpng/Makefile index 9469c101d..43797e5a0 100644 --- a/libs/libpng/Makefile +++ b/libs/libpng/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libpng PKG_VERSION:=1.6.37 -PKG_RELEASE:=9 +PKG_RELEASE:=10 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@SF/libpng @@ -35,7 +35,7 @@ endef CMAKE_OPTIONS += \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ - -DPNG_BUILD_ZLIB=ON \ + -DPNG_BUILD_ZLIB=OFF \ -DPNG_SHARED=ON \ -DPNG_STATIC=ON \ -DPNG_EXECUTABLES=OFF \ diff --git a/libs/libpng/patches/020-cmake-zlib.patch b/libs/libpng/patches/020-cmake-zlib.patch new file mode 100644 index 000000000..e6731c89f --- /dev/null +++ b/libs/libpng/patches/020-cmake-zlib.patch @@ -0,0 +1,67 @@ +From 9f734b13f4ea062af98652c4c7678f667d2d85c7 Mon Sep 17 00:00:00 2001 +From: David Callu +Date: Thu, 4 Jul 2019 15:15:53 +0200 +Subject: [PATCH] cmake: Use the correct ZLIB_* variable names + +ZLIB_LIBRARIES and ZLIB_INCLUDE_DIRS are the official cmake variable +names. +--- + CMakeLists.txt | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -40,7 +40,7 @@ option(PNG_BUILD_ZLIB "Custom zlib Locat + + if(NOT PNG_BUILD_ZLIB) + find_package(ZLIB REQUIRED) +- include_directories(${ZLIB_INCLUDE_DIR}) ++ include_directories(${ZLIB_INCLUDE_DIRS}) + endif() + + if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU) +@@ -523,7 +523,7 @@ if(PNG_DEBUG) + endif() + + # NOW BUILD OUR TARGET +-include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR}) ++include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIRS}) + + unset(PNG_LIB_TARGETS) + +@@ -537,7 +537,7 @@ if(PNG_SHARED) + set_target_properties(png PROPERTIES PREFIX "lib") + set_target_properties(png PROPERTIES IMPORT_PREFIX "lib") + endif() +- target_link_libraries(png ${ZLIB_LIBRARY} ${M_LIBRARY}) ++ target_link_libraries(png ${ZLIB_LIBRARIES} ${M_LIBRARY}) + + if(UNIX AND AWK) + if(HAVE_LD_VERSION_SCRIPT) +@@ -572,7 +572,7 @@ if(PNG_STATIC) + # msvc does not append 'lib' - do it here to have consistent name + set_target_properties(png_static PROPERTIES PREFIX "lib") + endif() +- target_link_libraries(png_static ${ZLIB_LIBRARY} ${M_LIBRARY}) ++ target_link_libraries(png_static ${ZLIB_LIBRARIES} ${M_LIBRARY}) + endif() + + if(PNG_FRAMEWORK) +@@ -589,7 +589,7 @@ if(PNG_FRAMEWORK) + XCODE_ATTRIBUTE_INSTALL_PATH "@rpath" + PUBLIC_HEADER "${libpng_public_hdrs}" + OUTPUT_NAME png) +- target_link_libraries(png_framework ${ZLIB_LIBRARY} ${M_LIBRARY}) ++ target_link_libraries(png_framework ${ZLIB_LIBRARIES} ${M_LIBRARY}) + endif() + + if(NOT PNG_LIB_TARGETS) +@@ -754,7 +754,7 @@ if(PNG_SHARED AND PNG_EXECUTABLES) + set(PNG_BIN_TARGETS pngfix) + + add_executable(png-fix-itxt ${png_fix_itxt_sources}) +- target_link_libraries(png-fix-itxt ${ZLIB_LIBRARY} ${M_LIBRARY}) ++ target_link_libraries(png-fix-itxt ${ZLIB_LIBRARIES} ${M_LIBRARY}) + list(APPEND PNG_BIN_TARGETS png-fix-itxt) + endif() + diff --git a/libs/libpng/patches/030-pkgconfig-zlib.patch b/libs/libpng/patches/030-pkgconfig-zlib.patch new file mode 100644 index 000000000..0b4fdfdd0 --- /dev/null +++ b/libs/libpng/patches/030-pkgconfig-zlib.patch @@ -0,0 +1,22 @@ +From dbe3e0c43e549a1602286144d94b0666549b18e6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= +Date: Mon, 19 Mar 2018 12:41:47 -0300 +Subject: [PATCH] libpng.pc.in: zlib dependency is private + +zlib should be injected only when pkgconfig is ran with the --static +option. +--- + libpng.pc.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/libpng.pc.in ++++ b/libpng.pc.in +@@ -6,7 +6,7 @@ includedir=@includedir@/libpng@PNGLIB_MA + Name: libpng + Description: Loads and saves PNG files + Version: @PNGLIB_VERSION@ +-Requires: zlib ++Requires.private: zlib + Libs: -L${libdir} -lpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ + Libs.private: @LIBS@ + Cflags: -I${includedir}