diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index e69de29..0000000
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..869264c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+vhostmd-0.4.tar.bz2
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 60aa6a2..0000000
--- a/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for source rpm: vhostmd
-# $Id$
-NAME := vhostmd
-SPECFILE = $(firstword $(wildcard *.spec))
-
-define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
-endef
-
-MAKEFILE_COMMON := $(shell $(find-makefile-common))
-
-ifeq ($(MAKEFILE_COMMON),)
-# attept a checkout
-define checkout-makefile-common
-test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
-endef
-
-MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
-endif
-
-include $(MAKEFILE_COMMON)
diff --git a/sources b/sources
index e69de29..29cbdd2 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+139650528c154da52a65adedfb8e83cf vhostmd-0.4.tar.bz2
diff --git a/vhostmd.conf b/vhostmd.conf
new file mode 100644
index 0000000..271e821
--- /dev/null
+++ b/vhostmd.conf
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+ host-metrics-disk
+ /dev/shm/vhostmd0
+
+ 256
+
+ 60
+ /bin:/sbin:/usr/bin:/usr/sbin:/usr/share/vhostmd/scripts
+ vbd
+
+
+
+
+ HostName
+ hostname
+
+
+ Time
+ date +%s
+
+
+ VirtualizationVendor
+ rpm -qi libvirt| grep Vendor: |awk '{print substr($0, index($0,$5)) }'
+
+
+
+ VirtProductInfo
+ virsh -r CONNECT version | grep API | gawk -F': ' '{print $2}'
+
+
+
+ HostSystemInfo
+ hostname -s
+
+
+
+ NumberOfPhysicalCPUsUtilized
+ virsh -r CONNECT nodeinfo | grep 'CPU(s):' | gawk -F': +' '{print $2}'
+
+
+
+ MemoryAllocatedToVirtualServers
+ virsh -r CONNECT nodeinfo | grep 'Memory size:' | gawk -F' +' '{ printf "%d\n", $3/1024 }'
+
+
+
+ FreePhysicalMemory
+
+ free|egrep -i '^[[:space:]]*(Mem:)' \
+ |awk 'BEGIN { sum = 0; }
+ { sum += $4; }
+ END { printf "%10d\n", sum/1024; }'
+
+
+
+ UsedPhysicalMemory
+
+ free|egrep -i '^[[:space:]]*(Mem:)' \
+ |awk 'BEGIN { sum = 0; }
+ { sum += $3; }
+ END { printf "%10d\n", sum/1024; }'
+
+
+
+
+ FreeVirtualMemory
+
+ free|egrep -i '^[[:space:]]*(Mem:|Swap:)' \
+ |awk 'BEGIN { sum = 0; }
+ { sum += $4; }
+ END { printf "%10d\n", sum/1024; }'
+
+
+
+
+ UsedVirtualMemory
+
+ free|egrep -i '^[[:space:]]*(Mem:|Swap:)' \
+ |awk 'BEGIN { sum = 0; }
+ { sum += $3; }
+ END { printf "%10d\n", sum/1024; }'
+
+
+
+ PagedInMemory
+ echo "$((`vmstat -s | gawk '/pages paged in/ {print $1}'` / 1024))"
+
+
+
+
+ PagedOutMemory
+ echo "$((`vmstat -s | gawk '/pages paged out/ {print $1}'` / 1024))"
+
+
+ PageRates
+ pagerate.pl
+
+
+
+
+
+
+
+ TotalCPUTime
+ virsh -r CONNECT dominfo NAME | sed 's/: */:/' | \
+ gawk -F: '/CPU time/ {print $2;}'
+
+
+ NumberOfAssignedPhysicalCPUs
+ virsh -r CONNECT dominfo NAME | grep 'CPU(s):' | gawk -F': +' '{print $2}'
+
+
+
+ PhysicalMemoryAllocatedToVirtualSystem
+ virsh -r CONNECT dominfo NAME | grep 'Max memory:' | gawk -F' +' '{printf "%d\n", $3/1024}'
+
+
+
+
+
+
+
diff --git a/vhostmd.init b/vhostmd.init
new file mode 100644
index 0000000..ca3c587
--- /dev/null
+++ b/vhostmd.init
@@ -0,0 +1,118 @@
+#!/bin/sh
+#
+# vhostmd: Virtualization host metrics daemon
+#
+# chkconfig: - 98 02
+# description: This daemon allows access to host information from guests.
+
+### BEGIN INIT INFO
+# Provides: vhostmd
+# Required-Start: libvirtd
+# Required-Stop: libvirtd
+# Default-Stop:
+# Short-Description: Virtualization host metrics daemon
+# Description: This daemon allows access to host information from guests.
+### END INIT INFO
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+exec=/usr/sbin/vhostmd
+prog=vhostmd
+config=/etc/vhostmd/vhostmd.conf
+
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+ARGS=
+if [ -n "$VHOSTMD_VERBOSE" ]; then
+ ARGS="$ARGS --verbose"
+fi
+if [ -n "$VHOSTMD_CONFIG" ]; then
+ ARGS="$ARGS --config $VHOSTMD_CONFIG"
+fi
+if [ -n "$VHOSTMD_USER" ]; then
+ ARGS="$ARGS --user $VHOSTMD_USER"
+fi
+if [ -n "$VHOSTMD_URI" ]; then
+ ARGS="$ARGS --connect $VHOSTMD_URI"
+elif virsh uri >/dev/null 2>&1; then
+ default_uri=$(virsh uri)
+ ARGS="$ARGS --connect '$default_uri'"
+fi
+
+lockfile=/var/lock/subsys/$prog
+
+start() {
+ [ -x $exec ] || exit 5
+ [ -f $config ] || exit 6
+ echo -n $"Starting $prog: "
+ daemon $exec $ARGS
+ retval=$?
+ echo
+ [ $retval -eq 0 ] && touch $lockfile
+ return $retval
+}
+
+stop() {
+ echo -n $"Stopping $prog: "
+ killproc $prog
+ rm -f /var/run/$prog.pid
+ retval=$?
+ echo
+ [ $retval -eq 0 ] && rm -f $lockfile
+ return $retval
+}
+
+restart() {
+ stop
+ start
+}
+
+reload() {
+ restart
+}
+
+force_reload() {
+ restart
+}
+
+rh_status() {
+ status $prog
+}
+
+rh_status_q() {
+ rh_status >/dev/null 2>&1
+}
+
+
+case "$1" in
+ start)
+ rh_status_q && exit 0
+ $1
+ ;;
+ stop)
+ rh_status_q || exit 0
+ $1
+ ;;
+ restart)
+ $1
+ ;;
+ reload)
+ rh_status_q || exit 7
+ $1
+ ;;
+ force-reload)
+ force_reload
+ ;;
+ status)
+ rh_status
+ ;;
+ condrestart|try-restart)
+ rh_status_q || exit 0
+ restart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+ exit 2
+esac
+exit $?
diff --git a/vhostmd.spec b/vhostmd.spec
new file mode 100644
index 0000000..e8e3718
--- /dev/null
+++ b/vhostmd.spec
@@ -0,0 +1,240 @@
+# Xen is only available on a limited number of architectures
+%ifarch %{ix86} x86_64 ia64
+%global have_xen 1
+%else
+%global have_xen 0
+%endif
+
+Summary: Virtualization host metrics daemon
+Name: vhostmd
+Version: 0.4
+Release: 0.6.gite9db007b%{?dist}.1
+License: GPLv2+
+Group: System Environment/Daemons
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+URL: http://gitorious.org/vhostmd
+
+# Upstream tarball hosting is screwed at the moment. This release is
+# a pre-release of 0.4, based on the git commit names in the Release
+# tag above, with 'make dist' done by the packager.
+Source0: vhostmd-%{version}.tar.bz2
+Source1: vhostmd.init
+Source2: vhostmd.sysconfig
+Source3: vhostmd.conf
+
+BuildRequires: chrpath
+BuildRequires: pkgconfig
+BuildRequires: libxml2-devel
+BuildRequires: libvirt-devel
+
+%if %{have_xen}
+BuildRequires: xen-devel
+%endif
+
+Requires(post): chkconfig
+Requires(preun): chkconfig
+Requires(preun): initscripts
+Requires(postun): initscripts
+Requires(pre): shadow-utils
+
+
+%description
+vhostmd provides a "metrics communication channel" between a host and
+its hosted virtual machines, allowing limited introspection of host
+resource usage from within virtual machines.
+
+
+%package -n vm-dump-metrics
+Summary: Virtualization host metrics dump
+Group: Applications/System
+
+
+%description -n vm-dump-metrics
+Executable to dump all available virtualization host metrics to stdout
+or a file.
+
+
+%package -n vm-dump-metrics-devel
+Summary: Virtualization host metrics dump development
+Group: Development/Libraries
+Requires: vm-dump-metrics = %{version}-%{release}
+Requires: pkgconfig
+
+
+%description -n vm-dump-metrics-devel
+Header and libraries necessary for metrics gathering development
+
+
+%prep
+%setup -q
+
+
+%build
+%configure \
+%if %{have_xen} == 0
+ --without-xenstore \
+%endif
+ --enable-shared --disable-static
+make %{_smp_mflags}
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+make DESTDIR=$RPM_BUILD_ROOT install
+
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
+install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/%{name}
+
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
+install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
+
+#rm $RPM_BUILD_ROOT%{_libdir}/libmetrics.a
+rm $RPM_BUILD_ROOT%{_libdir}/libmetrics.la
+
+chrpath --delete $RPM_BUILD_ROOT%{_sbindir}/vm-dump-metrics
+
+# Remove docdir - we'll make a proper one ourselves.
+rm -r $RPM_BUILD_ROOT%{_docdir}/vhostmd
+
+# Remove metric.dtd from /etc.
+rm $RPM_BUILD_ROOT%{_sysconfdir}/vhostmd/metric.dtd
+
+# The default configuration file is great for Xen, not so great
+# for anyone else. Replace it with one which is better for libvirt
+# users.
+mv $RPM_BUILD_ROOT%{_sysconfdir}/vhostmd/vhostmd.conf \
+ $RPM_BUILD_ROOT%{_sysconfdir}/vhostmd/vhostmd.conf.for.xen
+cp %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/vhostmd/vhostmd.conf
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%post
+/sbin/chkconfig --add vhostmd
+
+
+%preun
+if [ $1 = 0 ] ; then
+ /sbin/service vhostmd stop >/dev/null 2>&1
+ /sbin/chkconfig --del vhostmd
+fi
+
+
+%postun
+if [ "$1" -ge "1" ] ; then
+ /sbin/service vhostmd condrestart >/dev/null 2>&1 || :
+fi
+
+
+%post -n vm-dump-metrics -p /sbin/ldconfig
+
+
+%postun -n vm-dump-metrics -p /sbin/ldconfig
+
+
+%pre
+# UID:GID 112:112 reserved, see RHBZ#534109.
+getent group vhostmd >/dev/null || groupadd -g 112 -r vhostmd
+getent passwd vhostmd >/dev/null || \
+useradd -u 112 -r -g vhostmd -d %{_datadir}/vhostmd -s /sbin/nologin \
+-c "Virtual Host Metrics Daemon" vhostmd
+exit 0
+
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS ChangeLog COPYING README
+%doc mdisk.xml metric.dtd vhostmd.dtd vhostmd.xml
+
+%{_sbindir}/vhostmd
+
+%dir %{_sysconfdir}/vhostmd
+%config(noreplace) %{_sysconfdir}/vhostmd/vhostmd.conf
+%config(noreplace) %{_sysconfdir}/vhostmd/vhostmd.conf.for.xen
+%config %{_sysconfdir}/vhostmd/vhostmd.dtd
+%{_sysconfdir}/init.d/%{name}
+%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
+
+%dir %{_datadir}/vhostmd
+%dir %{_datadir}/vhostmd/scripts
+%{_datadir}/vhostmd/scripts/pagerate.pl
+
+%{_mandir}/man8/vhostmd.8.gz
+
+
+%files -n vm-dump-metrics
+%defattr(-,root,root,-)
+%doc COPYING
+%{_sbindir}/vm-dump-metrics
+%{_libdir}/libmetrics.so.0
+%{_libdir}/libmetrics.so.0.0.0
+%{_mandir}/man1/vm-dump-metrics.1.gz
+
+
+%files -n vm-dump-metrics-devel
+%defattr(-,root,root,-)
+%doc README
+%{_libdir}/libmetrics.so
+%dir %{_includedir}/vhostmd
+%{_includedir}/vhostmd/libmetrics.h
+
+
+%changelog
+* Tue Nov 17 2009 Richard W.M. Jones - 0.4-0.6.gite9db007b.el5.1
+- Add a timestamp to the metrics.
+- Fix a typo in MemoryAllocatedToVirtualServers metric
+ (https://bugzilla.redhat.com/show_bug.cgi?id=532070#c7)
+- %{_sysconfdir}/sysconfig/vhostmd: Use libvirt default URI
+ (https://bugzilla.redhat.com/show_bug.cgi?id=537828)
+- %{_sysconfdir}/init.d/vhostmd: If using libvirt's default URI, then pass
+ the root URI to vhostmd (the default URI changes in some circumstances
+ when vhostmd switches to the non-root user).
+- Use fixed UID:GID 112:112 (RHBZ#534109).
+- vm-dump-metrics-devel package should require version and release of
+ base package.
+
+* Mon Nov 2 2009 Richard W.M. Jones - 0.4-0.6.gite9db007b
+- Some changes to the default configuration file suggested by SAP to
+ make it more CIM standards compliant.
+
+* Fri Oct 16 2009 Richard W.M. Jones - 0.4-0.5.gite9db007b
+- New upstream based on git e9db007b.
+- Fix segfault in vm-dump-metrics (RHBZ#529348).
+- On error, vm-dump-metrics now exits with status code 1.
+
+* Fri Oct 16 2009 Richard W.M. Jones - 0.4-0.4.gitea2f772d
+- Re-add xen-devel dependency. This is a bug in EPEL builders.
+
+* Thu Oct 15 2009 Richard W.M. Jones - 0.4-0.3.gitea2f772d
+- Remove xen-devel dependency on ALL architectures.
+
+* Thu Oct 15 2009 Richard W.M. Jones - 0.4-0.2.gitea2f772d
+- New upstream based on git ea2f772d.
+- Update the configuration file based on upstream changes to how virsh
+ has to be run.
+- vhostmd should run non-root as user 'vhostmd'.
+- Allow libvirt URI to be configured.
+
+* Tue Oct 13 2009 Richard W.M. Jones - 0.4-0.1.git326f0012172
+- Move to pre-release of 0.4, self-built tarball.
+- Disable xenstore on non-x86 platforms.
+- Add patch to fix --without-xenstore option.
+- Use have_xen RPM macro.
+
+* Mon Oct 12 2009 Richard W.M. Jones - 0.3-3
+- Remove metric.dtd file from /etc (fixes rpmlint warning), but
+ vhostmd.dtd has to remain because it is needed to validate the
+ XML configuration file.
+- Remove ExclusiveArch, instead conditionally depend on xen-devel.
+- Use a better, less noisy, more minimal configuration file which
+ doesn't depend on Xen.
+
+* Thu Oct 8 2009 Richard W.M. Jones - 0.3-1
+- New upstream version 0.3.
+
+* Fri Aug 14 2009 Richard W.M. Jones - 0.2-1
+- Initial packaging for Fedora, based on SuSE package.
diff --git a/vhostmd.sysconfig b/vhostmd.sysconfig
new file mode 100644
index 0000000..f3d97c3
--- /dev/null
+++ b/vhostmd.sysconfig
@@ -0,0 +1,14 @@
+# Uncomment the following line to print verbose messages.
+#VHOSTMD_VERBOSE=1
+
+# Override the default configuration file path.
+#VHOSTMD_CONFIG=/path/to/vhostmd.conf
+
+# Set the user that the daemon runs as after dropping root privs.
+VHOSTMD_USER=vhostmd
+
+# Set the libvirt URI.
+# Uncomment one of these to force KVM or Xen, otherwise libvirt
+# will try to choose a suitable default.
+#VHOSTMD_URI=qemu:///system
+#VHOSTMD_URI=xen:///