From 442623e49918f0c6b5b7ee91e519ab38558ca032 Mon Sep 17 00:00:00 2001 From: Michael Raskin <7c6f434c@mail.ru> Date: Wed, 28 Dec 2016 15:02:24 +0100 Subject: [PATCH] qemu_28: init at 2.8.0; not updating the main Qemu expression yet because there were some claims about NixOS test fragility --- pkgs/applications/virtualization/qemu/2.8.nix | 93 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 5 + 2 files changed, 98 insertions(+) create mode 100644 pkgs/applications/virtualization/qemu/2.8.nix diff --git a/pkgs/applications/virtualization/qemu/2.8.nix b/pkgs/applications/virtualization/qemu/2.8.nix new file mode 100644 index 000000000000..677386819d3d --- /dev/null +++ b/pkgs/applications/virtualization/qemu/2.8.nix @@ -0,0 +1,93 @@ +{ stdenv, fetchurl, fetchpatch, python2, zlib, pkgconfig, glib +, ncurses, perl, pixman, vde2, alsaLib, texinfo, libuuid, flex +, bison, lzo, snappy, libaio, gnutls, nettle, curl +, makeWrapper +, attr, libcap, libcap_ng +, CoreServices, Cocoa, rez, setfile +, numaSupport ? stdenv.isLinux, numactl +, seccompSupport ? stdenv.isLinux, libseccomp +, pulseSupport ? !stdenv.isDarwin, libpulseaudio +, sdlSupport ? !stdenv.isDarwin, SDL +, vncSupport ? true, libjpeg, libpng +, spiceSupport ? !stdenv.isDarwin, spice, spice_protocol, usbredir +, x86Only ? false +, nixosTestRunner ? false +}: + +with stdenv.lib; +let + version = "2.8.0"; + audio = optionalString (hasSuffix "linux" stdenv.system) "alsa," + + optionalString pulseSupport "pa," + + optionalString sdlSupport "sdl,"; +in + +stdenv.mkDerivation rec { + name = "qemu-" + + stdenv.lib.optionalString x86Only "x86-only-" + + stdenv.lib.optionalString nixosTestRunner "for-vm-tests-" + + version; + + src = fetchurl { + url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2"; + sha256 = "0qjy3rcrn89n42y5iz60kgr0rrl29hpnj8mq2yvbc1wrcizmvzfs"; + }; + + buildInputs = + [ python2 zlib pkgconfig glib ncurses perl pixman + vde2 texinfo libuuid flex bison makeWrapper lzo snappy + gnutls nettle curl + ] + ++ optionals stdenv.isDarwin [ CoreServices Cocoa rez setfile ] + ++ optionals seccompSupport [ libseccomp ] + ++ optionals numaSupport [ numactl ] + ++ optionals pulseSupport [ libpulseaudio ] + ++ optionals sdlSupport [ SDL ] + ++ optionals vncSupport [ libjpeg libpng ] + ++ optionals spiceSupport [ spice_protocol spice usbredir ] + ++ optionals stdenv.isLinux [ alsaLib libaio libcap_ng libcap attr ]; + + enableParallelBuilding = true; + + patches = [ + ./no-etc-install.patch + ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch; + hardeningDisable = [ "stackprotector" ]; + + configureFlags = + [ "--smbd=smbd" # use `smbd' from $PATH + "--audio-drv-list=${audio}" + "--sysconfdir=/etc" + "--localstatedir=/var" + ] + ++ optional numaSupport "--enable-numa" + ++ optional seccompSupport "--enable-seccomp" + ++ optional spiceSupport "--enable-spice" + ++ optional x86Only "--target-list=i386-softmmu,x86_64-softmmu" + ++ optional stdenv.isDarwin "--enable-cocoa" + ++ optional stdenv.isLinux "--enable-linux-aio"; + + postFixup = + '' + for exe in $out/bin/qemu-system-* ; do + paxmark m $exe + done + ''; + + postInstall = + '' + # Add a ‘qemu-kvm’ wrapper for compatibility/convenience. + p="$out/bin/qemu-system-${if stdenv.system == "x86_64-linux" then "x86_64" else "i386"}" + if [ -e "$p" ]; then + makeWrapper "$p" $out/bin/qemu-kvm --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)" + fi + ''; + + meta = with stdenv.lib; { + homepage = http://www.qemu.org/; + description = "A generic and open source machine emulator and virtualizer"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ viric eelco ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b5d5cd532919..39ddbf8022f2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14481,6 +14481,11 @@ in inherit (darwin.stubs) rez setfile; }; + qemu_28 = callPackage ../applications/virtualization/qemu/2.8.nix { + inherit (darwin.apple_sdk.frameworks) CoreServices Cocoa; + inherit (darwin.stubs) rez setfile; + }; + qgis = callPackage ../applications/gis/qgis {}; qgroundcontrol = qt55.callPackage ../applications/science/robotics/qgroundcontrol { };