Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

24 ans de libcurl

Curl est un outil en ligne de commande destiné à récupérer le contenu d’une ressource accessible par un réseau informatique et gérant de nombreux protocoles.

Curl est un outil essentiel pour de nombreux usages, pris en charge par une gamme très large de systèmes d’exploitation, d’architectures matérielles, de l’objet connecté à l’embarqué spatial en passant par l’informatique classique ou les consoles de jeux. Il évolue rapidement et fréquemment, voir par exemple l’arrivée prochaine de HTTP3 pour curl dans Debian unstable (avec le backend gnutls). Son domaine d’utilisation pourrait encore s’étendre avec l’apparition de wcurl dans Debian et bientôt dans le monde entier ?

Il y a 24 ans, une division du code entre une interface ligne de commande et une bibliothèque a été faite.

(Cette dépêche est principalement basée sur l’annonce anglophone par Daniel Stenberg, auteur principal de curl et libcurl ; dépêche rédigée sur un téléphone embarquant curl 7.80, pas vraiment la dernière version…).

La première version de libcurl, baptisée 7.1, date du 7 août 2000. La version de curl précédente, la 6.5.2, pas encore séparée entre une interface ligne de commande et une bibliothèque. Il s’agit de l’écart le plus long entre deux versions de curl. La création de la bibliothèque a été très largement réalisée par Daniel Stenberg seul.

Il décrit son choix de division ainsi : c'était juste une intuition et une conjecture. Je ne savais pas. Je n’avais pas fait de recherches sur cela ou autre chose. Je me suis juste lancé en me disant qu’on verrait plus tard si j’avais raison ou tort.

Le nom de la bibliothèque a été choisi faute d’une meilleure idée. L’API a été définie comme étant bas niveau (on peut toujours ajouter une API de plus haut niveau par-dessus), en observant ioctl(), fcntl() et les fonctions du genre. Le code est en C, langage de prédilection de l’auteur principal.

L’API a bien vieilli : 17 fonctions encore présentes proviennent de la 7.1 ; elle est passée de 17 000 lignes à 171 000 ; elle a survécu aux révolutions HTTP/2 (transferts multiples multiplexés) et HTTP/3 (passer de TCP à UDP).

L’usage a aussi bien progressé depuis l’entrée dans PHP 4.0.2 comme premier binding (ici rendre utilisable en langage PHP), moins d’un mois après la publication de la bibliothèque.

En 2002 a été ajoutée une API multi pour gérer des transferts parallèles concurrents de façon illimitée dans un même thread.

Puis en 2006 vient en surplus le multi_action avec des mécanismes orientés événements, avec une boucle événementielle (comme epoll).

Les premiers changements douloureux sur l’interface binaire (ABI) ont entraîné une volonté de stabilité, de ne jamais casser volontairement cette interface, et ce depuis 2006.

libcurl possède des bindings vers au moins 65 langages de programmation, fonctionne sur au moins 103 systèmes d’exploitation et 28 architectures de processeur, est présent dans les bibliothèques standard de langages de programmation (Python, Java, Rust ou .Net). Son ancien concurrent principal libwww n’est plus développé. Bref 18 ans de stabilité d’API et d’ABI.

L’utilisation de libcurl continue de croître (de plus en plus d’objets connectés notamment). Et curl de manière générale supporte rapidement les nouveaux protocoles et leurs évolutions. À noter que l’auteur principal ne mentionne pas dans ses projections ce qui me semble le plus gros risque pour Curl/libcurl, la difficulté d’avoir une personne prête à lui succéder si quand cela s’avérera nécessaire.

Commentaires : voir le flux Atom ouvrir dans le navigateur

SPIP 4.3 : une sortie estivale

Ne redoutant pas la canicule, le sympathique outil de gestion de contenu de sites web (CMS) à l’écureuil, SPIP, vient de sortir en version 4.3. Au menu, entre autres : des améliorations de l’interface privée, de la conformité HTML5 et des performances des filtres pour les images.

Logo de SPIP

Petite sélection des changements apportés par cette version.

Sortie, versions et php

SPIP 4.3 est sortie le 26 juillet 2024, suivie quelques jours après d’une version de maintenance, la 4.3.1 qui est celle que vous devez adopter pour votre site. Elle est compatible de PHP 7.4 à PHP 8.3.

