openSUSE 13.1 und susehelp DocServer via Apache

Hallo,

ich verwende openSUSE 13.1 x64 auf einem kleinen Server in meinem Büro. Ich kenne aus “alten” SuSE Zeiten den docserver bzw. das susehelp System. Das Paket susehelp habe ich gefunden und installiert. Nach etwas Tüftellei - z.B. das Verzeichnis “/sbin/conf.d/” gibt es nicht, genauso wenig wie “/sbin/SuSEconfig” - habe ich es halbwegs zum laufen bekommen. Das Paket scheint längere Zeit nicht mehr Aktualisiert worden zu sein.
Ich verwende den DocServer via Apache und finde es sehr praktisch die Paket-Dokumentation via Browser von meinem Laptop aus zu lesen und via PuTTY zu arbeiten.
Nach der Installation stellt sich für mich die Frage, ob es den DocServer weiterhin geben wird?

Viele Grüße.

Ja, richtig.
An dem Paket scheint schon seit Jahren niemand mehr aktiv zu arbeiten, die letze Änderung war ein Fix für GNOME in 2012, die letzte wirkliche Änderung war 2009.

Ich habe ebenfalls vor ein paar Monaten mal einen Blick darauf geworfen und es, wie du schreibst, mit ein paar manuellen Änderungen halbwegs zum Laufen gebracht.
Sh. auch https://forums.opensuse.org/showthread.php/499910-Search-Help-apps?p=2656228#post2656228 und die nachfolgenden Kommentare…

Nach der Installation stellt sich für mich die Frage, ob es den DocServer weiterhin geben wird?

Tja, solange es keine Probleme mit dem Bauen des Pakets gibt, wird es wohl in der Distribution enthalten bleiben.
Außer jemand bemerkt, dass es eigtl. nicht mehr funktioniert und niemand sich drum kümmert…
In 13.2 ist es jedenfalls noch enthalten.

Allerdings, openSUSE ist eine Community-Distribution, es kann also jeder der will Änderungen am Paket vornehmen und die in die Distribution einpflegen, und sogar die Pflege/Wartung des Pakets übernehmen um sicherzustellen dass es in der Distribution bleibt und funktioniert. Hättest du vielleicht Lust dazu? :wink:

Evtl. werde ich mich selber nochmal damit beschäftigen, hatte aber seit damals nicht wirklich Zeit dafür. Und persönlich sehe ich auch keinen wirklichen Nutzen dafür, hat also nicht wirklich hohe Priorität für mich.

Hallo wolfi323,

vielen Dank für die Antwort. Ich werde mich in Ruhe damit beschäftigen. Viel Lust habe ich natürlich nicht, und noch weniger Zeit :wink: Aber mal schauen. Ich werde mir den anderen Post ansehen. Irgendwo Anfangen, und mal sehen, vielleicht kommt ja sogar etwas dabei raus…

Viele Grüße!

Tja, ich bin da aber auch nicht wirklich ins Detail gegangen.

Irgendwo Anfangen, und mal sehen, vielleicht kommt ja sogar etwas dabei raus…

Ich denke es wäre mal ein guter Start, irgendwo alle notwendigen Änderungen zusammenzufassen. Evtl. hier in diesem Thread? :wink:
Muss ja nicht alles auf einmal sein.

Das Paket entsprechend zu ändern wäre dann ein Klax.

Hallo wolfi323,

ich fange bei “info2html” an. Aussderdem führe ich die Probleme Stichpunktartig auf.

Wie im Beitrag schon beschrieben funktioniert “info2html” nicht mehr. Ich habe “info2html” direkt, also via http://dochost/cgi-bin/info2html , aufgerufen:

/var/log/apache2/error.log
AH01215: $* is no longer supported at /srv/www/cgi-bin/info2html line 335.

Hierzu habe ich im Internet gesucht, und herausgefunden, dass “$*” unter der aktuellen Perl-Version nicht mehr unterstützt wird. “info2html” kommt in der Version von 2006. Leider kenne ich mich mit Perl nicht so gut aus um den Fehler zu berichtigen.
Die Meldung wäre mir egal, da die info-Seiten trotzdem im Browser aufgelisten werden. Klicke ich dann aber einen Eintrag an, z.B. “tar” bekomme ich einen “File IO Error” im Browser angezeigt. Im /var/log/apache2/error.log erscheint:

AH01215: , referer: http://mydochost/cgi-bin/info2html

Ich habe mehrere Einträge ausprobiert und es kommt immer diese Fehlermeldung, im Browser sowie im error.log .

Als weiteren habe ich mich mit dem man-pages beschäftigt. Via zypper info susehelp werden keine Empfehlungen oder Abhänigkeiten angezeit, jedenfalls fehlt das rman Paket. Nachdem ich dieses Installiert habe funktioniert es. Im Apache error.log sieht das so aus:

