From 5afa4f18d6173725d593e59f1c4a8f54b575f9fe Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Mon, 1 Jun 2015 01:49:57 -0700 Subject: [PATCH] qemu-nix: Build statically --- pkgs/applications/virtualization/qemu/default.nix | 10 +++++++--- pkgs/development/libraries/glib/default.nix | 7 +++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index 0d57a8d9f575..f04ff3119303 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -41,7 +41,7 @@ let optLibuuid = if isNix then null else shouldUsePkg libuuid; optVde2 = if isNix then null else shouldUsePkg vde2; optLibaio = shouldUsePkg libaio; - optLibcap_ng = shouldUsePkg libcap_ng; + optLibcap_ng = if isNix then null else shouldUsePkg libcap_ng; optSpice = if isNix then null else shouldUsePkg spice; optSpice_protocol = if isNix then null else shouldUsePkg spice_protocol; optLibceph = if isNix then null else shouldUsePkg libceph; @@ -95,6 +95,8 @@ let targetList = if stdenv.system == "x86_64-linux" then "x86_64-softmmu,i386-softmmu" else if stdenv.system == "i686-linux" then "i386-softmmu" else null; + + hasModules = if isNix then null else true; in stdenv.mkDerivation rec { @@ -138,7 +140,7 @@ stdenv.mkDerivation rec { (mkOther "smbd" "smbd") (mkOther "sysconfdir" "/etc") (mkOther "localstatedir" "/var") - (mkEnable true "modules" null) + (mkEnable hasModules "modules" null) (mkEnable false "debug-tcg" null) (mkEnable false "debug-info" null) (mkEnable false "sparse" null) @@ -167,7 +169,7 @@ stdenv.mkDerivation rec { (mkEnable (!isNix) "system" null) (mkEnable (!isKvmOnly) "user" null) (mkEnable (!isKvmOnly) "guest-base" null) - (mkEnable true "pie" null) + (mkEnable (!isNix) "pie" null) (mkEnable (optLibuuid != null) "uuid" null) (mkEnable (optVde2 != null) "vde" null) (mkEnable false "netmap" null) # TODO(wkennington): Add Support @@ -199,6 +201,8 @@ stdenv.mkDerivation rec { (mkEnable (optNumactl != null) "numa" null) ] ++ optionals isKvmOnly [ (mkOther "target-list" targetList) + ] ++ optionals isNix [ + "--static" ]; installFlags = [ diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 7d61bea64e11..518d713026ab 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -63,8 +63,9 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ pcre zlib libffi libiconv ] ++ libintlOrEmpty; - configureFlags = - optional stdenv.isDarwin "--disable-compile-warnings" + # Static is necessary for qemu-nix to support static userspace translators + configureFlags = [ "--enable-static" ] + ++ optional stdenv.isDarwin "--disable-compile-warnings" ++ optional stdenv.isSunOS "--disable-modular-tests"; NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin " -lintl" @@ -75,6 +76,8 @@ stdenv.mkDerivation rec { export MACOSX_DEPLOYMENT_TARGET= ''; + dontDisableStatic = true; + enableParallelBuilding = true; DETERMINISTIC_BUILD = 1;