Wie baue ich einen Hotfix für's TS400?

Für komplette Updates gibt es "/cloneme?form" im Web-Interface. Das ist hier nicht das Thema.

Kleine Fixes lassen sich aber mit demselben Mechanismus einspielen.

  1. HAPI muss erreichbar sein, weil Daten verschlüsselt werden.
  2. Man erzeugt auf einem TS400 einen leeren Ordner - beispielsweise 'myfix' - mit einem Unterordner 'support'.
  3. Man kopiert alle Dateien, die ergänzt oder geändert werden müssen, in dieses Unterverzeichnis 'support'
  4. Dann erstellt man im Unterverzeichnis 'support' eine Datei mit Namen support0.php, die beispielsweise so aussieht:
    <?php
    require ("/etc/ts400.conf");
    require_once("$include/supporttoolbox.class.inc");
    
    $support = new supporttoolbox;
    
    echo "<h2>Bugfix Zeitstempel vom Wago-Knoten nicht immer korrekt (Bug 1272 und 1274)</h2>";
    
    $support->update_include_file("syssetup.inc");
    $support->update_include_file("wago.class.inc");
    $support->update_file_to_dir("750-841/000-000/PLC/DEFAULT.CHK", "/var/alertroot/config/nodesoft");
    $support->update_file_to_dir("750-841/000-000/PLC/DEFAULT.PRG", "/var/alertroot/config/nodesoft");
    $support->update_file_to_dir("750-841/000-000.FW12/PLC/DEFAULT.CHK", "/var/alertroot/config/nodesoft");
    $support->update_file_to_dir("750-841/000-000.FW12/PLC/DEFAULT.PRG", "/var/alertroot/config/nodesoft");
    
    passthru("/etc/init.d/ts400 restart");
    posix_kill(1, SIGHUP);
    
    ?>
    
  5. Danach ruft man aus dem Ordner 'myfix' makesupport.php auf:
    /usr/ts400/bin/makesupport.php pwd=<passwort> repack=hotfix_1272_1274.tgz

'makesupport' erzeugt aus historischen Gründen eine Datei, deren Name den Hash der Datei enthält. Würde man diesen ändern, so könnte er leicht ungültig werden.

'repack' verpackt die Datei nochmals in ein Tar, so dass man mit der Namensgebung frei ist. Der Hash ist dabei separat als Datei eingefügt.

Dieses Paket sollte nun problemlos vom TS400 verarbeitet werden können.

Achtung! Es gibt keine Versions-Kontrolle!

Es wird defaultmässig lediglich auf 'neuer' überprüft. Und die systemwichtigen Komponenten (z.B. arch.php) werden bei Ungleichheit ersetzt.

Weitere Info

'supporttoolbox.class.inc' wird immer mitgeliefert. Muss also eine zusätzliche Funktion verfügbar sein, so kann man sie vorgängig in supporttoolbox.class.inc integrieren. Die Installation läuft daraufhin in zwei Schritten statt.