diff options
author | Friedrich Altheide <11352905+FriedrichAltheide@users.noreply.github.com> | 2024-04-10 16:36:10 +0200 |
---|---|---|
committer | Friedrich Altheide <11352905+FriedrichAltheide@users.noreply.github.com> | 2024-05-13 06:36:01 +0200 |
commit | b9d92aff71306d69eff907d4746abb554141dcef (patch) | |
tree | caa46ecce7ba83dfc758c656b1e956d656c54681 /pkgs/applications/virtualization/virtualbox | |
parent | 4b3ae365f6c7595f69da6ddd74d7168dd850a98a (diff) |
virtualbox: introduce finalAttrs
Diffstat (limited to 'pkgs/applications/virtualization/virtualbox')
-rw-r--r-- | pkgs/applications/virtualization/virtualbox/default.nix | 43 | ||||
-rwxr-xr-x | pkgs/applications/virtualization/virtualbox/update.sh | 4 |
2 files changed, 26 insertions, 21 deletions
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index 5ea31e2688b6e..e2312e7c7aebf 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -31,7 +31,11 @@ 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 = "7.0.14"; + virtualboxVersion = "7.0.14"; + virtualboxSha256 = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9"; + + kvmPatchVersion = "20240502"; + kvmPatchHash = "sha256-KokIrrAoJutHzPg6e5YAJgDGs+nQoVjapmyn9kG5tV0="; # The KVM build is not compatible to VirtualBox's kernel modules. So don't export # modsrc at all. @@ -40,13 +44,15 @@ let virtualboxGuestAdditionsIso = callPackage guest-additions-iso/default.nix { }; inherit (lib) optional optionals optionalString getDev getLib; -in stdenv.mkDerivation { +in stdenv.mkDerivation (finalAttrs: { pname = "virtualbox"; - inherit version; + version = finalAttrs.virtualboxVersion; + + inherit buildType virtualboxVersion virtualboxSha256 kvmPatchVersion kvmPatchHash virtualboxGuestAdditionsIso; src = fetchurl { - url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; - sha256 = "45860d834804a24a163c1bb264a6b1cb802a5bc7ce7e01128072f8d6a4617ca9"; + url = "https://download.virtualbox.org/virtualbox/${finalAttrs.virtualboxVersion}/VirtualBox-${finalAttrs.virtualboxVersion}.tar.bz2"; + sha256 = finalAttrs.virtualboxSha256; }; outputs = [ "out" ] ++ optional withModsrc "modsrc"; @@ -102,7 +108,7 @@ in stdenv.mkDerivation { # No update patch disables check for update function # https://bugs.launchpad.net/ubuntu/+source/virtualbox-ose/+bug/272212 (fetchpatch { - url = "https://salsa.debian.org/pkg-virtualbox-team/virtualbox/-/raw/debian/${version}-dfsg-1/debian/patches/16-no-update.patch"; + url = "https://salsa.debian.org/pkg-virtualbox-team/virtualbox/-/raw/debian/7.0.14-dfsg-1/debian/patches/16-no-update.patch"; hash = "sha256-UJHpuB6QB/BbxJorlqZXUF12lgq8gbLMRHRMsbyqRpY="; })] ++ [ ./extra_symbols.patch ] @@ -119,14 +125,11 @@ in stdenv.mkDerivation { }) # While the KVM patch should not break any other behavior if --with-kvm is not specified, # we don't take any chances and only apply it if people actually want to use KVM support. - ++ optional enableKvm (fetchpatch - (let - patchVersion = "20240502"; - in { - name = "virtualbox-${version}-kvm-dev-${patchVersion}.patch"; - url = "https://github.com/cyberus-technology/virtualbox-kvm/releases/download/dev-${patchVersion}/kvm-backend-${version}-dev-${patchVersion}.patch"; - hash = "sha256-KokIrrAoJutHzPg6e5YAJgDGs+nQoVjapmyn9kG5tV0="; - })) + ++ optional enableKvm (fetchpatch { + name = "virtualbox-${finalAttrs.virtualboxVersion}-kvm-dev-${finalAttrs.kvmPatchVersion}.patch"; + url = "https://github.com/cyberus-technology/virtualbox-kvm/releases/download/dev-${finalAttrs.kvmPatchVersion}/kvm-backend-${finalAttrs.virtualboxVersion}-dev-${finalAttrs.kvmPatchVersion}.patch"; + hash = finalAttrs.kvmPatchHash; + }) ++ [ ./qt-dependency-paths.patch # https://github.com/NixOS/nixpkgs/issues/123851 @@ -195,14 +198,14 @@ in stdenv.mkDerivation { -i AutoConfig.kmk sed -e 's@arch/x86/@@' \ -i Config.kmk - substituteInPlace Config.kmk --replace "VBOX_WITH_TESTCASES = 1" "#" + substituteInPlace Config.kmk --replace-fail "VBOX_WITH_TESTCASES = 1" "#" ''; enableParallelBuilding = true; buildPhase = '' source env.sh - kmk -j $NIX_BUILD_CORES BUILD_TYPE="${buildType}" + kmk -j $NIX_BUILD_CORES BUILD_TYPE="${finalAttrs.buildType}" ''; installPhase = '' @@ -211,7 +214,7 @@ in stdenv.mkDerivation { # Install VirtualBox files mkdir -p "$libexec" - find out/linux.*/${buildType}/bin -mindepth 1 -maxdepth 1 \ + find out/linux.*/${finalAttrs.buildType}/bin -mindepth 1 -maxdepth 1 \ -name src -o -exec cp -avt "$libexec" {} + mkdir -p $out/bin @@ -249,12 +252,12 @@ in stdenv.mkDerivation { ''} ${optionalString withModsrc '' - cp -rv out/linux.*/${buildType}/bin/src "$modsrc" + cp -rv out/linux.*/${finalAttrs.buildType}/bin/src "$modsrc" ''} mkdir -p "$out/share/virtualbox" cp -rv src/VBox/Main/UnattendedTemplates "$out/share/virtualbox" - ln -s "${virtualboxGuestAdditionsIso}" "$out/share/virtualbox/VBoxGuestAdditions.iso" + ln -s "${finalAttrs.virtualboxGuestAdditionsIso}" "$out/share/virtualbox/VBoxGuestAdditions.iso" ''; preFixup = optionalString (!headless) '' @@ -289,4 +292,4 @@ in stdenv.mkDerivation { platforms = [ "x86_64-linux" ]; mainProgram = "VirtualBox"; }; -} +}) diff --git a/pkgs/applications/virtualization/virtualbox/update.sh b/pkgs/applications/virtualization/virtualbox/update.sh index 5269f85ee9389..f1b1d71a355c2 100755 --- a/pkgs/applications/virtualization/virtualbox/update.sh +++ b/pkgs/applications/virtualization/virtualbox/update.sh @@ -34,7 +34,9 @@ if [ ! "$oldVersion" = "$latestVersion" ]; then virtualBoxOldShaSum=$(oldHash ${attr}Extpack) extpackOldShaSum=$(oldHash ${attr}Extpack) - update-source-version $attr $latestVersion $virtualBoxShaSum + sed -e "s/virtualboxVersion =.*;/virtualboxVersion = \"$latestVersion\";/g" \ + -e "s/virtualboxSha256 =.*;/virtualboxSha256 = \"$virtualBoxShaSum\";/g" \ + -i $virtualboxNixFile sed -i -e 's|value = "'$extpackOldShaSum'"|value = "'$extpackShaSum'"|' $extpackNixFile sed -e "s/sha256 =.*;/sha256 = \"$guestAdditionsIsoShaSum\";/g" \ -i $guestAdditionsIsoNixFile |