Ajouter libcurl et https

a marqué ce sujet comme résolu.

Bonjour,

Je travaille actuellement sur un système embarqué Arm7 un peu ancien basé, je pense, sur une Debian 7.

Le système est donc créé à partir d’une config buildroot (2015.08.1) et je dois y ajouter libcurl. Jusque là pas de problème, sauf la libcurl ainsi ajoutée au système ne supporte pas https. Lorsque j’exécute 'curl https://www.google.com', je reçois le message:

curl: (1) Protocol "https" not supported or disabled in libcurl.

En demandant un peu plus d’info à curl:

# curl --version  
curl 7.43.0 (arm-buildroot-linux-gnueabihf) libcurl/7.43.0 zlib/1.2.8  
Protocols: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp  
Features: IPv6 Largefile libz UnixSockets  `

D’après ce que j’en sais, il faudrait donc pouvoir ajouter l’option '—with-darwinssl' lors du build de libcurl.

Comment faire cela?

Alain

+0 -0

Coucou ^^

Pour commencer, je ne l’ai jamais fais. Donc c’est du domaine de l’incertain. Tu te rends compte que les personnes qui compile libcurl à la main pour leur système embarqué ne cours pas les rues.

Bon cela étant dis. Je recompile relativement souvent des logiciels. Donc --with-darwinssl ça me semble se référer au support SSL sur darwin donc sur masOS. Ce qui t’intéresse est certainement tout simplement --with-ssl ou --with-openssl.

Pour ce qui est de recompiler libcurl. Il va falloir télécharger les sources de libcurl, les compiler et surtout cross compiler pour ARM.

Le processe pour compiler est assez simple, généralement c’est :

$ ./configure
$ make
$ make install

--with-ssl est un paramètre à ajouter à configure.

Les sources de curl (et j’espère de libcurl aussi) sont ici: https://github.com/curl/curl
Mais je te conseil de les prendre sur le site officiel.

Un vieux tutoriel qui explique comment cross compiler curl: https://www.matteomattei.com/how-to-cross-compile-curl-library-with-ssl-and-zlib-support/

Un tutoriel pour compiler libcurl sur le site officiel de curl: https://curl.haxx.se/libcurl/c/libcurl-tutorial.html

+0 -0

Bonsoir, Merci pour la réponse mais ce n’est pas ce qui m’intéresse en fait. Je ne peux pas compiler libcurl en dehors du process buildroot qui intègre le résultat dans l’image Linux. Je vais quand même voir si je peux ajouter l’option dans le résultat de make menuconfig.

Alain

Tout d’abord buildroot n’est pas Debian, c’est un système de compilation destiné à concevoir un firmware à base d’un système Linux et d’autres composants de ton choix. C’est en effet destiné pour faciliter la mise en œuvre d’un système embarqué sur mesure.

Concernant ton cas particulier, il faut savoir que buildroot optimise un peu les choses suivant les composants. Pour gagner de la place et du temps de compilation. Entre autre, si tu ne fournis pas une bibliothèque SSL au système, ils ne vont pas activer les options dans les logiciels qui peuvent en avoir besoin.

Jette un œil au fichieer de recette de libcurl à peu près similaire à celle de ta version. Tu peux voir que les options relatives à SSL ne sont actifs que si OpenSSL, ou GnuTLS ou libNSS sont présents dans ton système.

Tu dois donc te pencher dessus et recompiler libcurl quand ce sera fait. Si cela n’est pas suffisant, ce sera de toute façon dans ce fichier qu’il faudra que tu fasses le nécessaire pour le résoudre.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte