[Problem] Prosody IM

Spalanzani

Neuer User
Mitglied seit
18 Jun 2011
Beiträge
22
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich möchte Prosody IM auf meiner FritzBox 7170 installieren. Die Box ist bereits gefreetzt und es läuft der derzeit aktuellste Trunk (r7150) auf der Box.

Ich habe dann die Pakete prosody-trunk, luacyrussasl_1_0, luasec_270610_1, luaexpat_270610_1, with_syml_luafilesystem_190610, luasocket_270610_1 ins Image gepatcht und in der "make/Config.in" angefügt.

Bei make menuconfig erscheinen folgende Warnungen:
Code:
make/luacyrussasl/Config.in:6:warning: 'select' used by config symbol 'FREETZ_PACKAGE_LUACYRUSSASL' refer to undefined symbol 'FREETZ_LIB_libsasl2'
make/prosody/Config.in:9:warning: 'select' used by config symbol 'FREETZ_PACKAGE_PROSODY' refer to undefined symbol 'FREETZ_LIB_libidn'

Dann wollte ich noch die libidn aus dem Ticket #848 patchen:
Code:
user@Ubuntu:~/freetz-trunk$ patch -p0 < libidn.patch
patching file make/libs/Config.in
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file make/libs/Config.in.rej
patching file make/libs/libidn.mk
patching file make/libs/Makefile.in
Hunk #1 succeeded at 326 with fuzz 2 (offset 65 lines).
Die Warnungen bei make menuconfig blieben jedoch:
Code:
make/luacyrussasl/Config.in:6:warning: 'select' used by config symbol 'FREETZ_PACKAGE_LUACYRUSSASL' refer to undefined symbol 'FREETZ_LIB_libsasl2'
make/prosody/Config.in:9:warning: 'select' used by config symbol 'FREETZ_PACKAGE_PROSODY' refer to undefined symbol 'FREETZ_LIB_libidn'

Hoffe ihr könnt mir helfen... was ist diese libsasl2 Library von luacyrussasl? Und warum funktioniert das Patchen mit der libidn nicht, muss ich da auch eine Config.in bearbeiten?

ThX schon mal... bin noch recht neu hier ... aber echt tolles Projekt :)

MfG
Spalanzani
 
Ah ..., jemand der sich für prosody interessiert. Läuft bei mir einwandfrei auf der 7170. Das kriegen wir schon hin.;-)
 
@Spalanzani: Herzlich willkommen hier in IPPF!
Ich kenne Prosody IM nicht, aber generell zum Patchen und Co:
Zunächst mal werden die Patches bei uns in FREETZ gegen den jeweils aktuellen trunk gemacht. Wenn du etwas ältere Patches aus irgendeinem Ticket herauspickst, kann es durchaus passieren, dass sie nicht mehr passen. Linux ist im Unterschied zu Windows sehr gesprächsfreudig ausgestattet, vor allem wenn es Kompilieren angeht. In der Fehlermeldung kannst du sehen, dass dein Patch in einem Fall nicht gepasst hat und eine Config.in.rej erzeugt wurde. Schau doch bitte in den Patch rein in die zu Patchende Config.in und in die Datei mit dem Reject rein. Dann wirst du evtl. finden, was da nicht gepasst hat. Lösung wäre entweder Patch anzupassen oder die Änderungen selbst einzutragen. Wobei letzteres nicht immer geht und oft überschrieben wird.
Warnungen beim Build-Prozess kommen sehr oft vor. Von daher, wenn es mit dem Kompilieren durchläuft, dann sollte man zunächst mal keine Panik schlagen. Wenn es jedoch mittendrin abbricht, dann sind meistens die letzten Fehlermeldungen von Bedeutung.

Ansonsten, hast du dir schon eine relativ schwierige Aufgabe für deinen Anfang hier hinzugezogen. Hast du denn alles in FREETZ vollständig verstanden? Denn sonst wird dein Weg ziemlich steinig, selbst wenn du in Linux kein Neuling bist.

