diff --git a/.hivex.metadata b/.hivex.metadata new file mode 100644 index 0000000..da0f8b5 --- /dev/null +++ b/.hivex.metadata @@ -0,0 +1 @@ +9f8944df2cd1f77776a7c3c11ad02728c4a52878 SOURCES/hivex-1.3.8.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/hivex-1.3.8-dirs.patch b/SOURCES/hivex-1.3.8-dirs.patch new file mode 100644 index 0000000..3f0f652 --- /dev/null +++ b/SOURCES/hivex-1.3.8-dirs.patch @@ -0,0 +1,12 @@ +diff -ur hivex-1.3.8.old/perl/Makefile.am hivex-1.3.8/perl/Makefile.am +--- hivex-1.3.8.old/perl/Makefile.am 2013-07-25 15:09:00.000000000 +0100 ++++ hivex-1.3.8/perl/Makefile.am 2013-07-25 23:14:10.952149773 +0100 +@@ -43,7 +43,7 @@ + + TESTS_ENVIRONMENT = ../run + +-INSTALLDIRS = site ++INSTALLDIRS = vendor + + all: Makefile-pl src_deps + $(MAKE) -f Makefile-pl diff --git a/SOURCES/ruby-vendor-not-site.patch b/SOURCES/ruby-vendor-not-site.patch new file mode 100644 index 0000000..d36b6eb --- /dev/null +++ b/SOURCES/ruby-vendor-not-site.patch @@ -0,0 +1,22 @@ +--- hivex-1.3.8.old/ruby/Makefile.am 2013-07-25 15:09:00.000000000 +0100 ++++ hivex-1.3.8/ruby/Makefile.am 2013-07-25 23:17:05.888067146 +0100 +@@ -45,13 +45,13 @@ + $(RAKE) build + $(RAKE) rdoc + +-RUBY_SITELIB := $(shell $(RUBY) -rrbconfig -e "puts RbConfig::CONFIG['sitelibdir']") +-RUBY_SITEARCH := $(shell $(RUBY) -rrbconfig -e "puts RbConfig::CONFIG['sitearchdir']") ++RUBY_VENDORLIB := $(shell $(RUBY) -rrbconfig -e "puts RbConfig::CONFIG['vendorlibdir']") ++RUBY_VENDORARCH := $(shell $(RUBY) -rrbconfig -e "puts RbConfig::CONFIG['vendorarchdir']") + + install: +- $(MKDIR_P) $(DESTDIR)$(RUBY_SITELIB) +- $(MKDIR_P) $(DESTDIR)$(RUBY_SITEARCH) +- $(INSTALL) -p -m 0644 lib/hivex.rb $(DESTDIR)$(RUBY_SITELIB) +- $(INSTALL) -p -m 0755 ext/hivex/_hivex.so $(DESTDIR)$(RUBY_SITEARCH) ++ $(MKDIR_P) $(DESTDIR)$(RUBY_VENDORLIB) ++ $(MKDIR_P) $(DESTDIR)$(RUBY_VENDORARCH) ++ $(INSTALL) -p -m 0644 lib/hivex.rb $(DESTDIR)$(RUBY_VENDORLIB) ++ $(INSTALL) -p -m 0755 ext/hivex/_hivex.so $(DESTDIR)$(RUBY_VENDORARCH) + + endif diff --git a/SPECS/hivex.spec b/SPECS/hivex.spec new file mode 100644 index 0000000..abf4cda --- /dev/null +++ b/SPECS/hivex.spec @@ -0,0 +1,444 @@ +# conditionalize Ocaml support +%ifarch sparc64 s390 s390x +%bcond_with ocaml +%else +%bcond_without ocaml +%endif + +Name: hivex +Version: 1.3.8 +Release: 2%{?dist} +Summary: Read and write Windows Registry binary hive files + +License: LGPLv2 +URL: http://libguestfs.org/ + +Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz + +# Fix Perl directory install path. +Patch0: %{name}-1.3.8-dirs.patch + +# Use VENDOR*DIR instead of SITE*DIR (not yet upstream). +Patch2: ruby-vendor-not-site.patch +BuildRequires: autoconf, automake, libtool, gettext-devel + +BuildRequires: perl +BuildRequires: perl-Test-Simple +BuildRequires: perl-Test-Pod +BuildRequires: perl-Test-Pod-Coverage +BuildRequires: perl-ExtUtils-MakeMaker +BuildRequires: perl-IO-stringy +BuildRequires: perl-libintl +%if %{with ocaml} +BuildRequires: ocaml +BuildRequires: ocaml-findlib-devel +%endif +BuildRequires: python-devel +BuildRequires: ruby-devel +BuildRequires: rubygem-rake +BuildRequires: rubygem(minitest) +BuildRequires: readline-devel +BuildRequires: libxml2-devel + +# This library used to be part of libguestfs. It won't install alongside +# the old version of libguestfs that included this library: +Conflicts: libguestfs <= 1:1.0.84 + +# https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_granted_exceptions +Provides: bundled(gnulib) + + +%description +Hive files are the undocumented binary files that Windows uses to +store the Windows Registry on disk. Hivex is a library that can read +and write to these files. + +'hivexsh' is a shell you can use to interactively navigate a hive +binary file. + +'hivexregedit' lets you export and merge to the textual regedit +format. + +'hivexml' can be used to convert a hive file to a more useful XML +format. + +In order to get access to the hive files themselves, you can copy them +from a Windows machine. They are 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 bindings, see 'python-hivex'. + +For Ruby bindings, see 'ruby-hivex'. + + +%package devel +Summary: Development tools and libraries for %{name} +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig + + +%description devel +%{name}-devel contains development tools and libraries +for %{name}. + + +%if %{with ocaml} +%package -n ocaml-%{name} +Summary: OCaml bindings for %{name} +Requires: %{name} = %{version}-%{release} + + +%description -n ocaml-%{name} +ocaml-%{name} contains OCaml bindings for %{name}. + +This is for toplevel and scripting access only. To compile OCaml +programs which use %{name} you will also need ocaml-%{name}-devel. + + +%package -n ocaml-%{name}-devel +Summary: OCaml bindings for %{name} +Requires: ocaml-%{name} = %{version}-%{release} + + +%description -n ocaml-%{name}-devel +ocaml-%{name}-devel contains development libraries +required to use the OCaml bindings for %{name}. +%endif + + +%package -n perl-%{name} +Summary: Perl bindings for %{name} +Requires: %{name} = %{version}-%{release} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) + + +%description -n perl-%{name} +perl-%{name} contains Perl bindings for %{name}. + + +%package -n python-%{name} +Summary: Python bindings for %{name} +Requires: %{name} = %{version}-%{release} + +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} + +%description -n python-%{name} +python-%{name} contains Python bindings for %{name}. + + +%package -n ruby-%{name} +Summary: Ruby bindings for %{name} +Requires: %{name} = %{version}-%{release} +Requires: ruby(release) = 2.0.0 +Requires: ruby +Provides: ruby(hivex) = %{version} + +%description -n ruby-%{name} +ruby-%{name} contains Ruby bindings for %{name}. + + +%prep +%setup -q + +%patch0 -p1 -b .dirs +%patch2 -p1 -b .rubyvendor +autoreconf -i + + +%build +%configure --disable-static +make %{?_smp_mflags} + + +%check +make check + +%if !%{with ocaml} +# Delete OCaml files, in case the user had OCaml installed and it was +# picked up by the configure script. +# XXX Add ./configure --disable-ocaml upstream. +rm -rf $RPM_BUILD_ROOT%{_libdir}/ocaml/hivex +rm -f $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs/*hivex* +%endif + + +%install +make install DESTDIR=$RPM_BUILD_ROOT + +# Remove unwanted libtool *.la file: +rm $RPM_BUILD_ROOT%{_libdir}/libhivex.la + +# Remove unwanted Perl files: +find $RPM_BUILD_ROOT -name perllocal.pod -delete +find $RPM_BUILD_ROOT -name .packlist -delete +find $RPM_BUILD_ROOT -name '*.bs' -delete + +# Remove unwanted Python files: +rm $RPM_BUILD_ROOT%{python_sitearch}/libhivexmod.la + +%find_lang %{name} + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + + +%files -f %{name}.lang +%doc README LICENSE +%{_bindir}/hivexget +%{_bindir}/hivexml +%{_bindir}/hivexregedit +%{_bindir}/hivexsh +%{_libdir}/libhivex.so.* +%{_mandir}/man1/hivexget.1* +%{_mandir}/man1/hivexml.1* +%{_mandir}/man1/hivexregedit.1* +%{_mandir}/man1/hivexsh.1* + + +%files devel +%doc LICENSE +%{_libdir}/libhivex.so +%{_mandir}/man3/hivex.3* +%{_includedir}/hivex.h +%{_libdir}/pkgconfig/hivex.pc + + +%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}/* +%{_mandir}/man3/Win::Hivex.3pm* +%{_mandir}/man3/Win::Hivex::Regedit.3pm* + + +%files -n python-%{name} +%{python_sitearch}/*.py +%{python_sitearch}/*.pyc +%{python_sitearch}/*.pyo +%{python_sitearch}/*.so + + +%files -n ruby-%{name} +%doc ruby/doc/site/* +%{ruby_vendorlibdir}/hivex.rb +%{ruby_vendorarchdir}/_hivex.so + + +%changelog +* Thu Oct 31 2013 Richard W.M. Jones - 1.3.8-2 +- Drop hivex-static subpackage + resolves: rhbz#1020019 + +* Thu Jul 25 2013 Richard W.M. Jones - 1.3.8-1 +- New upstream version 1.3.8. +- Fixes handling of keys which use ri-records, for both reading and + writing (RHBZ#717583, RHBZ#987463). +- Remove upstream patch. +- Rebase dirs patch against new upstream sources. +- Rebase ruby patch against new upstream sources. +- Modernize the RPM spec file. +- Fix .gitignore. + +* Wed Jul 17 2013 Petr Pisar - 1.3.7-8 +- Perl 5.18 rebuild + +* Wed Mar 13 2013 Richard W.M. Jones - 1.3.7-7 +- Rebuild for Ruby 2.0.0. +- Change ruby(abi) to ruby(release). + +* Fri Feb 15 2013 Richard W.M. Jones - 1.3.7-6 +- Fix for latest Ruby in Rawhide. Fixes build failure identified + by mass rebuild yesterday. +- Do not ignore error from running autoreconf. + +* Thu Feb 14 2013 Fedora Release Engineering - 1.3.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Oct 29 2012 Richard W.M. Jones - 1.3.7-2 +- Rebuild for OCaml 4.00.1. + +* Thu Oct 11 2012 Richard W.M. Jones - 1:1.3.7-1 +- New upstream version 1.3.7. + +* Thu Jul 19 2012 Fedora Release Engineering - 1.3.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jun 27 2012 Petr Pisar - 1.3.6-2 +- Perl 5.16 rebuild + +* Tue Jun 12 2012 Richard W.M. Jones - 1:1.3.6-1 +- New upstream version 1.3.6. +- Enable Ocaml bindings on ppc64. + +* Sat Jun 09 2012 Richard W.M. Jones - 1.3.5-9 +- Rebuild for OCaml 4.00.0. + +* Fri Jun 08 2012 Petr Pisar - 1.3.5-8 +- Perl 5.16 rebuild + +* Fri May 18 2012 Richard W.M. Jones - 1:1.3.5-7 +- "blobs" -> "files" in the description. + +* Tue May 15 2012 Richard W.M. Jones - 1:1.3.5-6 +- Bundled gnulib (RHBZ#821763). + +* Fri Mar 23 2012 Richard W.M. Jones - 1:1.3.5-5 +- Don't need to rerun the generator (thanks Dan Horák). + +* Tue Mar 13 2012 Richard W.M. Jones - 1:1.3.5-4 +- New upstream version 1.3.5. +- Remove upstream patch. +- Depend on automake etc. for the patch. + +* Thu Feb 9 2012 Richard W.M. Jones - 1.3.3-8 +- ruby(abi) 1.9.1. + +* Wed Feb 8 2012 Richard W.M. Jones - 1.3.3-7 +- Bump and rebuild for Ruby update. +- Add upstream patch to fix bindings for Ruby 1.9. +- Add non-upstream patch to pass --vendor flag to extconf.rb + +* Fri Jan 06 2012 Richard W.M. Jones - 1.3.3-3 +- Rebuild for OCaml 3.12.1. + +* Thu Dec 8 2011 Richard W.M. Jones - 1.3.3-2 +- Disable OCaml on ppc64. +- Ensure OCaml files are deleted when not packaged. + +* Tue Nov 29 2011 Richard W.M. Jones - 1.3.3-1 +- New upstream version 1.3.3. +- Rebased gnulib to work around RHBZ#756981. +- Remove patches which are now upstream. + +* Mon Oct 24 2011 Richard W.M. Jones - 1.3.2-3 +- New upstream version 1.3.2. +- Add upstream patch to fix building of hivexsh, hivexget. + +* Fri Aug 26 2011 Richard W.M. Jones - 1.3.1-2 +- New upstream version 1.3.1. +- Remove patch, now upstream. +- Don't need hack for making an unversioned Python module. + +* Mon Aug 15 2011 Richard W.M. Jones - 1.3.0-3 +- New upstream version 1.3.0. +- This version adds Ruby bindings, so there is a new subpackage 'ruby-hivex'. +- Add upstream patch to fix Ruby tests. +- Remove epoch macro in ruby-hivex dependency. + +* Fri Aug 12 2011 Richard W.M. Jones - 1.2.8-1 +- New upstream version 1.2.8. +- Remove 4 upstream patches. + +* Fri Jul 22 2011 Richard W.M. Jones - 1.2.7-9 +- Add upstream patch to fix Perl CCFLAGS for Perl 5.14 on i686. +- Enable 'make check'. + +* Thu Jul 21 2011 Richard W.M. Jones - 1.2.7-6 +- i686 package is broken, experimentally rebuild it. + +* Fri Jun 17 2011 Marcela Mašláňová - 1.2.7-5 +- Perl mass rebuild + +* Fri Jun 10 2011 Marcela Mašláňová - 1.2.7-4 +- Perl 5.14 mass rebuild + +* Tue May 17 2011 Richard W.M. Jones - 1.2.7-3 +- New upstream version 1.2.7. +- Removed patch which is now upstream. +- Add upstream patches to fix ocaml install rule. + +* Thu May 12 2011 Richard W.M. Jones - 1.2.6-2 +- New upstream version 1.2.6. +- Removed patch which is now upstream. +- Add upstream patch to fix ocaml tests. + +* Thu Apr 28 2011 Richard W.M. Jones - 1.2.5-2 +- Fix Python bindings on 32 bit arch with upstream patch. + +* Wed Apr 13 2011 Richard W.M. Jones - 1.2.5-1 +- New upstream version 1.2.5. +- This version fixes a number of important memory issues found by + valgrind and upgrading to this version is recommended for all users. +- Remove patch now upstream. + +* Wed Feb 09 2011 Fedora Release Engineering - 1.2.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jan 14 2011 Richard W.M. Jones - 1.2.4-6 +- Fix multilib conflicts in *.pyc and *.pyo files. +- Only install unversioned *.so file for Python bindings. + +* Wed Jan 5 2011 Richard W.M. Jones - 1.2.4-4 +- Rebuild against OCaml 3.12.0. + +* Thu Dec 16 2010 Richard W.M. Jones - 1.2.4-3 +- Backport upstream patch to fix segfault in Hivex.value_value binding. + +* Thu Dec 2 2010 Richard W.M. Jones - 1.2.4-1 +- New upstream version 1.2.4. +- This adds Python bindings (python-hivex subpackage). +- Fix Source0. + +* Fri Nov 19 2010 Dan Horák - 1.2.3-3 +- fix built with recent perl + +* Tue Sep 7 2010 Dan Horák - 1.2.3-2 +- conditionalize ocaml support + +* Fri Aug 27 2010 Richard W.M. Jones - 1.2.3-1 +- New upstream version 1.2.3. + +* Wed Aug 25 2010 Richard W.M. Jones - 1.2.2-3 +- Create a hivex-static subpackage. + +* Thu Apr 29 2010 Marcela Maslanova - 1.2.2-2 +- Mass rebuild with perl-5.12.0 + +* Wed Apr 28 2010 Richard W.M. Jones - 1.2.2-1 +- New upstream version 1.2.2. + +* Tue Mar 30 2010 Richard W.M. Jones - 1.2.1-1 +- New upstream version 1.2.1. +- Includes new tool for exporting and merging in regedit format. + +* Mon Mar 1 2010 Richard W.M. Jones - 1.2.0-2 +- New upstream version 1.2.0. +- This includes OCaml and Perl bindings, so add these as subpackages. + +* Mon Feb 22 2010 Richard W.M. Jones - 1.1.2-3 +- Missing Epoch in conflicts version fixed. + +* Mon Feb 22 2010 Richard W.M. Jones - 1.1.2-2 +- Add Conflicts libguestfs <= 1.0.84. + +* Mon Feb 22 2010 Richard W.M. Jones - 1.1.2-1 +- Initial Fedora RPM.