···
{ stdenv, buildEnv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
2
-
, libXcursor, libXmu, qt5, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
2
+
, libXcursor, libXmu, qt5, libIDL, SDL, libcap, zlib, libpng, glib, lvm2
, which, alsaLib, curl, libvpx, gawk, nettools, dbus
5
-
, xorriso, makeself, perl, pkgconfig, nukeReferences
5
+
, xorriso, makeself, perl, pkgconfig
, javaBindings ? false, jdk ? null
, pythonBindings ? false, python ? null
, enableExtensionPack ? false, requireFile ? null, patchelf ? null, fakeroot ? null
···
inherit (importJSON ./upstream-info.json) version extpackRev extpack main;
21
-
forEachModule = action: ''
23
-
out/linux.*/${buildType}/bin/src/vboxdrv \
24
-
out/linux.*/${buildType}/bin/src/vboxpci \
25
-
out/linux.*/${buildType}/bin/src/vboxnetadp \
26
-
out/linux.*/${buildType}/bin/src/vboxnetflt
28
-
if [ "x$(basename "$mod")" != xvboxdrv -a ! -e "$mod/Module.symvers" ]
30
-
cp -v out/linux.*/${buildType}/bin/src/vboxdrv/Module.symvers \
31
-
"$mod/Module.symvers"
33
-
INSTALL_MOD_PATH="$out" INSTALL_MOD_DIR=misc \
34
-
make -j $NIX_BUILD_CORES -C "$MODULES_BUILD_DIR" DEPMOD=/do_not_use_depmod \
35
-
"M=\$(PWD)/$mod" BUILD_TYPE="${buildType}" ${action}
# See https://github.com/NixOS/nixpkgs/issues/672 for details
extensionPack = requireFile rec {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRev}.vbox-extpack";
···
62
-
name = "virtualbox-${version}-${kernel.version}";
44
+
name = "virtualbox-${version}";
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
51
+
outputs = [ "out" "modsrc" ];
[ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor libIDL
libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl
72
-
pkgconfig which libXmu nukeReferences libpng ]
56
+
pkgconfig which libXmu libpng ]
++ optional javaBindings jdk
++ optional pythonBindings python
++ optional pulseSupport libpulseaudio
···
83
-
MODULES_BUILD_DIR=`echo ${kernel.dev}/lib/modules/*/build`
84
-
sed -e 's@/lib/modules/`uname -r`/build@'$MODULES_BUILD_DIR@ \
85
-
-e 's@MKISOFS --version@MKISOFS -version@' \
67
+
sed -e 's@MKISOFS --version@MKISOFS -version@' \
-e 's@PYTHONDIR=.*@PYTHONDIR=${if pythonBindings then python else ""}@' \
ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2
ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux-x86-64.so.2
90
-
find . -type f -iname '*makefile*' -exec sed -i -e 's/depmod -a/:/g' {} +
s@"libdbus-1\.so\.3"@"${dbus.lib}/lib/libdbus-1.so.3"@g
s@"libasound\.so\.2"@"${alsaLib.out}/lib/libasound.so.2"@g
···
kmk -j $NIX_BUILD_CORES BUILD_TYPE="${buildType}"
155
-
${forEachModule "modules"}
···
find out/linux.*/${buildType}/bin -mindepth 1 -maxdepth 1 \
-name src -o -exec cp -avt "$libexec" {} +
167
-
# Install kernel modules
168
-
${forEachModule "modules_install"}
···
201
-
# Get rid of a reference to linux.dev.
202
-
nuke-refs $out/lib/modules/*/misc/*.ko
178
+
cp -rv out/linux.*/${buildType}/bin/src "$modsrc"
passthru = { inherit version; /* for guest additions */ };