LuaTeX: Ist io.open("../dateiname", "w") mit TL 2024 nicht mehr möglich?

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


khzimmer
Forum-Anfänger
Forum-Anfänger
Beiträge: 32
Registriert: So 3. Mär 2019, 12:01

LuaTeX: Ist io.open("../dateiname", "w") mit TL 2024 nicht mehr möglich?

Beitrag von khzimmer »

Hallo Wissende,

bei mir (und bei einem meiner User auf deren eigenem Rechner) erzeugt io.open("../Testfile", "w") mit TeX Live 2024 einen error,
während es mit TeX Live 2023 problemlos funktioniert. :(

Ich installierte TL 2024 vorhin, also am 6.4.2024.
\documentclass{article}
\begin{document}
\directlua{
local myDocument, err = io.open("../Testfile", "w")
if not myDocument then
  print(" ERROR OPENING FILE:", err)
end
}
\end{document}
Beachten: Mein obiges Beispiel erzeugt, hier im Forum-System, keinen Error.
Lokal bei mir tritt aber mit heutigem TL 2024 der Fehler auf.


Danke für Eure Hilfe. :)

Karl-Heinz

Unwissender

Re: LuaTeX: Ist io.open("../dateiname", "w") mit TL 2024 nicht mehr möglich?

Beitrag von Unwissender »

Wie genau lautet der Fehler denn? Sieh mal in der Protokoll-Datei (*.log) nach. Poste den Fehler dann in deinem nächsten Beitrag oder hänge die komplette Datei an ebendiesen an.

Solltest du den genauen Fehler dort selbst entdecken können, kannst du ihn ja mal in die Suchmaschine deiner Wahl eingeben und in den Ergebnissen dann nach möglichen Lösungen suchen.

khzimmer
Forum-Anfänger
Forum-Anfänger
Beiträge: 32
Registriert: So 3. Mär 2019, 12:01

Re: LuaTeX: Ist io.open("../dateiname", "w") mit TL 2024 nicht mehr möglich?

Beitrag von khzimmer »

Leider wird kein Fehler aussgegeben.
Dies erscheint in der Konsole:

ERROR OPENING FILE: nil


In der .log-Datei steht dazu gar nichts.

Unwissender

Re: LuaTeX: Ist io.open("../dateiname", "w") mit TL 2024 nicht mehr möglich?

Beitrag von Unwissender »

Das ist jetzt schon etwas ärgerlich, denn mit NIL ist hier keineswegs der Fluss gemeint. Da müssen echte Experten ran, von denen einige bei "TeX - LaTeX Stack Exchange" aktiv sind.

khzimmer
Forum-Anfänger
Forum-Anfänger
Beiträge: 32
Registriert: So 3. Mär 2019, 12:01

Re: LuaTeX: Ist io.open("../dateiname", "w") mit TL 2024 nicht mehr möglich?

Beitrag von khzimmer »

Auf jeden Fall danke für Deinen Versuch zu helfen, das war freundlich. :)

khzimmer
Forum-Anfänger
Forum-Anfänger
Beiträge: 32
Registriert: So 3. Mär 2019, 12:01

Re: LuaTeX: Ist io.open("../dateiname", "w") mit TL 2024 nicht mehr möglich?

Beitrag von khzimmer »

Leider fand ich noch keine Lösung.

io.open(Dateiname, "w") funktioniert seit TL 2024 nur noch dann,
wenn Dateiname entweder nur einen simplen Namen enthält, oder der vorangestellte Pfad sich auf ein Verzeichnis unterhalb des aktuellen Verzeichnisses (current directory) bezieht.

Mit TL 2023 war es noch möglich, die Datei in ein Verzeichnis zu schreiben, das oberhalb lag.

Weiß jemand einen workaround?

Ich teste auch dies, es funktioniert ebenso wenig:
\documentclass{article}
\begin{document}
\directlua{
local destFileName = "Testfile"
local myDocument, err = io.open(destFileName, "w")
if not myDocument then
  print(" ERROR OPENING FILE:", err)
  return
end
myDocument:write("Hello from Lua!")
myDocument:close()
local finalFileName = "../"..destFileName
print("Moving file: "..finalFileName)
print (os.rename(destFileName, finalFileName))
}
\end{document}
Bei diesem Beispiel gibt es immerhin eine Fehlermeldung:

Moving file: ../Testfile
nil LuaTeX: operation not permitted -1


Obwohl ich natürlich Schreibrechte im oberen Verzeichnis habe.

khzimmer
Forum-Anfänger
Forum-Anfänger
Beiträge: 32
Registriert: So 3. Mär 2019, 12:01

Re: LuaTeX: Ist io.open("../dateiname", "w") mit TL 2024 nicht mehr möglich?

Beitrag von khzimmer »

Neue Vermuting: Der Fehler scheint auf Seiten von TeX/LaTeX zu liegen.

Grund meiner Annahme: Ich speichere diese Zeilen als .lua-Datei: testing_io.open.lua
local destFileName = "Testfile"
local myDocument, err = io.open(destFileName, "w")
if not myDocument then
  print(" ERROR OPENING FILE:", err)
  return
end
myDocument:write("Hello from Lua!")
myDocument:close()
local finalFileName = "../"..destFileName
print("Moving file: "..finalFileName)
print (os.rename(destFileName, finalFileName))
Dann rufe ich den Befehl auf:

~/TeX_Live_2024/bin/x86_64-linux/lualatex --luaonly testing_io.open.lua

… und es klappt problemlos.

Aber sobald die Zeilen, wie oben im zweiten Code-Beispiel, in \directlua{ } stehen, erhalte ich "operation not permitted".

Antworten