<div dir="ltr">Here are a couple experimental observations.<div><br></div><div>1. Detecting musl.<br><div><br></div><div>-- Alpine Linux/sh --</div><div><div>$ ldd --version 2>&1 | grep -F musl</div><div>musl libc (x86_64)</div></div><div>$? = 0</div><div><br></div><div>-- Debian/bash --</div><div>$ ldd --version 2>&1 | grep -F musl<br></div><div> (nothing; $? = 1)</div></div><div><br></div><div>-- Debian/zsh --</div><div>$ ldd --version 2>&1 | grep -F musl</div><div>(nothing; $? = 1)</div><div><br></div><div>A few notes:</div><div>a.) On some platforms fgrep has been deprecated (in favour of `grep -F`) so it's not future-proof</div><div>b.) The caret (^) passed to `grep -F` will not be interpreted as a regex, since -F forces non-regexp, meaning the '^' will be interpreted literally (and the string "^musl" is not in the ldd output).</div><div>c.) It's likely safe to assume that the string 'musl' will only occur in `ldd --version` where musl is installed</div><div>d.) I did not test a case Arthur described here <a href="https://mailman.ntg.nl/pipermail/ntg-context/2018/091123.html" target="_blank">https://mailman.ntg.nl/pipermail/ntg-context/2018/091123.html</a>, but the use of -F ought to avoid the zsh EXTENDED_GLOB  problem</div><div><br></div><div>Based on this, a reasonably portable detection of musl in first-setup.sh and tex/setuptex might be:</div><div><br></div><div><div style="color:rgb(187,187,187);background-color:rgb(0,43,54);font-family:"Source Code Pro",Menlo,Monaco,"Courier New",monospace;font-size:14px;line-height:21px;white-space:pre-wrap"><div><span style="color:rgb(133,153,0)">if</span> <span style="color:rgb(38,139,210)">command</span> -v ldd <span style="color:rgb(133,153,0)">></span>/dev/null <span style="color:rgb(133,153,0)">&&</span> ldd --version <span style="color:rgb(133,153,0)">2>&1</span> <span style="color:rgb(133,153,0)">|</span> grep -Fq <span style="color:rgb(42,161,152)">'musl'</span> <span style="color:rgb(133,153,0)">></span>/dev/null</div></div></div><div><br></div><div><br></div><div>2. Running /context/first-setup.sh the link /context/bin/texlua did not exist and first-setup.sh fails.</div><div>Once symlinked to `luatex` in the same directory, first-setup.sh will run rsync.</div><div><br></div><div>3. Similarly /context/tex/texmf-linuxmusl-64/bin/texlua does not exist, so setuptex fails.</div><div>Once symlinked `luatex -> texlua` then setuptex can be executed (bearing in mind `setuptex` needs to be updated with the same musl detection test as first-setup.sh)</div><div><br></div><div>4. setuptex needs to be called with an explicit directory otherwise it complains with</div><div><br></div><div>""/bin" is not a valid TEXROOT path.</div><div>(There is no file "/bin/texmf/tex/plain/base/plain.tex")</div><div>provide a proper tex root (like '. setuptex /something/tex')"</div><div><br></div><div>Running this will run setuptex variables:</div><div><br></div><div>$ . /context/tex/setuptex /context/tex</div><div>Setting "/context/tex" as ConTeXt root.<br></div><div><br></div><div>5. Running context exits with:</div><div>mtxrun          | unknown script 'context.lua' or 'mtx-context.lua'<br></div><div><br></div><div>That's as far as I have gotten for now, but I thought this enough to report.</div><div><br></div><div>6. I am happy to take direction and report, but it is also straightforward to reproduce with Docker via the Dockerfile:</div><div><br></div><div><pre class="m_-2809330758235779216inbox-inbox-lang-tex m_-2809330758235779216inbox-inbox-prettyprint m_-2809330758235779216inbox-inbox-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:19.5px;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;white-space:inherit"><span class="m_-2809330758235779216inbox-inbox-pln" style="color:rgb(48,51,54);margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">FROM python:3.6-alpine3.7
RUN apk --no-cache add rsync
</span><font color="#303336">WORKDIR /context</font></code></pre>Then running docker:<br><pre class="m_-2809330758235779216inbox-inbox-lang-tex m_-2809330758235779216inbox-inbox-prettyprint m_-2809330758235779216inbox-inbox-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:19.5px;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;white-space:inherit"><span class="m_-2809330758235779216inbox-inbox-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit"><font color="#2b91af">$ docker build -t context .</font></span></code></pre><pre class="m_-2809330758235779216inbox-inbox-lang-tex m_-2809330758235779216inbox-inbox-prettyprint m_-2809330758235779216inbox-inbox-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:19.5px;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;white-space:inherit"><span class="m_-2809330758235779216inbox-inbox-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit"><font color="#2b91af">$ docker run -ti context /bin/sh</font></span></code></pre>Then in the docker container shell, run:</div><div><br><pre class="m_-2809330758235779216inbox-inbox-lang-tex m_-2809330758235779216inbox-inbox-prettyprint m_-2809330758235779216inbox-inbox-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;line-height:inherit;vertical-align:baseline;box-sizing:inherit;width:auto;max-height:600px;overflow:auto;word-wrap:normal;background-color:rgb(239,240,241);font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif">$ cd /context<br></pre><pre class="m_-2809330758235779216inbox-inbox-lang-tex m_-2809330758235779216inbox-inbox-prettyprint m_-2809330758235779216inbox-inbox-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:5px;border:0px;font-variant-numeric:inherit;font-variant-east-asian:inherit;font-stretch:inherit;line-height:inherit;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;width:auto;max-height:600px;overflow:auto;background-color:rgb(239,240,241);word-wrap:normal"><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;line-height:19.5px;font-family:Consolas,Menlo,Monaco,"Lucida Console","Liberation Mono","DejaVu Sans Mono","Bitstream Vera Sans Mono","Courier New",monospace,sans-serif;vertical-align:baseline;box-sizing:inherit;white-space:inherit"><span class="m_-2809330758235779216inbox-inbox-pln" style="color:rgb(48,51,54);margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">$ wget <a href="http://minimals.contextgarden.net/setup/first-setup.sh" target="_blank">http://minimals.contextgarden.net/setup/first-setup.sh</a> \
</span><span class="m_-2809330758235779216inbox-inbox-pln" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit"><font color="#2b91af">$</font></span><span class="m_-2809330758235779216inbox-inbox-pln" style="color:rgb(48,51,54);margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit"> sh ./first-setup.sh --modules</span><span class="m_-2809330758235779216inbox-inbox-pun" style="color:rgb(195,24,24);margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">=</span><span class="m_-2809330758235779216inbox-inbox-pln" style="color:rgb(48,51,54);margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">all --engine</span><span class="m_-2809330758235779216inbox-inbox-pun" style="color:rgb(195,24,24);margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">=</span><span class="m_-2809330758235779216inbox-inbox-pln" style="color:rgb(48,51,54);margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;box-sizing:inherit">luatex</span></code></pre>(please pardon the formatting - some copying and pasting here).</div><div><br></div><div>I hope this is helpful.</div><div><br></div><div>Cheers,</div><div>Brian</div><div><br></div><br><div class="gmail_quote"><div dir="ltr">On Sun, 8 Apr 2018 at 20:52 Henri Menke <<a href="mailto:henrimenke@gmail.com" target="_blank">henrimenke@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sun, 2018-04-08 at 22:50 +0200, Mojca Miklavec wrote:<br>
> Dear Brian,<br>
><br>
> On 8 April 2018 at 16:56, Brian Hunt wrote:<br>
> ><br>
> > Hello everyone,<br>
> ><br>
> > Per this question on tex.StackOverflow, I am having trouble getting ConTeXt<br>
> > (LuaTeX specifically) to run on Alpine Linux:<br>
> ><br>
> > <a href="https://tex.stackexchange.com/questions/425463" rel="noreferrer" target="_blank">https://tex.stackexchange.com/questions/425463</a><br>
> ><br>
> > Specifically, the build from ConTeXt standalone has a LuaTeX that seems not<br>
> > to run against the musl libc6 library.<br>
> We have a "nearly working" one. At least all the binaries should be<br>
> there, see for example:<br>
>     <a href="http://distribution.contextgarden.net/setup/linuxmusl-64/" rel="noreferrer" target="_blank">http://distribution.contextgarden.net/setup/linuxmusl-64/</a><br>
><br>
> There are two to three remaining problems:<br>
><br>
> 1.) I disabled automatic musl recognition (short after enabling it)<br>
> after this bug report:<br>
>     <a href="https://mailman.ntg.nl/pipermail/ntg-context/2018/091094.html" rel="noreferrer" target="_blank">https://mailman.ntg.nl/pipermail/ntg-context/2018/091094.html</a><br>
> I need to finish "parsing"<br>
>     <a href="https://mailman.ntg.nl/pipermail/ntg-context/2018/091123.html" rel="noreferrer" target="_blank">https://mailman.ntg.nl/pipermail/ntg-context/2018/091123.html</a><br>
> and a few other posts in that thread and maybe make some additional<br>
> testing. There was some "oh no, it has to be the other way around"<br>
> discussion where I no longer followed and I need some more time to<br>
> read everything more carefully (no time for that right now).<br>
><br>
> 2.) Most likely a patch in mtxrun is still needed (but I admit that I<br>
> didn't check) for proper platform recognition. The fact that we are<br>
> struggling in shell doesn't really help doing this part either :)<br>
><br>
> 3.) Ideally we need to set up some automated LuaTeX builds to be able<br>
> to get the latest LuaTeX binaries in the future.<br>
<br>
Similar to TeX live I have set up an automated Travis CI build, which can deploy<br>
binaries to GitHub releases.<br>
<a href="https://github.com/hmenke/luatex/blob/master/.travis.yml" rel="noreferrer" target="_blank">https://github.com/hmenke/luatex/blob/master/.travis.yml</a><br>
<br>
However, I just forked Adam's mirror and I am not planning to keep mine updated.<br>
It would be nice to have some sort of “official” LuaTeX mirror on GitHub for<br>
that.  Nevertheless, it might be worthwhile to check the '.travis.yml' I posted<br>
above into the LuaTeX SVN.<br>
<br>
><br>
> ><br>
> > Has anyone run ConTeXt on Alpine?<br>
> At the moment it should work if you install TeX Live 2018 pretest with<br>
> the ConTeXt scheme or if you fiddle a bit with the installation (you<br>
> need to hardcode the platform name in first-setup.sh and then still<br>
> some minor things might still go wrong, not sure). But in fact very<br>
> little is required to fix the remaining issues.<br>
><br>
> Can you please remind us to pick this up again in a couple of days?<br>
><br>
> In the meantime, if you are willing to do some more extensive testing<br>
> of patches (see full thread linked above) on both musl & non-musl<br>
> linuxes, in various shells etc., as well as perhaps come up with a<br>
> patch for mtxrun, that might help.<br>
><br>
> Mojca<br>
___________________________________________________________________________________<br>
If your question is of interest to others as well, please add an entry to the Wiki!<br>
<br>
maillist : <a href="mailto:ntg-context@ntg.nl" target="_blank">ntg-context@ntg.nl</a> / <a href="http://www.ntg.nl/mailman/listinfo/ntg-context" rel="noreferrer" target="_blank">http://www.ntg.nl/mailman/listinfo/ntg-context</a><br>
webpage  : <a href="http://www.pragma-ade.nl" rel="noreferrer" target="_blank">http://www.pragma-ade.nl</a> / <a href="http://context.aanhet.net" rel="noreferrer" target="_blank">http://context.aanhet.net</a><br>
archive  : <a href="https://bitbucket.org/phg/context-mirror/commits/" rel="noreferrer" target="_blank">https://bitbucket.org/phg/context-mirror/commits/</a><br>
wiki     : <a href="http://contextgarden.net" rel="noreferrer" target="_blank">http://contextgarden.net</a><br>
___________________________________________________________________________________</blockquote></div></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">







<p class="inbox-inbox-inbox-inbox-p1"><i>from the personal account of:</i></p><p class="inbox-inbox-inbox-inbox-p1"><b>Brian M Hunt </b><<a href="mailto:brianmhunt@gmail.com">brianmhunt@gmail.com</a>><br>Direct: +1-289-684-4677<br>LinkedIn:<span> <a href="https://linkedin.com/in/brianmhunt">https://linkedin.com/in/brianmhunt</a></span></p><p class="inbox-inbox-inbox-inbox-p1"><span><i>This e-mail may contain information that is private, privileged, confidential and/or exempt from disclosure. Except as per this notice no waiver of any kind is intended by sending this e-mail, and this email is intended only for the named recipient(s) or the subscribers of a forwarding service the email is sent directly to and to which service you are an authorized recipient. Use, dissemination or copying without authorization is prohibited. Please notify the sender and destroy all copies of this e-mail if you have received this email in error.</i></span><br></p></div></div>