Universallösung(TM): Xdialog, kdialog, oder was?
Sebastian Lisken
Sebastian.Lisken at gmx.net
Wed Nov 26 05:33:09 CET 2008
Hallo und danke für die freundliche Aufnahme. Für den vielen Input
natürlich auch. :-) Ich werde sicher nicht alles verarbeiten können.
Momentan erscheint mir der Versuch, ein Xdialog-Binary mitzuliefern, als
der interessanteste Ansatz. Durchaus mit einer xterm-Lösung (ohne curses
oder groff) als Fallback.
Ein paar Antworten:
Patrick schrieb:
> es gibt doch schon für
> Firefox/Iceweasel und Thunderbird/Icedove extra für Tor Addons und dazu
> eben noch torify. Ist das eine Neuerfindung des Rades oder habe ich da
> was falsch verstanden?
Ja, im gewissen Sinne ist es das. Wir haben aber schon recht lange einen
Dongle im Angebot und haben ein paar eigene Ideen, die wir jetzt
umsetzen wollen. Hauptsächlich die einfache und bewußt reduzierte
Kombination von Browser und Tor, die von einem Stick ohne Installation
startet, reduzierte Tor-GUI und eben die Cross-Plattform-Funktionalität.
> Es kann
> sein das auf deinem PrivacyDongle wo der Firefox rumliegt (Ihr bringt ihn mit?
> Oder kommt er vom Nutzer?)
Ja, wir bringen ihn mit.
> auch die benoetigten Libs rumliegen, oder das
> versucht wird die vom System zu nutzen. Aber ein X werdet ihr wohl nicht mitbringen?
Nein, das (natürlich) nicht. Der Dongle besteht aus einem Profil (von
allen OS genutzt) plus pro System ein Firefox (im Fall von Windows der
Portable Firefox) und ein Startprogramm. Das Startprogramm prüft, ob der
Firefox da ist - er kann auch fehlen, deshalb möchte ich mich im
Startprogramm möglichst nicht auf seine Präsenz verlassen - und ob ein
auszupackendes Firefox-Archiv in der "Installationswurzel" vorliegt (in
einer späteren Version könnte es ihn auch direkt aus dem Netz holen,
falls der User das bestätigt - an der Stelle habe ich mich auch schon
gefragt, ob ich von curl oder wget ausgehen oder es mitliefern kann). Es
packt nach Anfrage das Archiv in das richtige Unterverzeichnis aus, kann
ebenso auch ein eventuelles Tor-Binary in ein anderes Unterverzeichnis
schieben. Am Ende startet es den Firefox.
Jan:
> Als C++?
> Ah, nein, <Jedi-Power> Du *willst* kein C++ verweden </Jedi-Power>
> Zumindest nicht fuer binary only.
Sorry, das verstehe ich jetzt nicht :-)
Also, das Startprogramm für Windows habe ich ja in C++, genauer gesagt
in C mit ein bißchen C++-Syntax, also ohne Klassen ...
Update nach kurzem Test: Ich habe C geschrieben, ohne es zu wissen. Kein
Wunder, denn C++ habe ich nur einmal vor Jahren in einem Buch angeschaut
(und mich dann für Java entschieden). Ich hatte es nur aufgrund meiner
sehr alten C-Kenntnisse für C++ gehalten: inzwischen darf ich variable
Argumente mit "..." ausdrücken und Variablendeklarationen auch an
anderen Stellen als am Anfang von Funktionen unterbringen, damit
verlasse ich noch nicht C, zumindest laut dem vom mingw installierten
gcc. Also, mein Source ist C. :-)
Ich habe den Source in einen allgemeinen und einen systemspezifischen
Teil aufgeteilt, d.h. einige Funktionen (und Konstanten) muß eine
Source-Datei systemspezifisch implementieren. Unter anderem void
alert(char*) und int confirm (char*). Ich habe nichts dagegen, in diesem
Funktionen mit system() auch ein anderes Binary oder ein Shell-Skript
einzubinden. Da habe ich auch den Mut, von der Existenz von z.B. "cp -r"
auszugehen. :-)
> Ich versuchte dir klar zu machen, das du mit dem Kopf durch die Wand willst.
Schon klar :-) Ich rechne auch damit, daß ich das Problem nicht mehr
lösen kann, bevor wir Ende dieser Woche eine Version in Auftrag geben.
Die wird in dem Fall ohne die schöne Update-Funktionalität auskommen müssen.
Die Problematik des statischen Verlinkens - große Binaries,
Verantwortung für Updates, Entscheidungen, was man statisch linkt und
was nicht - sind mir schon bekannt. Da müßte man ein bißchen
experimentieren. Ich weiß, daß es keine perfekte Lösung gibt - wir
werden es darauf ankommen lassen müssen, welche Support-Anfragen wir
bekommen, und in einigen Fällen werden wir nicht helfen können.
Thomas:
> Die LSB definiert doch genau einen Teil der Schnittstellen, die hier
> gesucht werden.
Jein, so sieht es ab 3.1 aus, jedenfalls nach einem ganz kurzen Blick in
Wikipedia und "http://refspecs.linux-foundation.org/lsb.shtml", weil ich
das Kürzel bisher gar nicht kannte. Vorher vielleicht nicht, denn dann
haben wir weder GTK noch QT. Und laut
"http://linuxfoundation.org/lsb-cert/productdir.php?by_prod" bedeutet
das z.B. bei SuSE eine recht herbe Einschränkung, aber das ist natürlich
ganz auf die Schnelle nachgeschaut. Ich bezweifele aber, daß ich bis
Ende der Woche einen Code auf der Grundlage hinbekomme. Xdialog mit
xterm-Fallback könnte der schnelle Ausweg sein.
Hm, ich habe gerade von http://xdialog.free.fr/ die Sourcen geholt und
auf einem Linux-Rechner der Uni Bielefeld, Mathe-Fakultät zu bauen
versucht, aber configure sagt, es sei kein GTK vorhanden, eine Suche
nach "gtk-config" bestätigt es ... GTK an sich kann mir aber nicht
fehlen, wenn Ralf recht hat, daß Firefox GTK 2.x voraussetzt,
wahrscheinlich fehlen mir nur die gtk*-devel-Pakete. Vorausgesetzt, ich
finde in Linux, in dem ich das übersetzen kann: könnt ihr mich beraten,
welche Linker-Optionen ich einsetzen sollte für ein Binary, das auf
möglichst vielen mich interessierenden Linuxen läuft? Also eben solche,
auf denen auch Firefox läuft - Xdialog kann auch mit GTK2 verwendet
werden, und die auf "http://xdialog.free.fr/doc/changelog.html" dafür
genannten Probleme treffen auf mich wahrscheinlich nicht zu, weil ich
mich in meinen Texten auf US-ASCII beschränke.
Sebastian
More information about the Linux
mailing list