hivex/hivex.spec

234 lines
6.2 KiB
RPMSpec
Raw Normal View History

2019-12-07 00:33:34 +08:00
%ifarch %{ocaml_native_compiler}
%bcond_without ocaml
%else
%bcond_with ocaml
%endif
Name: hivex
2019-12-11 00:20:05 +08:00
Version: 1.3.17
Release: 2
2019-12-09 22:22:04 +08:00
Summary: Windows Registry "hive" extraction library
2019-12-07 00:33:34 +08:00
License: LGPLv2
URL: http://libguestfs.org/
2019-12-09 22:22:04 +08:00
Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz
Source1: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz.sig
Source2: libguestfs.keyring
2019-12-07 00:33:34 +08:00
2019-12-11 00:20:05 +08:00
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
2019-12-09 22:22:04 +08:00
2019-12-07 00:33:34 +08:00
%if %{with ocaml}
BuildRequires: ocaml
BuildRequires: ocaml-findlib-devel
%endif
2019-12-09 22:22:04 +08:00
BuildRequires: python2-devel, python-unversioned-command, python3-devel, ruby-devel, rubygem-rake, rubygem(json), rubygem(minitest), rubygem(rdoc), readline-devel, libxml2-devel, gnupg2
2019-12-07 00:33:34 +08:00
2019-12-09 22:22:04 +08:00
Provides: bundled(gnulib)
2019-12-07 00:33:34 +08:00
2019-12-11 00:20:05 +08:00
2019-12-07 00:33:34 +08:00
%description
2019-12-09 22:22:04 +08:00
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.
2019-12-07 00:33:34 +08:00
2019-12-09 22:22:04 +08:00
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.
2019-12-07 00:33:34 +08:00
2019-12-09 22:22:04 +08:00
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).
2019-12-07 00:33:34 +08:00
2019-12-09 22:22:04 +08:00
If you just want to export or modify the Registry of a Windows virtual machine, you should look at virt-win-reg(1).
2019-12-07 00:33:34 +08:00
2019-12-09 22:22:04 +08:00
Hivex is also comes with language bindings for OCaml, Perl, Python and Ruby.
2019-12-07 00:33:34 +08:00
2019-12-11 00:20:05 +08:00
2019-12-07 00:33:34 +08:00
%package devel
2019-12-10 21:25:05 +08:00
Summary: Development package for %{name}
2019-12-07 00:33:34 +08:00
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig
2019-12-11 06:54:02 +08:00
Provides: %{name}-static = %{version}-%{release}
Obsoletes: %{name}-static < %{version}-%{release}
2019-12-10 21:25:05 +08:00
2019-12-07 00:33:34 +08:00
%description devel
2019-12-10 21:25:05 +08:00
Development tools and libraries for %{name} are included in %{name}-devel.
2019-12-07 00:33:34 +08:00
2019-12-09 22:22:04 +08:00
%package_help
2019-12-07 00:33:34 +08:00
%if %{with ocaml}
%package -n ocaml-%{name}
2019-12-10 21:25:05 +08:00
Summary: Provide OCaml bindings for %{name}
2019-12-07 00:33:34 +08:00
Requires: %{name} = %{version}-%{release}
%description -n ocaml-%{name}
2019-12-10 21:25:05 +08:00
OCaml bindings for %{name} are included in ocaml-%{name}.
2019-12-07 00:33:34 +08:00
2019-12-11 00:20:05 +08:00
Only for toplevel and scripting access. To compile OCaml
programs which use %{name} you will also need ocaml-%{name}-devel package.
2019-12-07 00:33:34 +08:00
%package -n ocaml-%{name}-devel
2019-12-10 21:25:05 +08:00
Summary: Development package for %{name} OCaml bindings
2019-12-07 00:33:34 +08:00
Requires: ocaml-%{name} = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
%description -n ocaml-%{name}-devel
2019-12-10 21:25:05 +08:00
Development libraries required to use the OCaml bindings for %{name} are in ocaml-%{name}-devel.
2019-12-07 00:33:34 +08:00
%endif
%package -n perl-%{name}
2019-12-10 21:25:05 +08:00
Summary: Provide perl bindings for %{name}
2019-12-07 00:33:34 +08:00
Requires: %{name} = %{version}-%{release}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%description -n perl-%{name}
2019-12-10 21:25:05 +08:00
Perl bindings for %{name} are included in perl-%{name}.
2019-12-07 00:33:34 +08:00
%package -n python2-%{name}
2019-12-10 21:25:05 +08:00
Summary: Provide python 2 bindings for %{name}
2019-12-07 00:33:34 +08:00
Requires: %{name} = %{version}-%{release}
Obsoletes: python-%{name} < %{version}-%{release}
Provides: python-%{name} = %{version}-%{release}
%description -n python2-%{name}
2019-12-10 21:25:05 +08:00
Python 2 bindings for %{name} are included in python2-%{name}.
2019-12-07 00:33:34 +08:00
%package -n python3-%{name}
2019-12-10 21:25:05 +08:00
Summary: Provide python 3 bindings for %{name}
2019-12-07 00:33:34 +08:00
Requires: %{name} = %{version}-%{release}
%description -n python3-%{name}
2019-12-10 21:25:05 +08:00
Python 3 bindings for %{name} are included in python3-%{name}.
2019-12-07 00:33:34 +08:00
%package -n ruby-%{name}
2019-12-10 21:25:05 +08:00
Summary: Provide ruby bindings for %{name}
2019-12-07 00:33:34 +08:00
Requires: %{name} = %{version}-%{release}
Requires: ruby(release)
Requires: ruby
Provides: ruby(hivex) = %{version}
%description -n ruby-%{name}
2019-12-10 21:25:05 +08:00
Ruby bindings for %{name} are included ruby-%{name}.
2019-12-07 00:33:34 +08:00
%prep
2019-12-10 21:25:05 +08:00
tmphome="$(mktemp -d)" && gpgv2 --homedir "$tmphome" --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0}
2019-12-09 22:22:04 +08:00
%autosetup -p1 -n %{name}-%{version}
2019-12-07 00:33:34 +08:00
2019-12-10 21:25:05 +08:00
copy="$(mktemp -d)" && cp -a . "$copy" && mv "$copy" python3
2019-12-07 00:33:34 +08:00
2019-12-11 00:20:05 +08:00
2019-12-07 00:33:34 +08:00
%build
%configure \
%if !%{with ocaml}
--disable-ocaml \
%endif
%{nil}
2019-12-10 21:25:05 +08:00
%make_build V=1 INSTALLDIRS=vendor
2019-12-07 00:33:34 +08:00
2019-12-10 21:25:05 +08:00
cd python3
2019-12-07 00:33:34 +08:00
%configure \
PYTHON=/usr/bin/python3 \
--disable-ocaml --disable-perl --disable-ruby
2019-12-10 21:25:05 +08:00
%make_build V=1 INSTALLDIRS=vendor
cd ..
2019-12-07 00:33:34 +08:00
2019-12-11 00:20:05 +08:00
2019-12-07 00:33:34 +08:00
%install
2019-12-10 21:25:05 +08:00
cd python3
2019-12-11 13:58:21 +08:00
%make_install INSTALLDIRS=vendor
2019-12-10 21:25:05 +08:00
cd ..
2019-12-11 13:58:21 +08:00
%make_install INSTALLDIRS=vendor
2019-12-07 00:33:34 +08:00
%find_lang %{name}
%check
make check
2019-12-11 00:20:05 +08:00
cd python3 && make check && cd ..
2019-12-10 21:25:05 +08:00
%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
2019-12-07 00:33:34 +08:00
%files devel
%doc LICENSE
%{_libdir}/libhivex.so
%{_includedir}/hivex.h
%{_libdir}/pkgconfig/hivex.pc
%{_libdir}/libhivex.a
2019-12-10 21:25:05 +08:00
2019-12-09 22:22:04 +08:00
%files help
%{_mandir}/man1/hivexget.1*
%{_mandir}/man1/hivexml.1*
%{_mandir}/man1/hivexsh.1*
2019-12-10 21:25:05 +08:00
%{_mandir}/man1/hivexregedit.1*
2019-12-09 22:22:04 +08:00
%{_mandir}/man3/hivex.3*
%{_mandir}/man3/Win::Hivex.3pm*
%{_mandir}/man3/Win::Hivex::Regedit.3pm*
2019-12-10 21:25:05 +08:00
2019-12-07 00:33:34 +08:00
%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
2019-12-11 00:20:05 +08:00
* Sat Nov 30 2019 jiaxiya <jiaxiyajiaxiya@163.com> - 1.3.17-2
2019-12-07 00:33:34 +08:00
- Package init