Packaging VirtualBox
This page exists so that we can collaborate on getting VirtualBox packaged for Fedora. Note it can't make it to Fedora as it contains a kernel module, so targets are Livna and RPMFusion.
Source repository
SPEC and patches are stored in a Mercurial repository. To check it out, do the following:
{{{ $ hg clone ssh://people.fedoraproject.org//home/fedora/lkundrak/repo/virtualbox }}}
Look at the {{{Makefile}}} to see for some shorthands. Feel free to improve it. Use {{{make srpm}}} to create a source package, use mock to build it.
If you add patches, don't forget to {{{hg add}}} those. Once your patches look sane, do a {{{hg commit}}}. If you can {{{hg push}}} the patches to the repository if you're in {{{cla_done}}} FAS group, otherwise feel free to mail the patches to lkundrak@redhat.com, he'll be happy to push :) Please add to your {{{~/.hgrc}}} file on fedorapeople: {{{ [trusted] users=lkundrak }}} This will make hg send a notification mail when you push your patch.
Building VirtualBox
VirtualBox needs kBuild to build.
Repository with binaries prebuilt for i386 and x86_64 as well as source packages is available at http://people.fedoraproject.org/~lkundrak/kBuild/. Feel free to grab the source package, polish it if needed, and submit for inclusion in Fedora.
This is food for your mock or yum configuration:
{{{ [kBuild] name=kBuild gpgcheck=0 baseurl=http://people.fedoraproject.org/~lkundrak/kBuild/ }}}
TODO
- Does it work with all kernel flavours?
- Make it honour RPM_OPT_FLAGS as much as possible
- Where doesn't it do? (some info) Also the current spec does not use any of the RPM_OPT_FLAGS
- Guest additions
- If there are some that don't depend on a kernel module, they should be packaged separately
- the shared folders one does depend
- x11 driver probably does not
- We should not build 32bit ones when building a 64bit package
- create /usr/share/hwdata/videoaliases/virtualbox.xinf
- how to find out the pci IDs?
- There is some information about how to create .xinf files at my page: TillMaas
- long time idea: also create an iso image that can be used in guests to install additions like upstream does it.
- packages: timesync
- iso: timesync and xorg drivers
- iso: Windows stuff (maybe it can be crosscompiled with xmingw-gcc or whatever the correct name is)
- Icon / installation of .desktop file
- x86_64 Test
- use rpath instead of wrapper script(?)
- Install into FHS hierarchy
- Debian does this
- In case libaries can't be installed directly into %{_libdir}, is ldconfig configuration file a good alternative to rpath and wrapper?
- Selinux for strict mode
- Do not disable tests
- kernel module packages
- Provide both dkms and kmod2?
- ThorstenLeemhis, 20080307 -- livna in devel support akmods; IOW: you can maintain one normal kmod spec and have the traditional kmods build for the repo as well as support akmods, which provide a dkms-like functionality
- maybe the kmod package needs to be adjusted to work in rpmfusion-devel (builds on Fedora 8)
- test, whether they actually work, e.g. on xen?
- Review kBuild for Fedora
- Check out debian patches for VirtualBox and kBuild
- Seem mostly uninteresting :)