diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 17bd80de1..b1045f465 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -203,7 +203,6 @@ jobs: OBJC=$(brew --prefix llvm)/bin/clang \ OBJCXX=$(brew --prefix llvm)/bin/clang++ \ PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" \ - MACOSX_DEPLOYMENT_TARGET="10.10" \ cmake -G "Ninja" \ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCREATE_BUNDLE=ON \ @@ -216,7 +215,6 @@ jobs: -DIMHEX_COMMIT_HASH_SHORT="${GITHUB_SHA::7}" \ -DIMHEX_COMMIT_HASH_LONG="${GITHUB_SHA}" \ -DIMHEX_COMMIT_BRANCH="${GITHUB_REF##*/}" \ - -DCMAKE_OSX_DEPLOYMENT_TARGET="10.10" \ -DCPACK_PACKAGE_FILE_NAME="imhex-${{env.IMHEX_VERSION}}-macOS${{matrix.suffix}}-x86_64" \ .. ninja package @@ -437,7 +435,6 @@ jobs: -DCMAKE_INSTALL_PREFIX="/usr" \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DUSE_SYSTEM_CURL=ON \ -DUSE_SYSTEM_FMT=ON \ -DUSE_SYSTEM_YARA=ON \ -DUSE_SYSTEM_NLOHMANN_JSON=ON \ diff --git a/.gitmodules b/.gitmodules index deba2ee8a..18e1ad1dc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,10 +14,6 @@ path = lib/external/fmt url = https://github.com/fmtlib/fmt ignore = dirty -[submodule "lib/external/curl"] - path = lib/external/curl - url = https://github.com/curl/curl - ignore = dirty [submodule "lib/external/capstone"] path = lib/external/capstone url = https://github.com/capstone-engine/capstone @@ -31,4 +27,4 @@ url = https://github.com/WerWolv/PatternLanguage [submodule "lib/external/libwolv"] path = lib/external/libwolv - url = https://github.com/WerWolv/libwolv + url = https://github.com/WerWolv/libwolv \ No newline at end of file diff --git a/CMakePresets.json b/CMakePresets.json index 57af1b8b0..9b45394d9 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -19,7 +19,6 @@ "CMAKE_CXX_COMPILER": "g++", "IMHEX_PATTERNS_PULL_MASTER": "ON", "CMAKE_INSTALL_PREFIX": "./install", - "USE_SYSTEM_CURL": "ON", "USE_SYSTEM_CAPSTONE": "ON", "IMHEX_USE_DEFAULT_BUILD_SETTINGS": "ON" } diff --git a/README.md b/README.md index 356966827..a496b1e9a 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,14 @@ For format patterns, libraries, magic and constant files, check out the [ImHex-P To use ImHex, the following minimal system requirements need to be met: -- **OS**: Windows 7 or higher, macOS 10.15 (Catalina) or higher, "Modern" Linux (Ubuntu 22.04, Fedora 36/37, RHEL/AlmaLinux 9, and Arch Linux have official packages, other and older distributions can use the AppImage) +- **OS**: + - **Windows**: Windows 7 or higher (Windows 10/11 recommended) + - **macOS**: macOS 11 (Big Sur) or higher, + - **Linux**: "Modern" Linux. The following distributions have official releases available. Other distros are supported through the AppImage and Flatpak releases. + - Ubuntu 22.04/23.04 + - Fedora 36/37 + - RHEL/AlmaLinux 9 + - Arch Linux - **CPU**: x86_64 (64 Bit) - **GPU**: OpenGL 3.0 or higher - Intel HD drivers are really buggy and often cause graphic artifacts diff --git a/cmake/build_helpers.cmake b/cmake/build_helpers.cmake index 3ba96694c..ae0d679de 100644 --- a/cmake/build_helpers.cmake +++ b/cmake/build_helpers.cmake @@ -47,10 +47,6 @@ macro(detectOS) set(CMAKE_INSTALL_BINDIR ".") set(CMAKE_INSTALL_LIBDIR ".") set(PLUGINS_INSTALL_LOCATION "plugins") - - if (NOT USE_SYSTEM_CURL) - SET(IMHEX_USE_BUNDLED_CA ON) - endif () elseif (APPLE) add_compile_definitions(OS_MACOS) set(CMAKE_INSTALL_BINDIR ".") @@ -479,8 +475,6 @@ macro(addBundledLibraries) set_property(TARGET libwolv-net PROPERTY POSITION_INDEPENDENT_CODE ON) set(XDGPP_INCLUDE_DIRS "${EXTERN_LIBS_FOLDER}/xdgpp") - set(CURL_USE_MBEDTLS ON) - set(BUILD_CURL_EXE OFF) set(FPHSA_NAME_MISMATCHED ON CACHE BOOL "") if(NOT USE_SYSTEM_FMT) @@ -515,15 +509,8 @@ macro(addBundledLibraries) set(NLOHMANN_JSON_LIBRARIES nlohmann_json::nlohmann_json) endif() - if(NOT USE_SYSTEM_CURL) - add_subdirectory(${EXTERN_LIBS_FOLDER}/curl EXCLUDE_FROM_ALL) - set_target_properties(libcurl PROPERTIES POSITION_INDEPENDENT_CODE ON) - target_compile_options(libcurl PRIVATE -Wno-deprecated-declarations) - set(LIBCURL_LIBRARIES libcurl) - else() - find_package(PkgConfig REQUIRED) - pkg_check_modules(LIBCURL REQUIRED IMPORTED_TARGET libcurl>=7.76.1) - endif() + find_package(PkgConfig REQUIRED) + pkg_check_modules(LIBCURL REQUIRED IMPORTED_TARGET libcurl>=7.60.0) if (NOT USE_SYSTEM_LLVM) add_subdirectory(${EXTERN_LIBS_FOLDER}/llvm-demangle EXCLUDE_FROM_ALL) @@ -567,7 +554,7 @@ macro(addBundledLibraries) add_subdirectory(${EXTERN_LIBS_FOLDER}/pattern_language EXCLUDE_FROM_ALL) set_target_properties(libpl PROPERTIES POSITION_INDEPENDENT_CODE ON) - find_package(mbedTLS 2.26.0 REQUIRED) + find_package(mbedTLS 3.4.0 REQUIRED) pkg_search_module(MAGIC libmagic>=5.39) if(NOT MAGIC_FOUND) diff --git a/dist/Brewfile b/dist/Brewfile index b21ff56ad..a386b5591 100644 --- a/dist/Brewfile +++ b/dist/Brewfile @@ -5,6 +5,7 @@ brew "ccache" brew "freetype2" brew "libmagic" brew "pkg-config" +brew "curl" brew "gcc@12" brew "llvm" brew "glfw" diff --git a/dist/Dockerfile b/dist/Dockerfile index 37cf3a4c6..16aa72aca 100644 --- a/dist/Dockerfile +++ b/dist/Dockerfile @@ -14,6 +14,7 @@ RUN pacman -S --needed --noconfirm \ file \ mbedtls \ freetype2 \ + curl \ dbus \ xdg-desktop-portal diff --git a/dist/get_deps_debian.sh b/dist/get_deps_debian.sh index 02b86686f..548dbf765 100755 --- a/dist/get_deps_debian.sh +++ b/dist/get_deps_debian.sh @@ -13,7 +13,6 @@ apt install -y \ lld \ ${PKGCONF:-} \ cmake \ - make \ ccache \ libglfw3-dev \ libglm-dev \ @@ -21,5 +20,6 @@ apt install -y \ libmbedtls-dev \ libfreetype-dev \ libdbus-1-dev \ + libcurl4-gnutls-dev \ xdg-desktop-portal \ ninja-build diff --git a/dist/get_deps_fedora.sh b/dist/get_deps_fedora.sh index d80fb0b1f..e404e5c4b 100755 --- a/dist/get_deps_fedora.sh +++ b/dist/get_deps_fedora.sh @@ -5,6 +5,7 @@ dnf install -y \ dbus-devel \ file-devel \ freetype-devel \ + libcurl-devel \ gcc-c++ \ git \ mesa-libGL-devel \ diff --git a/dist/get_deps_msys2.sh b/dist/get_deps_msys2.sh index a393d8b5c..4e3ad3853 100755 --- a/dist/get_deps_msys2.sh +++ b/dist/get_deps_msys2.sh @@ -4,10 +4,10 @@ pacman -S --needed --noconfirm \ mingw-w64-x86_64-gcc \ mingw-w64-x86_64-lld \ mingw-w64-x86_64-cmake \ - mingw-w64-x86_64-make \ mingw-w64-x86_64-ccache \ mingw-w64-x86_64-glfw \ mingw-w64-x86_64-file \ + mingw-w64-x86_64-curl \ mingw-w64-x86_64-mbedtls \ mingw-w64-x86_64-freetype \ mingw-w64-x86_64-dlfcn \ diff --git a/dist/rpm/imhex.spec b/dist/rpm/imhex.spec index 24bec25e4..15623df87 100644 --- a/dist/rpm/imhex.spec +++ b/dist/rpm/imhex.spec @@ -74,7 +74,6 @@ CXXFLAGS+=" -std=gnu++2b" -D IMHEX_OFFLINE_BUILD=ON \ -D USE_SYSTEM_NLOHMANN_JSON=ON \ -D USE_SYSTEM_FMT=ON \ - -D USE_SYSTEM_CURL=ON \ -D USE_SYSTEM_LLVM=ON \ -D USE_SYSTEM_YARA=ON \ -D USE_SYSTEM_NFD=ON \ diff --git a/lib/external/curl b/lib/external/curl deleted file mode 160000 index 7ab9d4372..000000000 --- a/lib/external/curl +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7ab9d43720bc34d9aa351c7ca683c1668ebf8335 diff --git a/lib/libimhex/CMakeLists.txt b/lib/libimhex/CMakeLists.txt index 4e1a307d9..ebd5e4c5a 100644 --- a/lib/libimhex/CMakeLists.txt +++ b/lib/libimhex/CMakeLists.txt @@ -62,7 +62,7 @@ set_target_properties(libimhex PROPERTIES POSITION_INDEPENDENT_CODE ON) setupCompilerFlags(libimhex) -target_include_directories(libimhex PUBLIC include ${XDGPP_INCLUDE_DIRS} ${MBEDTLS_INCLUDE_DIRS} ${CAPSTONE_INCLUDE_DIRS} ${MAGIC_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS} ${FMT_INCLUDE_DIRS} ${CURL_INCLUDE_DIRS} ${YARA_INCLUDE_DIRS} ${LIBBACKTRACE_INCLUDE_DIRS}) +target_include_directories(libimhex PUBLIC include ${XDGPP_INCLUDE_DIRS} ${MBEDTLS_INCLUDE_DIR} ${CAPSTONE_INCLUDE_DIRS} ${MAGIC_INCLUDE_DIRS} ${LLVM_INCLUDE_DIRS} ${FMT_INCLUDE_DIRS} ${CURL_INCLUDE_DIRS} ${YARA_INCLUDE_DIRS} ${LIBBACKTRACE_INCLUDE_DIRS}) target_link_directories(libimhex PUBLIC ${MBEDTLS_LIBRARY_DIR} ${CAPSTONE_LIBRARY_DIRS} ${MAGIC_LIBRARY_DIRS}) if (WIN32)