The package rpms/imhex.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/imhex.git/commit/?id=0dc2d239ef1345f....
Change: +ExclusiveArch: x86_64 %{arm64}
Thanks.
Full change: ============
commit 0dc2d239ef1345fcec4ad549ce6de86e2e44930d Author: jonathanspw jonathan@almalinux.org Date: Fri Aug 12 08:29:45 2022 -0500
initial package build
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..633894b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/imhex-1.20.0.tar.gz diff --git a/imhex.metainfo.xml b/imhex.metainfo.xml new file mode 100644 index 0000000..d3c121c --- /dev/null +++ b/imhex.metainfo.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<component type="desktop"> + <id>imhex</id> + <metadata_license>CC0-1.0</metadata_license> + <project_license>GPL-2.0-only</project_license> + <name>ImHex</name> + <summary>A hex editor for reverse engineers and programmers</summary> + <description> + <p> + ImHex is a Hex Editor, a tool to display, decode and analyze binary data to + reverse engineer their format, extract informations or patch values in them. + </p> + <p> + What makes ImHex special is that it has many advanced features that can often + only be found in paid applications. Such features are a completely custom binary + template and pattern language to decode and highlight structures in the data, a + graphical node-based data processor to pre-process values before they're + displayed, a disassembler, diffing support, bookmarks and much much more. At the + same time ImHex is completely free and open source under the GPLv2 language. + </p> + </description> + <launchable type="desktop-id">imhex.desktop</launchable> + <screenshots> + <screenshot type="default"> + <image>https://imhex.werwolv.net/assets/screenshot1.png</image> + </screenshot> + <screenshot> + <image>https://imhex.werwolv.net/assets/screenshot2.png</image> + </screenshot> + <screenshot> + <image>https://imhex.werwolv.net/assets/features/hexeditor.png</image> + </screenshot> + <screenshot> + <image>https://imhex.werwolv.net/assets/features/patches.png</image> + </screenshot> + <screenshot> + <image>https://imhex.werwolv.net/assets/features/analyzer.png</image> + </screenshot> + <screenshot> + <image>https://imhex.werwolv.net/assets/features/patternhighlight.png</image> + </screenshot> + <screenshot> + <image>https://imhex.werwolv.net/assets/features/disassembly.png</image> + </screenshot> + <screenshot> + <image>https://imhex.werwolv.net/assets/features/processor.png</image> + </screenshot> + </screenshots> + <url type="homepage">https://imhex.werwolv.net/</url> +</component> diff --git a/imhex.spec b/imhex.spec new file mode 100644 index 0000000..63182d8 --- /dev/null +++ b/imhex.spec @@ -0,0 +1,133 @@ +# ftbfs without this, dev is aware https://github.com/WerWolv/ImHex/issues/610 +%global _lto_cflags %{nil} + +Name: imhex +Version: 1.20.0 +Release: 1%{?dist} +Summary: A hex editor for reverse engineers and programmers + +License: GPL-2.0-only AND Zlib AND MIT AND Apache-2.0 +# imhex is gplv2. capstone is custom. nativefiledialog is Zlib +# see license dir for full breakdown +URL: https://imhex.werwolv.net/ +# We need the archive with deps bundled +Source0: https://github.com/WerWolv/%%7Bname%7D/releases/download/v%%7Bversion%7D/Ful... +Source1: imhex.metainfo.xml + +BuildRequires: cmake +BuildRequires: desktop-file-utils +BuildRequires: dbus-devel +BuildRequires: file-devel +BuildRequires: freetype-devel +BuildRequires: fmt-devel +BuildRequires: gcc-c++ +BuildRequires: libappstream-glib +BuildRequires: libglvnd-devel +BuildRequires: glfw-devel +BuildRequires: json-devel +BuildRequires: libcurl-devel +BuildRequires: llvm-devel +BuildRequires: mbedtls-devel +BuildRequires: python3-devel +%if 0%{?fedora} >= 36 +BuildRequires: yara-devel +%endif + +Provides: bundled(gnulib) +Provides: bundled(capstone) = 5.0-rc2 +Provides: bundled(imgui) +Provides: bundled(libromfs) +Provides: bundled(microtar) +Provides: bundled(nativefiledialog) +Provides: bundled(libpl) + +# ftbfs on these arches. armv7hl might compile when capstone 5.x +# is released upstream and we can build against it +# [7:02 PM] WerWolv: We're not supporting 32 bit anyways soooo +# [11:38 AM] WerWolv: Officially supported are x86_64 and aarch64 +ExclusiveArch: x86_64 %{arm64} + + +%description +ImHex is a Hex Editor, a tool to display, decode and analyze binary data to +reverse engineer their format, extract informations or patch values in them. + +What makes ImHex special is that it has many advanced features that can often +only be found in paid applications. Such features are a completely custom binary +template and pattern language to decode and highlight structures in the data, a +graphical node-based data processor to pre-process values before they're +displayed, a disassembler, diffing support, bookmarks and much much more. At the +same time ImHex is completely free and open source under the GPLv2 language. + + +%prep +%autosetup -n ImHex +# remove bundled libs we aren't using +rm -rf lib/external/{curl,fmt,llvm,nlohmann_json,yara} + +%build +%cmake \ + -D CMAKE_BUILD_TYPE=Release \ + -D IMHEX_STRIP_RELEASE=OFF \ + -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 \ +%if 0%{?fedora} >= 36 + -D USE_SYSTEM_YARA=ON \ +# if fedora <= 36 get updated to yara 4.2.x then they should \ +# be able to build against system libs \ +# https://bugzilla.redhat.com/show_bug.cgi?id=2112508 \ +%endif +# when capstone >= 5.x is released we should be able to build against \ +# system libs of it \ +# -D USE_SYSTEM_CAPSTONE=ON + +%cmake_build + + +%check +# build binaries required for tests +%cmake_build --target unit_tests +%ctest --exclude-regex '(Helpers/StoreAPI|Helpers/TipsAPI|Helpers/ContentAPI)' +# Helpers/*API exclude tests that require network access + + +%install +%cmake_install +desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop +# so debuginfo will strip it properly. +# https://github.com/WerWolv/ImHex/issues/655 +chmod +x %{buildroot}/%{_libdir}/libimhex.so* + +# AppData +mkdir -p %{buildroot}%{_metainfodir} +cp -a %{SOURCE1} %{buildroot}%{_metainfodir}/%{name}.metainfo.xml +appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{name}.metainfo.xml + +# install licenses +cp -a lib/libimhex-rs/imgui-rs/LICENSE-APACHE %{buildroot}%{_datadir}/licenses/%{name}/imgui-LICENSE-APACHE +cp -a lib/libimhex-rs/imgui-rs/LICENSE-MIT %{buildroot}%{_datadir}/licenses/%{name}/imgui-LICENSE-MIT +cp -a lib/external/nativefiledialog/LICENSE %{buildroot}%{_datadir}/licenses/%{name}/nativefiledialog-LICENSE +cp -a lib/external/capstone/LICENSE.TXT %{buildroot}%{_datadir}/licenses/%{name}/capstone-LICENSE +cp -a lib/external/capstone/suite/regress/LICENSE %{buildroot}%{_datadir}/licenses/%{name}/capstone-regress-LICENSE +cp -a lib/external/microtar/LICENSE %{buildroot}%{_datadir}/licenses/%{name}/microtar-LICENSE +cp -a lib/external/pattern_language/external/intervaltree/LICENSE %{buildroot}%{_datadir}/licenses/%{name}/pattern-language-intervaltree-LICENSE +cp -a lib/external/xdgpp/LICENSE %{buildroot}%{_datadir}/licenses/%{name}/xdgpp-LICENSE + + +%files +%license %{_datadir}/licenses/%{name}/ +%doc README.md +%{_bindir}/imhex +%{_datadir}/pixmaps/%{name}.png +%{_datadir}/applications/%{name}.desktop +%{_libdir}/libimhex.so* +%{_libdir}/%{name}/ +%{_metainfodir}/%{name}.metainfo.xml + + +%changelog +* Fri Aug 05 2022 Jonathan Wright jonathan@almalinux.org - 1.20.0-1 +- Initial package build diff --git a/sources b/sources new file mode 100644 index 0000000..b60c970 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (imhex-1.20.0.tar.gz) = a5cbcb84ceb6c2bc90356e585e454be1c1abbb4dbdeb4f5ae8214db2cebd24ccbc591c558cdb6edcaf7a235413d121a02e5dde3f0862ec7df36aa6a1c2f4fcd8
arch-excludes@lists.fedoraproject.org