1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-01 05:45:45 +00:00

editors/imhex: Update to 1.8.0

- Add dependency on ftp/curl, x11-toolkits/gtk30, and so on
- Remove dependency on lang/gcc10
- Fetch the snapshots of xdgpp, libfmt, nativefiledialog, and yara
  that are new submodules of ImHex (devel/libfmt and security/yara
  cannot be used because ImHex 1.8.0 is imcompatible with the release
  versions of them)
This commit is contained in:
MANTANI Nobutaka 2021-05-24 19:48:29 +09:00
parent 1763f93766
commit 9f982c1164
9 changed files with 108 additions and 69 deletions

View File

@ -1,8 +1,10 @@
PORTNAME= imhex
PORTVERSION= 1.7.0
PORTVERSION= 1.8.0
DISTVERSIONPREFIX= v
PORTREVISION= 1
CATEGORIES= editors
MASTER_SITES= https://git.sr.ht/~danyspin97/xdgpp/blob/f01f810714443d0f10c333d4d1d9c0383be41375/:xdg
DISTFILES= xdg.hpp:xdg
DIST_SUBDIR= imhex
MAINTAINER= nobutaka@FreeBSD.org
COMMENT= Hex editor for reverse engineers and programmers
@ -12,37 +14,44 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
NOT_FOR_ARCHS= i386
NOT_FOR_ARCHS_REASON= __uint128_t and __int128_t are not supported
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \
btzy-nativefiledialog-extended-${GH_TAG_NATIVEFILEDIALOG}_GH0${EXTRACT_SUFX} \
fmtlib-fmt-${GH_TAG_FMT}_GH0${EXTRACT_SUFX} \
VirusTotal-yara-${GH_TAG_YARA}_GH0${EXTRACT_SUFX}
BUILD_DEPENDS= c++10:lang/gcc10 \
glm>0:math/glm \
BUILD_DEPENDS= glm>0:math/glm \
nlohmann-json>0:devel/nlohmann-json
LIB_DEPENDS= libcapstone.so:devel/capstone4 \
libcurl.so:ftp/curl \
libmbedtls.so:security/mbedtls \
libfreetype.so:print/freetype2 \
libglfw.so:graphics/glfw \
libstdc++.so:lang/gcc10 \
libtre.so:textproc/libtre
USES= cmake pkgconfig python:3.8+ xorg
USE_GNOME= cairo gdkpixbuf2 gtk30
USE_XORG= x11 xcb xau xdmcp
USE_GITHUB= yes
GH_ACCOUNT= WerWolv
GH_PROJECT= ImHex
CC= ${LOCALBASE}/bin/gcc10
CXX= ${LOCALBASE}/bin/c++10
GH_TUPLE= btzy:nativefiledialog-extended:${GH_TAG_NATIVEFILEDIALOG}:nativefiledialog \
fmtlib:fmt:${GH_TAG_FMT}:fmt \
VirusTotal:yara:${GH_TAG_YARA}:yara
GH_TAG_FMT= 6271406
GH_TAG_NATIVEFILEDIALOG= 300203a
GH_TAG_YARA= 1842271
PORTDOCS= README.md
OPTIONS_DEFINE= DOCS NLS
NLS_USES= gettext
post-patch:
${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|" ${WRKSRC}/source/window.cpp
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/share/imhex/plugins/builtin.hexplug
${STRIP_CMD} ${STAGEDIR}${PREFIX}/share/imhex/plugins/example.hexplug
post-extract:
${CP} ${DISTDIR}/${DIST_SUBDIR}/xdg.hpp ${WRKSRC}/external/xdgpp
${CP} -R ${WRKSRC_fmt}/* ${WRKSRC}/external/fmt
${CP} -R ${WRKSRC_nativefiledialog}/* ${WRKSRC}/external/nativefiledialog
${CP} -R ${WRKSRC_yara}/* ${WRKSRC}/external/yara/yara
post-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}

View File

@ -1,3 +1,11 @@
TIMESTAMP = 1613820150
SHA256 (WerWolv-ImHex-v1.7.0_GH0.tar.gz) = 891c9268dda958922698c6fdfcba34ec7b20853f3764fe9d58c4a932a6b0d3d8
SIZE (WerWolv-ImHex-v1.7.0_GH0.tar.gz) = 1189375
TIMESTAMP = 1621439913
SHA256 (imhex/xdg.hpp) = 2e08ce74adb71ff9b9aa9e1c999733fccd4b00967b9cf0c0e51dbf049392a9ec
SIZE (imhex/xdg.hpp) = 7674
SHA256 (imhex/WerWolv-ImHex-v1.8.0_GH0.tar.gz) = 8a130a8b8c7a8d699bf621ba768098b19a01866ba2ee634376f8883bd39d703a
SIZE (imhex/WerWolv-ImHex-v1.8.0_GH0.tar.gz) = 1757395
SHA256 (imhex/btzy-nativefiledialog-extended-300203a_GH0.tar.gz) = 5db23b09fb098fa44cae663a5f2b38fc679dbf0a7acf9a8425500c9942478624
SIZE (imhex/btzy-nativefiledialog-extended-300203a_GH0.tar.gz) = 400036
SHA256 (imhex/fmtlib-fmt-6271406_GH0.tar.gz) = f07b01d4f092318f3da39d404f7cafbca311e7b576f09121adb1a54927826410
SIZE (imhex/fmtlib-fmt-6271406_GH0.tar.gz) = 778679
SHA256 (imhex/VirusTotal-yara-1842271_GH0.tar.gz) = a7148c3ddbc80746f60d56e0ecbbecc05c5f5401263ba95571aaf65dcaa75175
SIZE (imhex/VirusTotal-yara-1842271_GH0.tar.gz) = 935600

View File

@ -1,46 +1,20 @@
--- cmake/build_helpers.cmake.orig 2021-02-18 16:11:50 UTC
--- cmake/build_helpers.cmake.orig 2021-05-18 19:25:59 UTC
+++ cmake/build_helpers.cmake
@@ -188,7 +188,7 @@ macro(createPackage)
@@ -49,6 +49,8 @@ macro(findLibraries)
message(FATAL_ERROR "No valid version of Python 3 was found.")
endif()
if (UNIX AND NOT APPLE)
- install(TARGETS libimhex DESTINATION ${CMAKE_INSTALL_PREFIX})
+ install(TARGETS libimhex DESTINATION "${CMAKE_INSTALL_PREFIX}/lib")
string(REPLACE ":" ";" EXTRA_MAGICDBS "${EXTRA_MAGICDBS}")
@@ -199,9 +199,9 @@ macro(createPackage)
if (NOT EXTRA_MAGICDBS STREQUAL "NOTFOUND")
if (EXTRA_MAGICDBS MATCHES ".*\\.mgc")
- install(FILES "${EXTRA_MAGICDBS}" DESTINATION magic/)
+ install(FILES "${EXTRA_MAGICDBS}" DESTINATION share/imhex/magic/)
else ()
- install(FILES "${EXTRA_MAGICDBS}.mgc" DESTINATION magic/)
+ install(FILES "${EXTRA_MAGICDBS}.mgc" DESTINATION share/imhex/magic/)
endif ()
endif ()
endif ()
@@ -215,11 +215,11 @@ macro(createPackage)
)
+ find_package(CURL REQUIRED)
+
string(REPLACE "." ";" PYTHON_VERSION_MAJOR_MINOR ${Python_VERSION})
list(LENGTH PYTHON_VERSION_MAJOR_MINOR PYTHON_VERSION_COMPONENT_COUNT)
@@ -162,7 +164,7 @@ macro(createPackage)
foreach (plugin IN LISTS PLUGINS)
- install(FILES "$<TARGET_FILE:${plugin}>" DESTINATION plugins/)
+ install(FILES "$<TARGET_FILE:${plugin}>" DESTINATION share/imhex/plugins/)
endforeach ()
# Install the magicdb files.
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/magic_dbs.mgc DESTINATION magic/ RENAME imhex.mgc)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/magic_dbs.mgc DESTINATION share/imhex/magic/ RENAME imhex.mgc)
if (CREATE_BUNDLE)
include(PostprocessBundle)
@@ -241,7 +241,7 @@ macro(createPackage)
if (WIN32)
install(TARGETS imhex RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
else ()
- install(TARGETS imhex RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
+ install(TARGETS imhex RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
endif ()
endif()
add_subdirectory("plugins/${plugin}")
set_target_properties(${plugin} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins)
- install(TARGETS ${plugin} RUNTIME DESTINATION ${PLUGINS_INSTALL_LOCATION})
+ install(TARGETS ${plugin} LIBRARY DESTINATION ${PLUGINS_INSTALL_LOCATION})
add_dependencies(imhex ${plugin})
endforeach()

View File

@ -0,0 +1,18 @@
--- external/fmt/CMakeLists.txt.orig 2021-05-19 16:12:27 UTC
+++ external/fmt/CMakeLists.txt
@@ -195,7 +195,6 @@ else()
endif ()
add_library(fmt ${FMT_SOURCES} ${FMT_HEADERS} README.rst ChangeLog.rst)
-add_library(fmt::fmt ALIAS fmt)
if (HAVE_STRTOD_L)
target_compile_definitions(fmt PUBLIC FMT_LOCALE)
@@ -248,7 +247,6 @@ if (FMT_SAFE_DURATION_CAST)
endif()
add_library(fmt-header-only INTERFACE)
-add_library(fmt::fmt-header-only ALIAS fmt-header-only)
target_compile_definitions(fmt-header-only INTERFACE FMT_HEADER_ONLY=1)
target_compile_features(fmt-header-only INTERFACE ${FMT_REQUIRED_FEATURES})

View File

@ -0,0 +1,11 @@
--- external/nativefiledialog/CMakeLists.txt.orig 2021-05-19 15:40:32 UTC
+++ external/nativefiledialog/CMakeLists.txt
@@ -23,6 +23,8 @@ message("nfd Compiler: ${nfd_COMPILER}")
set (CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+
add_subdirectory(src)
option(NFD_BUILD_TESTS "Build tests for nfd" OFF)

View File

@ -0,0 +1,10 @@
--- plugins/builtin/source/math_evaluator.cpp.orig 2021-05-18 19:25:59 UTC
+++ plugins/builtin/source/math_evaluator.cpp
@@ -7,7 +7,6 @@
#include <cmath>
#include <cstdint>
#include <optional>
-#include <numbers>
namespace hex {

View File

@ -0,0 +1,19 @@
--- plugins/libimhex/CMakeLists.txt.orig 2021-05-18 19:25:59 UTC
+++ plugins/libimhex/CMakeLists.txt
@@ -12,8 +12,6 @@ set(XDGPP_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/..
set(CMAKE_USE_MBEDTLS ON)
set(BUILD_CURL_EXE OFF)
set(FPHSA_NAME_MISMATCHED ON CACHE BOOL "")
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../external/curl ${CMAKE_CURRENT_BINARY_DIR}/external/curl EXCLUDE_FROM_ALL)
-set_target_properties(libcurl PROPERTIES POSITION_INDEPENDENT_CODE ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
@@ -64,5 +62,5 @@ if (APPLE)
find_library(FOUNDATION NAMES Foundation)
target_link_libraries(libimhex PUBLIC imgui nlohmann_json mbedcrypto ${FOUNDATION} nfd fmt-header-only libcurl)
else ()
- target_link_libraries(libimhex PUBLIC imgui nlohmann_json mbedcrypto nfd fmt-header-only libcurl)
+ target_link_libraries(libimhex PUBLIC imgui nlohmann_json mbedcrypto nfd fmt-header-only curl)
endif ()
\ No newline at end of file

View File

@ -1,11 +0,0 @@
--- source/window.cpp.orig 2021-02-18 16:11:50 UTC
+++ source/window.cpp
@@ -595,7 +595,7 @@ namespace hex {
void Window::initPlugins() {
try {
- auto pluginFolderPath = std::filesystem::path((SharedData::mainArgv)[0]).parent_path() / "plugins";
+ auto pluginFolderPath = std::filesystem::path("%%PREFIX%%/share/imhex/plugins");
PluginHandler::load(pluginFolderPath.string());
} catch (std::runtime_error &e) { return; }

View File

@ -2,4 +2,5 @@ bin/imhex
lib/libimhex.so
%%DATADIR%%/magic/imhex.mgc
%%DATADIR%%/plugins/builtin.hexplug
%%DATADIR%%/plugins/example.hexplug
%%DATADIR%%/resources/cacert.pem
%%DATADIR%%/resources/splash.png