ovn: fix build failure due to make install race condition (#451492)

This commit is contained in:
Adam C. Stephens
2025-10-13 14:00:49 +00:00
committed by GitHub
2 changed files with 67 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
From a94104a0c419a5049712f7372690dab10f54ab2f Mon Sep 17 00:00:00 2001
From: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date: Sun, 12 Oct 2025 18:46:14 -0400
Subject: [PATCH ovn] build: Fix race condition when installing ovn-detrace.
When running parallel make install (-j), ovn-detrace-install could
trigger before ovn_detrace.py is installed. In this case, `ln` will
fail.
When it happens, make fails with:
```
ln: failed to create symbolic link '[...]/bin/ovn-detrace': No such file or directory
make[2]: *** [Makefile:3852: ovn-detrace-install] Error 1
```
Automake install-*-local targets are not guaranteed any order. In
contrast, install-*-hook does [1]. This patch switches the make target
to use the latter.
[1] https://www.gnu.org/software/automake/manual/html_node/Extending-Installation.html
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
---
Makefile.am | 2 ++
utilities/automake.mk | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 6119ef510..060d3189d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -128,6 +128,7 @@ dist_scripts_SCRIPTS =
dist_scripts_DATA =
EXTRA_PROGRAMS =
INSTALL_DATA_LOCAL =
+INSTALL_DATA_HOOK =
UNINSTALL_LOCAL =
man_MANS =
MAN_FRAGMENTS =
@@ -487,6 +488,7 @@ dist-hook: $(DIST_HOOKS)
all-local: $(ALL_LOCAL)
clean-local: $(CLEAN_LOCAL)
install-data-local: $(INSTALL_DATA_LOCAL)
+install-data-hook: $(INSTALL_DATA_HOOK)
uninstall-local: $(UNINSTALL_LOCAL)
.PHONY: $(DIST_HOOKS) $(CLEAN_LOCAL) $(INSTALL_DATA_LOCAL) $(UNINSTALL_LOCAL)
diff --git a/utilities/automake.mk b/utilities/automake.mk
index 1de33614f..ec955f6bf 100644
--- a/utilities/automake.mk
+++ b/utilities/automake.mk
@@ -106,7 +106,7 @@ utilities_ovn_appctl_SOURCES = utilities/ovn-appctl.c
utilities_ovn_appctl_LDADD = lib/libovn.la $(OVSDB_LIBDIR)/libovsdb.la $(OVS_LIBDIR)/libopenvswitch.la
# ovn-detrace
-INSTALL_DATA_LOCAL += ovn-detrace-install
+INSTALL_DATA_HOOK += ovn-detrace-install
ovn-detrace-install:
ln -sf ovn_detrace.py $(DESTDIR)$(bindir)/ovn-detrace
--
2.51.0

View File

@@ -51,6 +51,9 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://github.com/ovn-org/ovn/commit/b396babaa54ea0c8d943bbfef751dbdbf288c7af.patch"; url = "https://github.com/ovn-org/ovn/commit/b396babaa54ea0c8d943bbfef751dbdbf288c7af.patch";
hash = "sha256-RjWxT3EYKjGhtvCq3bAhKN9PrPTkSR72xPkQQ4SPWWU="; hash = "sha256-RjWxT3EYKjGhtvCq3bAhKN9PrPTkSR72xPkQQ4SPWWU=";
}) })
# Fix build failure due to make install race condition.
# Posted at: https://patchwork.ozlabs.org/project/ovn/patch/20251012225908.37855-1-ihar.hrachyshka@gmail.com/
./0001-build-Fix-race-condition-when-installing-ovn-detrace.patch
]; ];
nativeBuildInputs = [ nativeBuildInputs = [