Maintaining QEMU and libvirt patches

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(add libvirt info)
Line 1: Line 1:
The {{package|qemu}} package maintainers use the [http://git.et.redhat.com/?p=qemu-fedora.git qemu-fedora.git] git repository in order to maintain the package's patch set.
+
The {{package|qemu}} and {{package|libvirt}} package maintainers now have the option to use the [http://git.et.redhat.com/?p=qemu-fedora.git qemu-fedora.git] and [http://gitorious.org/~markmc/libvirt/fedora libvirt-fedora.git] git repositories in order to maintain the packages' patch sets.
  
 
The basic idea is:
 
The basic idea is:
  
# There should be an upstream tag corresponding to the pristine upstream sources - e.g. the <code>kvm-88</code> tag in [http://git.kernel.org/?p=virt/kvm/qemu-kvm.git qemu-kvm.git] corresponds to the [http://downloads.sourceforge.net/sourceforge/kvm/qemu-kvm-devel-88.tar.gz qemu-kvm-devel-88 tarball]
+
# There should be an upstream tag corresponding to the pristine upstream sources - e.g. the <code>kvm-88</code> tag in [http://git.kernel.org/?p=virt/kvm/qemu-kvm.git qemu-kvm.git] corresponds to the [http://downloads.sourceforge.net/sourceforge/kvm/qemu-kvm-devel-88.tar.gz qemu-kvm-devel-88 tarball] and the <code>v0.7.0</code> tag in [http://gitorious.org/~markmc/libvirt/fedora libvirt-fedora.git] corresponds to the [http://libvirt.org/sources/libvirt-0.7.0.tar.gz libvirt-0.7.0 tarball]
# Each commit in <code>qemu-fedora.git</code> descending from the upstream tag is an individual patch in the RPM
+
# Each commit in <code>qemu-fedora.git</code> or <code>libvirt-fedora.git</code> descending from the upstream tag is an individual patch in the RPM
 
# Each commit is preferably cherry-picked from upstream using <code>git cherry-pick -x</code>
 
# Each commit is preferably cherry-picked from upstream using <code>git cherry-pick -x</code>
# Each commit should be signed off by the package maintainer who added it
+
# In the case of qemu, each commit should be signed off by the package maintainer who added it
 
# We match commits to patch filenames using <code>Fedora-patch:</code> meta-data
 
# We match commits to patch filenames using <code>Fedora-patch:</code> meta-data
 
# The patch set should be re-based using <code>git rebase &lt;upstream tag&gt;</code> when moving to a new upstream release
 
# The patch set should be re-based using <code>git rebase &lt;upstream tag&gt;</code> when moving to a new upstream release
 +
# Each fedora build is tagged in git using <code>git tag -a -m '&lt;nvr&gt;' &lt;nvr&gt;</code>
  
 
In order to sync the patches from git to CVS, do e.g:
 
In order to sync the patches from git to CVS, do e.g:

Revision as of 10:07, 21 August 2009

The Package-x-generic-16.pngqemu and Package-x-generic-16.pnglibvirt package maintainers now have the option to use the qemu-fedora.git and libvirt-fedora.git git repositories in order to maintain the packages' patch sets.

The basic idea is:

  1. There should be an upstream tag corresponding to the pristine upstream sources - e.g. the kvm-88 tag in qemu-kvm.git corresponds to the qemu-kvm-devel-88 tarball and the v0.7.0 tag in libvirt-fedora.git corresponds to the libvirt-0.7.0 tarball
  2. Each commit in qemu-fedora.git or libvirt-fedora.git descending from the upstream tag is an individual patch in the RPM
  3. Each commit is preferably cherry-picked from upstream using git cherry-pick -x
  4. In the case of qemu, each commit should be signed off by the package maintainer who added it
  5. We match commits to patch filenames using Fedora-patch: meta-data
  6. The patch set should be re-based using git rebase <upstream tag> when moving to a new upstream release
  7. Each fedora build is tagged in git using git tag -a -m '<nvr>' <nvr>

In order to sync the patches from git to CVS, do e.g:

 $> git clean -f
 $> git format-patch -N kvm-88
 $> for p in 000*.patch; do mv $p /pkgs/qemu/devel/$(awk '/^Fedora-patch: / {print $2;}' $p); done