Copy Fedora Rawhide to EPEL 5 (RHBZ#808193).

- Disable OCaml, Ruby bindings, since these can't be built on RHEL 5.
- Include upstream patches to fix RHEL 5 build.
This commit is contained in:
Richard W.M. Jones 2012-03-30 11:23:29 +01:00
parent 81b3d43827
commit 5f941c3ead
7 changed files with 338 additions and 58 deletions

11
.gitignore vendored
View File

@ -1 +1,12 @@
hivex-1.2.2.tar.gz
/hivex-1.2.3.tar.gz
/hivex-1.2.4.tar.gz
/hivex-1.2.5.tar.gz
/hivex-1.2.6.tar.gz
/hivex-1.2.7.tar.gz
/hivex-1.2.8.tar.gz
/hivex-1.3.0.tar.gz
/hivex-1.3.1.tar.gz
/hivex-1.3.2.tar.gz
/hivex-1.3.3.tar.gz
/hivex-1.3.5.tar.gz

View File

@ -0,0 +1,29 @@
From 7fdaaf443f20224ce6bf6de53f3194974da315f6 Mon Sep 17 00:00:00 2001
From: Richard W.M. Jones <rjones@redhat.com>
Date: Fri, 30 Mar 2012 10:54:50 +0100
Subject: [PATCH 1/3] RHEL 5: configure: Fix test for caml_raise_with_args.
---
configure.ac | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index d1604f7..fb4e074 100644
--- a/configure.ac
+++ b/configure.ac
@@ -211,9 +211,9 @@ if test "x$OCAMLC" != "xno"; then
echo "char $f (); char foo() { return $f (); }" > conftest.c
rm -f conftest_ml.ml
touch conftest_ml.ml
- if $OCAMLC -c conftest.c 2>/dev/null && \
- $OCAMLC -c conftest_ml.ml 2>/dev/null && \
- $OCAMLC conftest.o conftest_ml.cmo -o conftest 2>/dev/null ; then
+ if $OCAMLC -c conftest.c >&AS_MESSAGE_LOG_FD 2>&1 && \
+ $OCAMLC -c conftest_ml.ml >&AS_MESSAGE_LOG_FD 2>&1 && \
+ $OCAMLC -custom conftest.o conftest_ml.cmo -o conftest >&AS_MESSAGE_LOG_FD 2>&1 ; then
AC_DEFINE([HAVE_CAML_RAISE_WITH_ARGS],[1],
[Defined if function caml_raise_with_args exists.])
AC_MSG_RESULT([found])
--
1.7.4.1

View File

@ -0,0 +1,53 @@
From 0030147305c41d289d924b003fa67977c2dea6ff Mon Sep 17 00:00:00 2001
From: Richard W.M. Jones <rjones@redhat.com>
Date: Fri, 30 Mar 2012 10:55:34 +0100
Subject: [PATCH 2/3] RHEL 5: build: Fix some C99-isms that confuse old gcc.
---
generator/generator.ml | 3 ++-
lib/hivex.c | 8 +++++---
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/generator/generator.ml b/generator/generator.ml
index b0c10eb..ed152af 100755
--- a/generator/generator.ml
+++ b/generator/generator.ml
@@ -1885,7 +1885,8 @@ static void raise_closed (const char *) Noreturn;
pr " free (r);\n"
| RStringList ->
pr " rv = caml_copy_string_array ((const char **) r);\n";
- pr " for (int i = 0; r[i] != NULL; ++i) free (r[i]);\n";
+ pr " int i;\n";
+ pr " for (i = 0; r[i] != NULL; ++i) free (r[i]);\n";
pr " free (r);\n"
| RLenType -> pr " rv = copy_type_len (len, t);\n"
| RLenValue -> pr " rv = copy_len_value (len, r);\n"
diff --git a/lib/hivex.c b/lib/hivex.c
index df313bf..711b058 100644
--- a/lib/hivex.c
+++ b/lib/hivex.c
@@ -2819,7 +2819,8 @@ hivex_node_set_value (hive_h *h, hive_node_h node,
int retval = -1;
size_t nr_values = 0;
- for (hive_value_h *itr = prev_values; *itr != 0; ++itr)
+ hive_value_h *itr;
+ for (itr = prev_values; *itr != 0; ++itr)
++nr_values;
hive_set_value *values = malloc ((nr_values + 1) * (sizeof (hive_set_value)));
@@ -2874,8 +2875,9 @@ hivex_node_set_value (hive_h *h, hive_node_h node,
retval = hivex_node_set_values (h, node, nr_values, values, 0);
- leave_partial:
- for (int i = 0; i < alloc_ct; i += 2) {
+ leave_partial: ;
+ int i;
+ for (i = 0; i < alloc_ct; i += 2) {
free (values[i / 2].value);
if (i + 1 < alloc_ct && values[i / 2].key != NULL)
free (values[i / 2].key);
--
1.7.4.1

View File

@ -0,0 +1,42 @@
From ebd2da993de7f5a18d4c9aa5ea87b56127e8788c Mon Sep 17 00:00:00 2001
From: Richard W.M. Jones <rjones@redhat.com>
Date: Fri, 30 Mar 2012 10:55:52 +0100
Subject: [PATCH 3/3] RHEL 5: build: Define builddir, abs_srcdir if they don't exist.
---
images/Makefile.am | 3 +++
perl/Makefile.am | 4 ++++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/images/Makefile.am b/images/Makefile.am
index 7ae6325..b0087f3 100644
--- a/images/Makefile.am
+++ b/images/Makefile.am
@@ -15,6 +15,9 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Old RHEL 5 autoconf doesn't have builddir.
+builddir ?= $(top_builddir)/images
+
EXTRA_DIST = minimal rlenvalue_test_hive
# 'large' is a large hive used for testing purposes. It is generated
diff --git a/perl/Makefile.am b/perl/Makefile.am
index 1722bcf..22dd98c 100644
--- a/perl/Makefile.am
+++ b/perl/Makefile.am
@@ -15,6 +15,10 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Old RHEL 5 autoconf doesn't have builddir or abs_srcdir.
+builddir ?= $(top_builddir)/perl
+abs_srcdir ?= $(shell unset CDPATH; cd $(srcdir) && pwd)
+
EXTRA_DIST = \
Makefile.PL.in \
run-perl-tests \
--
1.7.4.1

24
hivex-1.2.3-dirs.patch Normal file
View File

@ -0,0 +1,24 @@
diff -up hivex-1.2.3/perl/Makefile.am.dirs hivex-1.2.3/perl/Makefile.am
--- hivex-1.2.3/perl/Makefile.am.dirs 2010-11-19 12:44:02.177644892 -0500
+++ hivex-1.2.3/perl/Makefile.am 2010-11-19 12:44:17.137516124 -0500
@@ -40,7 +40,7 @@ $(TESTS): src_deps all
TESTS_ENVIRONMENT = \
LD_LIBRARY_PATH=$(top_builddir)/lib/.libs
-INSTALLDIRS = site
+INSTALLDIRS = vendor
all: Makefile-pl src_deps
$(MAKE) -f Makefile-pl
diff -up hivex-1.2.3/perl/Makefile.in.dirs hivex-1.2.3/perl/Makefile.in
--- hivex-1.2.3/perl/Makefile.in.dirs 2010-11-19 12:44:08.577393593 -0500
+++ hivex-1.2.3/perl/Makefile.in 2010-11-19 12:44:32.717483099 -0500
@@ -740,7 +740,7 @@ EXTRA_DIST = \
@HAVE_PERL_TRUE@TESTS_ENVIRONMENT = \
@HAVE_PERL_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/lib/.libs
-@HAVE_PERL_TRUE@INSTALLDIRS = site
+@HAVE_PERL_TRUE@INSTALLDIRS = vendor
all: all-am
.SUFFIXES:

View File

@ -1,12 +1,12 @@
Name: hivex
Version: 1.2.2
Release: 1%{?dist}
Version: 1.3.5
Release: 5%{?dist}
Summary: Read and write Windows Registry binary hive files
Group: Development/Libraries
License: LGPLv2
URL: http://libguestfs.org/
Source0: http://libguestfs.org/download/%{name}-%{version}.tar.gz
Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: perl
@ -16,8 +16,7 @@ BuildRequires: perl-Test-Pod-Coverage
#BuildRequires: perl-ExtUtils-MakeMaker
BuildRequires: perl-IO-stringy
BuildRequires: perl-libintl
BuildRequires: ocaml
BuildRequires: ocaml-findlib-devel
BuildRequires: python-devel
BuildRequires: readline-devel
BuildRequires: libxml2-devel
@ -25,6 +24,15 @@ BuildRequires: libxml2-devel
# the old version of libguestfs that included this library:
Conflicts: libguestfs <= 1:1.0.84
# Upstream patches for EPEL 5.
Patch0001: 0001-RHEL-5-configure-Fix-test-for-caml_raise_with_args.patch
Patch0002: 0002-RHEL-5-build-Fix-some-C99-isms-that-confuse-old-gcc.patch
Patch0003: 0003-RHEL-5-build-Define-builddir-abs_srcdir-if-they-don-.patch
# Fix Perl directory install path.
Patch4: %{name}-1.2.3-dirs.patch
BuildRequires: autoconf, automake, libtool
%description
Hive files are the undocumented binary blobs that Windows uses to
@ -50,7 +58,7 @@ an existing Windows VM.
For Perl bindings, see 'perl-hivex'.
For OCaml bindings, see 'ocaml-hivex-devel'.
For Python bindings, see 'python-hivex'.
%package devel
@ -65,28 +73,15 @@ Requires: pkgconfig
for %{name}.
%package -n ocaml-%{name}
Summary: OCaml bindings for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%package static
Summary: Statically linked library for %{name}
Group: Development/Libraries
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}
Group: Development/Libraries
Requires: ocaml-%{name} = %{version}-%{release}
%description -n ocaml-%{name}-devel
ocaml-%{name}-devel contains development libraries
required to use the OCaml bindings for %{name}.
%description static
%{name}-static contains the statically linked library
for %{name}.
%package -n perl-%{name}
@ -100,16 +95,36 @@ Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $versio
perl-%{name} contains Perl bindings for %{name}.
%package -n python-%{name}
Summary: Python bindings for %{name}
Group: Development/Libraries
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}.
%prep
%setup -q
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
%patch4 -p1 -b .dirs
autoreconf
%build
%configure --disable-static
export OCAMLC=no
%configure --disable-ruby
make %{?_smp_mflags}
# 'INSTALLDIRS' ensures that perl libs are installed in the vendor dir
# not the site dir.
make INSTALLDIRS=vendor %{?_smp_mflags}
%check
make check
%install
@ -124,6 +139,9 @@ 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}
@ -159,24 +177,10 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/pkgconfig/hivex.pc
%files -n ocaml-%{name}
%files static
%defattr(-,root,root,-)
%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
%defattr(-,root,root,-)
%{_libdir}/ocaml/hivex/*.a
%{_libdir}/ocaml/hivex/*.cmxa
%{_libdir}/ocaml/hivex/*.cmx
%{_libdir}/ocaml/hivex/*.mli
%doc LICENSE
%{_libdir}/libhivex.a
%files -n perl-%{name}
@ -186,21 +190,138 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man3/Win::Hivex::Regedit.3pm*
%files -n python-%{name}
%defattr(-,root,root,-)
%{python_sitearch}/*.py
%{python_sitearch}/*.pyc
%{python_sitearch}/*.pyo
%{python_sitearch}/*.so
%changelog
* Fri Mar 30 2012 Richard W.M. Jones <rjones@redhat.com> - 1:1.3.5-5
- Copy Fedora Rawhide to EPEL 5 (RHBZ#808193).
- Disable OCaml, Ruby bindings, since these can't be built on RHEL 5.
- Include upstream patches to fix RHEL 5 build.
* Fri Mar 23 2012 Richard W.M. Jones <rjones@redhat.com> - 1:1.3.5-5
- Don't need to rerun the generator (thanks Dan Horák).
* Tue Mar 13 2012 Richard W.M. Jones <rjones@redhat.com> - 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 <rjones@redhat.com> - 1.3.3-8
- ruby(abi) 1.9.1.
* Wed Feb 8 2012 Richard W.M. Jones <rjones@redhat.com> - 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 <rjones@redhat.com> - 1.3.3-3
- Rebuild for OCaml 3.12.1.
* Thu Dec 8 2011 Richard W.M. Jones <rjones@redhat.com> - 1.3.3-2
- Disable OCaml on ppc64.
- Ensure OCaml files are deleted when not packaged.
* Tue Nov 29 2011 Richard W.M. Jones <rjones@redhat.com> - 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 <rjones@redhat.com> - 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 <rjones@redhat.com> - 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 <rjones@redhat.com> - 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 <rjones@redhat.com> - 1.2.8-1
- New upstream version 1.2.8.
- Remove 4 upstream patches.
* Fri Jul 22 2011 Richard W.M. Jones <rjones@redhat.com> - 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 <rjones@redhat.com> - 1.2.7-6
- i686 package is broken, experimentally rebuild it.
* Fri Jun 17 2011 Marcela Mašláňová <mmaslano@redhat.com> - 1.2.7-5
- Perl mass rebuild
* Fri Jun 10 2011 Marcela Mašláňová <mmaslano@redhat.com> - 1.2.7-4
- Perl 5.14 mass rebuild
* Tue May 17 2011 Richard W.M. Jones <rjones@redhat.com> - 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 <rjones@redhat.com> - 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 <rjones@redhat.com> - 1.2.5-2
- Fix Python bindings on 32 bit arch with upstream patch.
* Wed Apr 13 2011 Richard W.M. Jones <rjones@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 1.2.4-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Fri Jan 14 2011 Richard W.M. Jones <rjones@redhat.com> - 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 <rjones@redhat.com> - 1.2.4-4
- Rebuild against OCaml 3.12.0.
* Thu Dec 16 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.4-3
- Backport upstream patch to fix segfault in Hivex.value_value binding.
* Thu Dec 2 2010 Richard W.M. Jones <rjones@redhat.com> - 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 <dan[at]danny.cz> - 1.2.3-3
- fix built with recent perl
* Tue Sep 7 2010 Dan Horák <dan[at]danny.cz> - 1.2.3-2
- conditionalize ocaml support
* Fri Aug 27 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.3-1
- New upstream version 1.2.3.
* Wed Aug 25 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.2-3
- Create a hivex-static subpackage.
* Thu Apr 29 2010 Marcela Maslanova <mmaslano@redhat.com> - 1.2.2-2
- Mass rebuild with perl-5.12.0
* Wed Apr 28 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.2-1
- New upstream version 1.2.2.
* Mon Apr 12 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.1-1
* Tue Mar 30 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.1-1
- New upstream version 1.2.1.
* Mon Mar 1 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.0-2.el5.2
- Fix for old version of OCaml in EPEL 5 (upstream after 1.2.0 released).
- We have to pass INSTALLDIRS=vendor to 'make' to get Perl package
installed in vendordir instead of sitedir.
* Mon Mar 1 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.0-2.el5.1
- Remove BRs of ExtUtils::MakeMaker and Test::Simple since these are
not a part of EPEL-5.
- Includes new tool for exporting and merging in regedit format.
* Mon Mar 1 2010 Richard W.M. Jones <rjones@redhat.com> - 1.2.0-2
- New upstream version 1.2.0.

View File

@ -1 +1 @@
b8a5c735e35fb62fb8886af7872a20a8 hivex-1.2.2.tar.gz
89e185f2c698863defbc8a22a4470a6c hivex-1.3.5.tar.gz