-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Occasional build failures during FriBidi build #108
Comments
I'm getting this on Mac with and without Docker but rerunning it does not fix the problem. Just to confirm, is this the error mentioned in this issue?
|
Oh, the linked logs already expired. Copying the full log of another instance here for future reference: FriBiDi build failure(cd bin && make top_distdir=../fribidi-1.0.10 distdir=../fribidi-1.0.10/bin \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/code/build/lib/fribidi/bin' make distdir-am make[4]: Entering directory '/code/build/lib/fribidi/bin' make[4]: Leaving directory '/code/build/lib/fribidi/bin' make[3]: Leaving directory '/code/build/lib/fribidi/bin' (cd doc && make top_distdir=../fribidi-1.0.10 distdir=../fribidi-1.0.10/doc \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/code/build/lib/fribidi/doc' make distdir-am make[4]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[5]: Entering directory '/code/build/lib/fribidi/doc' Running c2man ../missing: 81: c2man: not found WARNING: 'c2man' is missing on your system. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package contains this missing 'c2man' program. make[5]: Leaving directory '/code/build/lib/fribidi/doc' make[4]: Leaving directory '/code/build/lib/fribidi/doc' make[3]: Leaving directory '/code/build/lib/fribidi/doc' (cd test && make top_distdir=../fribidi-1.0.10 distdir=../fribidi-1.0.10/test \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/code/build/lib/fribidi/test' make distdir-am make[4]: Entering directory '/code/build/lib/fribidi/test' testcase="test_ISO8859-8_hebrew.input" && \ charset="`echo "test_ISO8859-8_hebrew.input" | sed 's/_[^_]*$//;s/.*_//'`" && \ ../bin/fribidi --test --charset "$charset" "test_ISO8859-8_hebrew.reference" > "test_ISO8859-8_hebrew.input" \ || (rm -f "test_ISO8859-8_hebrew.input"; false) /bin/bash: line 2: ../bin/fribidi: No such file or directory make[4]: *** [Makefile:1043: test_ISO8859-8_hebrew.input] Error 1 make[4]: Leaving directory '/code/build/lib/fribidi/test' make[3]: *** [Makefile:858: distdir] Error 2 make[2]: *** [Makefile:608: distdir-am] Error 1 make[1]: *** [Makefile:601: distdir] Error 2 make[3]: Leaving directory '/code/build/lib/fribidi/test' make[2]: Leaving directory '/code/build/lib/fribidi' make[1]: Leaving directory '/code/build/lib/fribidi' emmake: error: 'make distdir' failed (2) And yes, your failure looks similar to the ones we occasionaly get on GHA. @nopol10: Can you try if it builds for you with the following change? This seems to give me the same result, but is simpler (hopefully making it less fragile). If that works, to be extra sure, can you revert the patch again and verify that it once again fails? Before every attempt run diff --git a/Makefile b/Makefile
index a7fa0c7..aedbae7 100644
--- a/Makefile
+++ b/Makefile
@@ -37,10 +37,7 @@ $(DIST_DIR)/lib/libfribidi.a: build/lib/fribidi/configure
--disable-dependency-tracking \
--disable-debug \
&& \
- emmake make distdir && \
- cd lib && \
- emmake make install-libLTLIBRARIES install-pkgincludeHEADERS install-nodist_pkgincludeHEADERS && \
- cd .. && \
+ emmake make -C lib/ install && \
emmake make install-pkgconfigDATA
build/lib/expat/configured: lib/expat |
Docker After the fix: builds completely fine and generates the outputs. 🎉 So looks like this works for Docker. Mac (no Docker) After the fix: The build progresses much further but I now get this error:
After reverting the fix (and |
@nopol10, can you try this change?: diff --git a/Makefile b/Makefile
index a7fa0c7..553633f 100644
--- a/Makefile
+++ b/Makefile
@@ -37,10 +37,7 @@ $(DIST_DIR)/lib/libfribidi.a: build/lib/fribidi/configure
--disable-dependency-tracking \
--disable-debug \
&& \
- emmake make distdir && \
- cd lib && \
- emmake make install-libLTLIBRARIES install-pkgincludeHEADERS install-nodist_pkgincludeHEADERS && \
- cd .. && \
+ emmake make -C lib/ install && \
emmake make install-pkgconfigDATA
build/lib/expat/configured: lib/expat
@@ -231,11 +228,8 @@ $(DIST_DIR)/lib/libfontconfig.a: $(DIST_DIR)/lib/libharfbuzz.a $(DIST_DIR)/lib/l
--disable-docs \
--with-default-fonts=/fonts \
&& \
- cd src && \
- emmake make distdir install-libLTLIBRARIES && \
- cd ../fontconfig && \
- emmake make distdir install-fontconfigincludeHEADERS && \
- cd ../ && \
+ emmake make -C src/ install && \
+ emmake make -C fontconfig/ install && \
emmake make install-pkgconfigDATA
# libass --
Also, @cawa-93 does building in MS Windows WSL with DOcker work for you, when you apply the above diff? |
On Mac, I get the following error now:
No issues after the change on Docker on Mac. Also want to add that previously I had issues building on WSL with Docker. After applying the |
Great, thanks for your help in testing this!
You need to install |
We do not create dist-tarballs, and calling it first sometimes causes build failures: #108 Also simplify the multiple install-* targets.
The CI builds didn't fail like this anymore, so I'm assuming this was indeed fixed. Thanks for your help debugging this nopol10! |
I never experienced this locally, even when using Docker and the very same Dockerfile, but the GHA-CI jobs keep failing during the FriBidi build from time to time. Rerunning (if needed multiple times) resolves this. See eg this for an example where the build of the very same commit both failed and succeeded.
I'm not sure why that's happening; it shouldn't be due to the exec-order of different Make-jobs, since the Makefile is only invoked in serial mode (because parallel mode is currently completely broken).
The text was updated successfully, but these errors were encountered: