On 04/13/2018 11:14 PM, Mojca Miklavec wrote:
On 11 April 2018 at 22:37, Hans Hagen wrote:
On 4/11/2018 10:08 PM, Brian Hunt wrote:
3. Add texlua (and texluac?) to a. the setup rsync bin/ directories b. the tex/texmf-linuxmusl(|-ppc|-64)
we don't use texluac, don't need texlua on windows and on linux texlua is just a symlink
This was entirely my fault which has been fixed in the meantime.
if musl needs different bin then there should be a different initial download i think because basically we're now talking of: windows, osx, linux, linuxmusl (a different species)
Exactly. We have that. And most bits and pieces are in place to allow that, except for the problem with mtxrun not being able to determine the platform correctly.
Actually, the musl detection only has to be peformed for downloading binaries. Once those binaries are installed, they behave exactly like the linux-64 binaries. I would suggest to simply drop musl binaries in the texmf-linux-64 folder as well. (Who has ConTeXt for multiple platforms on their computer anyway?) That would render all the funny business of calling ldd in mtxrun superfluous.
4. Update mtxrun
Here's code that ought to work for detecting musl in mtxrun. Around line 3721 of the mtxrun add:
if find(architecture,"x86_64",1,true) then platform="linux-64" elseif find(architecture,"ppc",1,true) then platform="linux-ppc" else platform="linux" end + if resultof("ldd --version 2>&1"):find("musl") ~= nil then + platform = platform:gsub("linux", "linuxmusl") + end
that's not going to happen, some system call 9each run) in order to determine what linux species we run ... (there are a few calls but these are never used becasue we use HOSTTYPE (if needed we can set one ourselves on these platforms)
isn't there some magic env var that tels if musl is used? do programs and scripts really have to jumpo through such loops
Hans, we don't really need this code for the sake of minimals themselves, it is part of ConTeXt code that needs it and fails.
The problem is that even if I properly detect the platform upfront, your code (mtx-update) will refuse to respect the setting. When calling ./bin/mtxrun --script ./bin/mtx-update.lua --force --update --make --context=beta --platform=linuxmusl-64 --texroot="/some/path" from musl linux, the mtx-update will insist in always installing and using linux-64 binaries even if they don't work, no matter what else we try.
I still believe that a string like "x86_64-linuxmusl" is something that luatex itself should be able to return when asked about what platform it is running on (what platform it has been compiled for). We've discussed this with Taco many years ago, but this has never been implemented.
Mojca ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________