MfG
 
In die make/libs/Config.in musst Du folgenden Eintrag machen:
Code:
config FREETZ_LIB_libidn
	bool "libidn (libidn.so)"
	default n
	help
		GNU Libidn is a fully documented implementation of the Stringprep,
		Punycode and IDNA specifications. Libidn's purpose is to encode and
		decode internationalized domain names.

EDIT 1:

In die make/libs/Makefile.in, musst Du folgenden Eintrag machen:
Code:
ifeq ($(strip $(FREETZ_LIB_libidn)),y)
LIBS+=libidn
endif

EDIT 2:


cyrus-sasl wird auch benötigt. Siehe aktuellen Patch.

EDIT 3:

In der make/lua/Config.in, musst Du am Ende, folgenden Eintrag machen:
Code:
menu "Lua module"
source make/luacyrussasl/Config.in
source make/luaexpat/Config.in
source make/luafilesystem/Config.in
source make/luasec/Config.in
source make/luasocket/Config.in
endmenu

Jetzt bist Du an der Reihe, mit einer Rückmeldung.;)
 
Zuletzt bearbeitet:
@sf3978: Kannst du bitte etwas zum Prosody IM auf der Box erzählen? Ich hatte mich gerade im Netz zum XMPP etwas quer eingelesen, habe aber einige Fragen bezüglich XMPP und Box:
1. Handelt es sich um einen Server in diesem Fall?
2. Wofür ist denn so ein XMPP-Server auf einem Router gut? Der Router hat doch eine dynamische IP und oft nur eine per DDNS zugewiesene Adresse, die sich per nslookup nicht eindeutig identifizieren lässt und somit die notwendige Überprüfung der Echtheit des Servers nicht gewährleistet.
3. Wenn ich einen Strato-Root-Server zur Hand habe, würdest du mir lieber dort empfehlen Prosody aufzusetzen oder doch auf meiner Box?

Ich will nur bisschen mehr wissen, was man mit dem Ding veranstalten kann.

MfG
 
Könnt Prosody nicht eigentlich mal in den Trunk ;) ? Bis auf Updaten auf neuere Versionen passiert in dem Ticket ja nichts mehr. Damals meinte Oliver in dem Ticket dass er neue Packete zurückhalten will bis zum Stable 1.2, diesen gabs aber ja nicht sondern nur 1.1.4 außerdem wurden seit dieser Aussage ja auch einige Packete in den Trunk aufgenommen z.b. vor ein paar minuten in 7151: add new library wxWidgets.
 
Erstmal danke für die Antworten...
die Meldung mit FREETZ_LIB_libidn ist aber geblieben.

Hatte die Einträge aus Edit3 vorher in der make/Config.in, aber so ist das besser ;)


MfG
Spalanzani
 
@hermann72pb:
1. Ja, es ist ein jabber-Server in lua.
2. zum chatten. Man kann den jabber-Server auch über vpn, ssh, etc. erreichen. Die Echtheit des Servers ist kein Problem hier.
3. Ja, dann Prosody lieber auf den Strato-Root-Server, weil der mehr Ressourcen hat als die Box.

EDIT 1:

@Spalanzani:
Hast Du die richtige libidn.mk im Verzeichnis make/libs? Mach mal ein "make libidn-precompiled" und schau ob es sauber duchläuft.

EDIT 2:

siehe Anhang.
 

Anhänge

  • libidn.mk.txt
    1.6 KB · Aufrufe: 2
Zuletzt bearbeitet:
Man kann den jabber-Server auch über vpn, ssh, etc. erreichen. Die Echtheit des Servers ist kein Problem hier.
Das verstehe ich jetzt nicht ganz... Ich habe gelesen, dass XMPP wohl auch verschlüsselte Verbindungen unterstützt und das wohl einer der Pluspunkte von XMPP gegenüber anderer Chat-Dienste wäre. Heißt es, dass Prosody unter FREETZ es zunächst mal nicht kann? Oder fehlt es nur im Klient-to-Server-Pfad und ist dagegen in Server-to-Server-Verbindung vorhanden?

