Compare commits

..

No commits in common. "bae098915a7a6593ad48f8e72b220924f3f86070" and "c1700b8dcf81940a2650f94f1a824d4d39f5b65c" have entirely different histories.

8 changed files with 66 additions and 459 deletions

View File

@ -1,102 +0,0 @@
From fbcff7fbd8f96214c7f13f36bd7669a9142824ab Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 7 Aug 2023 10:21:54 +0100
Subject: [PATCH 1/3] ruby: Replace MiniTest with Minitest
Apparently the old MiniTest module is somewhat ancient. Use "new"
Minitest module instead. This was broken by the following change in
minitest 5.19:
https://github.com/minitest/minitest/commit/a2c6c18570f6f0a1bf6af70fe3b6d9599a13fdd6
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2229653
---
ruby/tests/tc_010_load.rb | 2 +-
ruby/tests/tc_021_close.rb | 2 +-
ruby/tests/tc_120_rlenvalue.rb | 2 +-
ruby/tests/tc_130_special.rb | 2 +-
ruby/tests/tc_200_write.rb | 2 +-
ruby/tests/tc_210_setvalue.rb | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/ruby/tests/tc_010_load.rb b/ruby/tests/tc_010_load.rb
index 76fef60..58fac33 100644
--- a/ruby/tests/tc_010_load.rb
+++ b/ruby/tests/tc_010_load.rb
@@ -17,7 +17,7 @@
require File::join(File::dirname(__FILE__), 'test_helper')
-class TestLoad < MiniTest::Unit::TestCase
+class TestLoad < Minitest::Test
def test_load
h = Hivex::open("../images/minimal", {})
refute_nil (h)
diff --git a/ruby/tests/tc_021_close.rb b/ruby/tests/tc_021_close.rb
index 38b88a9..bc8f79d 100644
--- a/ruby/tests/tc_021_close.rb
+++ b/ruby/tests/tc_021_close.rb
@@ -17,7 +17,7 @@
require File::join(File::dirname(__FILE__), 'test_helper')
-class TestClose < MiniTest::Unit::TestCase
+class TestClose < Minitest::Test
def test_close
h = Hivex::open("../images/minimal", {})
refute_nil (h)
diff --git a/ruby/tests/tc_120_rlenvalue.rb b/ruby/tests/tc_120_rlenvalue.rb
index 6a2fb72..ee881bb 100644
--- a/ruby/tests/tc_120_rlenvalue.rb
+++ b/ruby/tests/tc_120_rlenvalue.rb
@@ -23,7 +23,7 @@
require File::join(File::dirname(__FILE__), 'test_helper')
-class TestRLenValue < MiniTest::Unit::TestCase
+class TestRLenValue < Minitest::Test
def test_RLenValue
h = Hivex::open(File::join(ENV['abs_srcdir'], '..', 'images', 'rlenvalue_test_hive'), {})
refute_nil(h)
diff --git a/ruby/tests/tc_130_special.rb b/ruby/tests/tc_130_special.rb
index 7570824..6179f51 100644
--- a/ruby/tests/tc_130_special.rb
+++ b/ruby/tests/tc_130_special.rb
@@ -3,7 +3,7 @@
require File::join(File::dirname(__FILE__), 'test_helper')
-class TestRLenValue < MiniTest::Unit::TestCase
+class TestRLenValue < Minitest::Test
def test_RLenValue
h = Hivex::open(File::join(ENV['abs_srcdir'], '..', 'images', 'special'), {})
refute_nil(h)
diff --git a/ruby/tests/tc_200_write.rb b/ruby/tests/tc_200_write.rb
index 463283e..a713d77 100644
--- a/ruby/tests/tc_200_write.rb
+++ b/ruby/tests/tc_200_write.rb
@@ -17,7 +17,7 @@
require File::join(File::dirname(__FILE__), 'test_helper')
-class TestWrite < MiniTest::Unit::TestCase
+class TestWrite < Minitest::Test
def test_write
h = Hivex::open("../images/minimal", {:write => 1})
refute_nil (h)
diff --git a/ruby/tests/tc_210_setvalue.rb b/ruby/tests/tc_210_setvalue.rb
index 736b073..2ffd07b 100644
--- a/ruby/tests/tc_210_setvalue.rb
+++ b/ruby/tests/tc_210_setvalue.rb
@@ -17,7 +17,7 @@
require File::join(File::dirname(__FILE__), 'test_helper')
-class TestSetValue < MiniTest::Unit::TestCase
+class TestSetValue < Minitest::Test
def test_set_value
h = Hivex::open("../images/minimal", {:write => 1})
refute_nil (h)
--
2.41.0

View File

@ -1,160 +0,0 @@
From 6dbbc474d3df5cdfd21ed5e692b3a58136fffc42 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 7 Aug 2023 10:41:26 +0100
Subject: [PATCH 2/3] ruby: Get rid of old Test::Unit compatibility
Minitest is now required to run the Ruby unit tests.
This compatibility was added back in commit 3f3bc6af07 ("ruby: tests:
convert from Test::Unit to MiniTest (RHBZ#1090407)", 2014), but is
broken by the change from MiniTest to Minitest.
---
ruby/Makefile.am | 3 +--
ruby/tests/tc_010_load.rb | 3 ++-
ruby/tests/tc_021_close.rb | 3 ++-
ruby/tests/tc_120_rlenvalue.rb | 3 ++-
ruby/tests/tc_130_special.rb | 3 ++-
ruby/tests/tc_200_write.rb | 3 ++-
ruby/tests/tc_210_setvalue.rb | 3 ++-
ruby/tests/test_helper.rb | 31 -------------------------------
8 files changed, 13 insertions(+), 39 deletions(-)
delete mode 100644 ruby/tests/test_helper.rb
diff --git a/ruby/Makefile.am b/ruby/Makefile.am
index 0e9a868..7a5fe42 100644
--- a/ruby/Makefile.am
+++ b/ruby/Makefile.am
@@ -23,8 +23,7 @@ EXTRA_DIST = \
ext/hivex/_hivex.c \
lib/hivex.rb \
run-ruby-tests \
- tests/tc_*.rb \
- tests/test_helper.rb
+ tests/tc_*.rb
CLEANFILES = \
lib/*~ \
diff --git a/ruby/tests/tc_010_load.rb b/ruby/tests/tc_010_load.rb
index 58fac33..8efac36 100644
--- a/ruby/tests/tc_010_load.rb
+++ b/ruby/tests/tc_010_load.rb
@@ -15,7 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-require File::join(File::dirname(__FILE__), 'test_helper')
+require 'minitest/autorun'
+require 'hivex'
class TestLoad < Minitest::Test
def test_load
diff --git a/ruby/tests/tc_021_close.rb b/ruby/tests/tc_021_close.rb
index bc8f79d..b3aaa10 100644
--- a/ruby/tests/tc_021_close.rb
+++ b/ruby/tests/tc_021_close.rb
@@ -15,7 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-require File::join(File::dirname(__FILE__), 'test_helper')
+require 'minitest/autorun'
+require 'hivex'
class TestClose < Minitest::Test
def test_close
diff --git a/ruby/tests/tc_120_rlenvalue.rb b/ruby/tests/tc_120_rlenvalue.rb
index ee881bb..f40735d 100644
--- a/ruby/tests/tc_120_rlenvalue.rb
+++ b/ruby/tests/tc_120_rlenvalue.rb
@@ -21,7 +21,8 @@
# length and offset for this value cell should be 37 bytes, position
# 8712.
-require File::join(File::dirname(__FILE__), 'test_helper')
+require 'minitest/autorun'
+require 'hivex'
class TestRLenValue < Minitest::Test
def test_RLenValue
diff --git a/ruby/tests/tc_130_special.rb b/ruby/tests/tc_130_special.rb
index 6179f51..49a635b 100644
--- a/ruby/tests/tc_130_special.rb
+++ b/ruby/tests/tc_130_special.rb
@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
# -*- ruby -*-
-require File::join(File::dirname(__FILE__), 'test_helper')
+require 'minitest/autorun'
+require 'hivex'
class TestRLenValue < Minitest::Test
def test_RLenValue
diff --git a/ruby/tests/tc_200_write.rb b/ruby/tests/tc_200_write.rb
index a713d77..4ce0586 100644
--- a/ruby/tests/tc_200_write.rb
+++ b/ruby/tests/tc_200_write.rb
@@ -15,7 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-require File::join(File::dirname(__FILE__), 'test_helper')
+require 'minitest/autorun'
+require 'hivex'
class TestWrite < Minitest::Test
def test_write
diff --git a/ruby/tests/tc_210_setvalue.rb b/ruby/tests/tc_210_setvalue.rb
index 2ffd07b..c3624ef 100644
--- a/ruby/tests/tc_210_setvalue.rb
+++ b/ruby/tests/tc_210_setvalue.rb
@@ -15,7 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-require File::join(File::dirname(__FILE__), 'test_helper')
+require 'minitest/autorun'
+require 'hivex'
class TestSetValue < Minitest::Test
def test_set_value
diff --git a/ruby/tests/test_helper.rb b/ruby/tests/test_helper.rb
deleted file mode 100644
index f939b94..0000000
--- a/ruby/tests/test_helper.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# hivex Ruby bindings -*- ruby -*-
-# Copyright (C) 2009-2014 Red Hat Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-begin
- require 'minitest/autorun'
-rescue LoadError
- require 'test/unit'
- MiniTest = Test
- module Test
- Assertions = Unit::Assertions
- module Assertions
- alias refute_nil assert_not_nil
- end
- end
-end
-
-require 'hivex'
--
2.41.0

View File

@ -1,80 +0,0 @@
From 326399ceef0c904f78cdd5da17f7ca724292b4f8 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 7 Aug 2023 10:36:46 +0100
Subject: [PATCH 3/3] build: Go back to gettext 0.19
Commit 850feece ("build: Remove gnulib") unintentionally(?) moved to
GNU gettext 0.21. However this is not available in RHEL 8, and
doesn't contain any new features we need. Go back to 0.19 from RHEL 8.
Update: commit 850feece47b052e568392e83bff2bcdb2886f14d
---
configure.ac | 2 +-
po/Makevars.template | 29 -----------------------------
2 files changed, 1 insertion(+), 30 deletions(-)
diff --git a/configure.ac b/configure.ac
index 946c261..7a8b664 100644
--- a/configure.ac
+++ b/configure.ac
@@ -136,7 +136,7 @@ AS_IF([test "x$with_readline" != xno],
dnl For i18n.
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.21])
+AM_GNU_GETTEXT_VERSION([0.19])
AM_ICONV
dnl libxml2 (optional).
diff --git a/po/Makevars.template b/po/Makevars.template
index 86a11f1..4a9ff7d 100644
--- a/po/Makevars.template
+++ b/po/Makevars.template
@@ -1,8 +1,4 @@
# Makefile variables for PO directory in any package using GNU gettext.
-#
-# Copyright (C) 2003-2019 Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to use, copy, distribute, and modify it.
# Usually the message domain is the same as the package name.
DOMAIN = $(PACKAGE)
@@ -24,13 +20,6 @@ XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
# their copyright.
COPYRIGHT_HOLDER = Free Software Foundation, Inc.
-# This tells whether or not to prepend "GNU " prefix to the package
-# name that gets inserted into the header of the $(DOMAIN).pot file.
-# Possible values are "yes", "no", or empty. If it is empty, try to
-# detect it automatically by scanning the files in $(top_srcdir) for
-# "GNU packagename" string.
-PACKAGE_GNU =
-
# This is the email address or URL to which the translators shall report
# bugs in the untranslated strings:
# - Strings which are not entire sentences, see the maintainer guidelines
@@ -62,21 +51,3 @@ USE_MSGCTXT = no
# --previous to keep previous msgids of translated messages,
# --quiet to reduce the verbosity.
MSGMERGE_OPTIONS =
-
-# These options get passed to msginit.
-# If you want to disable line wrapping when writing PO files, add
-# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
-# MSGINIT_OPTIONS.
-MSGINIT_OPTIONS =
-
-# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
-# has changed. Possible values are "yes" and "no". Set this to no if
-# the POT file is checked in the repository and the version control
-# program ignores timestamps.
-PO_DEPENDS_ON_POT = yes
-
-# This tells whether or not to forcibly update $(DOMAIN).pot and
-# regenerate PO files on "make dist". Possible values are "yes" and
-# "no". Set this to no if the POT file and PO files are maintained
-# externally.
-DIST_DEPENDS_ON_UPDATE_PO = yes
--
2.41.0

BIN
hivex-1.3.17.tar.gz Normal file

Binary file not shown.

17
hivex-1.3.17.tar.gz.sig Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAlxHnNsRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKCbkxAAortQKeA7TDTeiTk3dwI/tQ+4VVqe90lt
L/xWnDtR6ZH5DZ4FgcJbaKx9PCBtaQxyFBjA5qcrEClK8fTfm3NGNPQuSX4YDN83
3jJx2uOtM7Io5hpFrXeWC22m77dqQKeU0r1oblJtf1kK1SEef6HL44flCtGr+HlM
37nwm29ToSl5Ksp9XvBqT5smQVuUPjqwcm+4jYUR88SnFmkTpneZYYTstDbqzvUm
RT089O/q+4JLh6egfyA66wXTfzhsqe3HRZtG7pPhe+j/HBIfYmAigEi4Cm/6pFrc
vNJAZ9KJ50no69A2jZ86Dfy4/4nwjYc/aDZ0vIZ4Fairj+LzTxQwfQeYk1BCqb2z
XNNRl3pUDkrk3jrAPnxqR2z/2qsEgoSrVDEQlhVUZ1n/WOTqxst1F0YHOeHHWun5
O1d2nV8i1A8JAysHx77smKscpKtu4jcymr4SmqXYSG90BvuqxJgpPsX6rln38DKX
qA3Zj7wKkqOTBbX+JInBwMcWOzzAO38hQkQjuOG71CQ6CKVGdnovp4OHDcwsmkp4
KbCjnXgIl5DOxCrnVaWtPV5Zy6smst982fG0zPD/m42Dz7+Tb4O1np8zfLH9C4Dx
CdD3otIo0XOJM50Bvu9Oqn/SP8j8nDqMZtiCg+gXBRyVdl37EGqtwd/2bt7TRWSV
xmddKuLdf6Q=
=+f/m
-----END PGP SIGNATURE-----

Binary file not shown.

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmPH85kRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKBANBAAogtCGejQXiNO/xVR4zZ/faoY0R2wGw0T
O3dg9c9HOwPOq0CL+15w6AfGdK74db3XKr+9qyGbkPEIHVGBc/w8tmgGCyZ0Tn/6
329vu068GjBg+fPfXNKGkZzFML08uEo+3IfIoOg8BIpi8fZ4FcUZ8rOMDCtUP3ce
xBgos7BvmseESMTal4vqPHtPBxCaZMp7IPLNffoToKVN2V5M2s73tWttscFfOa2e
v6+0ojQ62aR3buoRelkupeD7qXSJJfBD8HPPEpzbcVdA7cjdUnr2frTrlw70M+80
L2diKtlu3/UpvabnbEbh/efSg7k8CGhAoL+pImxxWSC9QCRBh9bObN7/7cvDYl3x
+BTajRm3bnULRpwQRfgvZyPZLVOZR7Qfcng1AoMpsGH6eL1wXF2T65H3Tr1MD0xI
zca4Es2ISbJYGTXbARFl5+jZjcyFvsvjUThF5Q4le2IUcxkdi4QFiWzItxzgclSv
cyUU2omjF6V6cN1JFL/1vEb4KqIc7IcbjIaHyLufjqtO2Z8a4yDxtamln57l/m0K
YC2wIpkiQ2qU1hZIq0zZOWgZe3pC5XJBpWg51ClAiOhODiX1vuXw2Q74bue+/2Og
q7jldflXVyOGzDlhKsGqjMWuNDsel1Q3KVikRQqyyaF/C+h4jVsNqn1xlljdGo4J
e79ccPiEiHE=
=pTzE
-----END PGP SIGNATURE-----

View File

@ -5,85 +5,45 @@
%endif %endif
Name: hivex Name: hivex
Version: 1.3.23 Version: 1.3.17
Release: 2 Release: 3
Summary: Read and write Windows Registry binary hive files Summary: Windows Registry "hive" extraction library
License: LGPLv2 License: LGPLv2
URL: http://libguestfs.org/ URL: http://libguestfs.org/
Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz
Source1: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz.sig Source1: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz.sig
Source2: libguestfs.keyring Source2: libguestfs.keyring
# https://github.com/libguestfs/hivex/commit/fbcff7fbd8f96214c7f13f36bd7669a9142824ab
Patch0: 0001-ruby-Replace-MiniTest-with-Minitest.patch
# https://github.com/libguestfs/hivex/commit/6dbbc474d3df5cdfd21ed5e692b3a58136fffc42
Patch1: 0002-ruby-Get-rid-of-old-Test-Unit-compatibility.patch
# https://github.com/libguestfs/hivex/commit/326399ceef0c904f78cdd5da17f7ca724292b4f
Patch2: 0003-build-Go-back-to-gettext-0.19.patch
BuildRequires: perl-interpreter BuildRequires: perl-interpreter, perl, perl-podlators, perl-devel, perl-generators, perl(bytes), perl(Carp), perl(Encode), perl(ExtUtils::MakeMaker), perl(Exporter), perl(IO::Scalar), perl(IO::Stringy), perl(strict), perl(Test::More), perl(utf8), perl(vars), perl(warnings), perl(XSLoader), perl(Test::Pod) >= 1.00, perl(Test::Pod::Coverage) >= 1.00
BuildRequires: perl-devel
BuildRequires: perl-generators
BuildRequires: %{_bindir}/pod2html
BuildRequires: %{_bindir}/pod2man
BuildRequires: perl(bytes)
BuildRequires: perl(Carp)
BuildRequires: perl(Encode)
BuildRequires: perl(ExtUtils::MakeMaker)
BuildRequires: perl(Exporter)
BuildRequires: perl(IO::Scalar)
BuildRequires: perl(IO::Stringy)
BuildRequires: perl(strict)
BuildRequires: perl(Test::More)
BuildRequires: perl(utf8)
BuildRequires: perl(vars)
BuildRequires: perl(warnings)
BuildRequires: perl(XSLoader)
BuildRequires: perl(Test::Pod) >= 1.00
BuildRequires: perl(Test::Pod::Coverage) >= 1.00
%if %{with ocaml} %if %{with ocaml}
BuildRequires: ocaml BuildRequires: ocaml
BuildRequires: ocaml-findlib-devel BuildRequires: ocaml-findlib-devel
%endif %endif
BuildRequires: python3-devel
BuildRequires: ruby-devel BuildRequires: python3-devel, ruby-devel, rubygem-rake, rubygem(json), rubygem(minitest), rubygem(rdoc), readline-devel, libxml2-devel, gnupg2
BuildRequires: rubygem-rake
BuildRequires: rubygem(json)
BuildRequires: rubygem(minitest)
BuildRequires: rubygem(rdoc)
BuildRequires: readline-devel
BuildRequires: libxml2-devel
BuildRequires: gnupg2
BuildRequires: make
BuildRequires: autoconf automake libtool gettext-devel
Provides: bundled(gnulib) Provides: bundled(gnulib)
%description %description
Hive files are the undocumented binary files that Windows uses to store the Windows Registry on disk. Hivex is a library for extracting the contents of Windows Registry "hive" files. It is designed to be secure against buggy or
Hivex is a library that can read and write to these files. malicious registry files.
'hivexsh' is a shell you can use to interactively navigate a hive binary file. Unlike other tools in this area, it doesn't use the textual .REG format, because parsing that is as much trouble as parsing the
original binary format. Instead it makes the file available through a C API, and then wraps this API in higher level scripting and GUI
tools.
'hivexregedit' (in perl-hivex) lets you export and merge to the textual regedit format. There is a separate program to export the hive as XML (see hivexml(1)), or to navigate the file (see hivexsh(1)). There is also a Perl
script to export and merge the file as a textual .REG (regedit) file, see hivexregedit(1).
'hivexml' can be used to convert a hive file to a more useful XML format. If you just want to export or modify the Registry of a Windows virtual machine, you should look at virt-win-reg(1).
In order to get access to the hive files themselves, you can copy them from a Windows machine. They are Hivex is also comes with language bindings for OCaml, Perl, Python and Ruby.
usually found in %%systemroot%%\system32\config. For virtual machines we recommend using libguestfs or
guestfish to copy out these files. libguestfs also provides a useful high-level tool called 'virt-win-reg'
(based on hivex technology) which can be used to query specific registry keys in an existing Windows VM.
For OCaml bindings, see 'ocaml-hivex-devel'.
For Perl bindings, see 'perl-hivex'.
For Python 3 bindings, see 'python3-hivex'.
For Ruby bindings, see 'ruby-hivex'.
%package devel %package devel
Summary: Development tools and libraries for %{name} Summary: Development package for %{name}
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: pkgconfig Requires: pkgconfig
@ -91,7 +51,7 @@ Provides: %{name}-static = %{version}-%{release}
Obsoletes: %{name}-static < %{version}-%{release} Obsoletes: %{name}-static < %{version}-%{release}
%description devel %description devel
%{name}-devel contains development tools and libraries for %{name}. Development tools and libraries for %{name} are included in %{name}-devel.
%package_help %package_help
@ -99,75 +59,80 @@ Obsoletes: %{name}-static < %{version}-%{release}
%if %{with ocaml} %if %{with ocaml}
%package -n ocaml-%{name} %package -n ocaml-%{name}
Summary: OCaml bindings for %{name} Summary: Provide OCaml bindings for %{name}
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description -n ocaml-%{name} %description -n ocaml-%{name}
ocaml-%{name} contains OCaml bindings for %{name}. OCaml bindings for %{name} are included in ocaml-%{name}.
This is for toplevel and scripting access only. To compile OCaml Only for toplevel and scripting access. To compile OCaml
programs which use %{name} you will also need ocaml-%{name}-devel. programs which use %{name} you will also need ocaml-%{name}-devel package.
%package -n ocaml-%{name}-devel %package -n ocaml-%{name}-devel
Summary: OCaml bindings for %{name} Summary: Development package for %{name} OCaml bindings
Requires: ocaml-%{name} = %{version}-%{release} Requires: ocaml-%{name} = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release} Requires: %{name}-devel = %{version}-%{release}
%description -n ocaml-%{name}-devel %description -n ocaml-%{name}-devel
ocaml-%{name}-devel contains development libraries Development libraries required to use the OCaml bindings for %{name} are in ocaml-%{name}-devel.
required to use the OCaml bindings for %{name}.
%endif %endif
%package -n perl-%{name} %package -n perl-%{name}
Summary: Perl bindings for %{name} Summary: Provide perl bindings for %{name}
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%description -n perl-%{name} %description -n perl-%{name}
perl-%{name} contains Perl bindings for %{name}. Perl bindings for %{name} are included in perl-%{name}.
%package -n python3-%{name} %package -n python3-%{name}
Summary: Python 3 bindings for %{name} Summary: Provide python 3 bindings for %{name}
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
%description -n python3-%{name} %description -n python3-%{name}
python3-%{name} contains Python 3 bindings for %{name}. Python 3 bindings for %{name} are included in python3-%{name}.
%package -n ruby-%{name} %package -n ruby-%{name}
Summary: Ruby bindings for %{name} Summary: Provide ruby bindings for %{name}
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: ruby(release) Requires: ruby(release)
Requires: ruby Requires: ruby
Provides: ruby(hivex) = %{version} Provides: ruby(hivex) = %{version}
%description -n ruby-%{name} %description -n ruby-%{name}
ruby-%{name} contains Ruby bindings for %{name}. Ruby bindings for %{name} are included ruby-%{name}.
%prep %prep
tmphome="$(mktemp -d)" && gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} tmphome="$(mktemp -d)" && gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0}
%autosetup -n %{name}-%{version} -p1 %autosetup -p1 -n %{name}-%{version}
autoreconf -fi
copy="$(mktemp -d)" && cp -a . "$copy" && mv "$copy" python3
%build %build
%configure \ %configure \
PYTHON=%{__python3} \
%if !%{with ocaml} %if !%{with ocaml}
--disable-ocaml \ --disable-ocaml \
%endif %endif
%{nil} %{nil}
%make_build V=1 INSTALLDIRS=vendor %make_build V=1 INSTALLDIRS=vendor
cd python3
%configure \
PYTHON=/usr/bin/python3 \
--disable-ocaml --disable-perl --disable-ruby
%make_build V=1 INSTALLDIRS=vendor
cd ..
%install %install
cd python3
%make_install INSTALLDIRS=vendor
cd ..
%make_install INSTALLDIRS=vendor %make_install INSTALLDIRS=vendor
%find_lang %{name} %find_lang %{name}
@ -176,10 +141,11 @@ autoreconf -fi
%check %check
make check make check
cd python3 && make check && cd ..
%files -f %{name}.lang %files -f %{name}.lang
%doc README.md %doc README LICENSE
%license LICENSE
%{_bindir}/hivexget %{_bindir}/hivexget
%{_bindir}/hivexml %{_bindir}/hivexml
%{_bindir}/hivexsh %{_bindir}/hivexsh
@ -209,7 +175,7 @@ make check
%if %{with ocaml} %if %{with ocaml}
%files -n ocaml-%{name} %files -n ocaml-%{name}
%doc README.md %doc README
%{_libdir}/ocaml/hivex %{_libdir}/ocaml/hivex
%exclude %{_libdir}/ocaml/hivex/*.a %exclude %{_libdir}/ocaml/hivex/*.a
%exclude %{_libdir}/ocaml/hivex/*.cmxa %exclude %{_libdir}/ocaml/hivex/*.cmxa
@ -221,10 +187,8 @@ make check
%files -n ocaml-%{name}-devel %files -n ocaml-%{name}-devel
%{_libdir}/ocaml/hivex/*.a %{_libdir}/ocaml/hivex/*.a
%ifnarch sw_64
%{_libdir}/ocaml/hivex/*.cmxa %{_libdir}/ocaml/hivex/*.cmxa
%{_libdir}/ocaml/hivex/*.cmx %{_libdir}/ocaml/hivex/*.cmx
%endif
%{_libdir}/ocaml/hivex/*.mli %{_libdir}/ocaml/hivex/*.mli
%endif %endif
@ -245,21 +209,6 @@ make check
%changelog %changelog
* Sat Mar 15 2025 mahailiang <mahailiang@uniontech.com> - 1.3.23-2
- fix sw_64 build error
* Mon Oct 09 2023 yaoxin <yao_xin001@hoperun.com> - 1.3.23-1
- Upgrade to 1.3.23
* Wed Oct 12 2022 hantingxiang <hantingxiang@gmail.com> - 1.3.21-1
- update version to 1.3.21
* Fri Sep 24 2021 yaoxin <yaoxin30@huawei.com> - 1.3.17-5
- Fix CVE-2021-3622
* Tue May 25 2021 wangyue <wangyue92@huawei.com> - 1.3.17-4
- Fix CVE-2021-3504
* Wed Oct 21 2020 leiju <leiju4@163.com> - 1.3.17-3 * Wed Oct 21 2020 leiju <leiju4@163.com> - 1.3.17-3
- remove python2 subpackage - remove python2 subpackage