Unverified Commit 3c5319ad authored by K900's avatar K900 Committed by GitHub
Browse files

Merge pull request #219463 from K900/virtualbox-7.0.6

virtualbox: 6.1.40 -> 7.0.6
parents 28bcccb5 e8fbf83f
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ in {
      extraDisk = mkOption {
        description = lib.mdDoc ''
          Optional extra disk/hdd configuration.
          The disk will be an 'ext4' partition on a separate VMDK file.
          The disk will be an 'ext4' partition on a separate file.
        '';
        default = null;
        example = {
@@ -183,8 +183,8 @@ in {
          export HOME=$PWD
          export PATH=${pkgs.virtualbox}/bin:$PATH

          echo "creating VirtualBox pass-through disk wrapper (no copying involved)..."
          VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage
          echo "converting image to VirtualBox format..."
          VBoxManage convertfromraw $diskImage disk.vdi

          ${optionalString (cfg.extraDisk != null) ''
            echo "creating extra disk: data-disk.raw"
@@ -196,8 +196,8 @@ in {
              mkpart primary ext4 1MiB -1
            eval $(partx $dataDiskImage -o START,SECTORS --nr 1 --pairs)
            mkfs.ext4 -F -L ${cfg.extraDisk.label} $dataDiskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
            echo "creating extra disk: data-disk.vmdk"
            VBoxManage internalcommands createrawvmdk -filename data-disk.vmdk -rawdisk $dataDiskImage
            echo "creating extra disk: data-disk.vdi"
            VBoxManage convertfromraw $dataDiskImage data-disk.vdi
          ''}

          echo "creating VirtualBox VM..."
@@ -209,10 +209,10 @@ in {
            ${lib.cli.toGNUCommandLineShell { } cfg.params}
          VBoxManage storagectl "$vmName" ${lib.cli.toGNUCommandLineShell { } cfg.storageController}
          VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 0 --device 0 --type hdd \
            --medium disk.vmdk
            --medium disk.vdi
          ${optionalString (cfg.extraDisk != null) ''
            VBoxManage storageattach "$vmName" --storagectl ${cfg.storageController.name} --port 1 --device 0 --type hdd \
            --medium data-disk.vmdk
            --medium data-disk.vdi
          ''}

          echo "exporting VirtualBox VM..."
+10 −6
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
, libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
, qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
, alsa-lib, curl, libvpx, nettools, dbus, substituteAll, gsoap, zlib
, yasm, glslang
# If open-watcom-bin is not passed, VirtualBox will fall back to use
# the shipped alternative sources (assembly).
, open-watcom-bin
@@ -23,19 +24,19 @@ let
  buildType = "release";
  # Use maintainers/scripts/update.nix to update the version and all related hashes or
  # change the hashes in extpack.nix and guest-additions/default.nix as well manually.
  version = "6.1.40";
  version = "7.0.6";
in stdenv.mkDerivation {
  pname = "virtualbox";
  inherit version;

  src = fetchurl {
    url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
    sha256 = "bc857555d3e836ad9350a8f7b03bb54d2fdc04dddb2043d09813f4634bca4814";
    sha256 = "f146d9a86a35af0abb010e628636fd800cb476cc2ce82f95b0c0ca876e1756ff";
  };

  outputs = [ "out" "modsrc" ];

  nativeBuildInputs = [ pkg-config which docbook_xsl docbook_xml_dtd_43 ]
  nativeBuildInputs = [ pkg-config which docbook_xsl docbook_xml_dtd_43 yasm glslang ]
    ++ optional (!headless) wrapQtAppsHook;

  # Wrap manually because we wrap just a small number of executables.
@@ -94,7 +95,7 @@ in stdenv.mkDerivation {
      qtPluginPath = "${qtbase.bin}/${qtbase.qtPluginPrefix}:${qtsvg.bin}/${qtbase.qtPluginPrefix}:${qtwayland.bin}/${qtbase.qtPluginPrefix}";
    })
  ++ [
    ./qtx11extras.patch
    ./qt-dependency-paths.patch
    # https://github.com/NixOS/nixpkgs/issues/123851
    ./fix-audio-driver-loading.patch
  ];
@@ -130,14 +131,17 @@ in stdenv.mkDerivation {
    VBOX_JAVA_HOME                 := ${jdk}
    ''}
    ${optionalString (!headless) ''
    VBOX_WITH_VBOXSDL              := 1
    PATH_QT5_X11_EXTRAS_LIB        := ${getLib qtx11extras}/lib
    PATH_QT5_X11_EXTRAS_INC        := ${getDev qtx11extras}/include
    TOOL_QT5_LRC                   := ${getDev qttools}/bin/lrelease
    PATH_QT5_TOOLS_LIB             := ${getLib qttools}/lib
    PATH_QT5_TOOLS_INC             := ${getDev qttools}/include
    ''}
    ${optionalString enableWebService ''
    # fix gsoap missing zlib include and produce errors with --as-needed
    VBOX_GSOAP_CXX_LIBS := gsoapssl++ z
    ''}
    TOOL_QT5_LRC                   := ${getDev qttools}/bin/lrelease
    LOCAL_CONFIG

    ./configure \
@@ -174,7 +178,7 @@ in stdenv.mkDerivation {
      -name src -o -exec cp -avt "$libexec" {} +

    mkdir -p $out/bin
    for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} ${optionalString enableWebService "vboxwebsrv"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
    for file in ${optionalString (!headless) "VirtualBox VBoxSDL"} ${optionalString enableWebService "vboxwebsrv"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
        echo "Linking $file to /bin"
        test -x "$libexec/$file"
        ln -s "$libexec/$file" $out/bin/$file
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ fetchurl rec {
    # Manually sha256sum the extensionPack file, must be hex!
    # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
    # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
    let value = "29cf8410e2514ea4393f63f5e955b8311787873679fc23ae9a897fb70ef3f84a";
    let value = "292961aa8723b54f96f89f6d8abf7d8e29259d94b7de831dbffb9ae15d346434";
    in assert (builtins.stringLength value) == 64; value;

  meta = {
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ in stdenv.mkDerivation rec {

  src = fetchurl {
    url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
    sha256 = "d456c559926f1a8fdd7259056e0a50f12339fd494122cf30db7736e2032970c6";
    sha256 = "21e0f407d2a4f5c286084a70718aa20235ea75969eca0cab6cfab43a3499a010";
  };

  KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+2 −2
Original line number Diff line number Diff line
@@ -7,10 +7,10 @@ index 71b96a3..73391f0 100644
   endif
  else
-  $(eval $(target)_LIBS    += $(foreach module,$(qt_modules), $(PATH_SDK_QT5_LIB)/lib$(qt_prefix)Qt5$(module)$(qt_infix)$(SUFF_DLL)) )
+  $(eval $(target)_LIBS    += $(foreach module,$(qt_modules), $(if $(filter X11Extras,$(module)),$(PATH_QT5_X11_EXTRAS_LIB),$(PATH_SDK_QT5_LIB))/lib$(qt_prefix)Qt5$(module)$(qt_infix)$(SUFF_DLL)) )
+  $(eval $(target)_LIBS    += $(foreach module,$(qt_modules), $(if $(filter Help,$(module)),$(PATH_QT5_TOOLS_LIB),$(if $(filter X11Extras,$(module)),$(PATH_QT5_X11_EXTRAS_LIB),$(PATH_SDK_QT5_LIB)))/lib$(qt_prefix)Qt5$(module)$(qt_infix)$(SUFF_DLL)) )
  endif
- $(eval $(target)_INCS     += $(addprefix $(PATH_SDK_QT5_INC)/Qt,$(qt_modules)) $(PATH_SDK_QT5_INC) )
+ $(eval $(target)_INCS     += $(addprefix $(PATH_SDK_QT5_INC)/Qt,$(qt_modules)) $(PATH_SDK_QT5_INC) $(PATH_QT5_X11_EXTRAS_INC)/QtX11Extras )
+ $(eval $(target)_INCS     += $(addprefix $(PATH_SDK_QT5_INC)/Qt,$(qt_modules)) $(PATH_SDK_QT5_INC) $(PATH_QT5_X11_EXTRAS_INC)/QtX11Extras $(PATH_QT5_TOOLS_INC))
 endif
 $(eval $(target)_DEFS      += $(foreach module,$(toupper $(qt_modules)), QT_$(module)_LIB) )