Vue lecture

GIMP 3.0 RC3 est sorti

Note : cette dépêche est une traduction de l'annonce officielle de la sortie de GIMP 3.0 RC3 du 10 février 2025 (en anglais).

Nous sommes ravis de partager la troisième version candidate de GIMP 3.0 pour ce qui (nous l'espérons) sera la dernière série de tests communautaires avant la version stable ! Cette version fait suite à la récente conférence GIMP 3 and Beyond de Jehan au FOSDEM 2025.

    Sommaire

    Corrections de bogues et changements importants

    Alors que nous réduisions les quelques derniers bogues majeurs à néant, nous avons effectué un certain nombre de modifications qui selon nous nécessitent un sérieux coup d’œil de la communauté.
    Jetez-en donc un, d’œil, sur les points suivants lorsque vous essayerez la Release Candidate:

    Nouvelle version de GTK3

    Juste à temps pour GIMP 3.0, une nouvelle version de GTK3 est sortie !
    Entre autres changements, GTK 3.24.48 inclut des correctifs pour plusieurs bugs affectant GIMP avec des patchs initialement fournis par Jehan, comme un crash dans Wayland lors du déplacement de calques et des problèmes de texte dans certains widgets avec des langues de droite à gauche. Nous tenons à remercier Carlos Garnacho et Matthias Clasen pour leur aide sur ces patchs respectifs.

    GTK 3.24.48 ajoute également la prise en charge de la version 2 de xdg_foreign pour Wayland (la v1 reste prise en charge en tant que solution de secours). Plus précisément, l'absence de cette prise en charge provoquait le blocage de GIMP avec certaines actions sur KDE/Wayland, ce qui est désormais corrigé.

    En raison de ces problèmes (certains d'entre eux rendant GIMP vraiment instable sur Wayland), nous recommandons aux empaqueteurs de mettre à jour vers la dernière version de GTK3 lors de l'empaquetage de notre RC3. Cependant, veuillez nous informer si vous remarquez des régressions ou d'autres problèmes résultant de la nouvelle version de GTK3.

    Améliorations du graphe d'images

    Grâce à l'édition non destructive dans GIMP, les utilisateurs peuvent désormais empiler plusieurs filtres les uns sur les autres. Ces filtres fonctionnent généralement dans un format à haute résolution de bits, de sorte que les informations de l'image ne sont pas perdues. Cependant, la sortie de chaque filtre était convertie vers et depuis la résolution de l'image d'origine lors de l'empilement. Ainsi, si l'image n'était que de 8 bits, une grande quantité d'informations était perdue dans ces conversions constantes. Jehan a résolu ce problème en convertissant uniquement au format de l'image lorsque le filtre est censé être fusionné, plutôt que dans des piles non destructives. Comme il s'agit d'un changement important dans le fonctionnement des filtres, nous souhaitons que davantage d'utilisateurs testent ce changement pour détecter d'éventuelles régressions.

    Changements dans Projection Thread-safe

    Lorsque des modifications sont apportées à une image (comme une peinture), la projection de l'image doit être « vidée » pour afficher les nouvelles modifications à l'écran. Certains aspects de ce processus n'étaient pas « thread-safe », ce qui signifie que lorsque votre ordinateur utilisait plusieurs threads pour accélérer le travail, ils pouvaient entrer en conflit les uns avec les autres et provoquer un plantage. Cela a été observé dans notre fonctionnalité d'expansion automatique de calques. Jehan a corrigé la fonction pour qu'elle soit entièrement thread-safe. Cependant, les modifications apportées au multithreading peuvent laisser des bugs bien cachés, donc des tests communautaires supplémentaires seraient utiles.

    Procédures privées

    Le navigateur de base de données procédurale de GIMP montre aux développeurs de greffons et de scripts toutes les fonctions auxquelles ils peuvent accéder. Jusqu'à présent, il affichait également les fonctions « privées » qui ne sont utilisées qu'en interne. Jehan a ajouté un indicateur pour masquer ces fonctions. Dans un premier temps, nous avons ratissé trop large et caché certaines fonctions publiques importantes. Bien que nous ayons corrigé ces cas, nous aimerions que la communauté nous donne plus de détails pour nous assurer que nous n'avons oublié aucune fonction publique mal étiquetée.

    Améliorations

    Bien que nous soyons toujours en phase de gel des fonctionnalités majeures jusqu'à la version stable de GIMP 3.0, quelques améliorations mineures et autonomes ont été apportées aux greffons.

    Script-fu

    API Filtre

    Le nouvel appel PDB (gimp-drawable-merge-filter) permet aux auteurs de Script-fu d'utiliser des étiquettes pour spécifier les propriétés des filtres. Cela donnera aux utilisateurs de Script-fu la même flexibilité pour appeler et mettre à jour les filtres que les développeurs de greffons C et Python ont dans l'API GIMP 3.0. À titre d'exemple, voici un appel au filtre Emboss :

    (gimp-drawable-merge-new-filter mask-emboss "gegl:emboss" 0 LAYER-MODE-REPLACE 1.0 "azimuth" 315.0 "elevation" 45.0 "depth" 7 "type" "emboss")
    

    Vous pouvez voir plus d'exemples dans notre dépôt de scripts.

    Nouvelle syntaxe de passage des arguments par noms

    Dans Script-Fu, toutes les fonctions générées à partir de la procédure PDB des greffons doivent désormais être appelées avec une toute nouvelle syntaxe d'argument nommé, inspirée de la variante Racket de Scheme.

    Par exemple, disons que votre greffon souhaite appeler le greffon Foggify, au lieu d'appeler :

    (python-fu-foggify RUN-NONINTERACTIVE 1 (car (gimp-image-get-layers 1)) "Clouds" '(50 4 4) 1.0 50.0)

    Vous devez maintenant appeler :

    (python-fu-foggify #:image 1 #:drawables (car (gimp-image-get-layers 1)) #:opacity 50.0 #:color '(50 4 4))

    Cela présente quelques avantages :

    • des appels beaucoup plus auto-documentés, d'autant plus que certains greffons ont beaucoup d'arguments (on pouvait donc se retrouver avec des fonctions avec une douzaine d'entiers ou de flottants et c'était très déroutant) ;
    • l'ordre des arguments n'a plus d'importance ;
    • vous pouvez ignorer les arguments lorsque vous les appelez avec des valeurs par défaut ;
    • cela permet d'améliorer les procédures des greffons dans le futur en ajoutant de nouveaux arguments sans casser les scripts existants.

    Ce dernier point en particulier est important, et l'ordre des arguments n'avait plus d'importance lors de l'appel de procédures PDB depuis l'API C, ainsi que toutes les liaisons introspectées. Script-Fu était la seule interface restante dont nous disposions qui se souciait encore de l'ordre et du nombre d'arguments. Ce n'est plus le cas et c'est donc un grand pas vers une API beaucoup plus robuste pour GIMP 3 !

    Formats de fichiers

    Toutes les modifications apportées aux greffons de chargement d'images sont vérifiées avec le cadriciel de tests automatisés créé par Jacob Boerema pour éviter les régressions.

    PSD

    En plus des corrections de bogues telles que l'enregistrement correct des images fusionnées CMJN, Jacob Boerema a ajouté la prise en charge du chargement des fichiers PSD LAB 16 bits par canal. Il a également mis à jour la boîte de dialogue d'exportation PSD pour utiliser les fonctions d'exportation de métadonnées intégrées de GIMP.

    DDS

    CMYK Student a implémenté la prise en charge très demandée du chargement d'images DDS avec prise en charge BC7. Jacob Boerema a travaillé pour corriger la compatibilité avec les fichiers DDS exportés à partir d'anciennes versions de GIMP.

    AppImage: c'est officiel !

    Après neuf mois d'incubation (le nombre est une simple coïncidence 🙂), nous présentons un « nouveau » format de distribution pour les utilisateurs Linux : .AppImage. Au départ, nous l'utilisions comme format interne pour les tests, comme déjà évoqué dans des articles précédents. Les efforts de Bruno Lopes nous ont permis d'améliorer le processus de construction. Nous sommes maintenant confiants avec l'AppImage générée et nous avons donc pour objectif de la rendre officielle.

    En tant que package officiel en amont, aucun greffon tiers sophistiqué ou autre binaire arbitraire qui ne soit pas une dépendance de GIMP n'est ajouté pour ne pas le « surcharger ». C'est ce que certains appellent GIMP « vanilla », un GIMP propre mais complet pour la production (c'est-à-dire pour une utilisation générale).

    Comme tout format d'empaquetage, il a ses propres caractéristiques et limites. Dans le cas de l'AppImage de GIMP, les outils inclus tels que gimp-console* et gimp-debug-tool* nécessitent une extraction préalable du fichier .AppImage avec la commande --appimage-extract. De plus, en partie à cause de la conception d'AppImage, les commandes qui pointent vers $PWD ne fonctionneront pas. Ces deux limitations de fonctionnalités sont les seules connues à ce jour. Donc, si vous en trouvez d'autres ou même des bogues, veuillez les signaler sur notre outil de suivi.

    Divers

    • Il est maintenant plus facile de charger des images depuis Google Drive ainsi que d'autres plateformes distantes ou dans le cloud, sans avoir a sélectionner un format de fichier pour essayer de l'ouvrir.

    • Notre processus de création génère désormais des icônes supplémentaires avec l'extension -rtl, qui sont automatiquement utilisées avec les langues s'écrivant de droite à gauche. Les icônes de flèches gauche et droite en sont un exemple : elles sont désormais orientées dans la bonne direction dans les deux types de langues.

    • Les développeurs de greffons n'ont plus besoin de créer des boutons de sélection de fichiers personnalisés - GimpProcedureDialog les crée désormais automatiquement lorsqu'un paramètre de type de fichier est utilisé. Vous pouvez également spécifier si le bouton sert à ouvrir ou à enregistrer des fichiers et des dossiers.

    • Rupert Weber a continué ses efforts pour nettoyer notre greffon BMP. De plus, il travaille actuellement à ajouter la prise en charge de l'importation de profils de couleurs dans les BMP, qui, espérons-le, sera prête dans une future version.

    • CMYK Student a mis à jour le greffon ICNS avec une nouvelle prise en charge des types d'icônes « ic05 » et des formats d'icônes ARGB. Ils ont également corrigé un bogue lors du chargement d'anciens formats ICNS sans masque de transparence. Lukas Oberhuber a aidé à diagnostiquer et à résoudre un bogue connu dans le format ICNS qui faisait que notre icône macOS affichait des pixels brouillés dans les petites tailles.

    GEGL

    La version 0.4.54 de GEGL contient également quelques améliorations et corrections de bogues. Thomas Manni a mis à jour le filtre Noise Spread pour éviter les bogues lorsqu'il est appliqué à des groupes de calques vides. Jonny Robbie a ajouté de nouvelles options et de nouveaux types de papier au filtre Negative Darkroom, et a optimisé certaines opérations en virgule flottante dans GEGL dans son ensemble.

    Statistiques

    Depuis GIMP 3.0 RC2, dans le dépôt principal de GIMP :

    • 85 rapports ont été fermés comme RÉPARÉS ;
    • 56 demandes de fusion ont été acceptées ;
    • 335 commits ont été poussés ;
    • 19 traductions ont été mises à jour : basque, bulgare, catalan, chinois (Chine), danois, néerlandais, finnois, géorgien, italien, norvégien nynorsk, persan, portugais, slovaque, slovène, espagnol, suédois, turc, ukrainien, vietnamien.

    33 personnes ont contribué à des modifications ou des correctifs à la base de code de GIMP 3.0.0 RC3 (l'ordre est déterminé par le nombre de commits ; certaines personnes sont dans plusieurs groupes) :

    • 13 développeurs pour le code principal : Jehan, Alx Sa, Jacob Boerema, Lloyd Konneker, Anders Jonsson, Thomas Manni, Bruno, Daniele Forsi, Lloyd Konneker, Lukas Oberhuber, Rupert, cheesequake, Øyvind Kolås ;
    • 10 développeurs de greffons ou modules : Alx Sa, Jacob Boerema, Jehan, Rupert, Lloyd Konneker, Anders Jonsson, Bruno, Daniel Novomeský, Daniele Forsi, lillolollo ;
    • 19 traducteurs : Alan Mortensen, Alexander Shopov, Nathan Follens, Kolbjørn Stuestøl, Hugo Carvalho, Asier Sarasua Garmendia, Ngọc Quân Trần, Jordi Mas, Marco Ciampa, Sabri Ünal, Anders Jonsson, Danial Behzadi, Ekaterine Papava, Jiri Grönroos, Jose Riha, Luming Zh, Martin, Rodrigo Lledó, Yuri Chornoivan ;
    • 1 Concepteur de thème : Alx Sa ;
    • 6 contributeurs pour la compilation, l’empaquetage ou l’intégration continue : Bruno, Jehan, Lloyd Konneker, Alx Sa, Rupert, Jacob Boerema.

    Contributions sur d'autres dépôts dans GIMPverse (l'ordre est déterminé par le nombre de commits) :

    • GEGL 0.4.54 est composé de 11 commits de 16 contributeurs : Øyvind Kolås, Alexander Shopov, Hugo Carvalho, JonnyRobbie, Alan Mortensen, Anders Jonsson, Asier Sarasua Garmendia, Bartłomiej Piotrowski, Jehan, Martin, Nathan Follens, Nils Philippsen, Rodrigo Lledó, Sam L, Thomas Manni, Yuri Chornoivan ;
    • ctx a enregistré 233 commits depuis la sortie de RC2 par 1 contributeur : Øyvind Kolås ;
    • gimp-data a enregistré 6 commits de 4 contributeurs : Bruno, Jehan, Alx Sa, Andre Klapper ;
    • gimp-test-images (nouveau référentiel pour les tests de prise en charge des images) a enregistré 5 commits de 2 contributeurs : Jacob Boerema, Alx Sa ;
    • la version gimp-macos-build (scripts de packaging macOS) a eu 6 commits par 2 contributeurs : Lukas Oberhuber, Bruno ;
    • la version flatpak a eu 12 commits par 3 contributeurs après la version RC2 : Bruno Lopes, Jehan, Hubert Figuière ;
    • notre site web principal a eu 42 commits par 6 contributeurs : Jehan, Alx Sa, Bruno, Jacob Boerema, Andre Klapper, Petr Vorel ;
    • notre site web de développement a eu 18 commits par 5 contributeurs : Jehan, Bruno, Lukas Oberhuber, Alx Sa, Anders Jonsson ;
    • notre documentation 3.0 comptait 373 commits de 13 contributeurs : Andre Klapper, Kolbjørn Stuestøl, Nathan Follens, Jacob Boerema, Alan Mortensen, Yuri Chornoivan, Dick Groskamp, ​​Jordi Mas, Alevtina Karashokova, Alx Sa, Anders Jonsson, Daniele Forsi, Hugo Carvalho.

    N'oublions pas de remercier toutes les personnes qui nous aident à trier dans Gitlab, à signaler les bugs et à discuter des améliorations possibles avec nous.
    Notre communauté est également profondément reconnaissante envers les guerriers d'Internet qui gèrent nos divers canaux de discussion ou comptes de réseaux sociaux tels que Ville Pätsi, Liam Quin, Michael Schumacher et Sevenix !

    Remarque : compte tenu du nombre de parties dans GIMP et de la façon dont nous obtenons des statistiques via les scripts « git », des erreurs peuvent se glisser dans ces statistiques. N'hésitez pas à nous dire si nous avons oublié ou mal classé certains contributeurs ou contributions.

    Autour de GIMP

    Miroirs de téléchargement

    Depuis la publication de la nouvelle version 3.0RC2, deux nouveaux miroirs ont été ajoutés :

    • Saswata Sarkar, Gurugram, Inde ;
    • Hoobly Classifieds, États-Unis.

    Les miroirs sont importants car ils aident le projet en répartissant la charge pour des dizaines de milliers de téléchargements quotidiens. De plus, en ayant des miroirs répartis dans le monde entier, nous garantissons que tout le monde peut avoir un accès rapide au téléchargement de GIMP.

    Comment citer GIMP dans la recherche

    GIMP est souvent utilisé dans la recherche et est donc cité dans diverses publications scientifiques. Un chercheur utilisant GIMP pour le traitement d'images astronomiques nous a contactés pour savoir comment citer GIMP correctement, d'autant plus qu'il est utilisé pour effectuer une étape importante de son algorithme.

    Comme cela semble être une question intéressante, nous avons mis à jour notre page « Citing GIMP and Linking to Us » avec une nouvelle sous-section « Citing GIMP in research » contenant la conclusion de cette discussion.

    En particulier, une entrée BibTex, destinée aux chercheurs utilisant LaTeX pour gérer leur bibliographie, est disponible sur ce lien pour simplifier votre travail. Par exemple, disons que vous utilisez ce RC3 pour vos recherches, vous pouvez citer GIMP avec cette entrée :

    @software{GIMP,
        author = {{The GIMP Development Team}},
        title = {GNU Image Manipulation Program (GIMP), Version 3.0.0-RC3. Community, Free Software (license GPLv3)},
        year = {2025},
        url = {https://gimp.org/},
        note = {Version 3.0.0-RC3, Free Software}
    }

    Merci à Cameron Leahy pour ce morceau de code BibTex !

    Télécharger GIMP 3.0 RC3

    Vous trouverez toutes nos versions officielles sur le site officiel de GIMP (gimp.org) :

    • Linux AppImages pour x86 et ARM (64 bits) ;
    • Linux Flatpaks pour x86 et ARM (64 bits) ;
    • Installateur Windows universel pour x86 (32 et 64 bits) et pour ARM (64 bits) ;
    • Paquet MSIX (GIMP Preview) pour x86 et ARM (64 bits) ;
    • Paquets macOS DMG pour le matériel Intel ;
    • Paquets macOS DMG pour le matériel Apple Silicon.

    D'autres paquets réalisés par des tiers devraient évidemment suivre (paquets de distributions Linux ou *BSD, etc.).

    Et ensuite ?

    Nous apprécions vraiment tous les tests et commentaires de la communauté que nous avons reçus au cours des deux dernières versions candidates !
    Nous espérons que ce sera la dernière version candidate avant la version stable 3.0. Notre objectif est maintenant de terminer la résolution des quelques bugs restants dans notre liste de jalons 3.0, tout en gardant un œil sur les nouveaux rapports résultant des changements dans RC3.

    N’oubliez pas que vous pouvez faire un don et financer personnellement les développeurs de GIMP, afin de contribuer et d’accélérer le développement de GIMP. L’engagement de la communauté aide le projet à se renforcer !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Netlibre, un service libre et un nom de domaine gratuit

    Le service netlibre, revu et corrigé

    Le service netlibre fournit gratuitement des noms de domaine et une interface simple pour les modifier. Récemment, ce service a été mis à jour.

    Vous voulez en savoir plus sur le service ? Vous êtes déjà bénéficiaire du service ou souhaitez le devenir ? Venez lire la suite !

    Dans cet article, je vais me focaliser sur le service netlibre. L’histoire, l’ancienne version, la nouvelle et le futur du service. Et en bonus, les problèmes rencontrés. Les aspects purement techniques feront l’objet d’autres articles.

    Sommaire

    Trop Long ; Pas Lu (note aux utilisateurs actuels et pressés)

    La nouvelle version de netlibre représente une réécriture complète du service. Points à retenir : bien meilleure stabilité, les domaines peuvent être gérés à plusieurs et même transférés entre utilisateurs, et bien davantage de vérifications sont faites sur les entrées des utilisateurs pour prévenir un maximum d’erreurs.

    Pour les utilisateurs actuels : votre compte a été migré. Vous pouvez voir vos domaines depuis la nouvelle interface. Le contenu des zones n’a cependant pas été repris (pour des contraintes techniques), il faudra les re-remplir mais je pourrai vous fournir vos zones sur demande.

    Pas d’inquiétude : les zones actuelles sont toujours servies, il n’y a pas eu de coupure du service DNS. Tant que vous ne faites pas de modification de votre zone sur l’interface, l’ancienne zone reste servie.

    Une adresse email vous est demandée lors de votre connexion, elle est désormais obligatoire. Elle permet la récupération de mot de passe, de vous tenir informé des interruptions (volontaires ou non) du service ainsi que des mises à jour.

    Connectez-vous au moins une fois dans les 6 mois. Pour faire du ménage je supprimerai les comptes qui ne se connectent pas au moins une fois dans les 6 mois suivant la publication de cet article.

    Présentation du service

    Le service netlibre fournit des noms de domaines (ou noms de SOUS-domaines si vous préférez) gratuitement. Ainsi, n’importe qui peut se réserver un nom de domaine en « *.netlib.re » ou « *.codelib.re ». L’administration du domaine se fait en quelques clics, sans compétences requises. Ce service est donc utile pour n’importe qui souhaitant un nom de domaine, à titre individuel ou pour une association par exemple.

    Il est également possible de mettre à jour dynamiquement une adresse IP d’un enregistrement. Avoir une adresse IP dynamique n’est donc pas un frein à l’utilisation du service ; ce qui est courant pour les connexions à Internet chez les particuliers.

    Le code source du service est entièrement libre, que ce soit l’interface, le service d’authentification ou le service dnsmanager qui lie l’interface web au serveur de noms. Tout est libre, sous licence ISC.

    Histoire

    Cela fait désormais plus de 9 ans que le site netlibre permet de réserver et de gérer des noms de domaines, gratuitement (le service est même encore plus vieux que ça, mais c’était beaucoup plus confidentiel). Un article sur LinuxFr.org avait été posté, puis 9 ans se sont écoulés non sans peine.

    L’objectif initial était de me permettre de gérer des zones simplement et mettre à jour des adresses IP de manière automatique. De mémoire, selon mes recherches de l’époque, rien n’existait en libre pour faire cela ; les outils s’en approchant étaient trop complexes pour la simple gestion d’une zone. J’ai donc développé un outil permettant de visualiser de manière claire une zone et de modifier les entrées comme on pouvait le voir sur des sites professionnels. C’était à la fois directement utile pour moi, et un petit défi technique qui m’intéressait. Comme cela semblait utile pour d’autres personnes, j’ai partagé avec grand enthousiasme mon petit bricolage.

    Malgré l’engouement du début, le site a très peu évolué par la suite, par manque de temps et d’énergie. Il remplissait son rôle pour mon usage, donc pendant des années je n’y ai pas touché du tout. Quand j’ai voulu m’y remettre, avec quelques années d’expérience supplémentaires, le code me semblait trop bancal pour m’y investir davantage. Les problèmes rencontrés demandaient une réécriture complète. La dernière section de l’article donne des détails.

    netlibre, c’est désormais 9 ans, 7000+ utilisateurs et 32 000 zones. Qu’on s’entende bien, une bonne partie de ces comptes et de ces zones sont à jeter car des robots sont passés par là. D’ailleurs, le service, avec ses quelques dizaines de milliers de domaines, reste assez modeste. Néanmoins, j’ai été contacté par de nombreux utilisateurs au fil des années. Le site est réellement utilisé, et ça, c’est à la fois une victoire et une vraie surprise.

    L’ancienne version

    L’ancienne version du site a été modifiée jusqu’à très récemment (quelques mois) pour corriger de gros problèmes, notamment d’infrastructure. Cette version permettait de s’inscrire, demander des zones et les gérer (ajout, suppression, modification) avec une interface simple, comme on peut voir sur OVH ou Gandi. Mais elle n’était pas finie : impossible de se désinscrire ou récupérer son mot de passe, de nombreux enregistrements DNS étaient inaccessibles, etc.

    Sauf que voilà, l’architecture logicielle rend la modification assez désagréable. J’ai donc décidé de repartir de 0, avec un meilleur découpage du service et des techno adaptées.

    La nouvelle version

    Depuis quelques semaines déjà, la nouvelle version est désormais en ligne. Les détails techniques derrière le service (code, langages, infra, sécurité, outils…) feront l’objet d’autres articles. Dans cette section, je vais parler des changements par rapport à l’ancien service.

    Le partage de domaines est désormais possible, ce qui est utile pour des associations. Plusieurs personnes pourront donc posséder le même domaine et modifier la zone. Pas d’inquiétude si un membre de l’association n’est pas disponible, vous gardez le contrôle.

    Des enregistrements protégés. Certains enregistrements DNS sont désormais en lecture seule pour éviter de supprimer des informations nécessaires au bon fonctionnement des zones. Ainsi, les enregistrements SOA et NS sont maintenant protégés.

    De nouveaux enregistrements sont disponibles : SPF, DKIM et DMARC. Comme vous le savez probablement, ce sont des enregistrements qui se traduisent par des entrées textes (« TXT »). Des interfaces dédiées sont maintenant disponibles pour éviter une longue lecture de RFC pour savoir comment formater certaines options. Ces enregistrements sont plutôt complexes, donc aider les utilisateurs (même expérimentés) me semblait nécessaire.

    De même, l’enregistrement CAA est désormais disponible. N’hésitez pas à me faire des suggestions pour de futurs enregistrements.

    Une adresse email est désormais nécessaire. Les utilisateurs peuvent donc enfin récupérer leur mot de passe perdu. Ils seront également prévenus d’une panne, d’une mise à jour, d’un changement sur le site, etc.

    Suppression de compte. Les utilisateurs peuvent désormais supprimer leur compte. Cela supprimera l’ensemble de leurs domaines (et zones) par la même occasion.

    Un jeton de mise à jour. Afin de mettre à jour une adresse IP (enregistrement A ou AAAA) pour un serveur avec une IP dynamique, un mécanisme à base de jetons a été implémenté. Ainsi, accéder à une URL telle que https://www.netlib.re/token-update/<jeton> permet au service netlibre d’associer l’adresse IP du client à un enregistrement A ou AAAA (pour lequel on a généré ce jeton).

    Par exemple, la zone toto.netlib.re possède un enregistrement A serveur.toto.netlib.re. L’utilisateur génère un jeton (ressemblant à 65b609fc-4a53-4a58-aae3-9824551a0fa5) pour cet enregistrement. Enfin, l’utilisateur lance (depuis son serveur) curl https://www.netlib.re/token-update/65b609fc-4a53-4a58-aae3-9824551a0fa5 pour que l’enregistrement serveur.toto.netlib.re pointe vers son adresse IP.

    Je ne pense pas qu’il soit possible de faire plus simple. Un simple wget ou curl dans un crontab suffit pour maintenir à jour l’adresse de son serveur. Ce mécanisme permet probablement beaucoup moins de choses qu’un vrai service DynDNS, mais le cœur du service est là et sans aucune configuration !

    Fin du mode « expert » qui permettait d’écrire soi-même le fichier de zone bind9. Entrer soi-même le fichier de zone semblait être une bonne idée, mais cela mène surtout à des problèmes d’infrastructure. Pour bien faire, il aurait fallu que les utilisateurs aient accès aux logs pour apprendre de leurs erreurs et corriger leurs zones, sauf que c’est inutilement complexe. Le mode « expert » devait pallier quelques lacunes de l’interface qui ne gérait qu’une petite partie des enregistrements possibles. Maintenant que l’interface permet de configurer les enregistrements DNS les plus courants, le mode expert perd une grande partie de son intérêt.

    Plein de vérifications supplémentaires pour éviter des erreurs (simples et moins simples). Ces vérifications portent sur les adresses IPv4 et IPv6, les adresses email (grammaire décrite dans la RFC 5322), les noms de domaine et les labels (grammaires décrites dans les RFC), ou encore les options SPF, DKIM et DMARC. Cela est utile à tout le monde, y compris à des administrateurs expérimentés mais inattentifs.

    Une interface didactique. L’interface se veut agréable à utiliser et rappelle régulièrement les bases aux novices. Par exemple, pas besoin d’aller chercher des informations complémentaires dans des RFC pour manipuler du SPF, DKIM ou DMARC. J’espère apporter à l’avenir ce niveau d’aide à la configuration pour d’autres enregistrements.

    Inclusion de netlibre dans la PSL. Le domaine netlibre est désormais dans la Public Suffix List, le domaine codelib.re devrait suivre.

    Migration : pourquoi une migration partielle

    Comme décrit en début d’article, les comptes sont repris dans la nouvelle version du site. Votre identifiant et votre mot de passe sont toujours valides. De même, les zones sont toujours servies, il n’y a pas eu de coupure de service. En revanche, les zones n’ont pas été traduites dans la nouvelle interface, vous les verrez donc vierges. La raison est simple : le temps et l’énergie. Traduire des zones Bind9 (dans un format non trivial et parfois pleines d’erreurs) est assez long et peu engageant.

    Maintenant que le service a été migré, vos domaines sont toujours présents et vous sont toujours réservés. L’ancien contenu des zones peut vous être envoyé pour vous aider à les reconfigurer sur la nouvelle interface, si c’est réellement nécessaire pour vous.

    Le futur

    Dans cette section je parlerai de propositions d’évolution pour le service, mais rien n’est gravé dans le marbre. J’ai par ailleurs encore du travail à faire sur cette nouvelle version. Tout ce qui est présenté ici viendra après ce qu’il me reste à faire, c’est-à-dire de nombreuses vérifications côté serveur (y compris de la surveillance de l’infra et autres joyeusetés inhérentes au développement de services en ligne) et une bonne pause bien méritée !

    Traduire l’application. Contrairement à l’ancienne version, le site est désormais en anglais, pour diverses raisons. J’aimerais donc y apporter une traduction en Français, puis d’autres langues si des gens veulent bien s’y atteler.

    Gérer vos zones. netlibre pourrait permettre de gérer des zones venant d’ailleurs. Par exemple, vous possédez « toto.fr » et vous souhaitez utiliser l’interface de gestion de netlibre. L’interface a été pensée pour être agréable à utiliser, ce serait dommage de ne pas en profiter pour d’autres domaines.

    Déléguer des zones. À l’inverse, il serait également intéressant de permettre la délégation des zones netlibre. Cela reviendrait à prendre un nom de domaine de chez netlib.re sans utiliser l’interface de gestion.

    Ouverture d’une API. La création de comptes, la réservation de noms de domaines et la modification de zones pourraient être automatisées. Cela pourrait être utile par exemple à une association qui souhaiterait automatiser la procédure pour ses membres. Cela était déjà prévu il y a 9 ans, et maintenant que le code est un peu plus sérieux, il est désormais pertinent de se re-poser la question.

    De nouveaux enregistrements DNS. Divers enregistrements pourraient être implémentés pour offrir une interface toujours plus complète, y compris pour des utilisateurs avancés. Ainsi, des enregistrements tels que LOC, RP ou HINFO pourraient voir le jour. DNSSec pourrait être de la partie également. Je n’utilise pas personnellement ces fonctionnalités donc je ne me sens pas non plus pressé de les implémenter. Si cela vous tient à cœur, merci de m’en informer, ça pourrait me motiver.

    De nouveaux domaines ? Le service propose actuellement des noms de domaines en « .netlib.re » ou « .codelib.re ». Je suis ouvert à la discussion si des gens veulent financer d’autres noms de domaines ou céder les leurs.

    Le retour du mode « expert » ? Pour des personnes expérimentées, cela a du sens. En lieu et place de l’écriture d’un réel fichier de zone Bind9, une entrée libre avec un format proche d’un fichier de zone Bind9 serait envisageable. Les enregistrements seraient compris et vérifiés par l’interface puis traduits dans la représentation intermédiaire utilisée par netlibre. Le meilleur des deux mondes. Pas de fausse joie cependant, comme cela nécessiterait pas mal de code, ce n’est pas au programme pour tout de suite.

    Alternatives à netlib.re

    J’ai vu de nombreux sites proposant des services autour du DNS. Pour citer quelques exemples :

    • eu.org n’est pas pour des novices, et visiblement tout est géré à la main sans interface pour s’inscrire… difficile de faire plus éloigné des objectifs de netlib.re ;
    • freedns.afraid.org ne fournit pas le code source et n’est pas très ouvert aux novices, mais à part ça le service semble assez complet ;
    • ydns.io ne fournit pas le code source et ne propose pas une gestion d’un domaine qu’ils offrent, seulement un enregistrement A ou AAAA ;
    • nsupdate.info les inscriptions sont fermées ;

    Ces services sont sans doute très bien. J’envie même certaines de leurs fonctionnalités, que j’implémenterai peut-être plus tard pour netlibre. Mais il manque systématiquement le code source, ou l’interface n’est pas faite pour un novice, ou le service ne propose pas tout à fait les mêmes fonctionnalités.

    Je pense donc sincèrement que netlibre a sa place au milieu de tous les autres. Il se démarque ne serait-ce que par son code libre et son interface simple. À l’avenir, j’espère qu’il se démarquera par sa complétude.

    Bonus : les problèmes survenus ces 9 dernières années (pour les curieux)

    De nombreux problèmes sont survenus au fil du temps. Le site a été instable pendant longtemps, pour de multiples raisons :

    • une des bibliothèques utilisées gère mal les enregistrements sur plusieurs lignes, menant à des boucles infinies. Cela a été corrigé il y a quelques mois à peine (!) et seulement en local car je n’ai pas pris le temps d’envoyer mes corrections (!!). Pour cette raison, il n’était même pas possible d’avoir un enregistrement DKIM via l’interface de netlibre ;
    • une maintenance quasi-absente pendant longtemps, par manque de temps et d’énergie ;
    • des plantages à répétition à cause de l’infrastructure (bind9 qui redémarre en boucle à cause d’une erreur de configuration en crachant des tonnes de logs qui saturent le disque) ;
    • des mises à jour qui cassent tout (à cause d’un déploiement un peu bancal) ;
    • une architecture logicielle en mode bricolage avec des lancements de commandes lorsque l’utilisateur appuie sur certains boutons ;
    • des lancements de commandes qui ne libèrent pas correctement leur descripteur de fichier (je n’ai pas trouvé pourquoi ni comment corriger) ;
    • un manque de vérifications (notamment à cause du mode expert), menant à des erreurs côté Bind9 sans que l’utilisateur en soit informé.

    Le plus gros problème a surtout été un manque de vérifications. Les bénéficiaires du service ont régulièrement innové pour détruire leurs zones. Entre la suppression des entrées NS et SOA (merci le mode expert) et les nombreuses valeurs invalides (auxquelles il fallait s’attendre, bien entendu), beaucoup de zones sont invalides sans même que les utilisateurs ne le sachent (autrement qu’en faisant des requêtes DNS).

    Et j’en oublie sans doute bien d’autres. Tout ça parce que… netlibre à la base, c’est un projet perso, vite-fait, pour moi. J’avais espoir qu’il serve à quelques dizaines d’autres personnes, max. Le service netlibre s’est beaucoup plus développé que prévu et j’ai bon espoir que le service soit désormais un peu plus à la hauteur.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