diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/virtualization/qemu/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/virtualization/qemu/default.nix | 59 |
1 files changed, 55 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix index ee923f4e0cd0..2b183dd48d02 100644 --- a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix +++ b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, fetchpatch, python3, python3Packages, zlib, pkg-config, glib, buildPackages , perl, pixman, vde2, alsa-lib, texinfo, flex , bison, lzo, snappy, libaio, libtasn1, gnutls, nettle, curl, ninja, meson, sigtool -, makeWrapper, runtimeShell +, makeWrapper, runtimeShell, removeReferencesTo , attr, libcap, libcap_ng, socat , CoreServices, Cocoa, Hypervisor, rez, setfile , numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl @@ -49,7 +49,7 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ makeWrapper pkg-config flex bison meson ninja perl python3 python3Packages.sphinx python3Packages.sphinx_rtd_theme ] + nativeBuildInputs = [ makeWrapper removeReferencesTo pkg-config flex bison meson ninja perl python3 python3Packages.sphinx python3Packages.sphinx_rtd_theme ] ++ lib.optionals gtkSupport [ wrapGAppsHook ] ++ lib.optionals stdenv.isDarwin [ sigtool ]; @@ -88,14 +88,62 @@ stdenv.mkDerivation rec { patches = [ ./fix-qemu-ga.patch - ./9p-ignore-noatime.patch # Cocoa clipboard support only works on macOS 10.14+ (fetchpatch { url = "https://gitlab.com/qemu-project/qemu/-/commit/7e3e20d89129614f4a7b2451fe321cc6ccca3b76.diff"; sha256 = "09xz06g57wxbacic617pq9c0qb7nly42gif0raplldn5lw964xl2"; revert = true; }) - ] ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch; + # 9p-darwin for 7.0 backported to 6.2.0 + # + # Can generally be removed when updating derivation to 7.0. Nine of the + # patches can be drawn directly from QEMU upstream, but the second commit + # and the eleventh commit had to be modified when rebasing back to 6.2.0. + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/e0bd743bb2dd4985791d4de880446bdbb4e04fed.patch"; + sha256 = "sha256-c6QYL3zig47fJwm6rqkqGp3E1PakVTaihvXDRebbBlQ="; + }) + ./rename-9p-util.patch + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/f41db099c71151291c269bf48ad006de9cbd9ca6.patch"; + sha256 = "sha256-70/rrhZw+02JJbJ3CoW8B1GbdM4Lwb2WkUdwstYAoIQ="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/6b3b279bd670c6a2fa23c9049820c814f0e2c846.patch"; + sha256 = "sha256-7WqklSvLirEuxTXTIMQDQhWpXnwMseJ1RumT+faq/Y8="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/67a71e3b71a2834d028031a92e76eb9444e423c6.patch"; + sha256 = "sha256-COFm/SwfJSoSl9YDpL6ceAE8CcE4mGhsGxw1HMuL++o="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/38d7fd68b0c8775b5253ab84367419621aa032e6.patch"; + sha256 = "sha256-iwGIzq9FWW6zpbDg/IKrp5OZpK9cgQqTRWWq8WBIHRQ="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/57b3910bc3513ab515296692daafd1c546f3c115.patch"; + sha256 = "sha256-ybl9+umZAcQKHYL7NkGJQC0W7bccTagA9KQiFaR2LYA="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/b5989326f558faedd2511f29459112cced2ca8f5.patch"; + sha256 = "sha256-s+O9eCgj2Ev+INjL9LY9MJBdISIdZLslI3lue2DICGM="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/029ed1bd9defa33a80bb40cdcd003699299af8db.patch"; + sha256 = "sha256-mGqcRWcEibDJdhTRrN7ZWrMuCfUWW8vWiFj7sb2/RYo="; + }) + (fetchpatch { + url = "https://gitlab.com/qemu-project/qemu/-/commit/d3671fd972cd185a6923433aa4802f54d8b62112.patch"; + sha256 = "sha256-GUh5o7mbFTm/dm6CqcGdoMlC+YrV8RlcEwu/mxrfTzo="; + }) + ./allow-virtfs-on-darwin.patch + # QEMU upstream does not demand compatibility to pre-10.13, so 9p-darwin + # support on nix requires utimensat fallback. The patch adding this fallback + # set was removed during the process of upstreaming this functionality, and + # will still be needed in nix until the macOS SDK reaches 10.13+. + ./provide-fallback-for-utimensat.patch + ] + ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch; postPatch = '' # Otherwise tries to ensure /var/run exists. @@ -175,6 +223,7 @@ stdenv.mkDerivation rec { # copy qemu-ga (guest agent) to separate output mkdir -p $ga/bin cp $out/bin/qemu-ga $ga/bin/ + remove-references-to -t $out $ga/bin/qemu-ga '' + lib.optionalString gtkSupport '' # wrap GTK Binaries for f in $out/bin/qemu-system-*; do @@ -219,6 +268,7 @@ stdenv.mkDerivation rec { # Add a ‘qemu-kvm’ wrapper for compatibility/convenience. postInstall = '' + ln -s $out/libexec/virtiofsd $out/bin ln -s $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} $out/bin/qemu-kvm ''; @@ -239,5 +289,6 @@ stdenv.mkDerivation rec { mainProgram = "qemu-kvm"; maintainers = with maintainers; [ eelco qyliss ]; platforms = platforms.unix; + priority = 10; # Prefer virtiofsd from the virtiofsd package. }; } |