diff options
Diffstat (limited to 'pkgs/applications/virtualization/qemu/default.nix')
-rw-r--r-- | pkgs/applications/virtualization/qemu/default.nix | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index 24d2e8dc217..0dc91af767f 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -4,39 +4,43 @@ , makeWrapper, removeReferencesTo , attr, libcap, libcap_ng, socat, libslirp , CoreServices, Cocoa, Hypervisor, rez, setfile, vmnet -, guestAgentSupport ? with stdenv.hostPlatform; isLinux || isNetBSD || isOpenBSD || isSunOS || isWindows -, numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl -, seccompSupport ? stdenv.isLinux, libseccomp -, alsaSupport ? lib.hasSuffix "linux" stdenv.hostPlatform.system && !nixosTestRunner -, pulseSupport ? !stdenv.isDarwin && !nixosTestRunner, libpulseaudio -, pipewireSupport ? !stdenv.isDarwin && !nixosTestRunner, pipewire -, sdlSupport ? !stdenv.isDarwin && !nixosTestRunner, SDL2, SDL2_image -, jackSupport ? !stdenv.isDarwin && !nixosTestRunner, libjack2 -, gtkSupport ? !stdenv.isDarwin && !xenSupport && !nixosTestRunner, gtk3, gettext, vte, wrapGAppsHook -, vncSupport ? !nixosTestRunner, libjpeg, libpng -, smartcardSupport ? !nixosTestRunner, libcacard -, spiceSupport ? true && !nixosTestRunner, spice, spice-protocol -, ncursesSupport ? !nixosTestRunner, ncurses +, guestAgentSupport ? (with stdenv.hostPlatform; isLinux || isNetBSD || isOpenBSD || isSunOS || isWindows) && !toolsOnly +, numaSupport ? stdenv.isLinux && !stdenv.isAarch32 && !toolsOnly, numactl +, seccompSupport ? stdenv.isLinux && !toolsOnly, libseccomp +, alsaSupport ? lib.hasSuffix "linux" stdenv.hostPlatform.system && !nixosTestRunner && !toolsOnly +, pulseSupport ? !stdenv.isDarwin && !nixosTestRunner && !toolsOnly, libpulseaudio +, pipewireSupport ? !stdenv.isDarwin && !nixosTestRunner && !toolsOnly, pipewire +, sdlSupport ? !stdenv.isDarwin && !nixosTestRunner && !toolsOnly, SDL2, SDL2_image +, jackSupport ? !stdenv.isDarwin && !nixosTestRunner && !toolsOnly, libjack2 +, gtkSupport ? !stdenv.isDarwin && !xenSupport && !nixosTestRunner && !toolsOnly, gtk3, gettext, vte, wrapGAppsHook +, vncSupport ? !nixosTestRunner && !toolsOnly, libjpeg, libpng +, smartcardSupport ? !nixosTestRunner && !toolsOnly, libcacard +, spiceSupport ? true && !nixosTestRunner && !toolsOnly, spice, spice-protocol +, ncursesSupport ? !nixosTestRunner && !toolsOnly, ncurses , usbredirSupport ? spiceSupport, usbredir , xenSupport ? false, xen , cephSupport ? false, ceph , glusterfsSupport ? false, glusterfs, libuuid , openGLSupport ? sdlSupport, mesa, libepoxy, libdrm , virglSupport ? openGLSupport, virglrenderer -, libiscsiSupport ? true, libiscsi +, libiscsiSupport ? !toolsOnly, libiscsi , smbdSupport ? false, samba -, tpmSupport ? true +, tpmSupport ? !toolsOnly , uringSupport ? stdenv.isLinux, liburing , canokeySupport ? false, canokey-qemu -, capstoneSupport ? true, capstone +, capstoneSupport ? !toolsOnly, capstone , enableDocs ? true , hostCpuOnly ? false -, hostCpuTargets ? (if hostCpuOnly +, hostCpuTargets ? (if toolsOnly + then [ ] + else if hostCpuOnly then (lib.optional stdenv.isx86_64 "i386-softmmu" ++ ["${stdenv.hostPlatform.qemuArch}-softmmu"]) else null) , nixosTestRunner ? false +, toolsOnly ? false , gitUpdater +, qemu-utils # for tests attribute }: let @@ -47,12 +51,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "qemu" + lib.optionalString xenSupport "-xen" + lib.optionalString hostCpuOnly "-host-cpu-only" - + lib.optionalString nixosTestRunner "-for-vm-tests"; - version = "8.1.1"; + + lib.optionalString nixosTestRunner "-for-vm-tests" + + lib.optionalString toolsOnly "-utils"; + version = "8.1.2"; src = fetchurl { url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz"; - hash = "sha256-N84u9eUA+3UvaBEXxotFEYMD6kmn4mvVQIDO1U+rfe8="; + hash = "sha256-VBUmp2RXbrSU0v9exGrrJT5i6ikDXRwjwKivTmzU8Ic="; }; depsBuildBuild = [ buildPackages.stdenv.cc ] @@ -239,14 +244,15 @@ stdenv.mkDerivation (finalAttrs: { ''; # Add a ‘qemu-kvm’ wrapper for compatibility/convenience. - postInstall = '' + postInstall = lib.optionalString (!toolsOnly) '' ln -s $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} $out/bin/qemu-kvm ''; passthru = { qemu-system-i386 = "bin/qemu-system-i386"; - tests = { + tests = lib.optionalAttrs (!toolsOnly) { qemu-tests = finalAttrs.finalPackage.overrideAttrs (_: { doCheck = true; }); + qemu-utils-builds = qemu-utils; }; updateScript = gitUpdater { # No nicer place to find latest release. @@ -260,11 +266,14 @@ stdenv.mkDerivation (finalAttrs: { requiredSystemFeatures = [ "big-parallel" ]; meta = with lib; { - homepage = "http://www.qemu.org/"; + homepage = "https://www.qemu.org/"; description = "A generic and open source machine emulator and virtualizer"; license = licenses.gpl2Plus; - mainProgram = "qemu-kvm"; maintainers = with maintainers; [ eelco qyliss ]; platforms = platforms.unix; + } + # toolsOnly: Does not have qemu-kvm and there's no main support tool + // lib.optionalAttrs (!toolsOnly) { + mainProgram = "qemu-kvm"; }; }) |