AH01215: sh: rman: command not found, referer: http://mysusehelp/susehelp/cgi-bin/susesearch.cgi?lang=de&cgiprefix=%2Fsusehelp%2Fcgi-bin%2F&fileprefix=&header=1&words=gzip&Submit=Suche&num=5&method=and&scope=info&scope=man&lang=de&cgiprefix=%2Fsusehelp%2Fcgi-bin%2F&fileprefix=
AH01215: col: write error, referer: http://mysusehelp/susehelp/cgi-bin/susesearch.cgi?lang=de&cgiprefix=%2Fsusehelp%2Fcgi-bin%2F&fileprefix=&header=1&words=gzip&Submit=Suche&num=5&method=and&scope=info&scope=man&lang=de&cgiprefix=%2Fsusehelp%2Fcgi-bin%2F&fileprefix=
AH01215: grotty:<standard input> (<standard input>):6027:fatal error: output error, referer: http://mysusehelp/susehelp/cgi-bin/susesearch.cgi?lang=de&cgiprefix=%2Fsusehelp%2Fcgi-bin%2F&fileprefix=&header=1&words=gzip&Submit=Suche&num=5&method=and&scope=info&scope=man&lang=de&cgiprefix=%2Fsusehelp%2Fcgi-bin%2F&fileprefix=
AH01215: man: command exited with status 1: col -b -p -x, referer: http://mysusehelp/susehelp/cgi-bin/susesearch.cgi?lang=de&cgiprefix=%2Fsusehelp%2Fcgi-bin%2F&fileprefix=&header=1&words=gzip&Submit=Suche&num=5&method=and&scope=info&scope=man&lang=de&cgiprefix=%2Fsusehelp%2Fcgi-bin%2F&fileprefix=

Tja. Vielleicht liest hier jemand mit und kann mit Perl umgehen. Die Funktion in info2html lautet: ParsCrossRefs . Die Funktion ist relativ gross, daher hier nur ein ausschnitt:

ParsCrossRefs

#----------------------------------------------------------

scans a line for the existence of cross references and

transforms them to HTML using a little icon

#----------------------------------------------------------
sub ParsCrossRefs{
local($prev,$Line,$BaseInfoFile) = @_;
== > local($,$NewLine,$Token) = (1); <==
$Line = " ".$Line;
if ($prev =~ /*Note(^ ,.]
)$/i) {
if ($Line =~ /^$TAG$TE/) {
$Line = “$prev-NEWLINE-$Line”;
}
}

Viele Grüße!

Zumindest ich lese mit.
Ich bin jetzt zwar auch nicht wirklich ein Experte in Sachen Perl, aber ich werd mir das mal in den nächsten Tagen anschauen… :wink:

Ich habe gestern noch etwas weiter gesucht und auf der Sourceforge Seite von “info2html” etwas gefunden:http://sourceforge.net/p/info2html/bugs/3/Hier wird der “AH01215: $* is no longer supported at /srv/www/cgi-bin/info2html line 335.” Fehler beschrieben und es gibt eine fertige Lösung dazu. Leider ist der Fehler 2008 gemeldet und aktuell im Status offen…Des weiteren gibt es unter Debian das dwww Paket. Dieses verwendet info2www. Evtl. kann man dwww auch nach openSuse portieren und den Web-Part von susehelp abtrennen. Susehelp via KDE nutze ich nicht.Sollte jemand als Paket-Maintainer (für susehelp) gesucht werden hätte ich Interesse. Jedoch habe ich bisher keine Erfahrung damit, könnte aber am Wochenende 1-2 Stunden investieren.

Tut mir leid, hat etwas länger gedauert… :wink:

Aber ich habe mir info2html jetzt genauer angeschaut und es auch zum Laufen bekommen.
Das “AH01215: $* is no longer supported at /srv/www/cgi-bin/info2html line 335.” war aber gar nicht die Ursache für die IO Error Fehlermeldung.
Man muss die Zeile 698 entfernen/auskommentieren:

    &DirnameCheck($BaseInfoFile) || &DieFileNotFound($BaseInfoFile);

Die wird von einem openSUSE spezifischen Patch hinzugefügt. Scheinbar war das irgendwann (vor Veröffentlichung von 2.0) Teil des Skripts und wurde wieder entfernt weil es nicht funktionierte. In dem Patch (der vermutlich das Skript damals auf den aktuellen Entwicklungsstand gebracht hat) ist das aber aus irgendeinem Grund drinnengeblieben.

Übrigens, KDE4 enthält eine leicht abgeänderte Version von info2html (/usr/share/kde4/apps/kio_info/kde-info2html, für den info:// KIO-Slave der verwendet wird wenn du “##xxx” oder “info:/xxx” in Konqueror als Adresse angibst, bzw. im KDE-Hilfezentrum Info-Seiten aufrufst). Diese enthält die Zeile (und die DirnameCheck() Funktion) auch, aber auskommentiert mit folgendem Hinweis:

#----------------------------------------------------------
#                    DirnameCheck
# TV: This is totally broken.
#     I don't know what was the original attempt but that code
#     cannot work ! we cannot match the info name (which has no full path)
#     with the info path ...
#     The only thing i can see (guessed from the || part of the caller)
#     is that we try to reject files with "/" in their name, guessing
#     we pass a man page full path instead of a info file name ...
#     In *that* case, the flow logic is inverted and we should have used "&&"
#     instead of "||"
#
#     Thus the commented out call...
#----------------------------------------------------------

Ich habe gefixte Pakete hier erstellt:
http://download.opensuse.org/repositories/home:/wolfi323:/branches:/Publishing/
Da ist jetzt aber nur diese eine Zeile entfernt, der $@ Fehler ist nicht behoben (obwohl ich auch wüsste was da zu tun wäre), ich sehe hier aber kein Problem deswegen…

Ich werde den Fix dann auch in Factory einpflegen, und evtl. ein Update for 13.1/13.2 submitten…