From d82f6a365fa20e83005a5b38f1507d4cb1e5a6a0 Mon Sep 17 00:00:00 2001 From: Saikari Date: Mon, 7 Jul 2025 23:56:45 +0300 Subject: [PATCH] [libmem] Update to 5.0.5 (#46312) Co-authored-by: Kai Pastor --- ports/capstone/vcpkg.json | 2 + ports/keystone/0001-fix-gcc15.patch | 12 ++ ports/keystone/0002-fix-cmake4.patch | 39 ++++++ ports/keystone/portfile.cmake | 16 ++- ports/keystone/vcpkg.json | 3 +- ports/libmem/0001-CMakeLists.patch | 180 +++++++++++++-------------- ports/libmem/portfile.cmake | 3 +- ports/libmem/vcpkg.json | 3 +- versions/baseline.json | 8 +- versions/c-/capstone.json | 5 + versions/k-/keystone.json | 5 + versions/l-/libmem.json | 5 + 12 files changed, 180 insertions(+), 101 deletions(-) create mode 100644 ports/keystone/0001-fix-gcc15.patch create mode 100644 ports/keystone/0002-fix-cmake4.patch diff --git a/ports/capstone/vcpkg.json b/ports/capstone/vcpkg.json index ea4ede784e..8b684b52d3 100644 --- a/ports/capstone/vcpkg.json +++ b/ports/capstone/vcpkg.json @@ -1,8 +1,10 @@ { "name": "capstone", "version": "5.0.3", + "port-version": 1, "description": "Multi-architecture disassembly framework", "homepage": "https://github.com/capstone-engine/capstone", + "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", diff --git a/ports/keystone/0001-fix-gcc15.patch b/ports/keystone/0001-fix-gcc15.patch new file mode 100644 index 0000000000..5e0105fdd4 --- /dev/null +++ b/ports/keystone/0001-fix-gcc15.patch @@ -0,0 +1,12 @@ +diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h +index 3346de93..a2adf853 100644 +--- a/llvm/include/llvm/ADT/STLExtras.h ++++ b/llvm/include/llvm/ADT/STLExtras.h +@@ -21,6 +21,7 @@ + #include // for std::all_of + #include + #include // for std::size_t ++#include + #include // for qsort + #include + #include diff --git a/ports/keystone/0002-fix-cmake4.patch b/ports/keystone/0002-fix-cmake4.patch new file mode 100644 index 0000000000..8e66e48387 --- /dev/null +++ b/ports/keystone/0002-fix-cmake4.patch @@ -0,0 +1,39 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,7 @@ + # Keystone Assembler Engine (www.keystone-engine.org) + # By Nguyen Anh Quynh, 2016 + +-cmake_minimum_required(VERSION 2.8.7) ++cmake_minimum_required(VERSION 3.5) + project(keystone) + + set(KEYSTONE_VERSION_MAJOR 0) +@@ -24,7 +24,7 @@ if (POLICY CMP0051) + # stripped everywhere that access the SOURCES property, so we just + # defer to the OLD behavior of not including generator expressions + # in the output for now. +- cmake_policy(SET CMP0051 OLD) ++ # cmake_policy(SET CMP0051 OLD) + endif() + + if (POLICY CMP0063) +--- a/llvm/CMakeLists.txt ++++ b/llvm/CMakeLists.txt +@@ -1,6 +1,6 @@ + # See docs/CMake.html for instructions about how to build LLVM with CMake. + +-cmake_minimum_required(VERSION 2.8.7) ++cmake_minimum_required(VERSION 3.5) + + set(LLVM_INSTALL_TOOLCHAIN_ONLY ON) + +@@ -19,7 +19,7 @@ if (POLICY CMP0051) + # stripped everywhere that access the SOURCES property, so we just + # defer to the OLD behavior of not including generator expressions + # in the output for now. +- cmake_policy(SET CMP0051 OLD) ++ # cmake_policy(SET CMP0051 OLD) + endif() + + if(CMAKE_VERSION VERSION_LESS 3.1.20141117) diff --git a/ports/keystone/portfile.cmake b/ports/keystone/portfile.cmake index 3b652722dc..e65011089f 100644 --- a/ports/keystone/portfile.cmake +++ b/ports/keystone/portfile.cmake @@ -4,9 +4,13 @@ vcpkg_from_github( REF dc7932ef2b2c4a793836caec6ecab485005139d6 # 0.9.2 SHA512 ebcdb1cca6dfdf76e0ad2a42a667044806e5c083c07357908298c6ef23d15960f887efa05c1cb3dee90ebdcd5af819bcf8af0fa1aa068aa9a0c6703dee29514e HEAD_REF master + PATCHES + 0001-fix-gcc15.patch + 0002-fix-cmake4.patch ) vcpkg_find_acquire_program(PYTHON3) +vcpkg_find_acquire_program(PKGCONFIG) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" KEYSTONE_BUILD_STATIC_RUNTIME) @@ -14,7 +18,8 @@ vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKEYSTONE_BUILD_STATIC_RUNTIME=${KEYSTONE_BUILD_STATIC_RUNTIME} - -DPYTHON_EXECUTABLE=${PYTHON3} + "-DPYTHON_EXECUTABLE=${PYTHON3}" + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" # Add support for only a subset of architectures #-DLLVM_TARGETS_TO_BUILD="AArch64;X86" @@ -40,5 +45,10 @@ endif() vcpkg_fixup_pkgconfig() -# Handle copyright -file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +vcpkg_install_copyright( + COMMENT [[ +Keystone is distributed under dual Version 2 of the GNU General Public License (GPLv2) and commercial license. +For commercial usage in production environments, contact the authors of Keystone to buy a royalty-free license keystone.engine@gmail.com +]] + FILE_LIST "${SOURCE_PATH}/COPYING" +) diff --git a/ports/keystone/vcpkg.json b/ports/keystone/vcpkg.json index 1c0f82da50..618b9c6da9 100644 --- a/ports/keystone/vcpkg.json +++ b/ports/keystone/vcpkg.json @@ -1,9 +1,10 @@ { "name": "keystone", "version-semver": "0.9.2", - "port-version": 3, + "port-version": 4, "description": "A Lightweight multi-platform, multi-architecture assembler framework.", "homepage": "https://github.com/keystone-engine/keystone", + "license": null, "supports": "!uwp", "dependencies": [ { diff --git a/ports/libmem/0001-CMakeLists.patch b/ports/libmem/0001-CMakeLists.patch index 0a5f1865b1..153aa54191 100644 --- a/ports/libmem/0001-CMakeLists.patch +++ b/ports/libmem/0001-CMakeLists.patch @@ -1,119 +1,119 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt +diff --git a/CMakeLists.txt b/CMakeLists.txt index 534057a..6241a58 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,6 +1,6 @@ - cmake_minimum_required(VERSION 3.22.1) - --include(ExternalProject) -+set(CMAKE_CXX_STANDARD 17) - - project(libmem - LANGUAGES -@@ -49,6 +49,7 @@ message(STATUS - message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") - message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") - -+if(0) - # External dependencies - set(EXTERNAL_DEPENDENCIES_DIR "${PROJECT_SOURCE_DIR}/external") - set(CAPSTONE_DIR "${EXTERNAL_DEPENDENCIES_DIR}/capstone") +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,6 @@ + cmake_minimum_required(VERSION 3.22.1) + +-include(ExternalProject) ++set(CMAKE_CXX_STANDARD 17) + + project(libmem + LANGUAGES +@@ -49,6 +49,7 @@ message(STATUS + message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") + message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") + ++if(0) + # External dependencies + set(EXTERNAL_DEPENDENCIES_DIR "${PROJECT_SOURCE_DIR}/external") + set(CAPSTONE_DIR "${EXTERNAL_DEPENDENCIES_DIR}/capstone") @@ -66,6 +67,7 @@ set_target_properties(capstone PROPERTIES IMPORTED_LOCATION ${CAPSTONE_IMPORT_DI add_library(keystone STATIC IMPORTED) - set_target_properties(keystone PROPERTIES IMPORTED_LOCATION ${KEYSTONE_IMPORT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX}) - # End of external dependencies -+endif() + set_target_properties(keystone PROPERTIES IMPORTED_LOCATION ${KEYSTONE_IMPORT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX}) + # End of external dependencies ++endif() - set(LIBMEM_DIR "${PROJECT_SOURCE_DIR}") - set(LIBMEM_INC "${LIBMEM_DIR}/include") + set(LIBMEM_DIR "${PROJECT_SOURCE_DIR}") + set(LIBMEM_INC "${LIBMEM_DIR}/include") @@ -89,10 +91,17 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) - endif() - file(GLOB LIBMEM_SRC ${LIBMEM_ARCH_SRC} "${LIBMEM_DIR}/src/freebsd/*.c" "${LIBMEM_DIR}/src/freebsd/ptrace/*.c" "${LIBMEM_DIR}/src/common/*.c" "${LIBMEM_DIR}/src/common/*.cpp" "${INTERNAL_DIR}/posixutils/*.c" "${INTERNAL_DIR}/elfutils/*.c" "${INTERNAL_DIR}/demangler/*.cpp") - endif() -+find_package(PkgConfig) + endif() + file(GLOB LIBMEM_SRC ${LIBMEM_ARCH_SRC} "${LIBMEM_DIR}/src/freebsd/*.c" "${LIBMEM_DIR}/src/freebsd/ptrace/*.c" "${LIBMEM_DIR}/src/common/*.c" "${LIBMEM_DIR}/src/common/*.cpp" "${INTERNAL_DIR}/posixutils/*.c" "${INTERNAL_DIR}/elfutils/*.c" "${INTERNAL_DIR}/demangler/*.cpp") + endif() ++find_package(PkgConfig) +pkg_check_modules(keystone REQUIRED IMPORTED_TARGET keystone) -+find_package(capstone CONFIG REQUIRED) ++find_package(capstone CONFIG REQUIRED) +find_package(LLVM CONFIG REQUIRED) +target_compile_definitions(LLVMDemangle INTERFACE ${LLVM_DEFINITIONS}) +target_include_directories(LLVMDemangle INTERFACE ${LLVM_INCLUDE_DIRS}) + - set(LIBMEM_DEPS -- capstone -- keystone -- llvm -+ capstone::capstone + set(LIBMEM_DEPS +- capstone +- keystone +- llvm ++ capstone::capstone + PkgConfig::keystone + LLVMDemangle - ) + ) if (LIBMEM_BUILD_STATIC) @@ -104,9 +113,6 @@ target_include_directories(libmem PRIVATE "${LIBMEM_DIR}/src" "${INTERNAL_DIR}" - - include_directories(${PROJECT_SOURCE_DIR} - ${LIBMEM_INC} -- ${CAPSTONE_INC} -- ${KEYSTONE_INC} -- ${LLVM_INC} - ) - - if (LIBMEM_BUILD_TESTS) + + include_directories(${PROJECT_SOURCE_DIR} + ${LIBMEM_INC} +- ${CAPSTONE_INC} +- ${KEYSTONE_INC} +- ${LLVM_INC} + ) + + if (LIBMEM_BUILD_TESTS) @@ -116,10 +122,6 @@ endif() - - set_target_properties(libmem PROPERTIES POSITION_INDEPENDENT_CODE True INCLUDES ${LIBMEM_INC}) - target_compile_definitions(libmem PUBLIC LM_EXPORT) --add_dependencies(libmem -- capstone-engine -- keystone-engine --) - - if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) - set(LIBMEM_DEPS + + set_target_properties(libmem PROPERTIES POSITION_INDEPENDENT_CODE True INCLUDES ${LIBMEM_INC}) + target_compile_definitions(libmem PUBLIC LM_EXPORT) +-add_dependencies(libmem +- capstone-engine +- keystone-engine +-) + + if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) + set(LIBMEM_DEPS @@ -152,7 +154,7 @@ else() - endif() - - target_link_libraries(libmem ${LIBMEM_DEPS}) --if(LIBMEM_BUILD_STATIC) -+if(0) - # Create a bundled static library containing all dependencies (to mimic the shared library behavior) - set_target_properties(libmem PROPERTIES OUTPUT_NAME "libmem_partial") - set(libmem_bundle_files "$") + endif() + + target_link_libraries(libmem ${LIBMEM_DEPS}) +-if(LIBMEM_BUILD_STATIC) ++if(0) + # Create a bundled static library containing all dependencies (to mimic the shared library behavior) + set_target_properties(libmem PROPERTIES OUTPUT_NAME "libmem_partial") + set(libmem_bundle_files "$") @@ -193,7 +195,7 @@ if(LIBMEM_BUILD_STATIC) - endif() - endif() - --if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) -+if(0) - if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) - cmake_path(SET CMAKE_INSTALL_PREFIX "$ENV{ProgramFiles}") - else() + endif() + endif() + +-if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) ++if(0) + if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) + cmake_path(SET CMAKE_INSTALL_PREFIX "$ENV{ProgramFiles}") + else() @@ -202,14 +204,25 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN - endif() - set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/libmem") - execute_process(COMMAND mkdir "${CMAKE_INSTALL_PREFIX}") --else() - set(CMAKE_INSTALL_PREFIX "/usr") - endif() - --install(TARGETS libmem -- LIBRARY DESTINATION lib) -- --install(TARGETS libmem -- RUNTIME DESTINATION lib) -- - install(DIRECTORY ${LIBMEM_INC}/libmem DESTINATION include) + endif() + set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/libmem") + execute_process(COMMAND mkdir "${CMAKE_INSTALL_PREFIX}") +-else() + set(CMAKE_INSTALL_PREFIX "/usr") + endif() + +-install(TARGETS libmem +- LIBRARY DESTINATION lib) +- +-install(TARGETS libmem +- RUNTIME DESTINATION lib) +- + install(DIRECTORY ${LIBMEM_INC}/libmem DESTINATION include) +install(TARGETS libmem EXPORT libmem-targets -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib -+ RUNTIME DESTINATION bin -+) ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib ++ RUNTIME DESTINATION bin ++) +install(EXPORT libmem-targets NAMESPACE libmem:: DESTINATION "share/libmem") -+include(CMakePackageConfigHelpers) ++include(CMakePackageConfigHelpers) +configure_package_config_file( + "${CMAKE_CURRENT_LIST_DIR}/libmem-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/libmem-config.cmake" + INSTALL_DESTINATION "share/libmem" +) -+write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/libmem-config-version.cmake" VERSION 5.0.4 COMPATIBILITY SameMajorVersion) ++write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/libmem-config-version.cmake" VERSION "${VERSION}" COMPATIBILITY SameMajorVersion) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/libmem-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/libmem-config-version.cmake" diff --git a/ports/libmem/portfile.cmake b/ports/libmem/portfile.cmake index 2b2060a769..19af1bd5eb 100644 --- a/ports/libmem/portfile.cmake +++ b/ports/libmem/portfile.cmake @@ -2,7 +2,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rdbo/libmem REF "${VERSION}" - SHA512 a3245fedb0447133a674dc39b3f9dc0bce86cb8ed775cb50bc3b58ee410632653cfc340d17c2ca0a914e51ade9b62f393e23feb5f3d0459b1a1a8ce690a0d025 + SHA512 fb953952c1d11d453ab290b0e3af38ebb24e81fcfeb62b0f8fb7a50e1de2304c2116278b8fefe885708d2705239be2c92bb592cbe912e5fcb0dbf83e5de529f4 HEAD_REF master PATCHES 0001-CMakeLists.patch @@ -14,6 +14,7 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBMEM_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS + -DVERSION=${VERSION} -DLIBMEM_BUILD_TESTS=OFF -DLIBMEM_DEEP_TESTS=OFF -DLIBMEM_BUILD_STATIC=${LIBMEM_BUILD_STATIC} diff --git a/ports/libmem/vcpkg.json b/ports/libmem/vcpkg.json index fad9c3a284..42cd69dff9 100644 --- a/ports/libmem/vcpkg.json +++ b/ports/libmem/vcpkg.json @@ -1,7 +1,6 @@ { "name": "libmem", - "version": "5.0.4", - "port-version": 1, + "version": "5.0.5", "description": "Advanced Game Hacking Library for C, Modern C++, Rust and Python (Windows/Linux/FreeBSD) (Process/Memory Hacking) (Hooking/Detouring) (Cross Platform) (x86/x64/ARM/ARM64) (DLL/SO Injection) (Internal/External) (Assembler/Disassembler)", "homepage": "https://github.com/rdbo/libmem", "license": "AGPL-3.0-only", diff --git a/versions/baseline.json b/versions/baseline.json index 52e8cc83c4..da5c00f3e1 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -1554,7 +1554,7 @@ }, "capstone": { "baseline": "5.0.3", - "port-version": 0 + "port-version": 1 }, "cargs": { "baseline": "1.2.0", @@ -4138,7 +4138,7 @@ }, "keystone": { "baseline": "0.9.2", - "port-version": 3 + "port-version": 4 }, "kf5archive": { "baseline": "5.98.0", @@ -5005,8 +5005,8 @@ "port-version": 0 }, "libmem": { - "baseline": "5.0.4", - "port-version": 1 + "baseline": "5.0.5", + "port-version": 0 }, "libmesh": { "baseline": "1.5.0", diff --git a/versions/c-/capstone.json b/versions/c-/capstone.json index 837b8c8635..77a2a4381c 100644 --- a/versions/c-/capstone.json +++ b/versions/c-/capstone.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "ff71755fc4ef3ba463ff94cd92781858462f7a15", + "version": "5.0.3", + "port-version": 1 + }, { "git-tree": "cb3992e2d7e4d93f74f8e3eaa659a0fea78cce75", "version": "5.0.3", diff --git a/versions/k-/keystone.json b/versions/k-/keystone.json index 7ed0f91ddb..ffa46c36ae 100644 --- a/versions/k-/keystone.json +++ b/versions/k-/keystone.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "ae3e41c7c39b15befdb85f67c28bf1f3bfa8234d", + "version-semver": "0.9.2", + "port-version": 4 + }, { "git-tree": "c08eb2c84899fd5de79744b811c859667c7cfc17", "version-semver": "0.9.2", diff --git a/versions/l-/libmem.json b/versions/l-/libmem.json index 2a1b53c41d..9f00e8fed2 100644 --- a/versions/l-/libmem.json +++ b/versions/l-/libmem.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "0bbca85bef2018ea432e17f2438b0ad38c7f9994", + "version": "5.0.5", + "port-version": 0 + }, { "git-tree": "c3976946c21950dfa4dbd506e05cf3b592da1b7f", "version": "5.0.4",