Über die Zusammenarbeit von Zope, doxygen und kde
Notizen über die Zusammenarbeit von Zope, doxygen und kde
In diesem Dokument möchte ich meine ersten Versuche mit Zope dokumentieren. Ich werde von Sackgassen und Irrtümern aber (hoffentlich) auch von Lösungen und Triumphen berichten. Vieles davon wird noch nicht der Weisheit letzter Schluss sein, aber wenn von den anderen, erfahreneren, ZopeianerInnen Anregungungen, Verbesserungsvorschläge oder Hinweise auf einschlägige Dokumentation kommt (RTFM!), dann kann diese Seite nicht nur für mich, sondern auch für andere (Anfänger) nützlich sein.
Die Aufgabe
Um mit dem Umgang mit Zope vertraut zu werden, habe ich mir selbst die folgende Aufgabe gestellt:
- Ein (fiktives) Projektteam von ca. 5 - 10 EntwicklerInnen erstellt ein neues Softwareprodukt.
- Die Kommunikation wird über ein Zope-Portal abgewickelt. (Es ist noch nicht klar, ob hierfür das CMF benutzt werden soll, oder nur nacktes Zope).
- Die Software selbst ist in C++ geschrieben. Die Dokumentation der Software wird mit doxygen erstellt. Diese Dokumentation soll ebenfalls im Portal verfügbar sein.
Einzelaktionen
Starten/Beenden des Zope-Servers
Das beschriebene System ist eine Linux-Workstation mit Debian 3.0 (Woody) und Kernel 2.4.18. Die Oberfläche ist KDE 3.1.2. Bestandteil der Distribution ist Zope in der Version 2.5.1. Standardmäßig wird Zope bei jedem Booten des Rechners gestartet. Will man Zope nur bei Bedarf vom KDE-Desktop aus starten, sind folgende Schritte durchzuführen:
- In den Verzeichnissen /etc/rc.d sind alle Links zope zu löschen. Dies sind nur Links auf das Debian-Standardskript zum Starten und Beenden von Zope; Näheres hierzu ist in der Debian-Dokumentation zu erfahren. Zope wird jetzt nicht mehr automatisch gestartet.
- Für den schnellen Zugriff wird ein Icon auf dem KDE-Desktop erzeugt. Anklicken des Icon öffnet ein Fenster und ruft das nach wie vor vorhandene Zope-Startskript auf. Wird das Fenster geschlossen, wird der Zope-Server beendet.
- Hierfür benötigen wir ein kurzes Shell-Skript (zope.sh):
#!/bin/bash # Dieses Shell-Skript startet den Zope-Server mittels Aufruf von /etc/init.d/zope. # Es ist geeignet für Debian-Systeme, die Zope installiert haben, # dieses aber nicht automatisch starten möchten, sondern statt dessen einen # (KDE-)Icon auf dem Desktop verwenden. ZOPE_CMD=/etc/init.d/zope ZOPE_CMD_START="$ZOPE_CMD start" ZOPE_CMD_STOP="$ZOPE_CMD stop" function trap_HUP { $ZOPE_CMD_STOP exit } trap trap_HUP SIGHUP # Zope beenden, wenn das Terminalfenster geschlossen wird trap trap_HUP SIGINT # Zope beenden, wenn im Fenster Ctrl-C gedrückt wird trap trap_HUP SIGTERM # Zope beenden, wenn der Rechner runter gefahren wird $ZOPE_CMD_START while true; do sleep 120; done
- Das Skript muss auf ausführbar gesetzt werden: chmod +x zope.sh
- Das KDE-Icon wird erstellt:
- Kontextmenü des Desktop:
[Neu erstellen/Verknüpfung mit Programm]
- Im Dialogfenster ist noch einzugeben:
Tab-Reiter: Allgemein
- Name: Zope-Server
- Icon: Nach Belieben auf das Icon klicken und ein anderes wählen
Tab-Reiter: Ausführen
- Befehl:
/zope.sh
- In Terminal starten: ja
- Terminal-Optionen: -title "Zope Server"
- Als anderer Benutzer ausführen: ja
- Benutzername: root
- Kontextmenü des Desktop:
Verwendet man eine Zope-Installation, die "an der Distribution vorbei" aufgespielt wurde, dann ist das obige Skript zope.sh entsprechend zu modifizieren (Beispiel):
ZOPE_CMD_START="/opt/Zope-2.6.0-linux2-x86/start -w 8180" ZOPE_CMD_STOP="/opt/Zope-2.6.0-linux2-x86/stop"
Die Portnummer 8180 ist hier gewählt, weil die voreingestellte 8080 oft für Proxies, Firewalls oder ähnliches belegt ist.
Verwaltung/Koordination der Entwickler
Hierfür ist das CMF
sehr geeignet. Jeder Entwickler wird ein Teilnehmer der Site und meldet sich selbst an. Die Vorgehensweise hierfür ist selbsterklärend, allerdings muss es ein Dokument geben, das den organisatorischen Ablauf und Nutzungskonventionen erklärt.
Integration der 'doxygen'-Dokumentation
Ich habe mich dazu entschlossen, die Dokumentation außerhalb von Zope zu erzeugen und dann in die Zope-Site hochzuladen.
- Benutzung von WebDAV
-
In
KDE3
existiert ein IO-Slave fürWebDAV
, so dass im Prinzip alle KDE-ProgrammeWebDAV
verwenden können. Die Dokumentation wurde von doxygen erzeugt und liegt im Verzeichnishtml
. Diese wird folgendermaßen auf den Zope-Server kopiert:- Erstellen eines webdav-URL als Lesezeichen:
- Im Konqueror wird der Befehl [Lesezeichen/Lesezeichen bearbeiten] im Menü aufgerufen.
- Im Lesezeichen-Editor (KEditBookmarks) wird der Befehl [Einfügen/neues Lesezeichen erstellen] im Menü aufgerufen. Es wird eine neue leere Zeile eingefügt.
- Nach einem Doppelklick in der Spalte "Lesezeichen" gibt man einen sinnvollen Namen für das neue Lesezeichen ein (z.B. "lokaler Zope-Server-webdav").
- Nach einem Doppelklick in der Spalte "Adresse" gibt man die URL ein: "webdav://localhost:9673/" Es ist wichtig, dass der Pfad mit einem "/" endet, weil sonst das Navigieren in Unterverzeichnisse nicht funktioniert.
- Im Konqueror den Befehl [Fenster ... teilen] im Menü aufrufen.
- In einem der beiden Fensterhälften zum obigen Lesezeichen navigieren.
- Das Verzeichnis
html
von der einen Hälfte in die andere ziehen. Nach der Eingabe eines gültigen Zope-Namen und Passwort werden die Dateien rekursiv auf den Zope-Server geladen. - Alternativ zum Hantieren mit geteilten Fenstern kann auch im Kontextmenü des Verzeichnisses
html
"kopieren" gewählt werden, dann navigiert man zum Lesezeichen und wählt dort im Kontextmenü "einfügen".
- Erstellen eines webdav-URL als Lesezeichen:
Hinweis: Die Lesezeichen des Konqueror sind unabhängig von denen des KDE-Dateiauswahldialogs. Wenn man also versucht, eine geänderte Datei direkt im Editor mit dem Befehl [Datei/Speichern unter] auf den Zope-Server zu laden, so ist das Webdav-Lesezeichen des Zope-Server nicht verfügbar. Falls man es hier ein zweites mal anlegt, wird man anschließend enttäuscht feststellen, dass der Dateiauswahldialog hier nur lokale Speicherorte zulässt, obwohl die Funktionalität offensichtlich vorhanden ist (s.o). Dies ist ein Fehler in KDE, denke ich.
- Integration in die Zope-Site
-
Die erzeugten HTML-Seiten der Dokumentation sind nicht im Hinblick auf die Integration mit Zope angepasst. In dem betreffenden Verzeichnis innerhalb von Zope existiert auch kein Dokument
index_html
. Diese wird jetzt noch folgendermaßen angelegt:This is not the real starting page. If your browser doesn't support redirection, feel free to use the link
Was noch zu tun bleibt
Zum obigen Desktop-Icon: Analog zum Geräte-Icon, das für mounted
/ unmounted
unterschiedlich aussieht und im Kontextmenü die Befehle zum mounten anbietet, möchte ich etwas entsprechendes für den Zope-Server haben. Dies scheint aber ohne (KDE
)-Programmierung nicht möglich zu sein.
Der Zope-Dummy bittet um ihre Mithilfe
- Ist das dargestellte Vorgehen sinnvoll?
- Wie sieht
index_html
aus, wenn die modernerenPage Templates
stattDTML Documents
benutzt würden?