From 7971975f29dc7a056bee2e0f1da1d47b16939ad8 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Tue, 12 Mar 2019 23:14:24 -0500 Subject: [PATCH] lightdm_gtk_greeter: fix configureFlags to not be one long string For whatever reason, setting `configureFlagsArray` causes the configure invocation to escape spaces between parameters: configure flags: --disable-static --disable-dependency-tracking --prefix=/nix/store/4bn8dsr743dp0g5j020jf8why5hkld3p-lightdm-gtk-greeter-2.0.6 --localstatedir=/var\ --sysconfdir=/etc\ --disable-indicator-services-command\ --enable-at-spi-command=/nix/store/li9bsxl8qja8qw0pa70xd572gw5hqsdm-at-spi2-core-2.30.1/libexec/at-spi-bus-launcher\ \ --launch-immediately This actually doesn't break the build (!) but it does break lightdm pretty badly for me and it's not hard to imagine why :). Instead, use configureFlags as normal but just append the command in `preConfigure` directly, so we can preserve the space. --- .../display-managers/lightdm/gtk-greeter.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix index 094a92ab014..61db182f744 100644 --- a/pkgs/applications/display-managers/lightdm/gtk-greeter.nix +++ b/pkgs/applications/display-managers/lightdm/gtk-greeter.nix @@ -23,18 +23,21 @@ stdenv.mkDerivation rec { buildInputs = [ lightdm exo intltool makeWrapper hicolor-icon-theme ] ++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]); - configureFlagsArray = [ + configureFlags = [ "--localstatedir=/var" "--sysconfdir=/etc" "--disable-indicator-services-command" - "--enable-at-spi-command=${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" ] ++ stdenv.lib.optional useGTK2 "--with-gtk2"; + preConfigure = '' + configureFlagsArray+=( --enable-at-spi-command="${at-spi2-core}/libexec/at-spi-bus-launcher --launch-immediately" ) + ''; + NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ]; installFlags = [ "localstatedir=\${TMPDIR}" - "sysconfdir=\${out}/etc" + "sysconfdir=${placeholder "out"}/etc" ]; postInstall = ''