Re: [PATCH] ffbuild/common.mak: ensure target directories are created before running shell redirects into them

Paul Barker via ffmpeg-devel <[email protected]>
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <[email protected]>
On Thu, 2025-12-11 at 20:14 +0100, Alexander Kanavin wrote:
> Otherwise, occasional build races have been observed:
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/37/builds/3001/steps/13/logs/stdio
> 
> /bin/sh: 4: cannot create fftools/resources/graph.css.min: Directory nonexistent
> mkdir -p fftools/graph
> /bin/sh: 1: cannot create fftools/resources/graph.html.gz: Directory nonexistent
> make: *** [/srv/pokybuild/.../ffmpeg-8.0.1/ffbuild/common.mak:165: fftools/resources/graph.html.gz] Error 2
> make: *** Waiting for unfinished jobs....
> make: *** [/srv/pokybuild/.../ffmpeg-8.0.1/ffbuild/common.mak:145: fftools/resources/graph.css.min] Error 2
> 
> There's a separate rule for making those directories, but unfortunately
> it's racing with the rules that expect the directories to exist. Rather
> than add a Makefile dependency, I've injected the dir creation directly
> in front of commands that can otherwise fail - a proper fix would probably
> add the rule rather.
> 
> Signed-off-by: Alexander Kanavin <[email protected]>
> ---
>  ffbuild/common.mak | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/ffbuild/common.mak b/ffbuild/common.mak
> index 89c0c413e1..7f223297b8 100644
> --- a/ffbuild/common.mak
> +++ b/ffbuild/common.mak
> @@ -125,8 +125,8 @@ $(BIN2CEXE): ffbuild/bin2c_host.o
>  	$(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS)
>  
>  RUN_BIN2C = $(BIN2C) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) $@ $(subst .,_,$(basename $(notdir $@)))
> -RUN_GZIP  = $(M)gzip -nc9 $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) >$@
> -RUN_MINIFY = $(M)sed 's!/\\*.*\\*/!!g' $< | tr '\n' ' ' | tr -s ' ' | sed 's/^ //; s/ $$//' > $@
> +RUN_GZIP  = mkdir -p $(dir $@) && $(M)gzip -nc9 $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) >$@
> +RUN_MINIFY = mkdir -p $(dir $@) && $(M)sed 's!/\\*.*\\*/!!g' $< | tr '\n' ' ' | tr -s ' ' | sed 's/^ //; s/ $$//' > $@
>  %.gz: TAG = GZIP
>  %.min: TAG = MINIFY
>  

Hi all,

I am sending a gentle ping on this patch as we're still carrying it in
Yocto Project to fix intermittent build races.

Has anyone had chance to review this for merging into ffmpeg?

Best regards,

-- 
Paul Barker

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
signature.asc (application/pgp-signature, 252 B)
-----BEGIN PGP SIGNATURE-----

iIcEABYKAC8WIQSzjPXf5Y1BDWhU2iCrY1Tsnbr0bgUCajT9AREccGF1bEBwYmFy
a2VyLmRldgAKCRCrY1Tsnbr0bv1OAP9Q94nIQAaO1OhXiDdGfN+tUdKwZtCN/O79
119X+6rBjwEAw1YQkK57aSi1Vvk5bFwj3OKmdDrK0kd2BlNegtzXzAw=
=OcpQ
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.