Can't load 'libnsl.so.0' - autossh

B

boba23

Guest
Hi Leute,

kann mir evtl. wer von euch hier helfen, ich nutze seit Jahren Freetz mit einem von mir selbst integrierten autossh package. Funktionierte auch immer tadellos, bis zu den letzten Labor Versionen irgendwann. Hab die Tage jetzt gesehen, daß autossh zwar weiterhin problemlos mit compiliert wird, aber beim starten die Meldung:

autossh: can't load library 'libnsl.so.0'

auswirft. Wurde diese lib aus freetz entfernt? Wenn ja, welche Möglichkeiten hab ich autossh wieder zum Laufen zu bringen?

Box ist ein 7270v2, Trunk version 9954, AVM Version Labor: 54/74.05.29 rev24382

Danke schon mal,

boba
 
Füge zur Not deinem Config-File die Abhängigkeit hinzu:

select FREETZ_LIB_libnsl

eigentlich sollte die aber immer mit dabei sein
 
Hey,

hab ich schon gecheckt, scheint drin zu sein, trotzdem der Fehler :-(

$ grep -i libnsl Config.*
Config.in: select FREETZ_LIB_libnsl
Config.in.cache: select FREETZ_LIB_libnsl

Sonst noch ne Idee?
 
Ist die Lib denn im Image? Suche mal im "build" Ordner

find build/modified/filesystem -name "libnsl*"
 
Nee, ist nicht da. Findet nix ... woran könnte das liegen? In der Config ist sie ja drin, wie du oben siehst ...
 
Du hast aber auch ein ganzes "make" durchlaufen lassen?!? Sind dabei Fehlermeldungen gekommen?!?
 
Hmm nicht wirklich drauf geachtet, mach ich gleich nochmal moment. Auf jeden Fall mal keine Fehler die ein erfolgreiches Build verhindert hätten, da es ja im moment läuft auf der Box.

Nö, also ich seh ma keinerlei Fehler, wobei er beim make logischerweise auch nicht wirklich viel tut, aus repacken usw.

Ich werds vielleicht nochmal mit nem neuen, sauberen checkout probieren ...
 
Zuletzt bearbeitet von einem Moderator:
Dieses Ticket könnte dich interessieren:
http://freetz.org/ticket/1940

EDIT: Sehe gerade, dass es dein eigenes Paket ist. Dann musst du die Abhängigkeit wohl selber entfernen.
 
Zuletzt bearbeitet:
Das wird vermutlich nicht helfen, denn die Library ist scheinbar nicht in der Download-Toolchain dazu (mipsel_gcc-4.6.3_uClibc-0.9.32.1-freetz-r9637-shared-glibc.tar.lzma).
Keine Ahnung, warum.

Komisch, dass du dann das Programm linken kannst.
Kannst du mit "-static" in den LDFLAGS ein "statisches" Programm ohne dynamische Libs bauen?

EDIT O.k., warum das weg ist, steht im Ticket 1940.
Da müsstest du im "configure" dazu mal schauen, wo das diese Lib sucht...

EDIT 2 Mache mal ein "patches" Verzeichnis im Paket-Ordner (sofern es noch nicht da ist) und packe diese Datei hinein und benenne sie um, so dass das .txt am Ende entfällt (also in "010-no_libnsl.patch").
Hilft das?!?

Du kannst die abhängigen Libraries mit "ldd" finden, so in etwa:

Code:
toolchain/build/mipsel_gcc-4.6.3_uClibc-0.9.32.1/mipsel-linux-uclibc/bin/mipsel-linux-ldd packages/target-mipsel_uClibc-0.9.32.1/autossh*/root/usr/bin/autossh
ggf. den Pfad zu einem Paket-Binary anpassen...
 

Anhänge

  • 010-no_libnsl.patch.txt
    451 Bytes · Aufrufe: 11
Zuletzt bearbeitet:
Hey Max,

werd ich heut abend gleich mal testen, was macht der patch genau? libnsl wieder enablen? Wo soll der patch genau hin? Int make/autossh/patches ? Da hab ich schon nen anderen patch drin für autossh. Oder doch woanders?

gruß,

boba
 
Der Pfad ist richtig (in make/autossh/patches), die Datei muss auf ".patch" enden, das kann man aber hier nicht anhängen.

Der Patch "verhindert" den Teil aus, in dem das configure schaut, ob es die libnsl für den "gethostbyname" benötigt.
Damit sollte dein Programm ohne diese Library auskommen. Ich habe mich da an die ähnlichen Partches in dem Freetz-Ticket gehalten.
Deswegen kann ich nicht sagen, ob das Programm so "richtig baut". Prinzipiell sollte das aber zumindest "so ähnlich" gehen.
 
Ok max, danke nochmal. Werd das heut abend checken und berichten ...
 
Der Patch "verhindert" den Teil aus, in dem das configure schaut, ob es die libnsl für den "gethostbyname" benötigt.
Damit sollte dein Programm ohne diese Library auskommen. Ich habe mich da an die ähnlichen Partches in dem Freetz-Ticket gehalten.
Siehe
Code:
http://freetz.org/attachment/ticket/1242/autossh_060211.patch
und
Code:
http://svn.freetz.org/branches/sf3978_packages/make/autossh/autossh.mk
 
Klar, das ist noch einfacher:

$(PKG)_CONFIGURE_ENV += ac_cv_lib_nsl_gethostbyname=no
 
Dumme Frage evtl. gibt es autossh jetzt also doch irgendwie "inoffiziell" im freetz repo? Oder wieso jetzt die patches im SVN? Bisher hab ich das Paket immer manuell unter .../make/ hinzugefügt? Gibts da auch nen bequemeren weg? Wenn ich den trunk auschecke seh ich mal nix von autossh ... ?

Edit: Ok, Alzheimer ... seh grad, daß damals der dirty hack von mir da im ticket veröffentlicht wurde ;-)

boba
 
Zuletzt bearbeitet von einem Moderator:
Gibts da auch nen bequemeren weg?
Ja. Im trunk, aus dem Verzeichnis ".../freetz-devel/make":
Code:
svn co http://svn.freetz.org/branches/sf3978_packages/make/autossh autossh
Die Eintragungen in die "make/Cofig.in" und "make/external.in" musst Du manuell machen.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,779
Beiträge
2,257,309
Mitglieder
374,814
Neuestes Mitglied
soundworx
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.