MfG
 
ja, ist sauber durchgelaufen :)


Edit:
genau die ist es...
 
Zuletzt bearbeitet:
@hermann72pb:
Nein, prosody kann auch verschlüsselte Verbindungen herstellen, sowohl Client-to-Server, als auch Server-to-Server. Ich benutze prosody z. Zt. aber nur im vpn, und den ngircd-Server (IRC) auf meiner 7170, verschlüsselt über das Internet. Für die Anwendung im vpn gibt es aber m. E., was besseres zum chatten als jabber (hier prosody) oder irc. Das ist uhub (ADC, siehe meine Signatur).

EDIT 1:

@Spalanzani:
Du solltest jetzt mit allen libraries bzw. Paketen, die Du als Abhängigkeit für prosody benötigst, jeweils "make <Paket>-precompiled" machen.

EDIT 2:

@Spalanzani:
Wenn alle Abhängigkeiten mit "make <Paket>-precompiled" sauber durchlaufen, dann zum Schluss "make prosody-precompiled" machen.
 
Zuletzt bearbeitet:
oh jeh, ich bekomm schon beim luacyrussasl Fehler:
[...]FEHLER 404: Not Found. [...]

Wie ändert man denn die entsprechenden Links?
Sollte wohl doch erstmal einfacheres probieren und mich mit dem make-Prozess auseinandersetzen...

Edit: außerdem muss ich die ja mit -fPIC kompilieren?
 
Zuletzt bearbeitet:
...
Sollte wohl doch erstmal einfacheres probieren und mich mit dem make-Prozess auseinandersetzen...
Das ist einfach und die beste Auseinandersetzung mit make.;-)

EDIT 1:

Schau mal in die mk-Datei:
Code:
$(call PKG_INIT_BIN, 1.0.0)
$(PKG)_SOURCE:=$(pkg)-$($(PKG)_VERSION).tar.gz
$(PKG)_SOURCE_MD5:=
[COLOR="red"]#$(PKG)_SITE:=file:///home/?...?/myfreetz[COLOR="red"][B]/dl[/B][/COLOR]/[/COLOR]
$(PKG)_LIBS:=cyrussasl.so
$(PKG)_LIBS_BUILD_DIR:=$($(PKG)_LIBS:%=$($(PKG)_DIR)/%)
$(PKG)_LIBS_TARGET_DIR:=$($(PKG)_LIBS:%=$($(PKG)_DEST_LIBDIR)/lua/%)
...
klick
 
