From ad5e1134853bbec3978a34b827837c92f035c6b3 Mon Sep 17 00:00:00 2001 From: c8ef Date: Tue, 14 Jan 2025 17:18:30 +0800 Subject: [PATCH] [libpng] update to 1.6.45 (#43200) --- ports/libpng/cmake.patch | 81 ++++++++++++++++++++- ports/libpng/fix-msa-support-for-mips.patch | 28 ------- ports/libpng/fix-tools-static.patch | 16 ---- ports/libpng/libm.patch | 17 ----- ports/libpng/pkgconfig.patch | 32 -------- ports/libpng/portfile.cmake | 10 +-- ports/libpng/vcpkg.json | 4 +- versions/baseline.json | 2 +- versions/l-/libpng.json | 5 ++ 9 files changed, 90 insertions(+), 105 deletions(-) delete mode 100644 ports/libpng/fix-msa-support-for-mips.patch delete mode 100644 ports/libpng/fix-tools-static.patch delete mode 100644 ports/libpng/libm.patch delete mode 100644 ports/libpng/pkgconfig.patch diff --git a/ports/libpng/cmake.patch b/ports/libpng/cmake.patch index 66a3731160e069..ae48b74d3219af 100644 --- a/ports/libpng/cmake.patch +++ b/ports/libpng/cmake.patch @@ -1,8 +1,45 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index e355e4d..6dfe543 100644 +index f10f489..28ce98a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -632,7 +632,7 @@ else() +@@ -119,6 +119,12 @@ find_package(ZLIB REQUIRED) + if(UNIX + AND NOT (APPLE OR BEOS OR HAIKU) + AND NOT EMSCRIPTEN) ++ block(SCOPE_FOR VARIABLES) ++ if(VCPKG_CRT_LINKAGE STREQUAL "static") ++ list(PREPEND CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_STATIC_LIBRARY_SUFFIX}") ++ endif() ++ find_library(M_LIBRARY m PATHS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) ++ endblock() + find_library(M_LIBRARY m) + if(M_LIBRARY) + set(M_LIBRARY m) +@@ -208,8 +214,8 @@ if(PNG_HARDWARE_OPTIMIZATIONS) + + # Set definitions and sources for MIPS. + if(PNG_TARGET_ARCHITECTURE MATCHES "^(mipsel|mips64el)") +- set(PNG_MIPS_MSA_POSSIBLE_VALUES on off) +- set(PNG_MIPS_MSA "on" ++ set(PNG_MIPS_MSA_POSSIBLE_VALUES on off check) ++ set(PNG_MIPS_MSA "check" + CACHE STRING "Enable MIPS_MSA optimizations: on|off; on is default") + set_property(CACHE PNG_MIPS_MSA + PROPERTY STRINGS ${PNG_MIPS_MSA_POSSIBLE_VALUES}) +@@ -241,6 +247,12 @@ if(PNG_HARDWARE_OPTIMIZATIONS) + mips/filter_msa_intrinsics.c) + add_definitions(-DPNG_MIPS_MSA_OPT=2) + add_definitions(-DPNG_MIPS_MMI_OPT=0) ++ elseif(PNG_MIPS_MSA STREQUAL "check") ++ set(libpng_mips_sources ++ mips/mips_init.c ++ mips/filter_msa_intrinsics.c) ++ add_definitions(-DPNG_MIPS_MSA_CHECK_SUPPORTED) ++ add_definitions(-DPNG_MIPS_MMI_CHECK_SUPPORTED) + elseif(PNG_MIPS_MMI STREQUAL "on") + set(libpng_mips_sources + mips/mips_init.c +@@ -594,7 +606,7 @@ else() # We also need to use a custom suffix, in order to distinguish between the # shared import library name and the static library name. set(PNG_SHARED_OUTPUT_NAME "libpng${PNGLIB_ABI_VERSION}") @@ -11,3 +48,43 @@ index e355e4d..6dfe543 100644 endif() if(PNG_SHARED) +@@ -858,9 +870,9 @@ if(PNG_TESTS AND PNG_SHARED) + FILES ${PNGSUITE_PNGS}) + endif() + +-if(PNG_SHARED AND PNG_TOOLS) ++if(PNG_TOOLS) + add_executable(pngfix ${pngfix_sources}) +- target_link_libraries(pngfix PRIVATE png_shared) ++ target_link_libraries(pngfix PRIVATE $ $) # in vcpkg there's only one + set(PNG_BIN_TARGETS pngfix) + + add_executable(png-fix-itxt ${png_fix_itxt_sources}) +@@ -944,12 +956,15 @@ endif() + # We use the same files like ./configure, so we have to set its vars. + # Only do this on Windows for Cygwin - the files don't make much sense + # outside of a UNIX look-alike. +-if(NOT WIN32 OR CYGWIN OR MINGW) ++if(1) + set(prefix ${CMAKE_INSTALL_PREFIX}) + set(exec_prefix ${CMAKE_INSTALL_PREFIX}) + set(libdir ${CMAKE_INSTALL_FULL_LIBDIR}) + set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR}) +- set(LIBS "-lz -lm") ++ set(LIBS "") ++ if(M_LIBRARY) ++ string(APPEND LIBS "-lm") ++ endif() + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc + @ONLY) +@@ -1008,6 +1023,9 @@ if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL) + endif() + + if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ++elseif(0) + # Install the man pages. + install(FILES libpng.3 libpngpf.3 + DESTINATION ${CMAKE_INSTALL_MANDIR}/man3) diff --git a/ports/libpng/fix-msa-support-for-mips.patch b/ports/libpng/fix-msa-support-for-mips.patch deleted file mode 100644 index 7b6e6d18b66f64..00000000000000 --- a/ports/libpng/fix-msa-support-for-mips.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3857b82..4c68989 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -221,8 +221,8 @@ endif() - - # Set definitions and sources for MIPS. - if(PNG_TARGET_ARCHITECTURE MATCHES "^(mipsel|mips64el)") -- set(PNG_MIPS_MSA_POSSIBLE_VALUES on off) -- set(PNG_MIPS_MSA "on" -+ set(PNG_MIPS_MSA_POSSIBLE_VALUES on off check) -+ set(PNG_MIPS_MSA "check" - CACHE STRING "Enable MIPS_MSA optimizations: on|off; on is default") - set_property(CACHE PNG_MIPS_MSA - PROPERTY STRINGS ${PNG_MIPS_MSA_POSSIBLE_VALUES}) -@@ -254,6 +254,12 @@ if(TARGET_ARCH MATCHES "^(mipsel|mips64el)") - mips/filter_msa_intrinsics.c) - add_definitions(-DPNG_MIPS_MSA_OPT=2) - add_definitions(-DPNG_MIPS_MMI_OPT=0) -+ elseif(PNG_MIPS_MSA STREQUAL "check") -+ set(libpng_mips_sources -+ mips/mips_init.c -+ mips/filter_msa_intrinsics.c) -+ add_definitions(-DPNG_MIPS_MSA_CHECK_SUPPORTED) -+ add_definitions(-DPNG_MIPS_MMI_CHECK_SUPPORTED) - elseif(PNG_MIPS_MMI STREQUAL "on") - set(libpng_mips_sources - mips/mips_init.c diff --git a/ports/libpng/fix-tools-static.patch b/ports/libpng/fix-tools-static.patch deleted file mode 100644 index 74ff71dd7b8db5..00000000000000 --- a/ports/libpng/fix-tools-static.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3857b82..4c68989 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -963,9 +963,9 @@ - FILES ${PNGSUITE_PNGS}) - endif() - --if(PNG_SHARED AND PNG_TOOLS) -+if(PNG_TOOLS) - add_executable(pngfix ${pngfix_sources}) -- target_link_libraries(pngfix PRIVATE png_shared) -+ target_link_libraries(pngfix PRIVATE $ $) # in vcpkg there's only one - set(PNG_BIN_TARGETS pngfix) - - add_executable(png-fix-itxt ${png_fix_itxt_sources}) diff --git a/ports/libpng/libm.patch b/ports/libpng/libm.patch deleted file mode 100644 index 6960021905bc33..00000000000000 --- a/ports/libpng/libm.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index dbd31d7..7deb6c2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -109,6 +109,12 @@ elseif(POLICY CMP0074) - endif() - - if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU AND NOT EMSCRIPTEN) -+ block(SCOPE_FOR VARIABLES) -+ if(VCPKG_CRT_LINKAGE STREQUAL "static") -+ list(PREPEND CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_STATIC_LIBRARY_SUFFIX}") -+ endif() -+ find_library(M_LIBRARY m PATHS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) -+ endblock() - find_library(M_LIBRARY m) - if(M_LIBRARY) - set(M_LIBRARY m) diff --git a/ports/libpng/pkgconfig.patch b/ports/libpng/pkgconfig.patch deleted file mode 100644 index ed92a94f1d4aee..00000000000000 --- a/ports/libpng/pkgconfig.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e355e4d..b5b9172 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -960,12 +960,15 @@ endif() - # We use the same files like ./configure, so we have to set its vars. - # Only do this on Windows for Cygwin - the files don't make much sense - # outside of a UNIX look-alike. --if(NOT WIN32 OR CYGWIN OR MINGW) -+if(1) - set(prefix ${CMAKE_INSTALL_PREFIX}) - set(exec_prefix ${CMAKE_INSTALL_PREFIX}) - set(libdir ${CMAKE_INSTALL_FULL_LIBDIR}) - set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR}) -- set(LIBS "-lz -lm") -+ set(LIBS "") -+ if(M_LIBRARY) -+ string(APPEND LIBS "-lm") -+ endif() - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in - ${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc - @ONLY) -@@ -1030,6 +1033,9 @@ if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL) - endif() - - if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL) -+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc -+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) -+elseif(0) - # Install the man pages. - install(FILES libpng.3 libpngpf.3 - DESTINATION ${CMAKE_INSTALL_MANDIR}/man3) diff --git a/ports/libpng/portfile.cmake b/ports/libpng/portfile.cmake index f653b153d65ae1..fc134d14540d56 100644 --- a/ports/libpng/portfile.cmake +++ b/ports/libpng/portfile.cmake @@ -12,7 +12,7 @@ if ("apng" IN_LIST FEATURES) vcpkg_download_distfile(LIBPNG_APNG_PATCH_ARCHIVE URLS "https://downloads.sourceforge.net/project/libpng-apng/libpng16/${VERSION}/${LIBPNG_APNG_PATCH_NAME}.gz" FILENAME "${LIBPNG_APNG_PATCH_NAME}.gz" - SHA512 ea89018a02ed171b82af9644ec2ff658c8a288e99b5470c7a3fd142c6fa95bbe19cd34c4fae654bc8783b41c3eb3b2d15b486bda3b0307ec3090e99f34465e20 + SHA512 60a0b3072f4d1fddcce79eaa89f461d27c32e4c1a4cf3e6dc30ff1091aeceeb2fbfacf830bdb59bad98e39091fdd47458589411b59f94e2d4fc9c121b0545291 ) set(LIBPNG_APNG_PATCH_PATH "${CURRENT_BUILDTREES_DIR}/src/${LIBPNG_APNG_PATCH_NAME}") if (NOT EXISTS "${LIBPNG_APNG_PATCH_PATH}") @@ -28,17 +28,13 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - REPO glennrp/libpng + REPO pnggroup/libpng REF v${VERSION} - SHA512 c023bc7dcf3d0ea045a63204f2266b2c53b601b99d7c5f5a7b547bc9a48b205a277f699eefa47f136483f495175b226527097cd447d6b0fbceb029eb43638f63 + SHA512 b999c241ce5d95dfae5bb2c71e8b686a1c4af69b67262bda309a58c83967b5f3eacd7987d6990f71ebc16aa89f4f7a59c846857d56c80bca7e9ec657caff62c7 HEAD_REF master PATCHES "${LIBPNG_APNG_PATCH_PATH}" cmake.patch - libm.patch - pkgconfig.patch - fix-msa-support-for-mips.patch - fix-tools-static.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PNG_SHARED) diff --git a/ports/libpng/vcpkg.json b/ports/libpng/vcpkg.json index 39f2b499510396..188352ff918e74 100644 --- a/ports/libpng/vcpkg.json +++ b/ports/libpng/vcpkg.json @@ -1,8 +1,8 @@ { "name": "libpng", - "version": "1.6.44", + "version": "1.6.45", "description": "libpng is a library implementing an interface for reading and writing PNG (Portable Network Graphics) format files", - "homepage": "https://github.com/glennrp/libpng", + "homepage": "https://github.com/pnggroup/libpng", "license": "libpng-2.0", "dependencies": [ { diff --git a/versions/baseline.json b/versions/baseline.json index 0f21ad0751c899..d12454b860c1cc 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -4977,7 +4977,7 @@ "port-version": 1 }, "libpng": { - "baseline": "1.6.44", + "baseline": "1.6.45", "port-version": 0 }, "libpopt": { diff --git a/versions/l-/libpng.json b/versions/l-/libpng.json index 26a79377e51549..6e8bcc7d1f73ed 100644 --- a/versions/l-/libpng.json +++ b/versions/l-/libpng.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "081166e70f56cd851b212f93a9ee5531d58fb9b9", + "version": "1.6.45", + "port-version": 0 + }, { "git-tree": "bda480fe3c3cef1113fe8bfdecda127a5b3b2a77", "version": "1.6.44",