In working with the TeXLive 2017 pretest, we (the Gregorio developers) came across what appears to be a bug in io.popen: it's passing the statement `all commands are permitted` to the sh instance that it was creating, resulting in an `all: command not found` error. After some considerable testing (see conversation here: https://github.com/gregorio-project/gregorio/issues/1362), we isolated the problem to the `--shell-escape` switch. If the simple document below is compiled *without* the switch, it is behaves as expected and is able to retrieve the gregorio version number (gregorio is on the list of commands permitted without shell-escape in texmf.cnf for TeXLive 2017). When compiled with the switch, however, the error crops up and the document reads `l is nil`.

```
\documentclass{article}
\begin{document}
\directlua{
    f = io.popen('gregorio --version', 'r')
    if f then
        l = f:read('*l')
        if l then
            tex.print('got '..l)
        else
            tex.print('l is nil')
        end
    else
        tex.print('f is nil')
    end
}
\end{document}
```

Besides the original Ubuntu 16.04 system this was seen on, we've also been able to confirm it on Gentoo, Mac 10.10 (Yosemite), and Windows 10 and so believe the problem to be platform independent.

--
✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝
Br. Samuel, OSB
St. Anselm’s Abbey
Washington, DC
(R. Padraic Springuel)

PAX ☧ ΧΡΙΣΤΟΣ

Reply via email to