Zuletzt bearbeitet:
Das Archiv luacyrussasl-1.0.0.tar.gz, vom Ticket in Freetz-trac (siehe klick im Beitrag #13) runterladen und im Verzeichnis dl ablegen und dann "make luacyrussasl-precompiled" machen.
 
Zuletzt bearbeitet:
ok hab ich jetzt auch gerade rausgefunden :D

Code:
[...] relocation R_MIPS_HI16 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

Edit:
Wo muss ich das fPIC flag setzen?
 
Zuletzt bearbeitet:
Wo bekommst Du diese Meldung?

EDIT 1:

Poste mal die Zeilen 20 bis 27, deiner luacyrussasl.mk

EDIT 2:


Zeile 24 sollte so aussehen:
Code:
CFLAGS="$(EXTRA_CFLAGS_1) $(EXTRA_CFLAGS_2) $(TARGET_CFLAGS) [COLOR="red"]-fPIC[/COLOR]" \
 
Zuletzt bearbeitet:
hier:
Code:
user@Ubuntu:~/freetz-trunk$ make luacyrussasl-precompiled
cmd() { PATH="/home/user/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin:/home/user/freetz-trunk/toolchain/build/mipsel_gcc-3.4.6/mipsel-unknown-linux-gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" LD_RUN_PATH="/usr/lib/freetz" make -j2  "$@"  || { printf "\n\\033[33m%s\\033[m\n" "ERROR: Build failed.";  exit 1; } }; 	if [ -e source/.echo_item_start -a ! -e source/.echo_item_build ]; then echo -n "building... "; touch source/.echo_item_build; fi; cmd -C source/target-mipsel_uClibc-0.9.29/luacyrussasl-1.0.0 \
		CC="/home/user/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc" \
		CFLAGS="-DUSE_LUA -I/home/user/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/include/lua/ -DUSE_SASL -I/home/user/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/include/sasl/ -march=4kc -Os -pipe -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" \
		LD="/home/user/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-ld" \
		LIBS="-llua -lsasl2"
make[1]: Betrete Verzeichnis '/home/user/freetz-trunk/source/target-mipsel_uClibc-0.9.29/luacyrussasl-1.0.0'
/home/user/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-gcc -shared -fpic -lsasl2 -o cyrussasl.so cyrussasl.o luaabstract.o context.o
/home/us/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin-ccache/../lib/gcc/mipsel-linux-uclibc/4.4.6/../../../../mipsel-linux-uclibc/bin/ld: cyrussasl.o: [B]relocation R_MIPS_HI16 against `a local symbol' can not be used when making a shared object; recompile with -fPIC[/B]
cyrussasl.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [cyrussasl.so] Fehler 1
make[1]: Verlasse Verzeichnis '/home/user/freetz-trunk/source/target-mipsel_uClibc-0.9.29/luacyrussasl-1.0.0'

ERROR: Build failed.
make: *** [source/target-mipsel_uClibc-0.9.29/luacyrussasl-1.0.0/cyrussasl.so] Fehler 1

Z. 20-27:
Code:
$($(PKG)_LIBS_BUILD_DIR): $($(PKG)_DIR)/.configured
	$(SUBMAKE) -C $(LUACYRUSSASL_DIR) \
		CC="$(TARGET_CC)" \
		CFLAGS="$(EXTRA_CFLAGS_1) $(EXTRA_CFLAGS_2) $(TARGET_CFLAGS)" \
		LD="$(TARGET_LD)" \
		LIBS="$(LUACYRUSSASL_LIBS)"

Edit: ok... funktioniert jetzt :) kompiliere die anderen auch mit -fPIC...

Edit2:
juhu, es lebt ;)
Code:
root@fritz:/var/mod/root# prosody

**************************
Prosody was unable to find the configuration file.
We looked for: /var/tmp/flash/mod/prosody.cfg.lua
A sample config file is included in the Prosody download called prosody.cfg.lua.dist
Copy or rename it to prosody.cfg.lua and edit as necessary.
More help on configuring Prosody can be found at http://prosody.im/doc/configure
Good luck!
**************************

Vielen Dank für die Hilfe! Man könnte ja die Abhängigkeit zur FREETZ_LIB_libsasl2 löschen, wenn sie nicht benötigt wird?
 
Zuletzt bearbeitet:
Man könnte ja die Abhängigkeit zur FREETZ_LIB_libsasl2 löschen, wenn sie nicht benötigt wird?
Ja, die kannst löschen oder kommentieren:
Code:
config FREETZ_PACKAGE_LUACYRUSSASL
	bool "Luacyrussasl 1.0.0 (binary only)"
	default n
	select FREETZ_PACKAGE_LUA
	select FREETZ_LIB_liblua
[COLOR="red"][B]#[/B]	select FREETZ_LIB_libsasl2[/COLOR]
	select FREETZ_PACKAGE_CYRUS_SASL
	help
		Cyrus SASL library (modul) for Lua 5.1
		Does not contain any client-side functionality.
		WWW: http://www.prosody.im/doc/cyrus_sasl#lua-cyrussasl
		WWW: http://github.com/JorjBauer/lua-cyrussasl
 
Prosody 0.8.2

Im Anhang ein Paket für Prosody 0.8.2
 

Anhänge

  • prosody_0_8_2.patch.txt
    50.2 KB · Aufrufe: 6
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.