diff options
author | Sander van der Burg <s.vanderburg@tudelft.nl> | 2009-10-13 13:32:00 +0000 |
---|---|---|
committer | Sander van der Burg <s.vanderburg@tudelft.nl> | 2009-10-13 13:32:00 +0000 |
commit | fef3041a74f60f023ef448fe76446bcf100169ef (patch) | |
tree | bcbce6b735d54964ca1c3966a05d85cc471ecc75 /pkgs/applications/virtualization/virtualbox/guest-additions/default.nix | |
parent | 223789d4118e3feccb5e88faa54f3ed3567e633c (diff) | |
download | nixlib-fef3041a74f60f023ef448fe76446bcf100169ef.tar nixlib-fef3041a74f60f023ef448fe76446bcf100169ef.tar.gz nixlib-fef3041a74f60f023ef448fe76446bcf100169ef.tar.bz2 nixlib-fef3041a74f60f023ef448fe76446bcf100169ef.tar.lz nixlib-fef3041a74f60f023ef448fe76446bcf100169ef.tar.xz nixlib-fef3041a74f60f023ef448fe76446bcf100169ef.tar.zst nixlib-fef3041a74f60f023ef448fe76446bcf100169ef.zip |
Added VirtualBox guest additions package. Currently only builds on i686-linux
svn path=/nixpkgs/trunk/; revision=17778
Diffstat (limited to 'pkgs/applications/virtualization/virtualbox/guest-additions/default.nix')
-rw-r--r-- | pkgs/applications/virtualization/virtualbox/guest-additions/default.nix | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix new file mode 100644 index 000000000000..655028bc8b88 --- /dev/null +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix @@ -0,0 +1,94 @@ +{ stdenv, fetchurl, lib, patchelf, cdrkit, kernel +, libX11, libXt, libXext, libXmu, libXcomposite}: + +stdenv.mkDerivation { + name = "VirtualBox-GuestAdditions-3.0.8"; + src = fetchurl { + url = http://download.virtualbox.org/virtualbox/3.0.8/VBoxGuestAdditions_3.0.8.iso; + sha256 = "0ia231klahqpn21qkn9x3bvy0mxaz051j8hgqv1afvnx2f3gjsvf"; + }; + KERN_DIR = "${kernel}/lib/modules/*/build"; + buildInputs = [ patchelf cdrkit ]; + buildCommand = '' + isoinfo -J -i $src -x /VBoxLinuxAdditions-x86.run > ./VBoxLinuxAdditions-x86.run + + chmod 755 ./VBoxLinuxAdditions-x86.run + ./VBoxLinuxAdditions-x86.run --noexec --keep + cd linux + + # Build kernel modules + cd module + for i in `find . -name Makefile` + do + sed -i -e "s/depmod/echo/g" $i + done + make + cd .. + + # Change the interpreter for various binaries + for i in ./{mount.vboxsf,vboxadd-service,VBoxClient,VBoxControl} + do + patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $i + done + + # Change rpath for various binaries and libraries + patchelf --set-rpath ${stdenv.gcc.gcc}/lib:${libX11}/lib:${libXt}/lib:${libXext}/lib:${libXmu}/lib ./VBoxClient + + for i in ./VBoxOGL{arrayspu,errorspu,feedbackspu,packspu,passthroughspu}.so + do + patchelf --set-rpath $out/lib $i + done + + patchelf --set-rpath $out/lib:${libXcomposite}/lib ./VBoxOGL.so + + # Remove references to /usr from various scripts and files + sed -i -e "s|/usr/bin|$out/bin|" vboxclient.desktop + sed -i -e "s|/usr/bin|$out/bin|" 98vboxadd-xclient + + # Install binaries + ensureDir $out/sbin + install -m 4755 mount.vboxsf $out/sbin/mount.vboxsf + install -m 755 vboxadd-service $out/sbin/vboxadd-service + + ensureDir $out/bin + install -m 755 VBoxControl $out/bin/VBoxControl + install -m 755 VBoxClient $out/bin/VBoxClient + install -m 755 VBoxRandR.sh $out/bin/VBoxRandR + install -m 755 98vboxadd-xclient $out/bin/VBoxClient-all + + # Install OpenGL libraries + ensureDir $out/lib + cp -v VBoxOGL*.so $out/lib + ensureDir $out/lib/dri + ln -s $out/lib/VBoxOGL.so $out/lib/dri/vboxvideo_dri.so + + # Install desktop file + ensureDir $out/share/applications + cp -v vboxclient.desktop $out/share/applications + + # Install Xorg drivers + ensureDir $out/lib/xorg/modules/{drivers,input} + install -m 644 vboxvideo_drv_15.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so + install -m 644 vboxmouse_drv_15.so $out/lib/xorg/modules/input/vboxmouse_drv.so + + # Install kernel modules + cd module + kernelVersion=$(cd ${kernel}/lib/modules; ls) + export MODULE_DIR=$out/lib/modules/$kernelVersion/misc + ensureDir $MODULE_DIR + make install + cd vboxvideo_drm + make install + ''; + + meta = { + description = "Guest additions for VirtualBox"; + longDescriptions = '' + Various add-ons which makes NixOS work better as guest OS inside VirtualBox. + This add-on provides support for dynamic resizing of the X Display, shared + host/guest clipboard support and guest OpenGL support. + ''; + license = "GPL"; + maintainers = [ lib.maintainers.sander ]; + }; +} |