Church Tools - Auto Updater
-
Aktuell hat der AutoUpdater wohl ein Problem damit, dass sich bei der CT Version 3.89.0 die Länge der Dateinamen im Verzeichnis system/runtime geändert hat. Beim Auspacken des tar-Files werden die Dateinamen nach 99 Zeichen einfach abgeschnitten. Das liegt wohl an der verwendeten PHP Funktion zum Auspacken des Archivs.
Aktuell habe ich daher leider den AutoUpdater für unsere selbstgehostete CT Installation deaktivieren müssen. Issue bei GitHub ist eröffnet.
-
@sirdud
Ja, war bei uns auch so. Auswirkung ist, dass die Login-Seite nicht mehr lädt. Die Installation selbst funktioniert jedoch anscheinend weiter. Es wurden zumindest Status-Mails verschickt und der API Zugriff (App) ging auch.
Ich habe dann das Update manuell durchgeführt und so das Problem der nicht korrekt entpackten Dateien gefixt.
Aber, sinnvolle Idee, den AutoUpdater erst mal zu deaktivieren. -
Ein wenig Recherche ergab, dass tar eigentlich nur eine Dateinamenslänge von 100 Zeichen unterstützt. Durch eine Erweiterung kann tar auch längere Dateinamen verarbeiten, ist dann aber nicht mehr mit dem POSIX Standard kompatibel. Die vom AutoInstaller verwendete PHP Funktion zum Entpacken hält sich aber an den Standard und verwendet daher nur die ersten 100 Zeichen des Dateinamens.
Die einfachste Variante wäre, dass ChurchTools sich an die Standards hält, und die Dateinamen zukünftig kleiner als 100 Zeichen lässt. Dann würde auch der AutoUpdater wieder funktionieren. Ich habe das so dem CT Support vorgeschlagen. Mal schauen, wie die Entscheidung des Entwickungsteams ausfällt.
-
@sirdud für die nächste Version wird es wieder kurze Namen geben.
-
Es gibt mittlerweile eine neue Version des AutoUpdater (4.0). In dieser Version kann konfiguriert werden, dass zum Entpacken nicht die PHP Funktion verwendet wird, sondern das betriebssysteminterne tar Kommando. Dadurch sollte es bei der Verwendung langer Dateinamen nicht mehr zum Fehler der abgeschnittenen Namen kommen. Damit das funktioniert, ist ein entsprechender Eintrag in der config.php des AutoUpdaters notwendig.