From d8c8cbe7bd41e51ddd60c5479cd74001c4113442 Mon Sep 17 00:00:00 2001 From: Umut Kantarci Date: Mon, 21 Sep 2026 07:41:15 +0200 Subject: [PATCH] Remove the old favicon.svg in the second update step, which runs the new code The file copy still runs the code of the installed version, which does not know the list; the archive check from 1.21.6 to 1.21.7 left the file behind. Co-Authored-By: Claude Opus 5 --- src/Ops/ArchiveUpdate.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Ops/ArchiveUpdate.php b/src/Ops/ArchiveUpdate.php index 0af8d0f..f0bd126 100644 --- a/src/Ops/ArchiveUpdate.php +++ b/src/Ops/ArchiveUpdate.php @@ -34,6 +34,8 @@ final class ArchiveUpdate * * Das Zusammenführen kopiert nur hinzu. Bliebe favicon.svg liegen, lieferte der Webserver * sie weiter selbst aus - das mitgelieferte Zeichen, auch wenn ein eigenes Symbol gesetzt ist. + * Gelöscht wird in finish(): Das Kopieren erledigt noch der Code der alten Fassung, der + * diese Liste nicht kennt. */ private const ENTFALLEN_IN_PUBLIC = ['favicon.svg']; @@ -229,11 +231,6 @@ final class ArchiveUpdate // public/ wird Datei für Datei aktualisiert: Schriften und erzeugte Bündel gehören dem // Betreiber und wären sonst weg. $this->mergePublic($quelle.'/public', $this->root.'/public'); - foreach (self::ENTFALLEN_IN_PUBLIC as $eintrag) { - if (is_file($this->root.'/public/'.$eintrag) && !is_file($quelle.'/public/'.$eintrag)) { - @unlink($this->root.'/public/'.$eintrag); - } - } // Ebenso plugins/: die mitgelieferten Plugins werden aktualisiert, ein vom Betreiber // installiertes Plugin bleibt, weil sein Ordner im Archiv nicht vorkommt. $this->mergePublic($quelle.'/plugins', $this->root.'/plugins'); @@ -319,6 +316,9 @@ final class ArchiveUpdate @unlink($this->root.'/'.self::MARKE); $this->updater->maintenance(false); $this->protokoll('ok Migrationen: '.$schritte[0]['detail']); + foreach (self::ENTFALLEN_IN_PUBLIC as $eintrag) { + @unlink($this->root.'/public/'.$eintrag); + } $schritte[] = ['step' => 'Aufräumen', 'ok' => true, 'detail' => $this->aufraeumen()]; $schritte[] = ['step' => 'Fertig', 'ok' => true, 'detail' => sprintf( 'Fassung %s läuft. Der vorherige Stand liegt unter var/update/ (die zwei jüngsten bleiben).',