Mac OSX 10.7.5. e erro libssh: Servidor especificou canal inválido 43 44 45 …

Você já teve problemas ao usar libssh no Mac OSX 10.7.5.? E de alguma forma ele sai com o último erro sendo assim: ** “Erro: Servidor especificou canal inválido 43” **

Se você instalou uma libssh para desenvolvimento com portas e costumava tê-la em seus pacotes implantados, esteja ciente de que esta versão é provavelmente muito antiga, ou pelo menos muito antiga para conter a correção do bug # 39 da libssh ( https: / /red.libssh.org/issues/39 ). Esse bug foi corrigido na última versão do libssh-0.4.8 na série de 0.4

Infelizmente, esta versão não pode ser usada no OSX 10.7.5. quando não é construído com o ponteiro correto para o ambiente; o problema é que em libssh-0.4.8/libssh/socket.c, isso não é edificável:

extern char **environ;

e você tem que substituir isso por:

#ifdef __APPLE__
#include <crt_externs.h>
#define environ (*_NSGetEnviron())
#else
extern char **environ;
#endif

depois disso, construa a coisa e crie sua libssh de trabalho para 10.7.5.

$ mkdir libssh-0.4.8/build/
$ cd libssh
-0.4.8/build/
$ cmake
-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
$ make

O resultado é sua libssh de trabalho:

libssh-0.4.8/build/libssh/libssh.4.1.4.dylib.

Use essa biblioteca em suas implantações e pelo menos funciona em 10.7.5. e 10.8.4 até onde posso dizer …

Agradecimentos a Oleksandr Shneyder de http://x2go.org e http://www.phoca-gmbh.com por descobrir isso! Além disso, se você precisa de um verdadeiro Linux Professional, contrate-o!

Tenha um bom dia,
@Kjellski