keine locale bei selbstkompiliertem gftp
Hallo,
ich habe gerade gftp-2.0.16 selbst kompiliert und als rpm gebaut. So sieht es
aus:
--------------
rpm -qilp /usr/src/packages/RPMS/i386/gftp-2.0.16-2SuSE9mm.i386.rpm
Name : gftp Relocations: (not relocateable)
Version : 2.0.16 Vendor: (none)
Release : 2SuSE9mm Build Date: Mo 24 Nov 2003
09:10:45 CET
Install date: (not installed) Build Host: linux.local
Group : Applications/Internet Source RPM:
gftp-2.0.16-2SuSE9mm.src.rpm
Size : 3582104 License: GPL
Signature : (none)
Packager : Mario Mueller
Mario Mueller
Trotz aller vorhandenen locale in /opt/gnome/share/locale/
Kleine Begriffsbestimmung vorab: Was da liegt ist keine locale :) Was da liegt (die *.mo), sind die zu der jeweiligen locale gehörenden lokalisierten Texte.
startet mein gftp nur in englisch (OHNE Fehlermeldung a la: Gdk-WARNING **: locale not supported by C library). Auch ein Vergleich mit dem SuSE-Paket 2.0.15 ergibt nichts Ungewöhnliches: auch dort sind alle Dateien in den Verzeichnissen wie in meinem Paket.
Wie sieht die Ausgabe von 'locale' für den Benutzer aus, der gftp startet? Ansonsten starte doch mal aus einem xterm gftp unter strace: strace -f -o gftp.trace -e trace=file gftp In dem resultierenden gftp.trace solltest du sehen, ob gftp versucht, einen der Message-Kataloge zu laden und ob das erfolgreich ist. Philipp
Am Montag, 24. November 2003 22:36 schrieb Philipp Thomas:
Mario Mueller
[Mo, 24 Nov 2003 09:57:42 +0100]: Trotz aller vorhandenen locale in /opt/gnome/share/locale/
Kleine Begriffsbestimmung vorab: Was da liegt ist keine locale :) Was da liegt (die *.mo), sind die zu der jeweiligen locale gehörenden lokalisierten Texte.
... ok
Wie sieht die Ausgabe von 'locale' für den Benutzer aus, der gftp startet? Ansonsten starte doch mal aus einem xterm gftp unter strace:
locale LANG=de_DE@euro LC_CTYPE="de_DE@euro" LC_NUMERIC="de_DE@euro" LC_TIME="de_DE@euro" LC_COLLATE="de_DE@euro" LC_MONETARY="de_DE@euro" LC_MESSAGES="de_DE@euro" LC_PAPER="de_DE@euro" LC_NAME="de_DE@euro" LC_ADDRESS="de_DE@euro" LC_TELEPHONE="de_DE@euro" LC_MEASUREMENT="de_DE@euro" LC_IDENTIFICATION="de_DE@euro" LC_ALL=
strace -f -o gftp.trace -e trace=file gftp
In dem resultierenden gftp.trace solltest du sehen, ob gftp versucht, einen der Message-Kataloge zu laden und ob das erfolgreich ist.
... da ist der Wurm drin. Dies sind (bestimmt) die Meckerstellen: -------------------------- 2905 open("/usr/share/locale/de_DE@euro/LC_MESSAGES/gftp.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 2905 open("/usr/share/locale/de@euro/LC_MESSAGES/gftp.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 2905 open("/usr/share/locale/de_DE/LC_MESSAGES/gftp.mo", O_RDONLY) = -1 ENOENT (No such file or directory) 2905 open("/usr/share/locale/de/LC_MESSAGES/gftp.mo", O_RDONLY) = -1 ENOENT (No such file or directory) -------------------------- Das Ganze ist unter http://home.arcor.de/mmuellerss/suse/gftp.trace zu betrachten. Wie kann ich beim kompilieren gleich mit angeben, dass das jeweilige (gtk2)-Programm seine locale auch gefälligst beim --prefix=/opt/gnome (so will es SuSE) suchen soll ?
Philipp
Danke -- mmuellerss \\ : // mmuellerss@gmx.de Mario Mueller \\:// http://www.mmuellerss.de.vu Barbarastrasse 6 (o -) tel 01212 / 511568109 99752 Bleicherode ---ooO-(_)-Ooo-- Knode/KMail auf SuSE
Mario Mueller
locale LANG=de_DE@euro LC_CTYPE="de_DE@euro" LC_NUMERIC="de_DE@euro" LC_TIME="de_DE@euro" LC_COLLATE="de_DE@euro" LC_MONETARY="de_DE@euro" LC_MESSAGES="de_DE@euro" LC_PAPER="de_DE@euro" LC_NAME="de_DE@euro" LC_ADDRESS="de_DE@euro" LC_TELEPHONE="de_DE@euro" LC_MEASUREMENT="de_DE@euro" LC_IDENTIFICATION="de_DE@euro" LC_ALL=
OK, so sollte es für einen deutschen Benutzer aussehen.
... da ist der Wurm drin. Dies sind (bestimmt) die Meckerstellen: -------------------------- 2905 open("/usr/share/locale/de_DE@euro/LC_MESSAGES/gftp.mo", O_RDONLY) = -1 ENOENT (No such file or directory) [...] --------------------------
Ja, genau das ist die Ursache. Da sucht gftp die Kataloge in den falschen Verzeichnissen.
Wie kann ich beim kompilieren gleich mit angeben, dass das jeweilige (gtk2)-Programm seine locale auch gefälligst beim --prefix=/opt/gnome (so will es SuSE) suchen soll ?
Vergleiche das doch einfach mal das von dir verwendete gftp.spec mit dem .spec aus dem gftp-2.0.15-35.src.rpm Paket der mittlerweile verfügbaren FTP-Version der 9.0, erhältlich z.B. als ftp://ftp.gwdg.de/pub/suse/i386/9.0/suse/src/gftp-2.0.15-35.src.rpm Philipp
Hallo, Am Dienstag, 25. November 2003 18:04 schrieb Philipp Thomas:
Vergleiche das doch einfach mal das von dir verwendete gftp.spec mit dem .spec aus dem gftp-2.0.15-35.src.rpm Paket der mittlerweile verfügbaren FTP-Version der 9.0, erhältlich z.B. als ftp://ftp.gwdg.de/pub/suse/i386/9.0/suse/src/gftp-2.0.15-35.src.rpm
... habe ich ... auch dort wird nur --prefix=/opt/gnome angegeben ... Bye -- mmuellerss \\ : // mmuellerss@gmx.de Mario Mueller \\:// http://www.mmuellerss.de.vu Barbarastrasse 6 (o -) tel 01212 / 511568109 99752 Bleicherode ---ooO-(_)-Ooo-- Knode/KMail auf SuSE
Mario Mueller
... habe ich ... auch dort wird nur --prefix=/opt/gnome angegeben ...
Dann ist Detektivarbeit angesagt :) Ich vermute mal, dass sich zwischen 2.0.15 und 2.0.16 der Teil nicht geändert hat, wo das Verzeichnis gesetzt wird. In 2.0.15 ist dir massgebliche Teil in src/gtk/gftp_gtk.c, gleich am Anfang von main: #ifdef HAVE_GETTEXT setlocale (LC_ALL, ""); bindtextdomain ("gftp", LOCALE_DIR); #if GTK_MAJOR_VERSION > 1 Sollte in 2.0.16 der Teil identisch sein, dann musst du mal sehen, wie LOCALE_DIR gesetzt wird. Bei 2.0.15 erfolgt das aus dem Makefile heraus. Hier wäre also die Ausgabe von make interessant, wenn gftp_gtk.c kompiliert wird (z.B. indem die Ausgaben von rpm beim Bauen komplett in einer Datei mitgelogged werden). BTW, bist du dir überhaupt sicher, dass du das korrekte gftp aufrufst? Philipp
participants (2)
-
Mario Mueller
-
Philipp Thomas