>>>> But building of lilypond-test fails. >>>> >>>> ./target/linux-64/build/lilypond-git.sv.gnu.org--lilypond.git-master/input/regression/lilypond-book/suffix-tely.texi2pdf.log: >>>> >>>> /home/gub/NewGub/gub/target/tools/root/usr/bin/texi2dvi: texinfo.tex >>>> appears to be broken. >>>> This may be due to the environment variable TEX set to something >>>> other than (plain) tex, a corrupt texinfo.tex file, or >>>> to tex itself simply not working. >>>> etex: >>>> /home/gub/NewGub/gub/target/linux-64/root/usr/lib/libstdc++.so.6: >>>> version `CXXABI_1.3.9' not found (required by etex) >>> Obviously another linking path issue: While executing the external TeX >>> binaries, DLL stuff from `target/...' must not be used. >> >> The problem here is that our texi2* stuff needs LD_LIBRARY_PATH to >> find our DLLs in target/..., but the system's etex binary, executed by >> texi2*, fails on openSuSE Tumbleweed because it is incompatible to >> those libs in target/.... >> >> I think the easiest solution is a simple etex wrapper script in >> tools/root that clears LD_LIBRARY_PATH and then executes the system's >> etex. > > texi2dvi / texi2pdf can be specified external program name. > Previously, there was a similar error in XeTeX with texi2pdf. > > For XeTeX, we use wrapper scripts. > http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=blob;f=scripts/build/xetex-with-options.sh > http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=blob;f=scripts/build/xelatex-with-options.sh > > In the LilyPond's makefiles, it is specified as follows. > > ``` > PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) ... $(LILYPOND_BOOK) > ``` > > The valiables, PDFTEX and PDFLATEX are set to be > xetex-with-options.sh and xelatex-with-options.sh at configure script. > > To avoid the error, > I've added a line to clear LD_LIBRARY_PATH to the scripts in GUB. > https://github.com/gperciva/gub/commit/57d66d1262551c062a3edc85e27ac69748f2f136#diff-94f19c1786c0853ef47371aa55ba2b21 > > If I understand correctly, > it may be resolved simply by changing LilyPond's makefiles as follows. > > ``` > TEX=$(PDFTEX) PDFTEX=$(PDFTEX) PDFLATEX=$(PDFLATEX) ... $(LILYPOND_BOOK) > ```
I noticed I was wrong... texi2dvi / texi2pdf should not invoke etex in GUB. xetex should be invoked. Does your openSuSE system have both xetex and xelatex? LilyPond's configure script sets PDFTEX=/path/to/xetex-with-option.sh if your openSuSE system has both xetex and xelatex. Then, texi2pdf invokes xetex-with-option.sh instead of etex. In this case, etex does not be invoked. The test succeeds because GUB makes xetex-with-option.sh clears LD_LIBRARY_PATH. On the other hand, LilyPond's configure script sets PDFTEX=etex if your openSuSE system does not have xelatex, pdfetex, and pdftex. In this case, texi2pdf invokes etex. LD_LIBRARY_PATH is not cleared. GUB has older libc and older libstdc++. LD_LIBRARY_PATH makes etex uses the old libc and the old libstdc++. But, openSuSE system's etex requires newer libc and newer libstdc++. This is the cause of the error. Again, if I understand correctly, etex is not invoked if your openSuSE system have both xetex and xelatex. If your openSuSE system has both xetex and xelatex, GUB clears LD_LIBRARY_PATH and the test will succeed. _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel