diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/hivex-1.3.17.tar.gz b/hivex-1.3.17.tar.gz new file mode 100644 index 0000000..5499491 Binary files /dev/null and b/hivex-1.3.17.tar.gz differ diff --git a/hivex-1.3.17.tar.gz.sig b/hivex-1.3.17.tar.gz.sig new file mode 100644 index 0000000..9fedfc2 --- /dev/null +++ b/hivex-1.3.17.tar.gz.sig @@ -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----- diff --git a/hivex.spec b/hivex.spec new file mode 100644 index 0000000..131574b --- /dev/null +++ b/hivex.spec @@ -0,0 +1,233 @@ +%ifarch %{ocaml_native_compiler} +%bcond_without ocaml +%else +%bcond_with ocaml +%endif + +Name: hivex +Version: 1.3.17 +Release: 2 +Summary: Windows Registry "hive" extraction library +License: LGPLv2 +URL: http://libguestfs.org/ + +Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz +Source1: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz.sig +Source2: libguestfs.keyring + +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 + +%if %{with ocaml} +BuildRequires: ocaml +BuildRequires: ocaml-findlib-devel +%endif + +BuildRequires: python2-devel, python-unversioned-command, python3-devel, ruby-devel, rubygem-rake, rubygem(json), rubygem(minitest), rubygem(rdoc), readline-devel, libxml2-devel, gnupg2 + +Provides: bundled(gnulib) + + +%description +Hivex is a library for extracting the contents of Windows Registry "hive" files. It is designed to be secure against buggy or +malicious registry files. + +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. + +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). + +If you just want to export or modify the Registry of a Windows virtual machine, you should look at virt-win-reg(1). + +Hivex is also comes with language bindings for OCaml, Perl, Python and Ruby. + + +%package devel +Summary: Development package for %{name} +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig + +Provides: %{name}-static = %{version}-%{release} +Obsoletes: %{name}-static < %{version}-%{release} + +%description devel +Development tools and libraries for %{name} are included in %{name}-devel. + + +%package_help + + +%if %{with ocaml} +%package -n ocaml-%{name} +Summary: Provide OCaml bindings for %{name} +Requires: %{name} = %{version}-%{release} + +%description -n ocaml-%{name} +OCaml bindings for %{name} are included in ocaml-%{name}. + +Only for toplevel and scripting access. To compile OCaml +programs which use %{name} you will also need ocaml-%{name}-devel package. + + +%package -n ocaml-%{name}-devel +Summary: Development package for %{name} OCaml bindings +Requires: ocaml-%{name} = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} + +%description -n ocaml-%{name}-devel +Development libraries required to use the OCaml bindings for %{name} are in ocaml-%{name}-devel. +%endif + + +%package -n perl-%{name} +Summary: Provide perl bindings for %{name} +Requires: %{name} = %{version}-%{release} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) + +%description -n perl-%{name} +Perl bindings for %{name} are included in perl-%{name}. + + +%package -n python2-%{name} +Summary: Provide python 2 bindings for %{name} +Requires: %{name} = %{version}-%{release} + +Obsoletes: python-%{name} < %{version}-%{release} +Provides: python-%{name} = %{version}-%{release} + +%description -n python2-%{name} +Python 2 bindings for %{name} are included in python2-%{name}. + + +%package -n python3-%{name} +Summary: Provide python 3 bindings for %{name} +Requires: %{name} = %{version}-%{release} + +%description -n python3-%{name} +Python 3 bindings for %{name} are included in python3-%{name}. + + +%package -n ruby-%{name} +Summary: Provide ruby bindings for %{name} +Requires: %{name} = %{version}-%{release} +Requires: ruby(release) +Requires: ruby +Provides: ruby(hivex) = %{version} + +%description -n ruby-%{name} +Ruby bindings for %{name} are included ruby-%{name}. + + +%prep +tmphome="$(mktemp -d)" && gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0} +%autosetup -p1 -n %{name}-%{version} + +copy="$(mktemp -d)" && cp -a . "$copy" && mv "$copy" python3 + + +%build +%configure \ +%if !%{with ocaml} + --disable-ocaml \ +%endif + %{nil} +%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 +cd python3 +%make_install INSTALLDIRS=vendor +cd .. +%make_install INSTALLDIRS=vendor + +%find_lang %{name} + + +%check +make check + +cd python3 && make check && cd .. + + +%files -f %{name}.lang +%doc README LICENSE +%{_bindir}/hivexget +%{_bindir}/hivexml +%{_bindir}/hivexsh +%{_libdir}/libhivex.so.* +%exclude %{_libdir}/libhivex.la +%exclude %{_libdir}/perl5/perllocal.pod +%exclude %{python2_sitearch}/libhivexmod.la +%exclude %{python3_sitearch}/libhivexmod.la + + +%files devel +%doc LICENSE +%{_libdir}/libhivex.so +%{_includedir}/hivex.h +%{_libdir}/pkgconfig/hivex.pc +%{_libdir}/libhivex.a + + +%files help +%{_mandir}/man1/hivexget.1* +%{_mandir}/man1/hivexml.1* +%{_mandir}/man1/hivexsh.1* +%{_mandir}/man1/hivexregedit.1* +%{_mandir}/man3/hivex.3* +%{_mandir}/man3/Win::Hivex.3pm* +%{_mandir}/man3/Win::Hivex::Regedit.3pm* + + +%if %{with ocaml} +%files -n ocaml-%{name} +%doc README +%{_libdir}/ocaml/hivex +%exclude %{_libdir}/ocaml/hivex/*.a +%exclude %{_libdir}/ocaml/hivex/*.cmxa +%exclude %{_libdir}/ocaml/hivex/*.cmx +%exclude %{_libdir}/ocaml/hivex/*.mli +%{_libdir}/ocaml/stublibs/*.so +%{_libdir}/ocaml/stublibs/*.so.owner + + +%files -n ocaml-%{name}-devel +%{_libdir}/ocaml/hivex/*.a +%{_libdir}/ocaml/hivex/*.cmxa +%{_libdir}/ocaml/hivex/*.cmx +%{_libdir}/ocaml/hivex/*.mli +%endif + + +%files -n perl-%{name} +%{perl_vendorarch}/* +%{_bindir}/hivexregedit + + +%files -n python2-%{name} +%{python2_sitearch}/hivex/ +%{python2_sitearch}/*.so + + +%files -n python3-%{name} +%{python3_sitearch}/hivex/ +%{python3_sitearch}/*.so + + +%files -n ruby-%{name} +%doc ruby/doc/site/* +%{ruby_vendorlibdir}/hivex.rb +%{ruby_vendorarchdir}/_hivex.so + + +%changelog +* Sat Nov 30 2019 jiaxiya - 1.3.17-2 +- Package init diff --git a/libguestfs.keyring b/libguestfs.keyring new file mode 100644 index 0000000..bb3eb55 Binary files /dev/null and b/libguestfs.keyring differ