Les versions antérieures suivantes bénéficient encore de correctifs de sécurité :

  • SPIP 4.2.15, versions de PHP supportées 7.4 à 8.3,
  • SPIP 4.1.17, versions de PHP supportées 7.4 à 8.1.

Si votre site est sous une version encore plus antérieure, il est très fortement recommandé de le passer en SPIP 4.3.1. Si vous ne savez pas trop comment procéder, n’hésitez pas à lancer un appel à l’aide sur le site discuter.spip.net. Vous trouverez sûrement des gens pour vous aider.

SPIP pense aux webmestres et aux personnes qui animent un site Internet

La version 4.3 voit l’apparition, dans la barre du haut de l’interface privée, d’un bouton Créer qui ouvre un menu déroulant pour créer un nouveau contenu, article, rubrique, site référencé, etc.

Haut de l’interface privée et son menu déroulant.

Cette barre est aussi réorganisée, la zone de recherche est à côté du nouveau bouton tandis que l’aide et le nom de la personne connectée passe à droite. Si vous rédigez vos articles avec LibreOffice et utilisez le superbe plugin ODT2SPIP, ce bouton ne vous servira à rien. Il est préférable de continuer logiquement à passer par Édition > Rubrique > Nom de la rubrique > Nouvel article.

Le formulaire de changement de statut d’un article a été revu. On ne risque plus d’oublier d’appuyer sur le bouton Changer par exemple, car il est intégré au formulaire.

Le nouveau formulaire de changement de statut d’article dans SPIP 4.3
À gauche la version 4.2, à droite le formulaire de la 4.3.

Il est possible d’indiquer le fuseau horaire du site au niveau de Configuration > Identité du site.

Le menu déroulant d’indication de fuseau horaire

Et enfin, si on peut dire, la sortie des mises à jour fera l’objet d’un message aux webmestres dans l’interface privée avec un bouton pour y procéder via spip_loader, et même d’un courriel. Plus aucune excuse pour ne pas mettre un site à jour ! Si la notification par courriel vous ennuie, c’est désactivable. Pas très facilement, cela demande de modifier la constante _MAJ_NOTIF_EMAILS dans le fichier config/mes_options.php, mais c’est tout l’intérêt du système justement.

Corrections et améliorations

La conformité HTML5 est améliorée.

Les performances du plugin-dist (plugin de la distribution de SPIP) Filtre Images ont été optimisées : certains des filtres images sont dix fois plus rapides grâce à l’utilisation des fonctions natives de PHP GD. Il y a aussi des nouveaux filtres d’images, |image_oriente_selon_exif, |image_recadre qui permettent de réorienter une image selon son exif.

Sinon, tiré des notes de version :

  • ecrire_fichier() a été revu,
  • il est possible de combiner les critères {pagination} et {limit},
  • (#PRODUIRE_FOND) permet de ne pas conserver un double des fichiers calculés inchangés,
  • la bibliothèque mediaelement a été mise à jour.

Les notes de version sont plus disertes.

Mettre à jour, plugins, etc.

Avant de mettre à jour le site, il faut commencer par mettre à jour les plugins : Configuration > Gestion des plugins ce qui rendra la tâche plus facile. Vos plugins seront ainsi compatibles avec la nouvelle version de SPIP. La bibliothèque des plugins compatibles SPIP 4.3 recense environ sept-cent plugins.

Pour la mise à jour, le plus simple est de passer par spip_loader.php qui doit être installé à la racine du site. Il faut être connecté au site pour faire la mise à jour. Si vous n’avez pas spip_loader, c’est peut-être le moment de l’ajouter à votre site.

Sinon, la procédure lourde : télécharger SPIP 4.3.1, le décompresser et ensuite le téléverser sur le serveur non sans avoir fait les sauvegardes nécessaires.

Si la version de votre site est ancienne, il faudra sans doute procéder à une montée en version progressive, et vérifier que le squelette du site est compatible avec les versions plus récentes. Mais cela peut aussi être le moment de modifier l’interface publique de votre site. Ne pas oublier de sauvegarder, les dossiers img et squelette ainsi que la base avant !

Un grand merci à celles et à ceux qui font de SPIP un outil si agréable à utiliser.

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