2021-10-18 23:53:44 +01:00
|
|
|
{ lib
|
|
|
|
, fetchFromGitHub
|
|
|
|
, stdenv
|
|
|
|
, makeWrapper
|
|
|
|
, qemu
|
|
|
|
, gnugrep
|
|
|
|
, lsb-release
|
|
|
|
, jq
|
|
|
|
, procps
|
|
|
|
, python3
|
|
|
|
, cdrtools
|
|
|
|
, usbutils
|
|
|
|
, util-linux
|
|
|
|
, spicy
|
|
|
|
, swtpm
|
|
|
|
, wget
|
|
|
|
, xdg-user-dirs
|
|
|
|
, xrandr
|
|
|
|
, zsync
|
2021-12-07 11:49:40 +00:00
|
|
|
, OVMF
|
|
|
|
, quickemu
|
|
|
|
, testVersion
|
2021-10-18 23:53:44 +01:00
|
|
|
}:
|
|
|
|
let
|
|
|
|
runtimePaths = [
|
|
|
|
qemu
|
|
|
|
gnugrep
|
|
|
|
jq
|
|
|
|
lsb-release
|
|
|
|
procps
|
|
|
|
python3
|
|
|
|
cdrtools
|
|
|
|
usbutils
|
|
|
|
util-linux
|
|
|
|
spicy
|
|
|
|
swtpm
|
|
|
|
wget
|
|
|
|
xdg-user-dirs
|
|
|
|
xrandr
|
|
|
|
zsync
|
|
|
|
];
|
|
|
|
in
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
pname = "quickemu";
|
2021-12-07 11:49:40 +00:00
|
|
|
version = "3.11";
|
2021-10-18 23:53:44 +01:00
|
|
|
|
|
|
|
src = fetchFromGitHub {
|
2021-12-07 11:49:40 +00:00
|
|
|
owner = "quickemu-project";
|
|
|
|
repo = "quickemu";
|
2021-10-18 23:53:44 +01:00
|
|
|
rev = version;
|
2021-12-07 11:49:40 +00:00
|
|
|
sha256 = "1xwf9vwbr57wmyxfcqzl1jnmfx3ffh7sfqf0zcdq41wqkm8s106n";
|
2021-10-18 23:53:44 +01:00
|
|
|
};
|
|
|
|
|
2021-12-07 11:49:40 +00:00
|
|
|
patches = [
|
|
|
|
./efi_vars_ensure_writable.patch
|
|
|
|
./input_overrides.patch
|
|
|
|
];
|
|
|
|
|
2021-10-18 23:53:44 +01:00
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
runHook preInstall
|
|
|
|
|
|
|
|
install -Dm755 -t "$out/bin" quickemu quickget macrecovery
|
|
|
|
|
2021-12-07 11:49:40 +00:00
|
|
|
for f in quickget macrecovery quickemu; do
|
|
|
|
wrapProgram $out/bin/$f \
|
|
|
|
--prefix PATH : "${lib.makeBinPath runtimePaths}" \
|
|
|
|
--set ENV_EFI_CODE "${OVMF.fd}/FV/OVMF_CODE.fd" \
|
|
|
|
--set ENV_EFI_VARS "${OVMF.fd}/FV/OVMF_VARS.fd"
|
|
|
|
done
|
2021-10-18 23:53:44 +01:00
|
|
|
|
|
|
|
runHook postInstall
|
|
|
|
'';
|
|
|
|
|
2021-12-07 11:49:40 +00:00
|
|
|
passthru.tests = testVersion { package = quickemu; };
|
|
|
|
|
2021-10-18 23:53:44 +01:00
|
|
|
meta = with lib; {
|
|
|
|
description = "Quickly create and run optimised Windows, macOS and Linux desktop virtual machines";
|
2021-12-07 11:49:40 +00:00
|
|
|
homepage = "https://github.com/quickemu-project/quickemu";
|
2021-10-18 23:53:44 +01:00
|
|
|
license = licenses.mit;
|
|
|
|
maintainers = with maintainers; [ fedx-sudo ];
|
|
|
|
};
|
|
|
|
}
|