nvidia-settings: fix parallel build race condition

Fix a race condition that occurs in parallel builds of
nvidia-settings, frequently ending in the following error:

/bin/bash: _out/Linux_x86_64/antialias.png.h: No such file or directory
make[1]: *** [Makefile:320: _out/Linux_x86_64/antialias.png.h] Error 1

Upstream issue and fix from:
https://github.com/NVIDIA/nvidia-settings/issues/59
This commit is contained in:
Daniël de Kok 2021-02-02 08:33:24 +01:00
parent 23db19263f
commit 4db1c8b199
2 changed files with 18 additions and 0 deletions

View file

@ -0,0 +1,12 @@
diff --git a/src/Makefile b/src/Makefile
index acbb1b8..fe97103 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -242,6 +242,7 @@ endif
define BINARY_DATA_HEADER_RULE
$$(OUTPUTDIR)/$(notdir $(1)).h:
+ $(at_if_quiet)$(MKDIR) $$(OUTPUTDIR)
$(at_if_quiet){ \
$$(PRINTF) "extern const char _binary_$(subst .,_,$(notdir $(1)))_start[];\n"; \
$$(PRINTF) "extern const char _binary_$(subst .,_,$(notdir $(1)))_end[];\n"; \

View file

@ -45,6 +45,12 @@ stdenv.mkDerivation {
version = nvidia_x11.settingsVersion;
inherit src;
patches = [
# Fix a race condition in parallel builds.
# https://github.com/NVIDIA/nvidia-settings/issues/59#issuecomment-770302032
./nvidia-setttings-parallel-build.patch
];
nativeBuildInputs = [ pkg-config m4 ];
buildInputs = [ jansson libXv libXrandr libXext libXxf86vm libvdpau nvidia_x11 gtk2 dbus ]