XBMC in RPM Fusion
Nightly packages from xbmc's master Git branch are available at http://xbmc.ktdreyer.com. Special thanks to Brian Faris for hosting the nightlies build infrastructure.
To use these builds, download http://xbmc.ktdreyer.com/fedora/xbmc-nightly.repo to /etc/yum.repos.d/ and run "yum update xbmc". To get back to RPM Fusion's official XBMC package, run "yum --disablerepo=xbmc-nightly downgrade xbmc"
Note that these builds may be in various states of disrepair, or even altogether unusable. Be prepared to upgrade or downgrade as needed. You have been warned.
The build script that does this is available at https://gitorious.org/ktdreyer/xbmc-nightly.
Modifying and building a custom package
RPM Fusion uses CVS to manage the spec files and associated files for a package. To add to the complexity, Alex and Ken keep the canonical RPM spec in a separate Git repository, since Git is much easier to work with than CVS. We do all commmits to Git first, and then periodically sync that to CVS.
To do a checkout with Git:
git clone git://fedorapeople.org/home/fedora/alexlan/public_git/xbmc-rpm.git
Doing an XBMC upgrade
Let's say RPM Fusion is shipping an older version of XBMC, and you want a newer version.
Clone the Git repo, and maybe even looking through the history of commits (git log -p), so you can see how we do each update.
The first step is to change the Git tag in xbmc-generate-tarball-xz.sh and re-run that script. That will download a tarball to your working directory and strip it of all the unneeded bits.
The next step is to verify whether xbmc-pvr-addons-generate-tarball-xz.sh requires an updated hash value. It's possible that the upstream developers bumped the git sha-1 hash in your new version. If so, you'll need to update the hash and re-run the script. If not, you can just leave it as-is.
Next, update the version in xbmc.spec, and I also like to use fedpkg new-sources to automatically update the .gitignore and sources files. It's ok if fedpkg complains about failure to upload, since RPM Fusion technically doesn't use fedpkg.
Lastly, make a git commit (fedpkg commit -c) that updates everything to the latest version.
Building from Git
Use fedpkg srpm inside the Git repo in order to get a new SRPM. As mentioned above, because RPM Fusion's not yet plumbed up together with fedpkg, you must then use mock directly in order to build that SRPM as a binary RPM.
fedpkg srpm mock -r fedora-18-i386-rpmfusion_free rebuild xbmc...src.rpm
(make sure you have the mock-rpmfusion-free package installed)
Once you're sure it builds on a couple platforms (like F18 and F19), then you get a patch with git format-patch and attach it to your bugzilla report.
Maybe you're already familiar with mock and fedpkg... if so, great! If not, read over some of the relevant fedoraproject.org wiki pages.