#
# Conditional build:
-%bcond_without static_libs # don't build static libraries
+%bcond_without static_libs # static library
+%bcond_without python3 # CPython 3 module
+%bcond_without ocaml_opt # OCaml native optimized binaries (bytecode is always built)
+%bcond_without ruby # Ruby bindings
+
+%ifnarch %{ix86} %{x8664} arm aarch64 ppc sparc sparcv9
+%undefine with_ocaml_opt
+%endif
#
%include /usr/lib/rpm/macros.perl
Summary: Windows Registry "hive" extraction library
Summary(pl.UTF-8): Biblioteka do wydobywania danych z plików "hive" Rejestru Windows
Name: hivex
-Version: 1.3.7
-Release: 2
+Version: 1.3.14
+Release: 5
License: LGPL v2.1
Group: Libraries
Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz
-# Source0-md5: 61c1fbc8ec47633523da72ce51fc1b24
+# Source0-md5: 9fb5ed4525d30a84b216a05150be1558
URL: http://libguestfs.org/
BuildRequires: autoconf >= 2.50
BuildRequires: automake
-BuildRequires: gettext-devel >= 0.17
+BuildRequires: gettext-tools >= 0.17
BuildRequires: libtool
BuildRequires: libxml2-devel >= 2.0
BuildRequires: ocaml
BuildRequires: perl-Test-Simple
BuildRequires: perl-base
BuildRequires: perl-tools-pod
-BuildRequires: python
-BuildRequires: python-devel
+BuildRequires: pkgconfig
+BuildRequires: python >= 2
+BuildRequires: python-devel >= 2
+%if %{with python3}
+BuildRequires: python3 >= 1:3.2
+BuildRequires: python3-devel >= 1:3.2
+%endif
BuildRequires: readline-devel
-BuildRequires: rpmbuild(macros) >= 1.527
+BuildRequires: rpmbuild(macros) >= 1.714
+%if %{with ruby}
BuildRequires: ruby-devel
BuildRequires: ruby-rake
+%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Wiązania Perla do biblioteki hivex.
%package -n python-hivex
-Summary: Python bindings for hivex library
-Summary(pl.UTF-8): Wiązania Pythona do biblioteki hivex
+Summary: Python 2 bindings for hivex library
+Summary(pl.UTF-8): Wiązania Pythona 2 do biblioteki hivex
Group: Development/Languages/Python
Requires: %{name} = %{version}-%{release}
%description -n python-hivex
-Python bindings for hivex library.
+Python 2 bindings for hivex library.
%description -n python-hivex -l pl.UTF-8
-Wiązania Pythona do biblioteki hivex.
+Wiązania Pythona 2 do biblioteki hivex.
+
+%package -n python3-hivex
+Summary: Python 3 bindings for hivex library
+Summary(pl.UTF-8): Wiązania Pythona 3 do biblioteki hivex
+Group: Development/Languages/Python
+Requires: %{name} = %{version}-%{release}
+
+%description -n python3-hivex
+Python 3 bindings for hivex library.
+
+%description -n python3-hivex -l pl.UTF-8
+Wiązania Pythona 3 do biblioteki hivex.
%package -n ruby-hivex
Summary: Ruby bindings for hivex library
%setup -q
%build
+%{__aclocal}
+%{__automake}
+%{__autoconf}
+
+%if %{with python3}
+install -d build-py3
+cd build-py3
+../%configure \
+ PYTHON="%{__python3}" \
+ --with-python-installdir=%{py3_sitedir} \
+ --disable-ocaml \
+ --disable-perl \
+ --disable-ruby \
+ --disable-silent-rules
+
+%{__make}
+cd ..
+%endif
+
%configure \
--disable-silent-rules \
+ --with-python-installdir=%{py_sitedir} \
%{__enable_disable static_libs static}
%{__make} \
%install
rm -rf $RPM_BUILD_ROOT
+%if %{with python3}
+# lib is needed for relink on install
+%{__make} -C build-py3/lib install \
+ DESTDIR=$RPM_BUILD_ROOT
+%{__make} -C build-py3/python install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+%py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
+%py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
+%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/*.la
+%endif
+
%{__make} install \
INSTALLDIRS=vendor \
DESTDIR=$RPM_BUILD_ROOT
%dir %{_libdir}/ocaml/hivex
%{_libdir}/ocaml/hivex/META
%{_libdir}/ocaml/hivex/hivex.cmi
-%{_libdir}/ocaml/hivex/hivex.cmx
%{_libdir}/ocaml/hivex/hivex.mli
%{_libdir}/ocaml/hivex/libmlhivex.a
-%{_libdir}/ocaml/hivex/mlhivex.a
%{_libdir}/ocaml/hivex/mlhivex.cma
+%if %{with ocaml_opt}
+%{_libdir}/ocaml/hivex/hivex.cmx
+%{_libdir}/ocaml/hivex/mlhivex.a
%{_libdir}/ocaml/hivex/mlhivex.cmxa
+%endif
%files -n perl-hivex
%defattr(644,root,root,755)
%{perl_vendorarch}/Win/Hivex/Regedit.pm
%dir %{perl_vendorarch}/auto/Win
%dir %{perl_vendorarch}/auto/Win/Hivex
-%{perl_vendorarch}/auto/Win/Hivex/Hivex.bs
%attr(755,root,root) %{perl_vendorarch}/auto/Win/Hivex/Hivex.so
%{_mandir}/man1/hivexregedit.1*
-%{_mandir}/man3/Win::Hivex.3pm.*
-%{_mandir}/man3/Win::Hivex::Regedit.3pm.*
+%{_mandir}/man3/Win::Hivex.3pm*
+%{_mandir}/man3/Win::Hivex::Regedit.3pm*
%files -n python-hivex
%defattr(644,root,root,755)
%attr(755,root,root) %{py_sitedir}/libhivexmod.so
-%{py_sitedir}/hivex.py[co]
+%dir %{py_sitedir}/hivex
+%{py_sitedir}/hivex/*.py[co]
+
+%if %{with python3}
+%files -n python3-hivex
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py3_sitedir}/libhivexmod.cpython-*.so
+%{py3_sitedir}/hivex
+%endif
+%if %{with ruby}
%files -n ruby-hivex
%defattr(644,root,root,755)
-%attr(755,root,root) %{ruby_sitearchdir}/_hivex.so
-%{ruby_sitelibdir}/hivex.rb
+%attr(755,root,root) %{ruby_vendorarchdir}/_hivex.so
+%{ruby_vendorlibdir}/hivex.rb
+%endif