commit d4fb2af47464ea41c088f0491bc1064a307a769ba337ac71972479afce628bb7 Author: Michael Vetter Date: Wed Aug 7 13:50:18 2024 +0000 replace patch with upstream commit OBS-URL: https://build.opensuse.org/package/show/editors/rehex?expand=0&rev=31 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/rehex-0.61.1.tar.gz b/rehex-0.61.1.tar.gz new file mode 100644 index 0000000..9716ab4 --- /dev/null +++ b/rehex-0.61.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1526b18b2dcf357fd49d41d3c37306e2fec1fccfee07a41e6a017b60e6416bed +size 4350368 diff --git a/rehex-0.62.0.tar.gz b/rehex-0.62.0.tar.gz new file mode 100644 index 0000000..e5d9bfb --- /dev/null +++ b/rehex-0.62.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f4473ab3bb835de5d890f9488c32e6d26b5d2561a368ce05668d6c4530cd4ad +size 4918840 diff --git a/rehex-0.62.1-Build-with-Botan-3.patch b/rehex-0.62.1-Build-with-Botan-3.patch new file mode 100644 index 0000000..249f744 --- /dev/null +++ b/rehex-0.62.1-Build-with-Botan-3.patch @@ -0,0 +1,78 @@ +From 77fe9c22460caf350c9015e8e3292ff97e3493b0 Mon Sep 17 00:00:00 2001 +From: Daniel Collins +Date: Tue, 6 Aug 2024 22:43:31 +0100 +Subject: [PATCH] Detect whether Botan 3.x or 2.x is installed. + +--- + Makefile | 18 +++++++++++++++--- + Makefile.win | 4 ---- + tools/mac-build-dependencies.sh | 1 + + 3 files changed, 16 insertions(+), 7 deletions(-) + +diff --git a/Makefile b/Makefile +index 384902cc..1b043dcc 100644 +--- a/Makefile ++++ b/Makefile +@@ -14,13 +14,19 @@ + # this program; if not, write to the Free Software Foundation, Inc., 51 + # Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ++# Returns the first of $(1) or $(2) which is defined in the pkg-config ++# database, or errors if neither are. ++pkg-select-ab = $\ ++ $(if $(filter yes,$(shell pkg-config --exists $(1) && echo yes)),$(1),$\ ++ $(if $(filter yes,$(shell pkg-config --exists $(2) && echo yes)),$(2),$\ ++ $(error Could not find $(1) or $(2) using pkg-config))) ++ + LUA ?= lua + WX_CONFIG ?= wx-config +-BOTAN_PKG ?= botan-2 ++BOTAN_PKG ?= $(call pkg-select-ab,botan-3,botan-2) + CAPSTONE_PKG ?= capstone + JANSSON_PKG ?= jansson +-LUA_PKG ?= $(shell pkg-config --exists lua5.3 && echo lua5.3 || echo lua) +-CXXSTD ?= -std=c++11 ++LUA_PKG ?= $(call pkg-select-ab,lua5.3,lua) + + EXE ?= rehex + EMBED_EXE ?= ./tools/embed +@@ -82,6 +88,12 @@ ifeq ($(need_compiler_flags),1) + + GTK_CFLAGS = $$($(GTKCONFIG_EXE) --cflags) + GTK_LIBS = $$($(GTKCONFIG_EXE) --libs) ++ ++ ifeq ($(BOTAN_PKG),botan-3) ++ CXXSTD ?= -std=c++20 ++ else ++ CXXSTD ?= -std=c++11 ++ endif + endif + + BASE_CFLAGS := -Wall +diff --git a/Makefile.win b/Makefile.win +index bb4a1297..68aabea9 100644 +--- a/Makefile.win ++++ b/Makefile.win +@@ -40,10 +40,6 @@ CXXFLAGS += -Iinclude/gcc-win-include/ + CFLAGS += -DREHEX_CACHE_STRING_BITMAPS + CXXFLAGS += -DREHEX_CACHE_STRING_BITMAPS + +-# Botan 3 requires C++20 +-BOTAN_PKG := botan-3 +-CXXSTD := -std=c++20 +- + include Makefile + + DISTDIR ?= rehex-$(VERSION) +diff --git a/tools/mac-build-dependencies.sh b/tools/mac-build-dependencies.sh +index 10547961..f411fa7f 100755 +--- a/tools/mac-build-dependencies.sh ++++ b/tools/mac-build-dependencies.sh +@@ -473,6 +473,7 @@ You can now build rehex using \`make -f Makefile.osx\` in this shell. + The dependencies have been cached and won't be rebuilt if you source this + script again. + EOF ++ export BOTAN_PKG="botan-2" # used to determine required -std= for C++ + export BOTAN_LIBS="-L${_rehex_botan_target_dir}/lib/ -lbotan-2" + export BOTAN_CFLAGS="-I${_rehex_botan_target_dir}/include/botan-2/" + diff --git a/rehex-0.62.1.tar.gz b/rehex-0.62.1.tar.gz new file mode 100644 index 0000000..8f986c0 --- /dev/null +++ b/rehex-0.62.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb85250edc99b0d84801fab0b3f88e3add78927cd56798b84c645c3e6d9f7618 +size 4924751 diff --git a/rehex.changes b/rehex.changes new file mode 100644 index 0000000..acab3de --- /dev/null +++ b/rehex.changes @@ -0,0 +1,305 @@ +------------------------------------------------------------------- +Wed Aug 7 05:45:43 UTC 2024 - Andreas Stieger + +- build with Botan 3 on Tumbleweed + add rehex-0.62.1-Build-with-Botan-3.patch from upstream + +------------------------------------------------------------------- +Thu Jul 25 05:25:48 UTC 2024 - Michael Vetter + +- Update to 0.62.1: + * Fix crashes in x86 Windows build on older CPUs. + +------------------------------------------------------------------- +Mon Jul 22 08:23:38 UTC 2024 - Michael Vetter + +- Update to 0.62.0: + * This release includes changes and new features to assist editing + of sub-byte-width values and non-byte-aligned values in files: + + Add bit array data type (#167). + + Allow selecting and setting comments/highlights/types on + bit-sized/aligned quantities, not just byte-aligned (#155). + + Allow defining arbitrary integer types, up to 64 bits wide (#215). + + Allow navigating hex data by nibbles rather than bytes (#58). + * There are also improvements to the highlighting feature, and general usability improvements: + + Allow colouring data by byte value (#223). + + Allow changing/defining custom highlight colours and assigning labels to them (#227). + + Use dimmer highlight colours for dark colour schemes (#227). + + Save highlight colours/labels per-file (#60). + + Allow changing keyboard shortcuts (#226). + + Add Shift+Enter shortcut for "OK" in the comment dialog (#226). + + Display offset in both decimal and hexadecimal in status bar (#228). + + Fix handling of relative paths specified on the command line when + opening in an existing instance (#237). + +------------------------------------------------------------------- +Thu Mar 14 06:10:52 UTC 2024 - Michael Vetter + +- Update to 0.61.0: + * Fix data being displayed from the wrong point in the file when + "Collapse matches" is enabled in the file comparison window. + +------------------------------------------------------------------- +Thu Feb 15 07:55:57 UTC 2024 - Michael Vetter + +- Update to 0.61.0: + * Permit trailing commas in template enum definitions (#216). + * Add overwrite/insert toggle to "Fill range" dialog (#213). + * Add copy/export context menu commands to strings tool (#210). + * Fix temporary hang in strings tool when processing large files (#217). + * Fix settings not being saved during application exit. + * Batch comments panel updates to improve responsiveness (#205). + * Add search field to comments panel (#204). + * Add bit editor tool. + * Add checksum tool (#219). + * Add options to search for floating point values. + * Don't reload files modified externally when requested not to. + * Start search when Enter is pressed in search dialog input field, + or search backwards when Shift+Enter is pressed. + * Add "Reload automatically" toggle to "File" menu to automatically + reload the file when modified externally (and not in the editor) (#222). + * Preserve scroll position when reloading file. + +------------------------------------------------------------------- +Mon Jul 31 06:17:56 UTC 2023 - Michael Vetter + +- Update to 0.60.1: + New features: + * Add data histogram tool (#140). + * Monitor for open files being externally modified and allow + reloading (#124). + * Add "Delete comment and children" context menu command to + delete a comment and any comments encapsulated by it (#198). + * Allow dragging tabs between windows or out to new ones. + Quality of life improvements: + * Use virtual offsets in "Select range" dialog. + * Don't re-open files to save when there are no changes (#193). + * Improve performance when large numbers of comments are defined. + * Open original file when passed a rehex-meta file on the command line (#207). + Character set handling: + * Add syntax to templates (#184). + * Add character set option to text search (#182, #200). + * Add IBM codepage 866 and Windows-1251 (#208). + Binary templates: + * Expose current array index as ArrayIndex when expanding arrays + of structs in templates (#191). + * Fix true/false not being usable inside template functions/structs (#197). + * Add new ReadString(), SPrintf(), SetComment(), StringLengthBytes(), + ArrayPush(), ArrayPop() and OffsetOf() template function. + * Fix repeated execution of the same switch() block in a template (#202). + * Add 'private' variables to template language. + * Fix template format strings that expand to further format tokens. + * Fix template error when converting a float to an int. + * Remember recently selected templates (#183). + * Implement lexical variable scoping in templates and allow functions + to access global variables defined above them (#190). + * Add "Apply template from cursor" option to binary template tool. + Bug fixes: + * Fix crash when running rehex for the first time on some systems (#194). + * Correctly draw insert cursor over highlighted data and at the end of the file (#196). + * Fix cases where the strings tool would appear to run forever with an empty file. + * Remove strings from the strings panel when they are deleted from the file. + * Fix crash when attempting to open a directory/bundle on macOS. + +------------------------------------------------------------------- +Fri Nov 4 13:21:23 UTC 2022 - Dominique Leuenberger +- Use the default lua version (currently 5.4): buildrequire + lua-busted instead of lua53-busted, which then fails to run + against the default lua interpreter. + See also boo#1199151 + +------------------------------------------------------------------- +Mon Oct 24 10:40:15 UTC 2022 - Michael Vetter + +- Update to 0.5.4: + * Allow passing arguments to structs created via ArrayResize() + and ArrayExtend() template functions. + * Fix parsing of whitespace in template array dereference (#175). + * Display offsets in comments panel (#165). + * Improve performance of templates that declare many (thousands+) + of variables in the file. + * Add Error() function for templates (#186). + * Fix crash when attempting to use string as a file variable + in templates (#185). + * Add plugin for annotating pcap files. + +------------------------------------------------------------------- +Sun Jun 26 09:42:21 UTC 2022 - Michael Vetter + +- Update to 0.5.3: + * Correctly nest comments when updating comments panel (#169). + * Update text in comments panel when a comment is modified. + * Fix display of >4GiB virtual offsets in files that are <=4GiB (#170). + * Add support for code page 437 (IBM) and 932/936/949/950 (Microsoft). + * Fix handling of multibyte character boundaries in document view. + * Draw wide characters in document view (#173). + * Move forwards/backwards and select whole instructions from disassembly in document view. + * Don't capture tab key press in text area of document view. + * Add missing error checks. + * Add number base option to "Jump to offset" dialog. + * Drawing optimisations (improves responsiveness), particularly on macOS. + * Fix some undefined behaviour issues. + +------------------------------------------------------------------- +Sat Jun 25 10:14:27 UTC 2022 - Michael Vetter + +- Update to 0.5.2: + * Fix integer overflow issue. + +------------------------------------------------------------------- +Fri Apr 29 19:13:11 UTC 2022 - Michael Vetter + +- Update to 0.5.1: + * Only macOS related changes + +------------------------------------------------------------------- +Mon Apr 25 08:16:32 UTC 2022 - Michael Vetter + +- Update to 0.5.0: + * Added "x86 disassembly syntax" to "View" menu to allow selecting + between Intel or AT&T notation for x86 disassembly (#142). + * Handle file open message used for "Open With" on macOS (#144). + * Added --compare switch to jump straight into comparing two files (#141). + * Fix timer leak that can cause a crash when closing the compare + window or strings panel. + * Add import and export functions for Intel Hex files (#102). + * Add online help (#147). + * Add Bitmap Data Visualisation tool (#29). + * Add Binary Template support (#138). + * Save new files without the execute bit set (#154 + * Include highlight colour names in context menu (#153 + * Save write protect setting in rehex-meta.json (#143). + * Fix several occasional crashes. + +------------------------------------------------------------------- +Fri Jan 7 14:01:23 UTC 2022 - Michael Vetter + +- Update to 0.4.1: + * Fix text rendering glitches that can occur when displaying + control characters and some Unicode ones, depending which font + is in use (worst affected is the default Windows font). + +------------------------------------------------------------------- +Fri Jan 7 14:00:22 UTC 2022 - Michael Vetter + +- Update to 0.4.0: + * Add data types for common text encodings (Unicode, ISO-8859) + text displayed or typed into the text view on the right will + be decoded or encoded appropriately (#10). + * Treat pasted text as text rather than a string of raw bytes. + * Add 8-bit integer data types. + * Don't mark new files as unsaved. + * Store cursor position history and allow jumping backwards/forwards (#81). + * Allow jumping to previous/next difference in data compare window (#131). + * Collapse long ranges of identical data in data compare window (#85). + * Added "Jump to offset in main window" to data compare window context menu. + * Added shortcuts for comparing data (#103). + * Add support for other encodings to strings tool (#106). + * Add write protect flag to prevent accidental changes to file + data during analysis (#130). + * Respect system cursor blink speed setting (#112). + +------------------------------------------------------------------- +Thu Aug 26 16:28:32 UTC 2021 - Michael Vetter + +- Update to 0.3.92: + * Reduce persistent memory usage (#52). + * Fully undo virtual mapping changes in one step (#126). + * Fix build dependency errors (#129). + * Add "Find previous" button to search dialogs (#111). + * Fix hard-to-see colours in "Decode values" panel on some + systems (#127). + * Fix build errors on FreeBSD (#133). + * Prevent document from jumping around when the window is resized + or disassembly is in progress (#132). + * Fix build errors when using wxWidgets 3.1.5 and newer. + * Refactor selection handling to make sense in virtual + section view (#125). + * Add font face setting to "View" menu (#128). + * Correctly track whether files have been modified + since saving (#122). + +------------------------------------------------------------------- +Thu Jun 24 11:06:25 UTC 2021 - Luigi Baldoni + +- Fix Factory build + +------------------------------------------------------------------- +Fri May 7 11:46:38 UTC 2021 - Ferdinand Thiessen + +- Update to version 0.3.91 + * Show disassembly of machine code in the main document view + * Add float/double types to "Set data type" menu + * Initial support for Lua plugins. + * Process sections from PE EXE/DLL headers + * Virtual segment mapping and display +- Use optflags + +------------------------------------------------------------------- +Fri Nov 13 22:41:17 UTC 2020 - Michael Vetter + +- Update to 0.3.1 (2020-11-13) + * Correctly display signed 16-bit values in "Decode values" panel. + * Fix status bar offset going out of sync. + * Move cursor when a row in the "Comments" panel is double clicked. + * Focus document after updating position/selection via "Comments" + panel. + +------------------------------------------------------------------- +Wed Nov 11 15:04:28 UTC 2020 - Luigi Baldoni + + Version 0.3.0 (2020-11-10) + * Use byte grouping setting from main window in diff window. + * Use Capstone disassembler rather than LLVM. + * Support disassembling 16-bit x86 machine code. + * Don't update tools which aren't visible. + * Unhardcode linux launcher icon file type. + * Fix an uncommon use-after-free crash when closing tabs in + diff window. + * Support for disassembling 6800/68000 and MOS6502 instruction + sets (requires recent Capstone version). + * Close document when tab is clicked with middle mouse button. + * Don't create .rehex-meta files when there is nothing to save. + * Implement Strings tool to find and list ASCII strings in the + file. + * Add option to calculate automatic bytes per line in whole + byte groups. + * Add "Fill range" tool for overwriting ranges of bytes with a + pattern. + * Preserve column alignment after comments. + * Mark a document dirty if highlighting is changed. + * Add data type annotations. + * Show ranges marked as integers in their decoded form in the + hex view. + * Performance improvements for documents with large numbers of + comments. + version 0.2.0: + * Allow copying comments from a document and pasting them + elsewhere in the same document or into another one. + * Fixed bounds check when clicking on nested comments in a + document. + * Added context menu when right clicking on a comment in a + document. + * Optionally highlight byte sequences which match the current + selection. ("Highlight data matching selection" or + "PatternMatchHighlight"). + * Allow copying cursor offset from document context menu. + * Correctly display offsets over 4GiB in the status bar. + * Display offsets as XXXX:XXXX rather than XXXXXXXX:XXXXXXXX + when the file size is under 4GiB. + * Add per-document option for dec/hex offset display. + * When first byte after a comment is deleted, show that the + comment was deleted rather than leaving phantom comment on + screen until regions are repopulated. + * Add side-by-side comparison of chunks of data from files. + Select data and choose "Compare..." from context menu to + open diff window. + * Clean up search threads when a tab is closed while a search + is running. + * Display bytes which have been modified since the file was + saved in red. + +------------------------------------------------------------------- +Fri Mar 13 12:58:03 UTC 2020 - Luigi Baldoni + +- Initial package (v0.1.0) diff --git a/rehex.spec b/rehex.spec new file mode 100644 index 0000000..5d01fa3 --- /dev/null +++ b/rehex.spec @@ -0,0 +1,85 @@ +# +# spec file for package rehex +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2024 Andreas Stieger +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: rehex +Version: 0.62.1 +Release: 0 +Summary: Reverse Engineers' Hex Editor +License: GPL-2.0-only +URL: https://github.com/solemnwarning/rehex +Source0: https://github.com/solemnwarning/rehex/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +Patch0: rehex-0.62.1-Build-with-Botan-3.patch +BuildRequires: dos2unix +BuildRequires: gcc-c++ +BuildRequires: hicolor-icon-theme +BuildRequires: libunistring-devel +BuildRequires: lua-busted +BuildRequires: perl-Template-GD +BuildRequires: pkgconfig +BuildRequires: update-desktop-files +BuildRequires: zip +BuildRequires: pkgconfig(capstone) +BuildRequires: pkgconfig(jansson) +BuildRequires: pkgconfig(lua) +%if 0%{?suse_version} > 1600 +BuildRequires: pkgconfig(botan-3) +%else +BuildRequires: pkgconfig(botan-2) +%endif +%if 0%{?suse_version} > 1500 +BuildRequires: wxWidgets-3_0-devel +%else +BuildRequires: wxWidgets-devel +%endif + +%description +A hex heditor with a number of features for analysing and annotating +binary file formats. + +Current features include: + + Large file support (tested up to 1 TiB) + Decoding of integer/floating point value types + Disassembly of machine code + Highlighting and annotation of ranges of bytes + +%prep +%autosetup -p1 +dos2unix README.md + +%build +export CFLAGS="%{optflags}" +export CXXFLAGS="$CFLAGS" +%make_build prefix=%{_prefix} libdir=%{_libdir} + +%install +%make_install prefix=%{_prefix} libdir=%{_libdir} +%suse_update_desktop_file -r %{name} "Development;Debugger;" + +%files +%license LICENSE.txt +%doc README.md +%{_bindir}/%{name} +%{_libdir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png +%dir %{_datadir}/rehex +%{_datadir}/rehex/rehex.htb + +%changelog