Bug 567234 - Review Request: hivex - Read and write Windows Registry binary hive files
Summary: Review Request: hivex - Read and write Windows Registry binary hive files
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Matthew Booth
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-02-22 11:59 UTC by Richard W.M. Jones
Modified: 2010-02-23 09:50 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-02-23 09:13:11 UTC
mbooth: fedora-review+
tibbs: fedora-cvs+


Attachments (Terms of Use)

Description Richard W.M. Jones 2010-02-22 11:59:39 UTC
Spec URL: http://www.annexia.org/tmp/hivex.spec
SRPM URL: http://www.annexia.org/tmp/hivex-1.1.2-1.fc12.src.rpm
Description:
Hive files are the undocumented binary blobs 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.

'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.

Comment 1 Richard W.M. Jones 2010-02-22 12:00:22 UTC
Note that this package will conflict with libguestfs if you have that installed.
This is because the code in this package is being separated out from
the main libguestfs package.

Comment 2 Richard W.M. Jones 2010-02-22 12:00:38 UTC
Koji scratch build for dist-f13:

http://koji.fedoraproject.org/koji/taskinfo?taskID=2004687

Comment 3 Richard W.M. Jones 2010-02-22 12:01:42 UTC
rpmlint says:

hivex.src: W: unexpanded-macro %description -l C %systemroot

I think this is a bug in rpmlint (bug 567231).

hivex.src: W: spelling-error %description -l en_US systemroot -> system root, system-root, systematic
hivex.src: W: spelling-error %description -l en_US config -> con fig, con-fig, configure
hivex.src: W: spelling-error %description -l en_US libguestfs -> guestrooms, guesthouse, guestroom
hivex.src: W: spelling-error %description -l en_US guestfish -> guest fish, guest-fish, guesthouse
hivex.src: W: spelling-error %description -l en_US virt -> dirt, girt, vi rt

Not spelling mistakes.

Comment 4 Matthew Booth 2010-02-22 14:23:19 UTC
rpmlint has been run. Reported errors can be ignored.
Package is named according to the package naming guidelines.
spec file name matches the base package name
Package meets the packaging guidelines
Package has an approved license (LGPLv2)
spec license matches actual license.
LICENSE is included in %doc
spec file is in English
spec file is legible
Sources in srpm match upstream
Package builds on at least x86_64 and i686
spec file does not exclude any architectures.
All BuildRequires are specified
spec file uses %find_lang
spec file calls ldconfig in %post and %postun
Package does not bundle system libraries
Package is not relocatable
Package does not explicitly create any directories

* Both the base and devel pacakges list %doc LICENSE

Permissions are set properly
spec file has a %clean section
Package uses macros consistently
Package doesn't contain any large documentation files
%doc files do not affect runtime
Header file is in -devel package
Package doesn't include any static libraries
devel package Requires pkgconfig
devel package contains libhivex.so
devel package requires exact base package version
Package does not contain any libtool archives
Package does not any GUI applications
Pacakge does not own any files or directories of other packages
%install runs rm -rf $RPM_BUILD_ROOT
All filenames are valid UTF-8

Additionally:

hivex as packaged here would conflict with libguestfs as currently included in Fedora. This is a blocker until libguestfs is updated to remove hivex.

hivex should include Conflicts: libguestfs < (version without hivex, when released)

libguestfs will presumably require hivex in any case, meaning a user can upgrade seamlessly.

Comment 5 Richard W.M. Jones 2010-02-22 14:29:06 UTC
Thanks for reviewing this so quickly.  Additional comments below:

(In reply to comment #4)
> * Both the base and devel pacakges list %doc LICENSE

I'm going to leave this, as I believe that the current Fedora
packaging guidelines are illegal.  See my reasoning here:

http://lists.fedoraproject.org/pipermail/packaging/2009-November/006654.html

> Additionally:
> 
> hivex as packaged here would conflict with libguestfs as currently included in
> Fedora. This is a blocker until libguestfs is updated to remove hivex.
> 
> hivex should include Conflicts: libguestfs < (version without hivex, when
> released)

Agreed.  I will make a new package in a moment that contains:

  Conflicts: libguestfs <= 1.0.84

> libguestfs will presumably require hivex in any case, meaning a user can
> upgrade seamlessly.

Comment 6 Richard W.M. Jones 2010-02-22 14:33:12 UTC
Spec URL: http://www.annexia.org/tmp/hivex.spec
SRPM URL: http://www.annexia.org/tmp/hivex-1.1.2-2.fc12.src.rpm

The only change is:

* Mon Feb 22 2010 Richard W.M. Jones <rjones@redhat.com> - 1.1.2-2
- Add Conflicts libguestfs <= 1.0.84.

Comment 7 Matthew Booth 2010-02-22 14:50:53 UTC
I agree LICENSE must be included in both packages. In fact, it should also be in the -debuginfo package, which includes the full source. No idea how you'd do that, though. That's a problem for another day.

Added Conflicts line assumes that there will be no release of libguestfs after 1.0.84 which includes hivex. As you're also the libguestfs maintainer, I'll trust you that's true ;)

ACK.

Comment 8 Matthew Booth 2010-02-22 14:55:24 UTC
Honesty in advertising: I didn't actually test a build with the above Conflicts line in place because there is no libguestfs build which would currently satisfy it. I also think there's a typo in there, because libguestfs has an Epoch. Should be 1:1.0.84. Assume this will be cleared up.

Comment 9 Richard W.M. Jones 2010-02-22 15:01:59 UTC
I made the change to the epoch ...

New Package CVS Request
=======================
Package Name: hivex
Short Description: Read and write Windows Registry binary hive files
Owners: rjones mbooth
Branches: F-12 F-13 EL-5
InitialCC:

Comment 10 Jason Tibbitts 2010-02-22 23:39:17 UTC
CVS done (by process-cvs-requests.py).

Comment 11 Richard W.M. Jones 2010-02-23 09:13:11 UTC
Thanks Jason!

I've only built this in Rawhide for the moment, because otherwise it will
conflict with existing libguestfs in stable branches.  When I upgrade
libguestfs over time in those stable branches, I will build hivex there
too.

Rawhide build:

http://koji.fedoraproject.org/koji/taskinfo?taskID=2008060

Comment 12 Mat Booth 2010-02-23 09:41:04 UTC
Hi Richard,

You've added the wrong Matthew Booth to the list of package owners. My FAS account name is mbooth, but I did not review this package. You wanted the *other* Matthew Booth's FAS account name... :-)

I will relinquish co-maintainership of this package.

Comment 13 Richard W.M. Jones 2010-02-23 09:46:06 UTC
Ah, sorry 'bout that.  It's very confusing ...

Comment 14 Mat Booth 2010-02-23 09:50:30 UTC
(In reply to comment #13)
> Ah, sorry 'bout that.  It's very confusing ...    

Heh, tell me about it. :-)


Note You need to log in before you can comment on or make changes to this bug.