#16133: Fix for XeTeX Leopard Build Failure ------------------------------------+--------------------------------------- Reporter: kthenriksson@gmail.com | Owner: macports-tickets@lists.macosforge.org Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 1.6.0 Keywords: texlive xetex | ------------------------------------+--------------------------------------- Right now, XeTeX will not build on Leopard, and even if it did, two of its files to install conflict with files in texlive_base. Because it wouldn't compile in Leopard, it was removed from texlive_base in changeset [31087], but there I can't seem to find any tickets about this particular issue. Ticket #11388 seems to be similar, especially in the suggested fix, but does not show the same build error. The following patch applied to 'libs/icu-xetex/config/mh-darwin' in the texlive_base or xetex packages corrects this error and allows the build to complete successfully: {{{ --- mh-darwin.orig 2008-07-29 21:55:37.000000000 -0700 +++ mh-darwin 2008-07-29 21:56:16.000000000 -0700 @@ -58,7 +58,7 @@ @echo "generating dependency information for $<" @$(GEN_DEPS.c) $< > /dev/null @mv $@ $@~ - @echo -n "$@ " > $@ + @/bin/echo -n "$@ " > $@ @cat < $@~ >> $@ @-rm $@~ @@ -66,7 +66,7 @@ @echo "generating dependency information for $<" @$(GEN_DEPS.cc) $< >/dev/null @mv $@ $@~ - @echo -n "$@ " > $@ + @/bin/echo -n "$@ " > $@ @cat < $@~ >> $@ @-rm $@~ }}} The problem that occurs is that make uses sh to invoke commands in a Makefile, but perhaps from the bash configure option `--enable-strict- posix-default`, the bash shell option `xpg_echo` defaults to on. Because sh was compiled to default to POSIX mode, this means that `echo` no longer recognizes any options and prints all arguments verbatim (except for backslash escape expansion, see http://www.gnu.org/software/bash/manual/bashref.html and search for `xpg_echo` for details). So the Makefile that wants `echo -n` to mean no new line actually gets it to mean print a `-n` literally, which ends up ruining another Makefile called stubdata.d and prevents successful compilation. As you can see from the patch, the fix is to invoke the actual `echo` program instead of the shell builtin called `echo`, which is accomplished here by using the full path to `echo`. The patch should be applied to both the texlive_base and xetex file trees and the texlive_base Portfile can hopefully be updated to reenable compilation of xetex. I believe that the xetex package can actually be removed as well once xetex has be reenabled in texlive_base. Due to a file conflict that the inclusion of xetex brings, texlive_texmf- full needs the line "delete ${worksrcpath}/texmf/web2c/xetex.pool" in the build section. One other change is that texlive will need the line "ln -s ${prefix}/bin/xetex ${destroot}${prefix}/bin/xelatex" added to the destroot section to give the correct xelatex symbolic link. -- Ticket URL: <http://trac.macports.org/ticket/16133> MacPorts <http://www.macports.org/> Ports system for Mac OS