From 6d69293f26ff57a2621b299409af814ba7226413 Mon Sep 17 00:00:00 2001 From: aszlig Date: Tue, 13 Sep 2016 03:48:14 +0200 Subject: [PATCH] virtualbox: Generate and use upstream-info.json We now no longer need to update VirtualBox manually, which has a few advantages. Along with making it just easier to update this also makes the update procedure way less error-prone, for example if people forget to bump the extension pack revision or to update the guest additions. Signed-off-by: aszlig --- .../virtualization/virtualbox/default.nix | 15 ++++----------- .../virtualbox/guest-additions/default.nix | 2 +- .../virtualization/virtualbox/upstream-info.json | 8 ++++++++ 3 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 pkgs/applications/virtualization/virtualbox/upstream-info.json diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index 161e3ab35bd3..3a75479b2cfd 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -16,11 +16,7 @@ with stdenv.lib; let buildType = "release"; - # When changing this, update ./guest-additions and the extpack - # revision/hash as well. See - # http://download.virtualbox.org/virtualbox/${version}/SHA256SUMS - # for hashes. - version = "5.1.4"; + inherit (importJSON ./upstream-info.json) version extpackRev extpack main; forEachModule = action: '' for mod in \ @@ -41,12 +37,9 @@ let ''; # See https://github.com/NixOS/nixpkgs/issues/672 for details - extpackRevision = "110228"; extensionPack = requireFile rec { - name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack"; - # IMPORTANT: Hash must be base16 encoded because it's used as an input to - # VBoxExtPackHelperApp! - sha256 = "9462ff1b567c37ad9a33c0c7ca1925776615ec89b5a72563f29a8cc8514cf316"; + name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRev}.vbox-extpack"; + sha256 = extpack; message = '' In order to use the extension pack, you need to comply with the VirtualBox Personal Use and Evaluation License (PUEL) available at: @@ -70,7 +63,7 @@ in stdenv.mkDerivation { src = fetchurl { url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2"; - sha256 = "b9a14a7771059c55c44b97f8d4eef9bea84544f3e215e0caa563bc35e2f16aaf"; + sha256 = main; }; buildInputs = diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix index 0a6293462b82..c32a34fbc127 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation { src = fetchurl { url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso"; - sha256 = "e385b698338003595f6cdeee7b631ec6713058ba1227d1f2a1da342bdf741982"; + sha256 = (lib.importJSON ../upstream-info.json).guest; }; KERN_DIR = "${kernel.dev}/lib/modules/*/build"; diff --git a/pkgs/applications/virtualization/virtualbox/upstream-info.json b/pkgs/applications/virtualization/virtualbox/upstream-info.json new file mode 100644 index 000000000000..de0adf2e9db3 --- /dev/null +++ b/pkgs/applications/virtualization/virtualbox/upstream-info.json @@ -0,0 +1,8 @@ +{ + "__NOTE": "Generated using update.py from the same directory.", + "extpack": "9462ff1b567c37ad9a33c0c7ca1925776615ec89b5a72563f29a8cc8514cf316", + "extpackRev": "110228", + "guest": "e385b698338003595f6cdeee7b631ec6713058ba1227d1f2a1da342bdf741982", + "main": "b9a14a7771059c55c44b97f8d4eef9bea84544f3e215e0caa563bc35e2f16aaf", + "version": "5.1.4" +}