↩ Accueil

Vue lecture

WoPiX, un serveur WOPI libre, indépendant, simple et léger

Un serveur WOPI (Web application Open Platform Interface) permet à un logiciel client de modifier un fichier stocké sur un serveur. C'est la couche indispensable pour qu'OnlyOffice, LibreOffice (Collabora Online) et d'autres suites bureautiques puissent être utilisés sur le web. Ainsi, lorsque vous réclamez l'ouverture d'un document depuis votre navigateur web, vous vous connectez à la suite bureautique en ligne avec une URL particulière, contenant, entre autres, le nom du fichier à ouvrir. La suite bureautique peut alors discuter avec le serveur WOPI pour récupérer le document. Les lectures, écritures et modifications d'un document sont gérées par le serveur WOPI, à la demande de la suite bureautique. Le protocole a été créé par Microsoft en 2012, la révision 14.5 de WOPI est sortie le 18 février 2025.

Les serveurs WOPI libres de Nextcloud, Seafile, Tracim… ne sont pas indépendants. Comme je voulais utiliser Collabora Online sans déployer un NextCloud complet, j'ai écrit un serveur WOPI très simple. Il est utilisé depuis plus d'un an sans problème et il est libre. Il est écrit en Java.

J'ai commencé ce développement car je travaille sur deux lieux privés différents avec un ordinateur à chaque endroit, un NAS dans l'un d'eux et je communique entre les deux machines à l'aide d'un dépôt git sur le NAS. Ça fonctionne relativement bien pour des fichiers qui n'ont pas vocation à rester ouverts dans des applications, mais pour des fichiers ODS ou ODT qui restent ouverts, c'est plus compliqué car je me retrouve souvent avec des versions concurrentes sur les deux machines. J'ai donc regardé du côté des suites de collaboration en ligne.

À une époque , je me servais d'Etherpad et de son équivalent tableur Ethercalc. Mais ces logiciels manquent de fonctionnalités, surtout le tableur. Problème supplémentaire : j'ai déjà beaucoup de fichiers aux formats LibreOffice.

Ça tombe bien, il y a la suite LibreOffice online, éditée par Collabora Online (CODE). Le problème — comme souligné par une dépêche — c'est qu'une fois CODE installé, tu te retrouves à poil avec rien qui marche : il faut un serveur utilisant le protocole WOPI.

Pour éviter d'installer tout un NextCloud, j'ai écrit un petit serveur WOPI. C'est du Java avec Spring Boot. Le serveur est très simple, sur le principe que plus un système est simple, moins il a de chances de tomber en panne.

Par exemple, il n'y pas de droits d'accès et on ne peut pas avoir plusieurs utilisateurs simultanés. Il faudrait mettre en œuvre le système de verrous et le système de droits d'accès (faire reposer les droits d'accès sur les droits du système de fichier, implique d'avoir un utilisateur sur la machine pour chaque utilisateur du logiciel). Cela n'a pas été implanté parce que je suis le seul utilisateur sur ma machine. Mais ce ne serait pas long à développer.

Le serveur une fois lancé expose des services REST, accessibles par la suite bureautique, mais aussi un service https qui permet d'afficher la liste des fichiers. Cette liste de fichier est cliquable et permet de se connecter à Libre Office avec la bonne URL. C'est la raison des paramètres proxyHost et code URL de l'application : être en mesure de générer la bonne URL.

Liste des fichiers

Le code est prévu pour avoir plusieurs backends à l'aide d'une interface. Le seul mis en œuvre pour l'instant c'est un stockage sur disque local (avec auto discovery : on lui donne un répertoire et il expose tout les documents du répertoire).

Il consomme peu de ressources, la charge dépendra plus de Collabora Online ou d'OnlyOffice. Le serveur WOPI se contente de lire un fichier à l'ouverture et de l'écrire de temps en temps (comme lors des enregistrements automatiques).

Il n'est pas testé avec OnlyOffice. En principe WOPI est une norme et ça devrait fonctionner.

On peut le lancer avec java -jar. C'est du Spring Boot. On pourrait utiliser systemd. De mon côté, je l'ai mis dans un container docker qui lance la commande suivante

java -Dlogging.level.root=INFO \
     -Dlogging.level.org.wopiserver=INFO \
     -Dserver.port=8880 \
     -jar /opt/app/app.jar \
     --baseDir /mnt/docs \
     --disableTLSCheck \
     --codeURL https://172.17.0.8:9980 \
     --proxyHost 192.168.124.252

Le code de WoPiX est dispo sur github et je suis ouvert à toute requête :-)

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

La version 2.2 de LDAP Synchronization Connector est là !

LDAP Synchronization Connector (LSC) est un outil de synchronisation de données entre référentiels d'identités (annuaires LDAP, bases de données, API REST, …) disponible sous licence BSD.

Logo LSC

Ce logiciel a été créé il y a plus de 20 ans et est déployé dans de très nombreuses organisations qui l'utilisent le plus souvent pour alimenter les comptes et groupes dans leur annuaire d'entreprise depuis leur outil RH, ou bien pour synchroniser les données entre OpenLDAP et Active Directory.

La version 2.2, en préparation depuis plusieurs années, a enfin vu le jour en ce mois d'avril 2025, grâce au travail de la société Worteks et à l'aide du programme NGI Commons de NLnet.

Configuration par variables d'environnement

La configuration de LSC se fait dans un fichier XML. Il est désormais possible d'y mettre des variables d'environnement pour par exemple passer facilement d'un environnement à un autre ou récupérer des secrets à la volée.

Voir la documentation

Hooks

Il existait déjà un plugin LSC nommé Executable qui lançait des scripts pour les ajouts/suppressions/modifications/renommages, rendant le logiciel compatible avec tous les référentiels si tant est qu'on puisse exécuter une commande pour s'y connecter.

Mais le nouveau système de hook est différent : cette fois-ci les opérations sont bien réalisées avec le connecteur natif (mais aussi pourquoi pas avec le plugin Executable) et en cas de succès, pour chaque opération et entrée, une commande est lancée.

Un cas d'usage bien connu est l'envoi d'un mail lors de la création d'un compte.

Voir la documentation

Transformation de pivot

Le pivot est la valeur qui relie une entrée en source avec une entrée en destination. Si ces deux entrées ont la même valeur de pivot, alors LSC considère que c'est la même et applique les modifications. Sinon les entrées sont créées ou supprimées.

Cependant il arrive que la valeur soit un peu différente entre la source et la destination (majuscules, minuscules, préfixe, suffixe, …), il faut donc transformer cette valeur dans un sens, puis dans l'autre.

Voir la documentation

Version de Java

LSC 2.1 était bloqué à la version 8 de Java, ce qui devenait problématique. LSC 2.2 est désormais compatible avec Java 21.

GraalVM

Les JavaScripts utilisés pour transformer les valeurs peuvent désormais être exécuté dans GraalVM, en utilisant le préfixe "gjs:"

Voir la documentation

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Gestion simple de tournois sportif PyTournois

Sportifs du dimanche, on a souvent besoin de gérer des tournois très simples du type « tout le monde rencontre tout le monde » avec quelques contraintes:

  • nombre de terrains limité ;
  • temps d’attente minimal entre deux matchs ;
  • règles variées sur la gestion des scores.

Depuis une vingtaine d’années, je développe différents sites en Python/Django. Du coup j’ai fabriqué un début de site :).

Code

Libriste depuis toujours, le code du projet est sous licence GPL. Actuellement très simple, le site permet de gérer uniquement le mode « toutes les équipes se rencontrent ». Plus tard, suivant les retours, les utilisations et mon temps libre, j’ajouterai d’autres modes (par exemple pour gérer des groupes de placements).

Pour éviter les calculs inutiles, l’affectation des rencontres utilise des grilles de placement. Ces grilles sont calculées une fois pour toutes et contenues dans le projet. L’avantage est d’être efficace et rapide sur la génération de toutes les rencontres. L’inconvénient est que seules quelques combinaisons sont actuellement disponibles :)

Fonctionnement

Le fonctionnement est très simple, le principe de base est que toutes les informations sont visibles sans connexion. Il y a quatre grands rôles utilisateurs:

  • administrateur: sert surtout pour créer des comptes utilisateurs ;
  • organisateur: peut créer des équipes et réinitialiser un tournoi ;
  • arbitre: peut enregistrer/modifier les résultats des matchs ;
  • anonyme: accès à la liste des matchs et au classement.

Les règles de classement sont affichées. On peut également définir un message d’accueil. Si on veut sauvegarder les résultats d’un tournoi, il y a un export au format CSV.

Démonstration

Il y a évidemment un site de démonstration du projet. Le lien se trouve ci-dessous. Les ressources nécessaires pour faire tourner le site sont extrêmement limitées. Si les fonctionnalités du site vous conviennent et que vous voulez l’utiliser pour un club/tournois, n’hésitez pas à me contacter. Je pourrais mettre en ligne une version dédiée gratuitement.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

yahi un agrégateur de statistiques dans l'esprit d'awstats

J’ai la nostalgie d’awstats : la possibilité de faire des statistiques web sans déployer des tonnes d’infrastructure (genre Grafana).

Pour cela, j’ai codé Yahi, un module Python qui agrège dans sa forme basique les statistiques web en format usuel (nginx, apache, lighthttpd, varnish) pour les présenter dans une page web « tout en un ».

Il se décompose pour sa partie utilitaire en deux scripts:
- un d'agrégation des statistique de journaux de serveurs webs dont l'écriture d'une version personnalisée ici celle que j'utilise pour faire des démos sans IP ou URLs est relativement simple;
- un de génération d'une page de visualisation HTML avec les données.

Certes cette page requiert du JavaScript pour fonctionner, mais elle requiert zéro dépendance vers des liens externes et inclut autant toutes les visualisations que les données dans une seule page (données, CSS, visualisations). Cela permet de l’avoir en marque-page grâce à quelques ruses de javascript, et cela rend son hébergement aisé pour les sysadmins. (NdM: goaccess (MIT en C) sait faire aussi).

Son API permet en outre de faire des agrégations plus compliquées.

Et, je recherche des bétas testeurs pour en faire un produit fini.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Sortie de Fedora Linux 42, la réponse à la grande question sur le Libre, Linux et tout le reste ?

En ce mardi 15 avril, les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de la version Fedora Linux 42.

Fedora Linux est une distribution communautaire développée par le projet Fedora et sponsorisée par Red Hat, qui lui fournit des développeurs ainsi que des moyens financiers et logistiques. Fedora Linux peut être vue comme une sorte de vitrine technologique pour le monde du logiciel libre, c’est pourquoi elle est prompte à inclure des nouveautés.

GNOME Shell nature

Sommaire

Expérience utilisateur

L'environnement de bureau GNOME est proposé dans sa version 48. Cette version apporte comme toujours son petit lot de nouveautés.
Tout d'abord les notifications sont regroupées par application par défaut ce qui permet d'éviter de rapidement saturer la liste dans le menu idoine. Il reste possible de les déplier manuellement si on souhaite voir le détail pour une application en particulier.

Au sein de l'interface, une nouvelle police fait son apparition par défaut. Dénommée Adwaita, elle remplace l'illustre Cantarel qui remplissait ce rôle jusqu'alors. Elle est basée sur la police Inter qui permet une prise en charge plus complète des langues, une meilleure lisibilité sur les écrans à haute densité de pixels tout en étant accessible et lisible dont pour le terminal. En parlant d'affichage, la prise en charge de la technologie HDR a été introduite pour permette une meilleure qualité d'affichage avec les appareils compatibles.

De manière globale, il est possible de changer les raccourcis clavier de l'interface et le placement des nouvelles fenêtres par défaut est centré.

Comme de nombreux systèmes, GNOME propose des paramètres liés au bien-être. Il permet de rapporter le temps d'écran jour par jour au cours d'une semaine. Par ailleurs on peut lui demander de nous notifier régulièrement de faire une pause visuelle en regardant ailleurs ou en faisant quelques mouvements pendant quelques secondes. Il est également possible de définir une limite d'écran qui transforme l'interface en noir et blanc quand le temps limite est atteint. Au sein des options, pour ceux avec un matériel compatible, il est possible de configurer un pourcentage de charge maximale pour la batterie afin de la préserver dans le temps.

Au niveau applicatif, un nouveau lecteur audio très minimaliste fait son apparition : Decibels. Destiné à remplacer le lecteur vidéo Totem pour jouer un morceau individuel depuis le navigateur de fichiers. Côté visionneur d'images, ce dernier bénéficie d'améliorations pour proposer une édition légère des images affichées. La rotation, le changement de ratio ou le découpage de l'image ce qui permet de faire ces opérations simples et courantes sans utiliser un logiciel d'édition complet qui est beaucoup plus lourd. Ensuite il propose un bouton pour revenir au niveau de zoom d'origine à la demande. Enfin, les images au format RAW peuvent être affichées. Concernant le calendrier, il est possible de renseigner le fuseau horaire pour le début ou la fin d'une activité afin de simplifier l'organisation notamment de réunions internationales. Les performances de l'application sont également améliorées.

Sous le capot, un effort a été fait pour améliorer les performances de l'interface et du système. Par exemple le moteur JavaScript de GNOME consomme moins de mémoire et de processeur. En utilisant ffmpeg au lieu de gstreamer, l'indexation des gros fichiers et des métadonnées multimédia est aussi plus rapide et moins gourmand en mémoire. Les utilisateurs connectant leur écran à une carte graphique dédiée verront aussi leurs performances et la stabilité s'améliorer tandis que redimensionner ou créer de nouvelles fenêtres sera plus rapide.

L'environnement de bureau Xfce bénéficie de la version 4.20. Si cette version introduit un support expérimental du protocole d'affichage Wayland, il n'est pas encore fonctionnel et des améliorations futures devront encore être fournies à ce sujet. Mais concernant l'affichage, la prise en charge des écrans à haute résolution a été améliorée ce qui devrait réduire les flous dans l'interface ou de certaines icônes pour de tels écrans.

Dans le navigateur de fichiers Thunar, les points de montage adoptent une icône spécifique alors que les montages distants IPv6 sont désormais possibles. La barre d'outils s'enrichie avec un menu hamburger quand la barre de menu est masquée. Il permet aussi d'ouvrir facilement un nouvel onglet ou de changer la vue d'affichage du dossier en cours. Pour gagner de la place en hauteur, la décoration côté client est prise en charge ce qui permet de mettre le menu au même niveau que les touches d'actions pour réduire ou fermer la fenêtre. Des améliorations de performances sont également fournies notamment pour le transfert des fichiers ou pour afficher des dossiers avec de nombreux fichiers.

De manière globale il est possible de définir un mode d'énergie ou de performance du système dans les propriétés d'alimentation pour choisir l'équilibre souhaité entre la consommation d'énergie et les performances du systèmes. Il y a également l'apparition des profils d'affichage particulièrement utiles quand il y a plusieurs systèmes de multi-écrans à gérer pour passer d'un mode à l'autre en fonction de ses déplacements.

De nombreuses pages de paramètres ont été remaniées pour être plus simples et plus claires.

L'environnement de bureau LXQt passe à la version 2.1. C'est la première version à fournir une compatibilité complète avec le protocole d'affichage Wayland qui devrait être activé par défaut dans Fedora. En dehors de cela cette version ne fournie que des changements et correctifs assez mineurs.

Choix de langues avec le nouvel Anaconda

Le logiciel d'installation Anaconda en profite pour également être une interface web par défaut pour Fedora Workstation. L'objectif est d'utiliser les technologies React et Cockpit pour définir cette nouvelle interface qui a été entièrement redessinée. Elle abandonne sa vieille approche de choisir les éléments à configurer dans l'ordre de son choix par l'usage d'un assistant de configuration linéaire. Donc après la configuration de la langue qui est basée par défaut sur celle de l'image en cours d'exécution, le choix de la date est ensuite suivie de l'étape de partitionnement qui a également été entièrement refaite avant de procéder à l'installation proprement dite. L'approche linéaire a été jugée plus simple d'utilisation et à maintenir même si cela ne permet pas de sauter des étapes si nécessaire, mais étant donné leur nombre réduit cela n'est pas considéré comme une grande perte.

L'aide a été remaniée dans l'application pour être affichée de côté et qui peut être plus facilement maintenue et traduite à côté du code de l'application.

Concernant le partitionnement, auparavant trois méthodes étaient disponibles :

  • Entièrement automatique ;
  • Personnalisé : approche dite top-down en définissant les points de montages avant de définir les détails concernant les partitions et les volumes ;
  • Basé sur l'outil blivet : approche dite bottom-up où on définit les partitions et volumes avant d'y associer les points de montage.

Cela était complexe pour l'utilisateur et difficile à maintenir même si ça avait l'avantage d'être très flexible. L'objectif est maintenant d'offrir une approche plus guidée avec plusieurs choix plus clairs :

  • Réinstaller entièrement sur les disques ;
  • Installer uniquement dans l'espace libre disponible sur les disques ;
  • Réinstaller sur un Fedora Linux existant ;
  • Utiliser un partitionnement déjà existant ce qui permet à priori de configurer cela avec un autre outil au préalable ;
  • Supprimer manuellement des partitions pour utiliser l'espace résiduel.

Le tout repose sur l'utilisation de la technologie Cockpit Storage ce qui simplifie la maintenance et permet d'avoir une apparence similaire avec le reste d'Anaconda. Dans le futur une installation distante par HTTPS devrait être possible grâce à cela.

Pour les autres éditions, Anaconda devient une application Wayland native. Ce changement est utile pour supprimer les dépendances liées à X11 pour les environnements de bureaux qui peuvent s'en passer ce qui réduit la taille de l'image. Par ailleurs cela permet aussi de migrer pour les installations à distance du protocole réseau VNC à RDP qui est plus performant et sécurisé. Cela a été rendu possible par l'usage progressif de systemd-localed par les différents environnements ce qui permettait une meilleure prise en charge de la configuration du clavier dans ce contexte, faute de définition suffisament commune dans le protocole Wayland encore. Autrement le changement de clavier depuis Anaconda ne se reflétait pas sur le bureau et cela pouvait mener à des soucis comme la difficulté de déverrouillage de la machine après installation car la disposition clavier n'est plus celle utilisée lors de l'installation…

L'édition KDE Plasma devient une édition à part entière, étant mise au même niveau que Fedora Workstation avec l'environnement GNOME. Cela récompense les efforts de longue haleine pour améliorer la qualité de l'intégration de KDE dans Fedora Linux. KDE était cependant déjà un environnement considéré comme assez important pour que son bon fonctionnement conditionne le report ou non d'une sortie de Fedora Linux, donc ce changement de statut n'aura pas d'impact de ce côté là. Elle sera maintenant proposée sur le site principal et mieux mise en avant.

L'écran de chargement lors du démarrage plymouth utilise simpledrm par défaut pour réduire l'attente qu'une carte graphique soit disponible. Les cartes graphiques sont des composants complexes qui peuvent nécessiter du temps pour s'initialiser. Auparavant, plymouth pouvait attendre jusqu'à 8 secondes avant de basculer dans un affichage par défaut assez disgracieux. Cependant grâce à l'UEFI qui fourni un framebuffer, il est possible d'avoir un affichage plus sympa et plus tôt par l'usage de simpledrm qui peut être exploité à cette fin. Cela n'a pas été fait plus tôt car notamment simpledrm ne fournissait pas d'information concernant la rotation de l'écran et la taille physique de l'affichage.

Cependant, dans certains cas l'affichage pourrait être plus moche par l'usage d'une résolution plus faible que ce qui est possible car l'heuristique pour définir si l'affichage est à haute définition de pixels peut se tromper. Il reste toujours possible de désactiver ce changement via la commande sudo grubby --update-kernel=ALL --args="plymouth.use-simpledrm=0"

Si vous souhaitez changer le facteur d'agrandissement, si vous avez un écran à haute définition de pixels par exemple, vous pouvez utiliser la commande sudo grubby --update-kernel=ALL --args="plymouth.force-scale=1" et changer éventuellement la valeur 1 par 2 selon votre cas.

L'environnement de bureau COSMIC bénéficie de sa propre édition Spin. Cet environnement est développé en Rust par l'entreprise System76 qui édite Pop! OS. Les progrès récents justifient selon le projet d'avoir sa propre variante, d'autant que Fedora Linux semblait être déjà une distribution recommandée pour tester cet environnement. Cependant COSMIC n'a pas le statut pour bloquer une sortie de Fedora Linux s'il s'avère trop instable.

Activation de la mise à jour automatique par défaut pour la version atomique de KDE Plasma nommée Kinoite. Ces mises à jour concernent la partie de base du système reposant sur rpm-ostree. Ces mises à jour fonctionnent en arrière plan à intervalle régulier pour être instantanément appliquées lors du prochain redémarrage.

Il est possible de désactiver la fonctionnalité en remplaçant la valeur du paramètre UseUnattendedUpdates à false dans le fichier /etc/xdg/PlasmaDiscoverUpdates.

KDE est mis à l'honneur

Gestion du matériel

Amélioration de la prise en charge des webcams basées sur le protocole MIPI au lieu de USB dans les ordinateurs portables x86. Le travail entamé avec Fedora Linux 41 doit se poursuivre car ce protocole moins générique nécessite beaucoup d'adaptations spécifiques par modèle d'ordinateur portable sur le marché. Quelques nouveaux modèles doivent être pris en charge même si la route reste encore longue mais la voie est libre !

L'Intel Compute Runtime, qui prend en charge notamment le fonctionnement de l'API OpenCL pour les processeurs Intel, a été mise à jour vers la version 24.39 qui signifie également une non prise en charge des processeurs d'avant 2020 (à partir de la 12e génération). Ce changement n'a pas d'impact sur l'Intel Media Driver qui permet l'accélération matérielle pour la lecture ou l'encodage de vidéo.

Fedora restait sur l'ancienne version pour maintenir la compatibilité avec les vieux processeurs, jusqu'à l'architecture Broadwell sortie en 2015. Cependant avec l'évolution du noyau et de la couche graphique cela devenait un problème à maintenir et de l'autre côté Fedora n'était pas en mesure de fournir la compatibilité pour du matériel plus récent et les derniers correctifs qui améliorent notamment les performances.

Introduction de la pile Intel SGX pour permettre son utilisation dans le futur pour améliorer l'isolation et la protection mémoire en particulier pour les machines virtuelles. Cette protection se fait notamment en chiffrant la mémoire ce qui la rend inaccessible aux autres applications, au noyau et aux différents firmwares de la machine. Les bibliothèques et en-têtes nécessaires pour ces opérations sont fournies dans le répertoire /usr/x86_64-intel-sgx. Aucune application n'est fournie avec de telles possibilités aujourd'hui, uniquement le nécessaire pour créer des applications pouvant en tirer profit.

Intégration du projet FEX dans les dépôts pour permettre l'exécution des programmes x86 / x86_64 depuis les architectures AArch64. Contrairement à QEMU, il n'émule pas un système complet ce qui est plus performant pour émuler simplement une application non compatible avec cette architecture. Cela peut être nécessaire car de nombreuses applications non fournies par Fedora sont compilées nativement pour l'architecture x86_64 mais pas pour AArch64 alors que l'inverse est moins vrai.

Pour permettre son fonctionnement sur les Mac avec des processeurs Apple, qui ont une taille de page de 16k au lieu de 4k pour les autres machines, le composant muvm est également fourni avec pour permettre une telle compatibilité.

FEX est par ailleurs fourni par défaut dans la variante KDE Aarch64 du système.

L'installateur Anaconda utilise la norme GPT par défaut pour la table de partitionnement pour les architectures PPC64LE et s390x, l'architecture x86_64 et Aarch64 ayant déjà sauté le pas avec Fedora Linux 37. L'objectif est de réduire les différences entre les architectures sur ce point ce qui simplifie les tests et la maintenance de l'ensemble.

Les versions atomiques n'auront plus d'images compatibles avec l'architecture PPC64LE. D'après les statistiques, aucun utilisateur n'a utilisé de tels systèmes sur cette architecture. Cette suppression permet d'allouer plus de ressources matérielles et humaines pour générer et tester les images destinées pour les autres architectures où les utilisateurs sont plus nombreux de fait. Cela ne concerne pas les images de Fedora basées sur les paquets RPM qui restent disponibles pour cette architecture.

Le paquet du logiciel Zezere qui sert à automatiser l'installation et la configurations de systèmes IoT a été retiré des dépôts. L'objectif est de remplacer ce composant par systemd-firstboot car Zezere ne fonctionnait pas bien notamment sur les réseaux IPv6, ne fournissait que la possibilité d'envoyer une clé SSH personnalisée et de nombreuses fonctions promises n'ont jamais vu le jour.

Internationalisation

Mise à jour de l'entrée de saisie IBus 1.5.32. Cette version apporte principalement la prise en charge du protocole des entrées Wayland version 2 ce qui permet son utilisation dans les bureaux Sway, COSMIC et Hyprland. Il permet également d'afficher la pop-up de suggestions dans les applications XIM ou GTK2 lorsqu'elles sont utilisées dans une session Wayland.

Son aide à la saisie pour le chinois ibus-libpinyin est aussi mise à jour à la version 1.16. Il permet en outre de fournir des suggestions de ponctuations, de personnaliser la disposition du clavier ou d'afficher les convertisseurs Lua depuis un menu des méthodes d'entrées.

Proposition d'une nouvelle aide à la saisie vocale avec Ibus Speech to Text via le paquet ibus-speech-to-text qui permet de faire de la reconnaissance vocale en local. Toutes les applications compatibles avec IBus peuvent donc avoir une telle saisie vocale qui exploite le logiciel VOSK pour la reconnaissance vocale. Aucune connexion à Internet n'est requise et il gère plusieurs langues qui peuvent être facilement téléchargées si besoin. Cela permet d'améliorer l'accessibilité du système tout en préservant la vie privée.

Installation avec le nouvel Anaconda

Administration système

Les répertoires /usr/bin et /usr/sbin sont fusionnés. Ainsi /usr/sbin devient un lien symbolique vers le répertoire /usr/bin, de même que /usr/local/sbin vers /usr/local/bin. Cette séparation entre les utilitaires réservés aux superutilisateurs et les autres était artificielle et non exploitée.

À l'origine, l'objectif de /sbin était d'avoir des binaires liés statiquement qui pouvaient être utilisés dans un système en mode de secours pour dépanner en cas de gros problème au niveau du système. Mais cette méthode n'est plus appliquée depuis longtemps et cette distinction était conservée comme une relique historique. Cela devenait un poids plus qu'autre chose car avec l'avénement des droits d'utilisateurs dynamiques via polkit par exemple, le besoin d'accéder à ces outils nécessitait de donner accès à ces répertoires même pour des utilisateurs sans droits particuliers. Puis, entre les distributions, un utilitaire pouvait être rangé dans un répertoire ou un autre en fonction des choix des empaqueteurs de chaque communauté ce qui rend la portabilité des commandes entre distributions plus difficiles inutilement. D'ailleurs ArchLinux a sauté le pas il y a quelques années déjà.

Cela est la continuité de la suppression de la distinction entre /bin et /usr/bin qui avait le même genre de justifications qui a eu lieu avec Fedora 17, il y a 13 ans déjà.

DNF5 va proposer à l'utilisateur de supprimer les clés GPG qui ont expiré, ou qui ont été révoquées, plutôt que de devoir le faire à la main avec la commande rpmkeys --delete. Si la commande est interactive, le choix sera laissé à l'utilisateur de supprimer ou non la dite clé. En mode non interactif via les options -y ou --assumeno, le choix dépendra de l'option choisie pour l'appliquer automatiquement.

La commande fips-mode-setup a été retirée du paquet crypto-policies qui permet de rendre dynamiquement son système compatible avec les exigences du gouvernement américain concernant les modules cryptographiques. Cette option doit être activée lors de l'installation par d'autres moyens maintenant.

Il est ainsi possible de le faire en utilisant l'argument noyau fips=1 pour le notifier à Anaconda, si l'image a été générée avec osbuild-composer, l'option fips=true dans la section [customizations] permet d'obtenir le même effet ou si bootc est utilisé pour une image atomique de passer par cette configuration.

Le mode FIPS n'améliore pas forcément la sécurité, dans certains cas ça peut en bloquant l'usage des algorithmes obsolètes mais parfois cela peut avoir l'effet inverse en n'autorisant pas d'algorithmes plus récents jugés plus sécurisés, comme l'algorithme de chiffrement Argon2 utilisé par LUKS pour chiffrer le disque dur qui résiste mieux aux attaques effectuées par des cartes graphiques par rapport à l'algorithme PBKDF2 qui est lui autorisé. C'est un mode destiné aux entreprises ou personnes ayant besoin d'être certifiées à ce niveau.

L'objectif de ce changement est de simplifier la vie des mainteneurs qui n'ont plus à se préoccuper de cet outil et de ce que cela nécessite car de nombreux changements dans le système doivent être mis en place pour activer (ou désactiver) ce mode. Par exemple reconfigurer tous les modules cryptographiques du système tels que OpenSSH, OpenSSL, GnuTLS, NSS, libgcrypt ou le noyau lui même, fournir également un module à l'initramfs pour effectuer une vérification de l'image du noyau au démarrage de la machine et ajouter un argument pour le noyau si jamais /boot est dans une partition dédiée afin d'effectuer cette vérification.

Mais aussi le changement à la volée est source de problèmes et de confusions pour les utilisateurs. Par exemple installer Fedora Linux avec un chiffrement du disque avec un algorithme non compatible FIPS avant de l'activer après l'installation. De même si des clés de chiffrement sont générées avec OpenSSH ou autres outils avec des algorithmes non autorisés avant d'activer le dit mode. Ces situations hybrides peuvent induire des dysfonctionnement non prévus. L'objectif est de limiter ces cas problématiques en empêchant le changement à chaud.

Le navigateur de fichiers pour Cockpit cockpit-navigator est remplacé par cockpit-files. Cela suit le changement effectué par le projet qui a entamé cette réécriture et ne maintient de fait plus l'ancien module.

Les fichiers Kickstart seront distribués également comme des artéfacts OCI. L'objectif est de permettre de charger plus facilement une image de Fedora pour conteneurs qui est démarrable via le réseau. Dans ce cas précis, il était nécessaire pour l'utilisateur de récupérer et de transformer manuellement les différents fichiers depuis les dépôts RPM avec des numéros de versions très mouvants afin d'avoir les images du noyau, de l'initramfs, du chargeur de démarrage, de l'image d'installation et de lancement. Ici l'objectif est de pouvoir les fournir dans un endroit centralisé tel que ce dépôt avec des processus plus faciles à automatiser avec Ansible ou Foreman. Ces fichiers sont également signés avec GPG ce qui permet de facilement vérifier leur conformité.

Les éditions dérivées de Fedora Workstation auront par défaut le pare-feu configuré avec l'option IPv6_rpfilter=loose, ce qui suit la politique appliquée pour l'IPv4 depuis Fedora 30. En effet, avec l'option IPv6_rpfilter=strict il y avait notamment régulièrement des soucis pour vérifier la connexion à Internet pour des machines ayant plusieurs interfaces connectées au réseau tel qu'un ordinateur portable passant du Wifi au réseau Ethernet pour se connecter à son réseau domestique.

Ajout du paquet bpfman pour le déploiment et la gestion des programmes eBPF dans le système. Développé en Rust, il permet de fournir une vue d'ensemble des programmes eBPF utilisés dans le système actuellement. Il simplifie aussi leur déploiement dans un cluster Kubernetes par l'utilitaire bpfman-operator tandis que l'outil bpfman-agent exécuté au sein d'un conteneur permet de rapporter si les programmes eBPF sont dans l'état désiré.

Mise à jour de l'outil de gestion de configuration Ansible à la version 11. Cette version propose d'ajouter des tags aux variables ou valeurs pour par exemple retourner un avertissement si on essaye d'accéder une valeur marquée comme dépréciée. Les boucles de tâches peuvent avoir une instruction d'interruption. Enfin, le module mount_facts prend en charge les périphériques non locaux.

Le serveur de proxy inverse Apache Traffic Server évolue vers sa 10e version. Une nouvelle API basée sur JSON-RPC est proposée pour permettre des interactions avec des outils extérieurs. Le module traffic_ctl a une commande monitor pour rapporter en continue des métriques à jour. Les règles ip_allow.yaml et remap.config prennent en charge des intervalles d'IP nommées pour simplifier la configuration. La prise en charge du protocole HTTP/2 pour les connexions provenant du serveur d'origine a été ajoutée même si elle est désactivée par défaut. De plus, les plugins doivent être développés en C++20 uniquement au lieu du langage C.

La version de compatibilité PostgreSQL 15 a été retirée, PostgreSQL 16 reste la version par défaut. Cela fait suite à l'ajout de PostgreSQL 17 dans les dépôts comme version alternative avec postgresql17 comme nom de paquet. Le projet ne souhaite pas maintenir davantage de versions pour réduire la charge de travail tout en permettant de migrer les données d'une version à l'autre. En effet, la migration nécessite le binaire de la version actuellement utilisée pour réaliser un dump avant d'utiliser la nouvelle version pour importer ce dump. Cela signifie que les utilisateurs utilisant PostgreSQL 15 doivent préparer la migration avant la mise à niveau de leur Fedora Linux.

Les utilitaires liés au projet OpenDMARC ont été mis dans des paquets individuels au lieu du paquet opendmarc qui les fournissait tous. En effet de nombreux utilitaires notamment écrits en Perl étaient fournis avec ce paquet sans être nécessaires pour exécuter le service ce qui entrainait l'installation plus que 80 paquets Perl pour rien dans la plupart des cas. Le paquet opendmarc fournit maintenant les outils opendmarc et opendmarc-check quand le reste est fourni avec le paquet opendmarc-tools.

L'agent pam-ssh-agent a été supprimé des dépôts. Le développement a été arrêté il y a plus d'un an par le projet OpenSSH et aucun paquet actuellement maintenu n'en dépend.

La nouvelle application GNOME Decibels

Développement

La chaîne de compilation GNU bénéficie de GCC 15, binutils 2.44 et glibc 2.41. Concernant le compilateur GCC, comme d'habitude il fournit de nombreux changements. Il est possible pour l'optimisation de l'édition de lien de le faire de manière incrémentale afin que cette étape soit plus rapide en cas de petits changements dans le code source. Les très gros fichiers de code source sont également plus rapide à compiler et les erreurs les concernant sont mieux gérées. Les erreurs gagnent encore en lisibilité, en particulier pour les templates C++ ou en présentant le chemin d'exécution qui mène à l'erreur détectée.

Pour la section OpenMP, la prise en charge des normes au dessus de la version 5.0 continue sa progression avec une meilleure gestion des cartes graphiques Nvidia et AMD. Pour le langage C, la norme C23 devient la norme par défaut tandis que le début de prise en charge de la future norme C2Y a été introduit. Pour le C++, c'est la prise en charge de la future norme C++26 qui progresse et une meilleure gestion des modules introduits dans les normes précédentes.

Pour les architectures, de nombreuses améliorations pour la prise en charge des microarchitectures x86_64 dont des nouvelles instructions AMX. Côté Aarch64, ce sont les puces d'Apple qui sont prises en charge maintenant.

Concernant la bibliothèque standard C, il y a quelques changements concernant la résolution DNS. Grâce à la variable d'environnement RES_OPTIONS il est possible d'ignorer des options précisées dans le fichier /etc/resolv.conf. Ainsi utiliser RES_OPTIONS=-no-aaaa permet d'ignorer l'option options no-aaaa. Les fonctions sched_setattr et sched_getattr ont été ajoutées pour permettre de changer les options de la politique d'ordonnancement des processus du noyau, par exemple quand SCHED_DEADLINE est utilisé où certains paramètres peuvent être utilisés. La prise en charge d'Unicode 16.0 a été ajoutée, de même que de nombreuses fonctions mathématiques introduites par la norme C23. Pour l'architecture AArch64, les fonctions mathématiques vectorielles devraient être plus performantes.

Enfin pour les binutils, les extensions de l'assembleur pour les architectures AArch64, Risc-V et x86 ont été mises à jour. L'éditeur de lien peut mixer des objets avec et sans l'optimisation activée.

La chaîne de compilation LLVM progresse à la 20e version. Comme pour son concurrent GCC, les dernières normes C et C++ ont bénéficié de nombreuses améliorations pour leur prise en charge. De même, de nombreuses instructions AMX pour l'architecture x86_64 ont été ajoutées. Un nouveau vérificateur TySan fait son apparition pour vérifier les violations d'aliasing de types, donc utiliser un pointeur d'un type particulier pour accéder à des valeurs d'un autre type en mémoire ce qui dégrade les performances ou peut engendrer des bogues. Le module de télémétrie a été extrait du débogueur pour être disponible dans l'ensemble de LLVM afin de pouvoir rapporter différentes mesures et usages de ces outils aux développeurs mais cela reste désactivé par défaut.

Fedora par ailleurs fournit les outils llvm-bolt, polly, libcxx et mlir dans le paquet llvm au lieu d'être dans des paquets indépendants comme avant. Les binaires, bibliothèques et autres en-têtes sont installées dans le dossier /usr/lib64/llvm$VERSION/ au lieu de /usr, des liens symboliques sont proposés pour garder la compatibilité, l'objectif est de faciliter le passage d'une version à l'autre pour les utilisateurs.

Le cadriciel web Python nommé Django utilise la version 5.x. Les formulaires peuvent bénéficier de la notion de groupe de champs pour simplifier significativement le code du template en évitant de devoir répéter les mêmes informations pour chaque champ s'ils ont la même structure. Les modèles peuvent également recevoir une valeur par défaut obtenue par la base de données. Il est également possible de générer des colonnes qui sont calculées à partir d'autres champs de la base de données.

Mise à jour du langage Go vers la version 1.24. Côté langage, il prend en charge les alias de types génériques ce qui permet d'étendre leur champ d'applications et d'améliorer la lisibilité du code. Comme souvent avec Go, les performances sont améliorées, de l'ordre de 2-3% à l'exécution et la structure map est basée sur les tables suisses pour réduire la consommation mémoire pour les petits objets. La bibliothèque standard fournit des mécanismes pour se conformer au standard FIPS 140 concernant la cryptographie comme expliqué plus haut. Une nouvelle instruction du compilateur go:wasmexport permet d'exporter les fonctions du programme à l'hôte en WebAssembly.

Le langage Ruby brille avec la version 3.4. Le parseur par défaut passe de parse.y à Prism pour améliorer la détection des erreurs, les performances et la portabilité. La bibliothèque de socket dispose du standard Happy Eyeballs Version 2 pour améliorer la résilience et l'efficience des connexions TCP. Le compilateur juste à temps YJIT améliore ses performances pour les architectures x86_64 et Aarch64, il est également plus fiable et réduit un peu sa consommation mémoire tout en ayant la possibilité de définir une limite maximale unifiée. Parser des structures JSON doit être également 1,5 fois plus rapide, de même pour Array#each grâce à une réécriture en Ruby.

Le langage de programmation PHP s'impose de tout son poids à la version 8.4. Outre d'apporter un compilateur juste à temps basé sur IR Framework et diverses améliorations de performance, le langage propose de nouveaux concepts. Les property hooks permettent de facilement définir des structures basées sur une autre valeur pour les garder synchronisées tout en ayant une quantité de code plus réduites et avec moins de risque de faire des erreurs. Il est possible de définir une visibilité asymétrique, en autorisant la lecture d'une propriété mais pas son écriture publiquement et ce sans passer par des getters / setters. L'attribut #[\Deprecated] fait son apparition pour signaler à l'utilisateur qu'une méthode ou valeur sera probablement supprimée ultérieurement. Une nouvelle API pour manipuler les objets DOM apparaît et fournit la prise en charge de HTML5. Et d'autres changements encore.

Le langage de scripts Tcl/Tk a été mis à jour vers la 9e version. Pour des raisons de compatibilité, la version 8 reste distribuée sous le nom de paquet tcl8. Grâce à l'exploitation du 64 bits, il peut maintenant manipuler des données de plus de 2 Gio. La prise en charge d'Unicode et des différentes méthodes d'encodage a été améliorée, en ajoutant d'une part mais aussi en gérant l'ensemble des valeurs existantes. L’interaction avec le système est améliorée avec la possibilité d'envoyer des notifications, d'imprimer ou d'utiliser les icônes de la barre du système. Il y a un début de prise en charge de l'affichage vectoriel permettant d'améliorer le visuel des applications. Les capacités d’interactions tactiles sont améliorées avec la possibilité de gérer des gestes à deux doigts.

La bibliothèque de calcul scientifique en Python NumPy passe à la version majeure 2. Première version majeure depuis 2006, il fournit de nombreuses améliorations de performance en particulier autour des différents algorithmes de tri de même que la sauvegarde de gros objets. La transformée de Fourrier rapide prend en charge les types float32 et longdouble. Un nouveau type pour les chaînes de caractères de taille variable fait son apparition : StringDType qui doit fournir également de meilleures performances. La séparation entre l'API publique et privée a été aussi clarifiée avec une nouvelle structure des modules. API qui a aussi été nettoyée pour enlever ce qui n'était pas pertinent ce qui simplifie l'apprentissage de la bibliothèque.

L'outil de développement de paquets Python Setuptools a été mis à jour vers la version 74. La commande setup.py qui était non recommandée depuis plus de 5 ans disparaît, cela a nécessité notamment de changer près de 150 paquets dans le système pour en tenir compte. D'autres changements plus mineurs sont également fournis.

Mise à jour de la bibliothèque de compression zlib-ng à la version 2.2.x. Parmi les changements, sur l'architecture x86_64 les performances devraient être améliorées de 12% pour la compression avec le niveau par défaut. L'allocation mémoire est également fait en une seule fois ce qui réduit le nombre d'appels systèmes et le risque de fragmentation de la mémoire ce qui améliore également les performances globales. Le risque d'avoir un échec par manque de mémoire s'en retrouve également réduit.

Le langage Copilot avec sa boîte à outil de vérification de runtime fait son apparition. Développé en Haskell par la NASA, il permet de définir des programmes concis qui peuvent ensuite être transpilés en C99 pour permettre un haut niveau de sécurité tout en étant capable de gérer des contraintes temps réel dures ce qui est important dans de nombreux contextes embarqués. Ce langage est disponible via le paquet ghc-copilot.

La bibliothèque graphique SDL utilise la version 3 pour assurer la compatibilité avec ses versions 2 et 1.2 dorénavant. Cela passe par le paquet sdl2-compat qui fourni cette compatibilité car SDL 2 n'est plus développé.

Les anciennes versions de OpenJDK pour le langage Java à savoir 8, 11 et 17 ne sont plus fournies par les dépôts de Fedora mais devront être installées via un dépôt tiers tel que Adoptium Temurin dont le paquet adoptium-temurin-java-repository permet son activation. La maintenance des différentes versions d'OpenJDK a été longtemps une problématique pour Fedora avec leur nombre de versions avec une maintenance officielle qui augmente, cela alourdissait considérablement la charge de travail sans avoir assez de mainteneurs en face. D'autant plus que la plupart des cas d'usage se contentent bien de la dernière version LTS disponible, les versions plus anciennes répondent à des cas plus spécifiques qui peuvent se contenter d'un dépôt externe où les mainteneurs de Fedora travaillent de toute façon ce qui garantie la qualité de l'intégration. Cela diminuera la consommation de ressources pour gérer ces paquets dans Fedora mais aussi l'allégement de la charge de travail permettra de mettre à jour OpenJDK plus rapidement à l'avenir.

Le paquet de compatibilité Python pour la version 3.8 a été retiré. Cette version n'est plus maintenue par le projet Python et ce serait trop coûteux et peu sûr de poursuivre sa fourniture dans la distribution.

La bibliothèque Rust zbus version 1 a été supprimée, la version 4 ou supérieure reste proposée dans les dépôts. Une vingtaine de dépendances obsolètes étaient également maintenues pour ce composant ce qui permettra de réduire la charge de travail pour les mainteneurs et la consommation de ressources pour le projet Fedora. La compatibilité avec les dernières versions du compilateur Rust et certains bogues sur certaines architectures rendaient sa maintenance problématique par ailleurs.

La bibliothèque de compatibilité entre Rust et Python, PyO3, se voit retirer les anciennes versions 0.19, 0.20, et 0.21. Les versions 0.22 et 0.23 restent donc disponibles. Cet abandon devient nécessaire par les changements de l'API et de l'ABI de CPython qui rendent les anciennes versions de plus en plus difficiles à maintenir en état de fonctionnement.

L'utilitaire d'exécution des tests unitaires en Python python-pytest-runner est déprécié et sera supprimé dans un futur proche. Depuis 2019 il est dans un état d'abandon par le projet source, il faut depuis envisager d'utiliser pytest à la place d'autant plus que les incompatibilités avec l'outil setuptools vont en grandissant.

La bibliothèque de compatibilité entre GTK3 et Rust est marquée comme dépréciée et sera supprimée dans une prochaine version. En effet les versions récentes de gtk-rs ne le prennent plus en charge ce qui impose un coût de maintenance d'autant qu'il faut maintenir aussi les anciennes versions de compatibilité avec Cairo et GLib pour cela.

Les nouveaux paramètres de GNOME bien être

Projet Fedora

Fedora Linux proposera des archives permettant d'être installé avec Windows Subsystem for Linux. Windows a récemment amélioré la prise en charge des installations d'un tel système en dehors du magasin d'applications Microsoft ce qui rend ce changement plus intéressant. Idéalement il faut utiliser WSL 2.4.4 ou supérieur même si une procédure sera fournie pour les versions plus anciennes. Le projet Fedora ne souhaite pas à ce jour accepter les conditions pour permettre une publication directement depuis le magasin d'applications. Cela permet de faciliter l'usage de Fedora dans un tel système.

Les paquets RPM peuvent bénéficier de la fonction systemd sysusers.d pour créer des utilisateurs ou groupes dédiés lors de l'installation des paquets RPM. L'objectif à terme est de se débarasser des instructions useradd ou groupadd dans les paquets RPM voire l'usage de la macro %sysusers_create_compat. Cela va permettre d'uniformiser à terme la manière de créer de tels utilisateurs et groupes ce qui va également simplifier les scriplets des différents paquets RPM concernés. Comme cela est intégré dans le format RPM, il devient plus facile de retrouver quels utilisateurs et groupes sont créées par un paquet donné et de définir des dépendances basées sur ce critère si c'est pertinent.

Les mises à jour de Fedora CoreOS passent de OSTree à OCI. Les mises à jour proviennent ainsi du dépôt quay.io/fedora/fedora-coreos. C'est la première étape avant d'être capable de passer à bootc pour gérer la base du système qui permettrait entre autre de faire des mises à jour en miroir en copiant un système existant sur le réseau local ou de laisser l'utilisateur personnaliser facilement ses propres images.

Activation par défaut de composefs pour les images atomiques bureautiques de Fedora Linux pour les images non basées sur OSTree. Faisant suite à ce qui a été fourni pour les images CoreOS et IoT avec Fedora Linux 41, l'idée est de fournir une vérification d'intégrité des images atomiques lorsque le système tourne et d'avoir un système de fichiers du système réellement en lecture seule.

En effet, jusqu'ici l'intégrité des fichiers du système n'est vérifiée que lors de la mise à jour ou l'installation d'une nouvelle image mais rien n'empêche d'avoir une altération malveillante par exemple entre temps. Il fallait exécuter ostree fsck à la main pour vérifier manuellement si le système était conforme. De plus le système même s'il est en lecture seule en théorie, en réalité il était monté en lecture/écriture avec la commande chattr +i / ajoutée pour prévenir les modifications accidentelles.

Avec composefs, qui exploite overlayfs et EROFS, permet de supprimer ces limitations, le système de fichiers sera réellement en lecture seule et la moindre tentative de modification aboutira à une erreur au niveau du noyau Linux en toute circonstance. Les répertoires /etc et /var restent accessibles en lecture/écriture comme avant. L'objectif à terme est de fournir une vraie chaîne de démarrage sécurisée avec la vérification des signatures au niveau du système.

L'utilitaire edk2 est compilé avec des options de sécurité supplémentaires pour améliorer la sécurité des machines virtuelles reposant sur l'UEFI. Ce composant est une implémentation de l'UEFI qui est notamment utilisée par les machines virtuelles créées avec libvirt. Ce changement passe par l'activation du mode strict pour NX qui empêche l'exécution de code provenant de zone mémoire en lecture/écriture. Les pointeurs NULL sont également capturés pour éviter de déférencer le vecteur d'interruption qui existe à cette adresse ce qui peut mener à des accès mémoires non souhaités. Cela ne sera appliqué que pour les sytèmes invités avec Secure boot activé, pour éviter d'introduire des régressions pour les systèmes invités plus anciens qui seraient non compatibles avec ces options de sécurité dans un environnement où ces protections additionnelles seraient moins pertinentes.

En effet, cela est une réponse au problème de sécurité liée au composant shim pour les versions inférieures à 15.8 qui a nécessité en 2024 une mise à jour majeure des chargeurs de démarrage et du noyau Linux. Des systèmes invités avec ce problème de sécurité non corrigé entraineront une erreur mémoire prévenant toute exécution.

Les images live de Fedora Linux utilisent le système de fichiers EROFS en lieu et place de SquashFS. Ce système de fichiers est aussi en lecture seule et est plus activement développé. De fait il peut utiliser des algorithmes de compression plus moderne pour réduire la taille de l'image et a été développé pour avoir de bonnes performances sur les systèmes embarqués ce qui devrait se retrouver aussi sur des machines plus performantes.

Ajout d'un générateur de dépendances pour les extensions de GNOME Shell, permettant de lier la version de l'extension avec celle de gnome-shell à partir du fichier metadata.json de l'extension. Cela permet de détecter de manière générique et donc plus facilement et automatiquement un soucis de compatibilité entre une extension et la version de GNOME Shell fournie par le projet. Cela devrait permettre de travailler sur ces problèmes de compatibilité dès qu'ils apparaissent plutôt que d'attendre le retour d'utilisateurs qui découvrent une extension non fonctionnelle en pratique.

Redéfinition des dépendances de nombreux paquets de git vers git-core. Plus de 200 paquets souhaitent utiliser le binaire git et ont une dépendance envers ce paquet éponyme alors qu'il est fourni en réalité par le paquet git-core. Ce qui implique une dépendance excessive envers 60 autres paquets inutiles dans ce contexte. Cela devrait entre autre réduire les ressources nécessaires pour générer certains paquets.

La communauté francophone

L'association

Logo de Borsalinux-fr

Borsalinux-fr est l'association qui gère la promotion de Fedora dans l'espace francophone. Nous constatons depuis quelques années une baisse progressive des membres à jour de cotisation et de volontaires pour prendre en main les activités dévolues à l'association.

Nous lançons donc un appel à nous rejoindre afin de nous aider.

L'association est en effet propriétaire du site officiel de la communauté francophone de Fedora, organise des évènements promotionnels comme les Rencontres Fedora régulièrement et participe à l'ensemble des évènements majeurs concernant le libre à travers la France principalement.

Si vous aimez Fedora, et que vous souhaitez que notre action perdure, vous pouvez :

  • Adhérer à l'association : les cotisations nous aident à produire des goodies, à nous déplacer pour les évènements, à payer le matériel ;
  • Participer sur le forum, les listes de diffusion, à la réfection de la documentation, représenter l'association sur différents évènements francophones ;
  • Concevoir des goodies ;
  • Organiser des évènements type Rencontres Fedora dans votre ville.

Nous serions ravis de vous accueillir et de vous aider dans vos démarches. Toute contribution, même minime, est appréciée.

Si vous souhaitez avoir un aperçu de notre activité, vous pouvez participer à nos réunions mensuelles chaque premier lundi soir du mois à 20h30 (heure de Paris). Pour plus de convivialité, nous l'avons mis en place en visioconférence sur Jitsi.

La documentation

Depuis juin 2017, un grand travail de nettoyage a été entrepris sur la documentation francophone de Fedora, pour rattraper les cinq années de retard accumulées sur le sujet.

Le moins que l'on puisse dire, c'est que le travail abattu est important : près de 90 articles corrigés et remis au goût du jour.
Un grand merci à Charles-Antoine Couret, Nicolas Berrehouc, Édouard Duliège, Sylvain Réault et les autres contributeurs et relecteurs pour leurs contributions.

La synchronisation du travail se passe sur le forum.

Si vous avez des idées d'articles ou de corrections à effectuer, que vous avez une compétence technique à retransmettre, n'hésitez pas à participer.

Comment se procurer Fedora Linux 42 ?

Logo de Fedora Media Writer

Si vous avez déjà Fedora Linux 41 ou 40 sur votre machine, vous pouvez faire une mise à niveau vers Fedora Linux 42. Cela consiste en une grosse mise à jour, vos applications et données sont préservées.

Autrement, pas de panique, vous pouvez télécharger Fedora Linux avant de procéder à son installation. La procédure ne prend que quelques minutes.

Nous vous recommandons dans les deux cas de procéder à une sauvegarde de vos données au préalable.

De plus, pour éviter les mauvaises surprises, nous vous recommandons aussi de lire au préalable les bogues importants connus à ce jour pour Fedora Linux 42.

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Logiciels libres pour la comptabilité d'entreprise

Où l’on s’essaie à dresser un panorama des logiciels comptables libres. À l’origine de cette dépêche, une recherche d’un logiciel de paye libre où il a semblé que cela pouvait être utile.

Il s’agit bien de logiciels de comptabilité pour un usage professionnel ou associatif, pas de gestion de finances personnelles qui ont fait l’objet d’une autre dépêche il y a quelque temps. Évidemment, il n’y a aucune prétention à l’exhaustivité, mais plus à donner un panel de logiciels avec quelques idées pour choisir le vôtre, le cas échéant. N’hésitez pas à les essayer quand c’est possible et à croiser les informations pour vous faire votre opinion. Les fiches sont succinctes, mais c’est l’occasion pour vous d’écrire plein de nouvelles dépêches puisque la plupart de ces logiciels n’ont pas eu de présentations récentes sur LinuxFr.org.
Image d’illustration

    Sommaire

    Entrons tout de suite dans le vif du sujet. Voici des courtes présentations avec des points forts et des points faibles qui se dégagent des expériences des rédacteurs et rédactrices. Pour vous aider à faire un choix, cette liste est suivie d’explications plus générales.

    Compta.libremen.com

    logo compta libremen
    Compta libremen com est un logiciel de compta en partie double, simple et efficace. Il utilise une interface web sans fioritures. Le logiciel est écrit en Perl et s’appuie sur Postgresql et mod_Perl, avec un serveur Apache. Un fork amical fournit une image Docker et quelques améliorations. Libremen propose une offre en ligne.
    Commentaires de l’auteur recueillis par courriel : on a un peu d’aide à la saisie, il y a les raccourcis claviers (calcul du numéro de pièce, recopie de la ligne précédente) et aussi les fenêtres déroulantes pour les numéros de compte, plus le fait que le navigateur enregistre les dernières saisies ; je crois avoir documenté toutes les fonctions, la documentation est dite “minimum”, le logiciel est minimaliste par essence, donc la doc aussi :-)

    Interface web
    Aide à la saisie oui
    Saisie au km oui
    Intègre documents TVA, export FEC
    Comptabilité en partie double
    Comptabilité analytique oui, champ “Libre”
    Imports écritures en CSV
    Exports écritures en CSV
    Transmission automatisée non
    En réseau oui, et aussi sur Internet
    Documentation oui, minimum
    Forum non

    Diacamma

    logo Diacamma
    Le logiciel existe en deux versions, Diacamma Asso pour les associations et Diacamma Syndic pour les copropriétés. Diacamma utilise une interface web, avec un serveur intégré. Un installeur est fourni pour Windows, macOSX et Linux (Debian conseillée). Le CHATONS Sleto propose une offre en ligne.

    Interface web
    Aide à la saisie oui
    Saisie au km non
    Intègre achats, ventes, factures, adhérents, documents et +
    Comptabilité en partie double
    Comptabilité analytique oui, simplifiée
    Imports écritures comptables, articles, contacts
    Exports écritures en CSV
    Transmission automatisée non
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum restreint aux connectés, gratuit
    • Points forts : le facturier qui permet aussi de faire des statistiques des ventes et d’éditer des factures et des reçus, le récapitulatif à gauche de l’écran, une vision comptable par « journaux auxiliaires ».
    • Points faibles : les fenêtres modales pour les écritures, la saisie par « journal auxiliaire » qui alourdit le processus, le vocabulaire pas très adapté au secteur.
    • Licence : GNU General Public License 3
    • Site : https://www.diacamma.org/

    Dolibarr

    logo Dolibarr
    Dolibarr est un puissant ERP pour tous types d’entreprises et d’associations. Il existe des pré-sélections des modules nécessaires à votre activité. Dolibarr utilise une interface web avec des serveurs web et SQL. Un installeur est fourni pour Windows et des paquets pour plusieurs distributions Linux. Beaucoup d’offres d’hébergement existent. Il réunit une forte communauté, surtout francophone. Le développement est très actif.
    Notez qu’on parle souvent de Dolibarr sur LinuxFr.org et qu’un journal sur une migration d’ERP a produit des interventions de haut niveau.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, adhérents, documents, stock, et plein d’autres
    Comptabilité simplifiée ou en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports des journaux, du Grand Livre, et des écritures sous différents formats
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : il est possible d’ajouter des extensions avec le magasin d’application, le dolistore. Dolibarr est également disponible chez certains hébergeurs à travers Softaculous. Une gestion fine des droits par groupe d’utilisateurs et par utilisateurs. Avec certains droits réservés aux utilisateurs internes c’est-à-dire ceux qui ne sont ni client ni fournisseur.
    • Points faibles : l’aspect « usine à gaz » de Dolibarr et sa prise en main qui peut être ardue.
    • Licence : GNU GPL V3 et plus
    • Site : http://www.dolibarr.org
    • Dolibarr sur LinuxFr.org.

    Ekyagri

    logo Ekyagri
    Une solution en ligne de gestion d’exploitation agricole.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures,
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : la facilité de la saisie des écritures, la gestion des immobilisations, sa conception bien pensée pour le secteur. L’aide est bien faite, elle indique notamment des niveaux de difficultés des tâches. On peut la télécharger au format PDF.
    • Points faibles : le site n’est pas très clair sur la récupération des données. On n’a pas de module de recherche sur l’aide en ligne et rien n’est indiqué sur les sauvegardes.
    • Licence : AGPL v3
    • Site : https://ekylibre.com/ekyagri/

    ENDI

    logo endi

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures,
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui

    ERPNext / Dokos

    Titre de l’image
    Un puissant ERP créé en Inde, le fork Dokos est la version française. Écrit en Python et JavaScript au-dessus d’une base Postgresql. Modulaire, il se positionne comme Odoo (voir ci-dessous). Comparons-les : l’interface est plus austère, la renommée moindre entraîne peu de contributeurs tiers à proposer des modules, l’équipe est plus petite, mais tout aussi dynamique, ERPNext évolue vite, il est basé sur le framework FRAPPÉ qui est stable et permet d’extraire les applications de l’ERP, l’ensemble est intégralement libre.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, documents, stock et plein d’autres modules
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports écritures en CSV
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui

    Frappebook

    Logo FrappeBook
    Même équipe qu’ERPNext. C’est juste le morceau comptable d’ERPNext, refait en application de bureau et portable par dessus SQLite. Pour les petites entreprises.

    • Points forts : Application portable, on peut l’emmener sur sa clef USB. L’interface est sobre et bien finie.
    • Points faibles : au lancement on se retrouve dans une compta anglo-saxonne, il faut paramétrer pour avoir une compta “européenne”.
    • Licence : GNU General Public Licence version 3
    • Site : https://frappebooks.com/
    • Code source : https://github.com/frappe/books

    Galette

    Titre de l’image
    Sous le nom sympathique et tarabiscoté de Galette (Gestionnaire d’Adhérents en Ligne Extrêmement Tarabiscoté mais Tellement Efficace) se cache un logiciel à destination des associations.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, adhérents
    Comptabilité simplifiée ou en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : Il est très facile à prendre en main, en comptabilité simple ou double. Il y a une aide en ligne copieuse ainsi qu’une liste d’entraide. Le logiciel propose plusieurs plans comptables (Au moins deux pour les plans comptables français et d’autres pour la plupart des pays européens). On peut aussi ajouter son propre plan comptable. Il offre des fonctionnalités de comptabilité analytique. On peut utiliser sa propre instance, récupérer la base de données ou exporter la comptabilité sous divers formats (CSV, FEC, ODS et XLSX). Il est possible d’importer une comptabilité dans ces formats. Le logiciel est en constante évolution, avec un développeur très réactif. Des modules permettent de gérer aussi les paiements en ligne (puisque c’est aussi un logiciel de gestion de facturations et de clients). Il y a un module PdV (point de vente, caisse).
    • Points faibles :
    • Licence : GNU General Public Licence version 3
    • Site : https://galette.eu/site/fr/
    • Code source : https://github.com/galette/galette
    • Galette sur linuxFr.org.

    GnuCash

    logo GnuCash
    GnuCash figure dans la bibliothèque logicielle de la plupart des distributions Linux. C’est un logiciel qui fait aussi bien la comptabilité personnelle que la comptabilité professionnelle. Il propose des fonctionnalités de CRM de base : gestion des adresses des clients et des fournisseurs.

    Interface Bureau (Gtk)
    Aide à la saisie oui
    Saisie au km
    Intègre
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau
    Documentation oui, complète
    Forum oui
    • Points forts : on peut paramétrer des écritures répétitives (paiements mensuels par exemple) et le logiciel vous le rappelle dans des délais fixés par vous à l’ouverture. Sa bibliothèque de rapports (ou états) est riche : bilan, comptes de résultat, portefeuille d’action, facture, quittance, graphiques. Et c’est personnalisable souvent. Les rapprochements bancaires se font avec pré-affectation des comptes grâce à de l’inférence bayésienne.
    • Points faibles : Il n’y a pas de plan comptable intégré, il faut l’ajouter. Ni de fonctionnalité d’import d’un plan comptable (ou alors, je n’ai pas trouvé), pas de comptabilité analytique, non plus. Il n’est pas complètement traduit en français et la traduction est un peu étonnante parfois. La prise en main n’est pas évidente.
    • Systèmes d’exploitation : Windows, MacOS, GNU/Linux, Unixes
    • Interface : graphique
    • Licence : GNU General Public License Version 2 ou Version 3
    • Site : https://gnucash.org/
    • Code source : https://sourceforge.net/projects/gnucash/
    • GnuCash sur linuxFr.org (dépêches anciennes).

    Grisbi

    logo Grisbi
    Un logiciel qui fonctionne tout seul et qui est souvent fourni dans les distributions Linux. Il est surtout utilisable pour les finances personnelles, mais il propose un mode comptabilité libérale et peut être utilisé par des micro-entreprises.

    Interface Bureau (GTK-3)
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures,
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : il n’est pas compliqué à installer, on peut importer des fichiers au format CSV (évidemment) mais aussi aux formats QIF, OFX et Gnucash. Pour les rapprochements bancaires, soit dit en passant, choisir le format QIF c’est encore celui qui fait le mieux le travail. Et on peut l’exporter au format QIF ou CSV. Deux formats souvent utilisés par les logiciels de comptabilité. Il propose un pratique simulateur de crédit. Il est assez facile à prendre en main. Quand on fait un rapprochement bancaire, pour une comptabilité personnelle, en bout de course, on a une bonne partie des écritures comptables qui sont saisies.
    • Points faibles : pas de comptabilité analytique, pas de compte de résultat ni de bilan et, évidemment, il n’est pas possible d’éditer des factures. L’interface GTK avait quelques bugs sous Windows (il y a plusieurs années, peut-être corrigés depuis), comme des menus déroulants qui empêchent de valider un formulaire tant qu’on a pas cliqué à côté pour les fermer.
    • Logiciel inspiré de l’ex MsMoney (qui n’est plus vendu par Microsoft)
    • Licence : GNU General Public License Version 2
    • Site : https://fr.grisbi.org/
    • Code source : https://github.com/grisbi/grisbi
    • Grisbi sur LinuxFr.org.

    Laurux

    logo Laurux

    Laurux intègre les outils classiques de gestion d’entreprise : comptabilité, facturation, gestion de stock et tous les composants nécessaires aux prises de décisions cohérentes. Développé en Gambas avec Qt à destination des PME, son auteur a aussi voulu créer un logiciel simple d’installation et d’utilisation livré avec toute la documentation utile. L’auteur fournit une attestation individuelle de conformité, obligatoire dans la loi française. Son forum communautaire est accueillant.

    Interface Bureau (Qt)
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, point de vente
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports plein de formats
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : Logiciel multiposte performant et fiable. Gestion de la compta, des stocks et achats/devis/factures très simples. Se prend en mains sans trop de complication. Et des développeurs présents, c’est hyper important de souligner le travail de Patrick et Damscot. Pour être plus large, j’ai, par le passé, utilisé Adicom, EBP, l’AS400 (une usine à gaz de fou ce logiciel), et un autre système dans le négoce également. Avec Laurux, je retrouve les avantages de l’AS400 sans avoir les complications d’utilisation.
    • Points faibles :
    • Licence : GNU General Public Licence version 3
    • Site : https://www.laurux.fr/
    • Code source :
    • Laurux sur LinuxFr.org.

    Ledger

    Avatar de Ledger
    Ledger est un outil en ligne de commande, qu’on nourrit avec de simples fichiers textes. La puissance de la ligne de commande en fait tout l’intérêt. Développé en C++ il a été porté sur de nombreux autres langages. Ledger ne fait que la comptabilité en partie double. Plusieurs extensions facilitent son utilisation, sans entraver la rapidité de saisie.

    Interface Console (terminal)
    Aide à la saisie oui
    Saisie au km
    Intègre
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : Adapté pour les compte-rendus, donc en complément d’un autre logiciel. Il est super puissant car facilement scriptable.
    • Points faibles : Par contre, il a très peu de garde-fous. On peut mettre n’importe quelle transaction, il ne dira rien. J’avais dans l’idée de faire des scripts pour automatiser/sécuriser des transactions classiques (dépenses sur une clef, vente d’un lot, etc.) mais j’ai arrêté d’être syndic bénévole avant de le faire (marre de courir après les impayés d’un copropriétaire)
    • Licence : BSD
    • Site : https://www.ledger-cli.org/
    • Code source : https://github.com/ledger/ledger

    Noalyss (autrefois PHPCompta)

    logo Noalyss
    Au départ centré sur la compta, Noalyss est devenu un logiciel de gestion d’entreprise très complet. Noalyss utilise une interface web avec des serveurs web et Postgresql. Des paquets et une procédure d’installation existent pour Linux, Windows et MacOSX. Activement développé en Belgique, sa communauté importante est conviviale.

    Interface web
    Aide à la saisie oui
    Saisie au km ?
    Intègre achats, ventes, factures, stock, documents, etc.
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée ?
    En réseau oui, et aussi sur Internet
    Aide docu, wiki, tutos
    Communauté forum, liste

    Odoo

    logo Odoo

    Odoo est un puissant ERP, modulaire, utilisé par des micro-entreprises comme des multinationales. L’entreprise Odoo connaît une croissance rapide depuis vingt ans, et emploie plus de 2000 personnes dans le monde. Le fondateur d’Odoo poste régulièrement des dépêches annonçant les nouvelles versions d’Odoo sur LinuxFr.org, et un journal sur une migration d’ERP a produit des interventions de haut niveau. Odoo est écrit en Python et utilise Postgresql, son interface est écrite en XML et Javascript. Il est facile à installer.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures, stocks, documents et plein d’autres modules
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : L’interface est uniformisée, ergonomique et soignée. Le développement est intense depuis plus de vingt ans, appuyé sur l’entreprise Odoo et une large communauté d’intervenants et d’utilisateurs. Des milliers de modules sont disponibles. Documentation facile à lire, complétée par un forum et un grand nombre de sites, vidéos et livres. Énormément d’intégrations à des services d’État ou privés. La communauté s’est regroupée dans l’OCA Odoo Community Association qui maintient les anciennes versions et développe des centaines de modules libres de haute qualité. L’OCA propose aussi un outil de montée de versions.
    • Points faibles : L’Apps Store Odoo est de qualité très diverse, certains modules ne sont pas libres, pour installer la comptabilité libre française, il faut s’y retrouver entre plusieurs modules. C’est plus simple pour les pays anglo-saxons.
    • Licence : GNU General Public Licence version 3 et propriétaire
    • Site : https://www.odoo.com
    • Code source : https://github.com/odoo/odoo
    • Odoo sur LinuxFr.org.

    OpenConcerto

    logo OpenConcerto
    OpenConcerto est un progiciel de gestion intégrée (PGI ou ERP). Sa cible : les entreprises, grandes ou petites. C’est une application java à installer sur chaque poste utilisateur. Guillaume Maillard, son auteur, est un vieil habitué de LinuxFr.org.

    Interface Bureau (version Web prévue en 2023)
    Aide à la saisie oui
    Saisie au km oui
    Intègre achats, ventes, factures, stock, paye, documents
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports FEC (DGFIP), EBP, Sage, Relation experts (Coala), Quadratus, Cegid CCMX
    Transmission automatisée SEPA
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : la comptabilité est facile à prendre en main. Il y a une version pour macOS (ce qui est à relever compte tenu de la rareté des logiciels comptables pour ce système d’exploitation). S’agissant d’un progiciel de gestion intégrée : il y a aussi des fonctionnalités de gestion commerciale, de suivi des stocks et de préparation des commandes. Plusieurs modules complémentaires existent comme un module d’OCR qui permet, à partir d’une facture numérisée, de la saisir automatiquement dans le logiciel, ou bien un module de paye (seul module payant) : fiches de paye, journaux de paye et déclarations.
    • Points faibles : c’est très complet et donc un peu complexe pour une micro-entreprise. Certaines fonctionnalités manquent de clarté et d’exemples d’utilisation. La lecture du guide de démarrage ou du manuel (79€) est conseillée. L’équipe de développement manque de temps pour discuter sur les évolutions mais répond généralement aux questions qu’on lui pose sur le forum. Les données ne sont pas stockées de la même manière entre la version monoposte (un fichier H2) et multiposte (Postgresql). Bien choisir au début, sinon il sera difficile de changer.
    • Licence : GNU General Public Licence version 3
    • Site : https://www.openconcerto.org
    • Code source : https://code.openconcerto.org/listing.php?repname=OpenConcerto
    • OpenConcerto sur LinuxFr.org.

    Paheko (ex Garradin)

    Logo de Paheko

    Un logiciel principalement destiné aux associations, qui peut aussi être utilisé par des micro-entreprises. On l’utilise via un navigateur, il y a même une application pour mobile. C’est un logiciel complet de gestion d’association : membres, cotisation, comptabilité, communication.

    Interface web
    Aide à la saisie oui
    Saisie au km
    Intègre achats, ventes, factures,
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports écritures comptables
    Exports
    Transmission automatisée
    En réseau oui, et aussi sur Internet
    Documentation oui, complète
    Forum oui
    • Points forts : il est très facile à prendre en main, il y a une aide en ligne copieuse ainsi qu’une liste d’entraide. Le logiciel propose cinq plans comptables (associatif 1999 et 2018, Plan Comptable Général (PCG), Comités Sociaux et Économiques, copropriétés et plan comptable belge). On peut aussi ajouter son propre plan comptable. Il offre des fonctionnalités de comptabilité analytique. On peut utiliser sa propre instance, récupérer la base de données ou exporter la comptabilité sous divers formats (CSV, FEC, ODS et XLSX). Il est possible d’importer une comptabilité dans ces formats. Et, il est en constante évolution avec un développeur très réactif.
    • Points faibles : pas de lettrage, pas de gestion directe des écritures périodiques.
    • Licence : GNU Alfredo General Public Licence version 3
    • Site : https://paheko.cloud
    • Code source : https://fossil.kd2.org/paheko/doc/trunk/doc/index.md
    • Paheko sur LinuxFr.org, cherchez aussi à Garradin.

    Tryton

    logo Tryton
    Tryton est un puissant ERP pour entreprises de toutes tailles. Il est accessible via un client Web, une application native ou bien une ligne de commande en Python. L’application cliente est dispo pour Windows, Mac et Linux, le serveur est empaqueté pour plusieurs distributions Linux. Comme Odoo dont il est un fork, Tryton est basé sur une architecture trois tiers écrite en Python (et un peu de ECMAScript version 6) avec PostgreSQL comme base de données. Les auteurs nous parlent régulièrement de Tryton sur LinuxFr.org.

    Interface Bureau, Web, Console
    Aide à la saisie oui
    Saisie au km oui
    Intègre achats, ventes, factures, stock, projet, etc.
    Comptabilité en partie double
    Comptabilité analytique oui
    Imports CSV, AEB43, CODA, OFX ou CAMT.053
    Exports FEC ou CSV
    Transmission automatisée Chorus, SEPA
    En réseau oui, et aussi sur Internet
    Documentation oui
    Forum oui
    • Points forts : L’interface est uniformisée, une fois comprise on s’y retrouve quel que soit le module. Un grand choix de modules permet de couvrir tout type d’activité. On peut tout paramétrer, ajouter des champs, en masquer, adapter des modules… Le développement est très actif, la fondation Tryton rassemble beaucoup d’entreprises et de projets, dont GNU Health. Les montées de version sont prises en charge automatiquement.
    • Points faibles : L’interface est austère, il y a un très grand nombre d’options. C’est difficile à prendre en main sans être accompagné (mais c’est normal).
    • Licence : GNU General Public Licence version 3
    • Site : https://www.tryton.org/
    • Code source : https://www.tryton.org/download#source
    • Tryton sur LinuxFr.org.

    D’autres listes, d’autres articles

    Bien entendu, il manque plein de logiciels. On s’est limité à ceux qu’on a pu tester. Si ce petit résumé ne vous suffit pas ou n’est plus à jour, voici des sites avec des listes complémentaires (merci d’indiquer en commentaire si vous en connaissez d’autres).

    Alors, un logiciel de comptabilité pour quoi faire ?

    Avant tout pour faciliter la saisie comptable, fastidieuse quand elle est faite sur du papier (ou des tablettes de cire à l’origine !). Toutes les formes de comptabilité demandent une rigueur, des connaissances, du calcul et du temps — c’est un métier. Le logiciel comptable facilite tout ça.
    Mais aussi pour l’automatisation du suivi comptable, c’est-à-dire la production automatique de synthèses lisibles et compréhensibles. Vous pensez peut-être au bilan, mais on a couramment besoin de consulter toutes les dépenses électriques ou toutes les recettes de pub sur LinuxFr.org. On a aussi besoin d’envoyer périodiquement ces synthèses à l’administration, comme la transmission des recettes de TVA.
    Enfin, la comptabilité enregistre toutes sortes d’opérations, produites par d’autres logiciels spécialisés (salaires, fabrication, factures, etc.). Intégrer tout cela dans un même outil permet de gagner du temps et d’éviter les fautes de frappe (une facture génère automatiquement les écritures comptables correspondantes). Ça donne des logiciels plus ou moins touffus, certains intégrant toute la gestion d’entreprise, voire tous les outils de travail de l’entreprise — on les nomme ERP (ou PGI en français).

    Note sur les ERP ou PGI

    Quand SAP et les AS400 régnaient en maître sur ce domaine, les ERP étaient exclusivement de très gros logiciels intégrant non seulement la gestion et la comptabilité, mais aussi la production, la vente, le décisionnel, etc. La forte adaptation aux processus de l’entreprise via un paramétrage puissant, était leur gros atout et justifiait un coût d’installation très élevé. On en est même venu à appeler «SAP» ce type de logiciels.
    La langue évoluant sans cesse, de nos jours on appelle ERP tout logiciel intégrant la gestion, le point de vente, la compta et deux trois outils de moindre importance, tandis qu’on les nommait autrefois «logiciels de gestion». Mais la puissance n’est pas la même (le besoin de formation non plus !). On a donc essayé de distinguer dans la liste un puissant ERP paramétrable et adaptable aux processus de l’entreprise, d’un logiciel intégrant les outils de gestion.

    Quel logiciel de comptabilité adopter ?

    Comme on va le voir, il y a beaucoup de critères, des vérifications, des questions à se poser. Les articles déjà mentionnés de LWN.net montrent assez bien les implications de vos choix. Si vous avez de quoi faire adapter l’outil à vos besoins, choisissez un ERP, puissant ou non.

    Quel logiciel sélectionner pour sa comptabilité ? Ça dépend.

    Ça dépend de votre statut fiscal, lequel est déterminé par votre chiffre d’affaires sauf dans certains cas précisés par la loi, et ça dépend si vous voyez la comptabilité comme un outil de gestion ou une obligation fiscale. Vous pouvez donc tenir une comptabilité pour des raisons fiscales, pour des raisons légales ou pour des raisons pratiques (ou les trois). Mais pour les mêmes raisons, vous pouvez tenir différentes formes de comptabilité :

    1. une comptabilité dite recettes-dépenses, semblable à votre budget familial, très courante dans les associations regroupant des bénévoles et ne vendant rien (un cahier suffit) ;
    2. une comptabilité simplifiée, dite de trésorerie, à peu près semblable à la première : vous classez les opérations bancaires, et vous rentrez les factures de vos fournisseurs, elle est classiquement permise par l’administration pour de faibles chiffres d’affaires ;
    3. une comptabilité en partie double, fiable et difficile, inventée par les marchands il y a quelques millénaires pour mieux gérer leurs entreprises ;
    4. une comptabilité analytique, qui complique les deux précédentes, mais permet de suivre très précisément les dépenses et recettes affectées à une opération, et perfectionne donc la gestion.

    Sauf la première, ces comptabilités s’appuient sur une classification conventionnelle des opérations qu’on appelle le [plan comptable]]. Celui-ci varie selon les pays et votre statut juridique. L’utilisation du Plan comptable permet de produire les synthèses mentionnées plus haut — du calcul de la TVA au Bilan d’exercice.
    Il y a des plans comptables tout prêts, adaptés à des activités particulières (comme les associations), mais tous dérivent d’un Plan comptable plus général. Votre logiciel doit permettre d’importer ou de créer le Plan comptable souhaité.

    En passant, sachez qu’il y a des types de comptabilité, et que leur choix ne permet pas de suivre les mêmes choses. Par exemple, le monde anglo-saxon suit plutôt les finances tandis que le Vieux Continent suit plutôt les biens. Mais là, on rentre dans des débats de professionnels qu’il n’est pas nécessaire d’aborder, d’autant que les frontières (comptables) bougent en ce moment. Vérifiez ce qui est permis auprès de l’administration. Reposons notre question préalable en y répondant du point de vue pratique :

    Quel logiciel sélectionner pour sa comptabilité ? Ça dépend. Bis.

    Rappelons que beaucoup de logiciels ne se limitent pas à la comptabilité pure, mais intègrent d’autres outils utiles à la gestion (graphiques des recettes, gestion de cotisations, édition de factures, transmission automatisée aux administrations, etc.). Et attention, les écrans de saisie proposés dans les logiciels sont des aides dont un utilisateur expérimenté se passe très bien.

    La comptabilité est une obligation, c’est peut-être obscur, fastidieux, vous la faites à reculons, mais la vie est ce qu’elle est, nous sommes dans le système, il faut donc y passer, chaque jour, semaine, année… Alors le meilleur choix, passe aussi par la facilité d’installation, les couleurs, la facilité de prise en main, etc.

    Tout dépend donc surtout de vous :

    • si vous avez besoin d’aides à la saisie ou non,
    • si vous préférez des outils intégrés,
    • si un outil intégré dédié à votre activité est un plus pour vous,
    • si votre statut fiscal impose une compta en partie double,
    • si vous la faites régulièrement pour la gestion de votre structure,
    • si vous avez besoin d’exporter les données pour votre expert-comptable (vérifiez les formats possibles avec lui),
    • si vous voulez un outil en réseau, voire en ligne sur internet,
    • si vous avez déjà utilisé un logiciel et que vous vous y retrouvez.

    NB Si qui peut le plus, peut le moins, sachez toutefois rester modestes si vous manquez de temps et de compétences, parce que les outils intégrés demandent une certaine maîtrise. Eh oui ! plus vous intégrez de trucs, plus il faut remplir et paramétrer les trucs avant d’utiliser la partie comptable. Par exemple, sur le cas simple d’une vente, avec un outil intégré il faudra avoir créé les produits, leurs taxes, le client, son bon de commande et les moyens de paiements avant d’attaquer la partie comptable.

    Attention aux obligations fiscales françaises (utilisées lors d’un contrôle fiscal)

    En application du 3° bis du I de l'article 286 du Code général des impôts (CGI), toute personne assujettie à la taxe sur la valeur ajoutée (TVA) qui effectue des livraisons de biens et des prestations de services à destination de clients particuliers et qui enregistre les règlements reçus en contrepartie au moyen d’un logiciel ou d’un système de caisse, est tenue d’utiliser un logiciel ou un système qui satisfasse aux conditions d’inaltérabilité, de sécurisation, de conservation et d’archivage des données en vue du contrôle de l’administration fiscale.

    Tous les détails dans l’article du Bulletin Officiel des Finances Publiques - Impôts (BOFIP) TVA - Régimes d’imposition et obligations déclaratives et comptables - Obligations d’ordre comptable - Obligation d’utilisation de logiciels ou systèmes de caisse sécurisés

    Format Fichier des Écritures Comptables (FEC)

    Fichier texte tabulaire de 18 champs délimités par barres verticales ou par tabulations, ayant un nommage et un encodage précis ou éventuellement au format XML. Ce format est utilisé par la DGFiP pour pouvoir faire un contrôle automatisable de la comptabilité. Elle fournit un utilitaire de validation de format pour Windows.

    Les points de vente

    En France, la loi « anti-fraude » de 2016 et l’article 286 du Code des impôts imposent une certification des logiciels de caisse (c’est-à-dire des points de vente qui collectent des espèces) pour éviter les trucages de la comptabilité via modifications du code-source. Ah ben alors fini le libre ? Mais non mon bon, les logiciels libres sont autorisés, on en a beaucoup parlé sur LinuxFr.org. Toutes les structures n’y sont pas tenues, typiquement il faut être assujetti à la TVA.
    NB Depuis la loi de finance 2018, article 105, les logiciels de comptabilité n’ont pas à être certifiés.

    Si vous avez encore des doutes, consultez la FAQ en français facile écrite par l’équipe de Dolibarr.

    La gestion de la paie

    On n’en a pas beaucoup parlé alors que cette dépêche a commencé avec la recherche d’un logiciel de paie libre. Disons tout de suite qu’il est préférable de s’appuyer sur des professionnels, en effet la gestion de la paye repose sur trois piliers :

    1. la fiche de paie et les déclarations afférentes
    2. l’émission et la conservation sécurisée de la fiche de paie
    3. la saisie comptable

    Certains logiciels ont des modules de gestion des payes (OpenConcerto pour la paie française, Odoo pour plusieurs pays…). L’avantage est de faciliter les écritures comptables. Mais attention, la gestion de la paye impose un suivi juridique et un suivi des taux des cotisations, car le cadre légal varie selon les professions, les salaires et varie aussi dans le temps. Cette actualisation permanente est faite par les professionnels (comptables et experts comptables). Sauf à bien connaître votre profession ou à être dans un cadre relativement simple (par exemple celui des intermittents du spectacle en France), vous gagnerez du temps, de l’argent et de la « légalité » en passant par des professionnels. Les options les plus courantes sont de choisir un cabinet d’expertise comptable ou un service en ligne (nettement moins cher). Lisez ou relisez les commentaires du forum.

    S’agissant de la saisie et du traitement comptable de la paie, n’importe quel logiciel de comptabilité peut le faire, les logiciels de paye étant souvent susceptibles de mâcher le travail à ce niveau-là.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    •  

    Raspberry Pi 5, évolution ou révolution ?

    Les méandres de l'espace de rédaction sont parfois mystérieux. La rédaction de certaines dépêches s'étalent parfois sur de long mois, parfois sans même comprendre pourquoi la dépêche ne part pas vers le stade de la publication. C'est ce qui est arrivé à cette dépêche qui ne suit donc pas autant qu'elle aurait pu l'actualité de la sortie de la nouvelle mouture de la microcarte de la Fondation Raspberry Pi, qui porte le nom très original de Raspberry Pi 5. Cette dépêche - qui nous offre une comparaison de cette nouvelle édition avec son illustre ancêtre ainsi qu'une investigation de ses nouveautés - reste substantielle et il nous a semblé qu'il valait mieux la publier même tardivement plutôt que de la plonger dans l'oubli éternel.

      Sommaire

      Cette dépêche ne traitera pas de l’ensemble de ce que l’on peut faire, la précédente dépêche sur les SoC faite pour la sortie de la Raspberry Pi 4 est toujours d’actualité en ce qui concerne ces sujets.

      Comparaison entre Raspberry Pi 4 et Raspberry Pi 5

      Sorti en 2019, le RPi4 avait fait forte impression—mais quasiment en constante pénurie entre 2020 et 2023, il commençait par accuser le coup par rapport à la concurrence du Rockchip RK3588 (Quad-core Cortex-A76 + Quad-core Cortex-A55).

      Aussi, la Raspberry Pi 5 introduit des avancées significatives par rapport à la Raspberry Pi 4, dont le Tableau 1 présente une synthèse des différences.

      Composants Raspberry Pi 4 Raspberry Pi 5
      SoC Broadcom BCM2711 Broadcom BCM2712
      CPU Quad-core Cortex-A72 (1.8 GHz) Quad-core Cortex-A76 (2.4 GHz)
      GPU VideoCore VI (500 MHz) VideoCore VII (800 MHz)
      Mémoire 1, 2, 4, 8 GB LPDDR4-3200 SDRAM 4, 8 GB LPDDR4X-4267 SDRAM
      Wi-Fi Dual-band 802.11ac Dual-band 802.11ac
      Bluetooth 5.0, BLE 5.0, BLE
      USB 2 USB 3.0, 2 USB 2.0, 1 Type-C port 2 USB 3.0, 2 USB 2.0, 1 Type-C port
      Stockage MicroSD MicroSD (SDR104⟹R/W↗ˣ²) + ligne PCIe pour NVME M.2 SSD
      Ethernet Gigabit Ethernet Gigabit Ethernet
      Puissance Jusqu’à 7.5 W 2 modes : jusqu’à 15 W et jusqu’à 25 W
      Gestion HDMI 2 HDMI 2.0 (1 gérant 4k@60 Hz) 2 HDMI 2.0 (tous les deux gérant 4k@60 Hz)
      Format vidéo H.264 (AVC) H.265 (HEVC)
      PCIe Non 1 lane PCIe pour périphériques haute performance
      Bouton d’alimentation Non Oui

      Tableau 1 : comparatif des Raspberry Pi 4 et 5

      Détail des améliorations de la Raspberry Pi 5

      La Raspberry Pi 5 introduit des avancées significatives par rapport à la Raspberry Pi 4, en particulier avec l’introduction du southbridge RP1. Voici une comparaison détaillée mettant en évidence les principales différences et l’impact du RP1 :

      • Processeur : La Raspberry Pi 5 est équipée d’un CPU ARM Cortex-A76, une amélioration substantielle par rapport au Cortex-A72 trouvé dans la Raspberry Pi 4. Cette mise à niveau fait que la Pi 5 est deux à trois fois plus rapide que son prédécesseur.
      • RAM : La Raspberry Pi 5 utilise de la LPDDR4X-4267 SDRAM, nettement plus rapide que la LPDDR4-3200 SDRAM utilisée dans la Pi 4. Cette amélioration offre plus de bande passante, contribuant à des performances globalement plus rapides.
      • Puissance graphique : La Raspberry Pi 5 dispose d’un GPU VideoCore VII plus puissant, cadencé à 800 MHz et prenant en charge OpenGL ES 3.1 et Vulkan 1.2. C’est une avancée par rapport au GPU VideoCore VI de la Raspberry Pi 4, qui prend en charge OpenGL ES 3.1 et Vulkan 1.0. Le GPU de la Pi 5 comprend également un nouveau processeur de signal d’image pour la gestion des données des caméras.
      • Chip RP1 Southbridge : La puce RP1 est une innovation majeure dans la Raspberry Pi 5. Elle agit comme un southbridge, gérant la plupart des fonctions I/O (entrée/sortie), réduisant ainsi la charge sur le CPU. Cela permet une augmentation de la bande passante I/O, bénéficiant aux dispositifs de stockage, USB et autres périphériques.
      • Vitesse des cartes MicroSD : Le port microSD de la Pi 5 prend en charge le mode haute vitesse HDR 104 avec les cartes microSD UHS-1, offrant des vitesses de lecture de 80-90 Mbps, soit le double de la vitesse de 40-50 Mbps de la Pi 4.
      • Ports USB : Dans la Raspberry Pi 5, chacun des deux ports USB 3.0 dispose d’une bande passante dédiée de 5 Gbps, grâce à la puce RP1. C’est une amélioration par rapport à la Pi 4, où les deux ports USB 3.0 partageaient la bande passante de 5 Gbps.
      • Connecteur PCIe : La Pi 5 inclut un connecteur PCIe (PCI Express), une nouvelle addition répondant à la demande pour des interfaces plus rapides. Cependant, l’interface PCIe de la Pi 5 n’est pas un connecteur M.2 standard ; elle nécessite un câble ruban pour se connecter à un HAT, et le dispositif M.2 se connectera au HAT. Caractéristiques
      • Un bouton marche/arrêt : Eh oui, on est quand même dans le 3ᵉ millénaire ;-)
      • Alimentation : Tout comme la Raspberry Pi 4, la Raspberry Pi 5 utilise un connecteur d’alimentation au format USB Type-C. En revanche, doublement de la puissance oblige, la puissance nécessaire à son fonctionnement passe de 7.5 W à 15 W, il faudra donc une alimentation en 3A minimum pour être tranquille. À noter que si vous souhaitez utiliser des périphériques externes qui consomment beaucoup comme des disques durs ou SSD, il est conseillé d’avoir une alimentation de 25 W (5A). La Raspberry Pi détecte si l’alimentation fournit plus de puissance et passe la limite de consommation USB à 1,6A au lieu de 1,2A.

      Raspberry Pi 5 : Nouveau South Bridge RP1 vs Raspberry Pi 4

      Le RP1 est un contrôleur d’entrée/sortie (I/O) conçu pour le Raspberry Pi 5, représentant le programme d’ingénierie le plus complexe et coûteux entrepris par Raspberry Pi, avec un développement s’étendant sur plus de sept ans et ayant coûté environ 25 millions de dollars. Ce contrôleur est le premier produit phare de Raspberry Pi à utiliser une puce conçue en interne​.

      Architecture du South Bridge RP1

      — Description : Le RP1 est un southbridge de 12×12 mm avec un pas de 0.65 mm en BGA (Ball Grid Array), fournissant la majorité des capacités d’E/S pour la Raspberry Pi 5.
      — Caractéristiques : Il comprend un point de terminaison PCIe 2.0 à 4 voies, un contrôleur Ethernet MAC Gigabit et deux contrôleurs hôtes USB 3.
      — Améliorations : Plus du double de la bande passante USB utilisable par rapport à la Raspberry Pi 4.
      — Documentation RP1 : RP1 Datasheet

      Sources des informations sur le RP1

      — L’article d’Eben Upton pour annoncer le RP1 : RP1 : the silicon controlling Raspberry Pi 5 (ce court article est accompagné d’une vidéo YT de 35 minutes à ce sujet, mais dont le contenu est reproduit textuellement en suivant un lien)
      — Lien direct vers la vidéo YT : RP1 : the silicon controlling Raspberry Pi 5

      Impacts du RP1

      Le RP1 constitue une avancée importante, puisque les GPIOs “physiques” de la carte ne sont plus directement reliées aux GPIOs du microprocesseur et de leurs fonctions possibles (SPI/I2C/UART/I2S) attribuées par le fondeur dans le silicium.

      1. Connectivité principale : Le RP1 se connecte à un processeur d’application (AP) via un bus PCIe 2.0 x4, consolidant de nombreux contrôleurs numériques et PHYs analogiques pour les interfaces externes du Raspberry Pi 5​​.
      2. Contrôle du trafic : Le tissu interne du RP1 permet de prioriser le trafic en temps réel de la caméra et de l’affichage sur le trafic non en temps réel de l’USB et de l’Ethernet. Des signaux de qualité de service (QoS) sur le lien PCI Express soutiennent la priorisation dynamique entre le trafic provenant du RP1 et le trafic des maîtres de bus en temps réel et non en temps réel au sein de l’AP​​.
      3. Fonctionnalités supplémentaires : Pour une flexibilité maximale des cas d’utilisation, le RP1 dispose de plusieurs fonctionnalités telles qu’un contrôleur DMA à huit canaux pour les périphériques à basse vitesse, trois PLL intégrées pour la génération d’horloges vidéo et audio indépendantes, un convertisseur analogique-numérique à cinq entrées, 64kB de SRAM partagée, et des générateurs de base temporelle pour le rythme de la DMA ou pour le debouncing des événements GPIO​​​​.
      4. Gestion des contrôleurs de bus : Les modules de régulation intégrés à chaque port de contrôleur de bus permettent de surveiller ou de limiter leur comportement. Ces modules régulent le flux de données selon le nombre de transactions en attente, assurent le respect des limites d’adresses AXI et PCIe, et disposent de compteurs statistiques pour évaluer la qualité de service ou les performances.
      5. Interfaces clés externes : Le RP1 fournit des interfaces externes clés telles que deux contrôleurs XHCI indépendants connectés à un seul PHY USB 3.0 et un seul PHY USB 2.0, deux contrôleurs de caméra MIPI CSI-2 et deux contrôleurs d’affichage MIPI DSI connectés à deux PHY transceivers MIPI DPHY à 4 voies partagées, et un contrôleur d’accès média (MAC) intégré pour l’Ethernet Gigabit​​​​.
      6. Compatibilité et évolution : Le RP1 maintient la compatibilité avec la gamme de fonctions offerte sur le Raspberry Pi 4 Model B, tout en permettant une évolution vers des processus de géométrie réduite, sans avoir à reproduire tous les éléments analogiques du système. Cela pourrait permettre à changer plus facilement de fournisseur de SoC.

      Évolution des performances

      Afin de permettre de mieux visualiser les évolutions des performances Alasdair Allan a fait un benchmark complet dont certains éléments sont repris ici.

      Tout d’abord une analyse des performances du CPU avec geekbench. Les Figures 1 et 2 montrent une augmentation des performances en single core d’approximativement 2.2x,
      performances single core

      Figure 1. : Comparaison des performances single core entre RPi4 et 5
      performances multi core

      Figure 2. : Comparaison des performances multi core entre RPi4 et 5

      Compilation de différents benchmarks entre RPi 4 et 5

      Benchmark Unités Raspberry Pi 4 Raspberry Pi 5 Augmentation de Performance
      Sysbench Mono-Thread MBps 699 1041 x1,49
      Sysbench Multi-Thread MBps 2794 4165 x1,49
      Stress-ng Mono-Thread op/s 104,78 182,68 x1,74
      Stress-ng Multi-Thread op/s 413,12 737,21 x1,78
      Bzip Mono-Thread secondes 44,98 20,53 x2,19
      Bzip Multi-Thread secondes 28,59 14,36 x1,99
      Gimp Redimensionner secondes 67,01 29,95 x2,24
      Gimp Rotation secondes 77,24 32,77 x2,36
      Gimp Niveaux Auto secondes 80,52 34,64 x2,32
      Gimp Masque Flou secondes 115,16 49,71 x2,32
      Speedometer 2.1 score 20,5 62,5 x3,05
      Glmark2 score 97 202 x2,08
      Openarena Timedemo FPS 8,77 27,05 x3,08
      RAMspeed Écriture MBps 4391 29355 x6,69
      RAMspeed Lecture MBps 5902 27931 x4,73
      HDparm Lecture MBps 43,81 90,05 x2,06
      dd Écriture MBps 34,49 61,23 x1,78
      Iozone 4 K Écriture RAND MBps 9,38 15,22 x1,62
      Iozone 4 K Lecture RAND MBps 4,71 4,6 x0,98
      Temps de démarrage secondes 33,4 19,1 x1,74

      performances des I/O

      La Figure 3. issue du travail d’Adafruit permet de mettre à jour le graphique sur la vitesse performance de la commutation des I/O proposé dans la dépêche sur la RPi4. La Figure 4. quant à elle montre une légère amélioration de la performance par Watt sur le nouveau modèle.

      Titre de l’image
      Figure 3. Évolution de la vitesse de commutation d’une sortie numérique

      Titre de l’image
      Figure 4. Évolution de la performance en fonction de la puissance électrique

      Interfaces USB et Ethernet

      — Interfaces: Le RP1 fournit deux interfaces USB 3.0 et deux interfaces USB 2.0, ainsi qu’un contrôleur Ethernet Gigabit.
      — Source: Circuit Digest – The New Raspberry Pi 5 is here

      Le Gigabit Ethernet fourni par le RP1 est en tout point semblable à celui du RBPi4 (voir : RP1 : the silicon controlling Raspberry Pi 5:

      Liam 13:21: So we’ve got the Ethernet MAC but not the PHY. So the Ethernet’s brought out to an RGMII interface, which then connects to an on-board Ethernet PHY.

      Eben 13:35: And this is a fairly similar architecture to Raspberry Pi 4, except that in that case, the MAC was in the Broadcom device, but there was still an external – in fact exactly the same external – PHY, [BCM]54213. Cool. So that’s the overall structure of the design.

      Interfaces MIPI CSI/DSI

      Ces interfaces d’entrée/sortie vidéo peuvent être qualifiées d’historiques dans l’écosystème RaspberryPi puisqu’elles sont présentes depuis la version 1. Le RBPi5 apporte toutefois une nouveauté assez remarquable par rapport à ses prédécesseurs : au lieu d’avoir un port CSI (pour une caméra) et un port DSI (pour un écran), les ports du RBPi5 peuvent être configurés pour l’une ou l’autre fonction. Malheureusement, cela s’est traduit par des changements notables au niveau de la disposition des composants sur la carte, qui ne sont pas sans susciter quelques grincements de dents parmi les utilisateurs.

      Les points discutables/discutés

      Le réarrangement de la carte

      — Le port audio a disparu, pour laisser sa place au port MIPI DSI (qui peut faire CSI à présent), lui-même remplacé, au-dessus du lecteur de carte microSD, par un connecteur FPC exposant les lignes PCIe.
      — le port DSI est passé de 15 pins à 22 pins (comme sur la carte CMIo4)
      — Et, encore une fois, les ports Ethernet et USB ont été inversés.

      Si cela ne pose pas de problèmes particuliers pour un utilisateur lambda, de nombreux projets basés sur les cartes RasperryPi à la recherche de performance de calcul (et donc potentiellement intéressés par ce nouveau RBPi5) doivent entièrement revoir la conception de leur matériel.

      Le non réarrangement de la carte

      C’est un reproche que l’on peut trouver dans de nombreux témoignages : mettre un HAT (carte d’extension) sur un RBPi, juste au dessus du CPU, c’est un non-sens en termes de refroidissement (et ce, quelle que soit la version du RBPi).
      Mais, pour relativiser, on peut dire la même chose de quasiment toutes les autres solutions alternatives au RBPi.

      Les limites du format carte de crédit

      Ce format (86x56 mm) est devenu une référence pour presque tous les acteurs du monde des SBC. Et donc, il s’agit là aussi d’un constat plus général, non spécifiquement adressé à RaspberryPi. Mais sachant que ce sont les locomotives du marché, peut être pourraient-ils initier une nouvelle approche…
      Certes, ce format permet d’élaborer des solutions compactes, mais l’on peut constater :

      — qu’augmenter la puissance et les fonctionnalités des puces embarquées tout en restant sur ce format conduit à un gaspillage inutile de ressources : il est en effet impossible d’implémenter toutes les fonctionnalités matérielles proposées par les puces sur une si petite surface, et par ailleurs il devient difficile de refroidir efficacement le système.
      — pour exposer le port PCIe, RaspberryPi a supprimé le port audio, déplacé le port DSI ; mais pour alimenter le bouzin, il vous faut du 5V 4A. Ensuite un peu tout le monde se trouve planté là : débrouillez-vous.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      •  

      GNOME OS comme Linux idéal, partie 1 : la promesse de l'atomique

      Et si le système d’exploitation (OS) libre et souverain dont le monde a besoin était basé sur GNOME ? C’est ce que propose Thibault Martin dans un billet posté le 28 février 2025 sur son blog. L’idée est ambitieuse, et bien entendu elle peut froisser les gens qui préfèrent d’autres environnements de bureau, mais elle présente l’intérêt de s’appuyer sur deux tendances notables dans l’actualité récente de Linux : l’avènement des systèmes atomiques et la demande d’un OS dit “souverain”. Nous vous proposons, à travers le billet de Martin, d’en apprendre plus sur ces deux tendances. Ce premier journal se concentre sur la première : les systèmes atomiques, et le changement de paradigme qu’ils préfigurent pour le bureau Linux.

      Sommaire

      De quoi ça parle ?

      Dans ce billet titré « Prosthetics that don't betray » (« des prothèses qui ne trahissent pas »), Thibault Martin, ancien membre de la fondation GNOME, appelle à changer la gouvernance du projet pour se donner les moyens d’en faire un OS “indépendant” et prêt à l’emploi, financé par l’Union européenne. Il est question ici de vendre des ordinateurs et des téléphones avec un système Linux pré-installé dessus, assemblé par et basé sur GNOME, indépendant de toute distribution existante, et le tout idéalement financé par l’Union européenne (« ça se verrait à peine dans son budget », argue Martin).

      Pourquoi GNOME ? Parce que c’est l'environnement de bureau préféré de Martin, évidemment. Il vante notamment sa bonne intégration au mobile : on l’ignore peut-être (car il reste nettement plus difficile d’installer un Linux sur un téléphone que sur un PC), mais les développeurs GNOME travaillent depuis quelques années à rendre leurs applis adaptables aux petits écrans. Il ne s’agit pas de versions différentes, mais bel et bien de vos applis de bureau, qui se redimensionnent automatiquement pour être utilisables à l’écran tactile. Nick du Linux Experiment en a récemment dit du bien dans une de ses vidéos. Bien entendu, il existe d’autres interfaces mobiles dans le monde Linux, au hasard celle de KDE, Plasma Mobile. Mais ce n’est pas sur cet argument que cette dépêche aimerait s’attarder ; plutôt que de parler des avantages et inconvénients de GNOME sur les autres environnements graphiques libres, nous allons nous pencher sur deux autres idées avancées par Thibault Martin dans son billet, à savoir :

      • pour être « utilisable par les masses », cet OS de rêve doit adopter une technologie dite “atomique”
      • sa vocation principale sera d’échapper à « l’hégémonie américaine » et « sécuriser la souveraineté numérique de l’UE »

      Les OS atomiques, ou la promesse du Linux qui juste-marche

      C’était le 25 février dernier, et il l’a dit au premier degré : "We believe that 2025 is truly the year of the Linux gaming desktop ». Pourtant, Nirav Patel précise bien cinq secondes avant que ses ordinateurs (il est le fondateur et le PDG de Framework) supportent aussi Windows. Mais il a l’air de sincèrement croire que cette année, quelque chose de différent est en train de se passer avec le bureau Linux ; et sur la diapo où est écrite cette phrase, on peut voir les logos de Playtron OS et Bazzite, deux projets de Linux orientés “gaming”, mais qui présentent aussi la particularité d’être basés sur Fedora Silverblue, sans doute le plus populaire des Linux atomiques.

      À moins que ce ne soit l’inverse ? Le 13 février dernier, Jorge Castro, fondateur du projet Universal Blue (dont est issu Bazzite), montrait fièrement les statistiques des appareils actifs sous Fedora atomiques (si vous ne le saviez pas, toutes les installations de Fedora envoient par défaut un signal anonyme aux serveurs afin d’être recensées). On y voit les machines sous Bazzite doubler de nombre entre octobre dernier et février, dépassant de loin les propres variantes atomiques officielles de Fedora (mais encore très loin derrière “la” Fedora Workstation ordinaire, selon Castro).

      Évolution du nombre d’appareils actifs sous Fedora atomiques entre juillet 2024 et février 2025

      Bazzite a tellement la cote qu’elle a été saluée comme « mettant la honte à Windows » dans un article sur The Verge, ce qui est surprenant de la part d’un média tech “généraliste” qui jusqu’à présent n’avait d’yeux que pour les GAFAM et ne s’intéressait guère au monde du libre. Il y a, bien sûr, une explication simple à ce succès : Bazzite vise une niche particulière, celle des utilisateurs et utilisatrices de Steam Deck et autres consoles portables à base de technologie PC, et on peut arguer que cette niche est non seulement en pleine croissance, mais aussi peut-être un peu délaissée par un Microsoft qui n’a pas encore bien optimisé son Windows à un tel cas d’usage. Ce serait comme attribuer la hausse des téléchargements de Linux il y a 15 ans à la mode des netbooks. Mais nous aimerions arguer ici que le succès de Bazzite est aussi dû à son choix technologique de bureau atomique.

      Pour rappel, “atomique” est l’expression qui tend à remplacer celles d'“immuable” (traduction anglaise d'"immutable") ou "image-based", et qui désigne une façon bien particulière de construire et distribuer un système d’exploitation. Solène Rapenne propose une définition dans un billet de 2023, où elle résume les principes essentiels des systèmes immuables :

      • les mises à jour système ne sont pas effectuées sur le système en cours d’utilisation (celui-ci n’est jamais censé changer, d’où le qualificatif d'“immuable”)
      • les modifications de paquets sont appliqués au prochain démarrage (mais pas celles des Flatpak par exemple)
      • vous pouvez revenir en arrière (roll back) et restaurer le système dans l’état exact où il se trouvait avant une mise à jour

      Les systèmes atomiques peuvent avoir chacun leurs particularités : ainsi, NixOS (lisez à son sujet notre récente dépêche), Endless OS, les images Universal Blue, Vanilla OS, MicroOS ou encore AerynOS, mais aussi ChromeOS et Android ne fonctionnent pas tout à fait de la même façon, bien qu’ils partagent ces trois principes en commun. Mais le gros joueur dans ce domaine, c’est Fedora : Renault nous expliquait il y a bientôt cinq ans comment les expérimentations du projet ont donné naissance à Silverblue et comment ce dernier s’utilisait. Depuis, Silverblue a été décliné en versions Plasma, Sway, Budgie et bientôt COSMIC et Plasma Mobile ; certaines de ses briques sont amenées à évoluer, comme l’expliquait Timothée Ravier à la sortie de Silverblue 41 en automne dernier (voir la section Notes), mais les principes fondamentaux restent les mêmes, et vous pouvez les retrouver décrits dans la documentation commune (en version bêta) des Fedora atomiques. Ravier les rappelle dans un récent entretien qu’il nous a accordé (à paraître après le 21 avril) et nous partage son espoir de voir un jour l’atomique devenir le modèle par défaut pour Fedora :

      Je l’espère ! Il est impossible de donner une échéance et cela ne dépend pas vraiment de moi. La difficulté la plus importante est la prise en charge du matériel et les pilotes qui ne sont pas intégrés dans Fedora. C’est un problème que l’on ne peut pas résoudre dans Fedora à cause des contraintes légales et qui sont traitées par le projet Universal Blue, dont la variante Bazzite est très populaire.

      Capture d’écran du site officiel de Bazzite
      Capture d’écran du site officiel de Bazzite

      Les possibilités ouvertes par cette approche sont telles qu’elles inspirent beaucoup de Linuxiens à assembler leur propre bureau Linux atomique, y compris hors des mainteneurs de distributions : c’est le cas de Jorge Castro et de Thibault Martin. Mais Martin n’est pas le premier à avoir eu l’idée parmi la communauté GNOME : il cite un billet d’Adrien Vovk paru en octobre dernier, titré « Un bureau pour tous », et qui appelle déjà à s’appuyer sur GNOME, et plus précisément le projet GNOME OS (lequel est déjà atomique), pour « construire un OS qui rend le bureau Linux utilisable pour les non-passionnés » :

      Je pense à mes amis et à ma famille : ils ne méritent pas plus que nous d’être maltraités par les entreprises de la tech. Beaucoup d’entre eux adorent l’idée de Linux et sont d’accord avec nos valeurs, mais ont décidé de ne pas rester dessus après l’avoir essayé pour de vrai. Ils sont intéressés, mais juste pas assez intéressés pour surmonter nos barrières à l’entrée. Ils se moquent des paquets, des codecs, des pilotes, des brevets, des licences, ou de toutes ces choses qui sont devenues ce qu’on doit gérer en tant que passionnés de Linux. Je crois que beaucoup se mettront à se préoccuper de ces choses-là une fois qu’ils auront rejoint nos communautés, comme nous l’avons tous fait nous-même, mais à l’heure actuelle, ils ne nous rejoignent pas…

      L’idée ne séduit pas que chez GNOME : Vovk dit lui-même avoir été inspiré par KDE, après que ceux-ci aient annoncé un projet similaire lors de la conférence Akademy en septembre 2024, sobrement baptisé « KDE Linux ». Et pour pallier les défauts que les devs reprochent à KDE neon, laquelle vieillit trop vite du fait d’être basée sur Ubuntu LTS, KDE Linux sera donc, lui aussi, un OS atomique et immuable : « les applis viendront de Flatpak (et peut-être aussi de Snap si ce n’est pas trop difficile et que l’UX est convenable) ». Et lui aussi aura vocation à s’adresser au plus large public possible, « des développeurs KDE aux utilisateurs et aux vendeurs de matériel ».

      Or, pour atteindre un tel objectif d’universalité, Vovk considère que GNOME OS se doit d’être complètement immuable, sans permettre à l’utilisateur d’installer des paquets traditionnels, contrairement au « modèle immuable-hybride en vogue » qui est celui de Silverblue et ses dérivés (où il est possible de faire du layering pour installer des paquets de la distribution, faisant ainsi entorse à l’immuabilité) :

      À mon avis, permettre l’overlay de paquets dissuade le développement de vraies solutions permanentes aux fonctionnalités manquantes dans l’OS, puisque les utilisateurs peuvent juste se reposer sur les surcouches. Au bout du compte, la nécessité d’installer des paquets pour contourner ces problèmes va juste garantir que personne n’utilisera les distributions immuables-hybrides de manière immuable, ce qui annule les bienfaits de l’immuabilité tout en soumettant l’utilisateur aux points de friction [sharp edges] supplémentaires qu’apporte l’immuabilité.

      Comme le rappelle Vovk, cette idée a déjà été formulée par le fameux Lennart Poettering en mai 2022, dans un long billet où il détaille sa vision personnelle (« et non celle de mon employeur », qui à l’époque était soit Red Hat, soit Microsoft) de la direction dans laquelle le bureau Linux doit aller :

      Avant toute chose, je pense qu’il faut se concentrer sur un design basé sur une image plutôt que sur des paquets. Pour la robustesse et la sécurité, il est essentiel de travailler avec des images reproductibles et immuables qui décrivent l’OS ou des grandes portions de celui-ci dans leur entièreté, plutôt que de toujours travailler avec des paquets détaillés façon RPM/dpkg. Ce n’est pas dire que les paquets ne sont pas pertinents (je trouve en réalité qu’ils ont beaucoup d’importance !), mais je pense qu’ils devraient être moins un outil de déploiement de code, mais plutôt un outil pour construire les objets à déployer. Une autre manière de voir la chose : tout OS construit ainsi doit être facile à répliquer sur un grand nombre d’instances, avec une variabilité minimale.

      C’est donc bien un nouveau paradigme qui bouleverse les principes traditionnels des distros, selon lesquels les empaqueteurs se chargent d’assembler et distribuer toutes les applications qu’ils veulent rendre disponibles à leurs utilisateurs. Or, dans les préconisations de la documentation de l’outil Blue-build, dédié à la création d’images atomiques customisées, il faut au contraire « résister à la tentation d’intégrer tout l’univers » :

      Les systèmes dans ce genre sont conçus autour d’un cœur petit, simple et efficace, maintenable et performant. Rappelez-vous que les mises à jour de l’image de base nécessitent un redémarrage, donc idéalement vous allez vouloir limiter sa taille – laissez Flatpak et d’autres outils de l’espace utilisateur s’occuper du reste.

      Diapositive issue de la présentation « Bazzite: Building the Future of Linux Gaming Together » donnée par Kyle Gospodnetich et Noel Miller au salon SCALE 22x, le 8 mars 2025
      Diapositive issue de la présentation « Bazzite: Building the Future of Linux Gaming Together » donnée par Kyle Gospodnetich et Noel Miller au salon SCALE 22x, le 8 mars 2025

      Jorge Castro dit lui-même :

      Je ne voulais pas refaire une autre distro. J’ai fait ça pendant dix ans [chez Canonical, NDLR], je ne voulais pas faire d’empaquetage, je comprends les difficultés que ça entraîne de faire une distro, je ne veux plus jamais refaire ça.

      Et il ajoute :

      Il nous faut avoir des applis en bac à sable, sans quoi autant faire nos valises et rentrer chez nous. Actuellement c’est flatpak via flathub. Malgré toutes les plaintes que vous pouvez lire sur le net au sujet de flatpak, il y a plein de monde qui en tire une bonne expérience. […] Et aussi nous avons abandonné tout l’aspect « allons empaqueter la planète entière nous-même » du modèle parce que nous savons que ça ne s’étend pas [it doesn't scale]. Ça veut dire que c’est aux développeurs d’applis de prendre en charge leur destin, et que c’est notre boulot de livrer tout ça à l’utilisateur. […] C’est aussi pour cela que nous ne sommes pas une distro – nous sommes trois distros, fedora pour la base, homebrew pour la ligne de commande, flatpak pour les applis à interface graphique. Oh et puisque vous avez aussi distrobox, n’importe quel autre paquet de distro.

      Et évidemment, cet éloignement revendiqué du modèle de la bonne vieille distribution n’est pas sans causer quelques frictions, surtout au sein d’une communauté comme Fedora qui demeure avant tout dédiée à faire… une bonne vieille distribution. Le 21 janvier 2025, Michael Catanzaro demandait que Flathub devienne le dépôt Flatpak par défaut des Fedora, plutôt que le dépôt Flatpak de Fedora comme c’est le cas jusqu’alors, affirmant que ces flatpaks “maison” étaient « une source notable de problèmes de qualité », et citant des « plaintes de multiples développeurs upstream », notamment ceux du célèbre OBS qui sont allés jusqu’à réclamer formellement le retrait du Flatpak que Fedora distribue pour leur appli. Le conflit s’est depuis détendu et les développeurs d’OBS ont rétracté leur demande, mais pas sans que le Project Leader de Fedora Matthew Miller ne déclare sur la chaîne YouTube de Brodie Robertson que « les règles d’acceptation sur Flathub sont plutôt laxistes » et que rien ne garantissait l’absence de code malveillant dans leurs flatpaks, ce qui a provoqué une levée de boucliers et une clarification officielle de Flathub quant à leur processus de vérification. Miller a salué cette clarification et précisé sa pensée, et à l’heure actuelle, c’est toujours les dépôts de Fedora qui sont présélectionnés par défaut lorsqu’on cherche à installer un Flatpak via Logiciels ou Discover dans une Fedora.

      Alors, faut-il imaginer un projet tout neuf et émancipé des distributions, comme GNOME et KDE aimeraient le faire, pour être digne d’être l’OS atomique dont l’Europe a besoin ? À moins que ce dont l’Europe ait besoin, ce n’est pas d’un seul mais de plusieurs OS atomiques ? C’est l’idée que défend openSUSE, qui propose aux gouvernements non pas d’adopter une seule et unique solution qui "surfe sur l’idée de souveraineté européenne", mais plutôt une stratégie multi-distributions, qui inclurait, au hasard, les propres projets atomiques d’openSUSE – Aeon (sous GNOME) et Kalpa (sous Plasma) :

      L’idée globale dont les gouvernements ont besoin de débattre va au-delà du standard des distros. À l’âge du rançongiciel, du verrouillage dans le nuage et du capitalisme de surveillance, il est temps d’aller au-delà de la façon traditionnelle de penser les OS de bureaux. Le monde de l’open-source a déjà les outils pour avancer vers cette nouvelle façon de penser :

      • L’immuabilité avec des mises à jour transactionnelles (MicroOS, Aeon, Kalpa, Kinoite)
      • Une configuration système déclarative (Agama, Ansible)
      • Des options de bureaux pour des besoins utilisateur variés (GNOME, KDE Plasma, Xfce)
      • Des standards d’identités et d’authentification ouverts (LDAP, OpenID)
      • Des formats de paquet transparents (Flatpak, RPM)

      La gouvernance des Linux : suffit-il d’être libre pour être souverain ?

      Ce second volet fera l’objet d’une dépêche future, à laquelle vous pouvez d’ores et déjà contribuer (comme à toutes les autres dépêches en cours de rédaction sur Linuxfr). À bientôt !


      Notes

      • Les Steam Deck sont vendus avec SteamOS, qui n’est pour l’instant pas disponible au téléchargement (Valve a déclaré vouloir le faire d’ici avril 2025), et qui est également un OS atomique. Bazzite est fortement inspiré de SteamOS et en reprend directement une partie de son code, publié sous licence libre par Valve.
      • Un des signes distinctifs d’Universal Blue est son usage de bootc, qui permet purement et simplement de rendre des conteneurs bootables (ce que Jorge Castro résume par « Podman dans une boucle for » ; Colin Walters en parle dans une vidéo de Red Hat) et qui devrait bientôt être adopté par Fedora à son tour, en remplacement d’OSTree. Sur la feuille de route de ce projet, Timothée Ravier précisait en janvier dernier que, bien que ses propres machines reposent sur des conteneurs bootables, il considère que « ce n’est pas prêt pour l’usage général ».
      • À l’heure actuelle, la distribution vitrine de Linux sur téléphones est sans doute postmarketOS. Les développeurs de celle-ci ont annoncé le 30 mars dernier travailler à une version immuable de pmOS, qui sera partiellement subventionnée par la fondation européenne NLnet (la question du financement des Linux sera abordée dans la 2ᵉ partie de cette dépêche).

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      •  

      Donnez moi un NixOS à ronger

      NixOS

      Petit aperçu de Nix : il y a plusieurs articles sympas ici, la récente revue de Seb95, à cause de laquelle je suis passé sur cette distribution il y a quelques jours (et sachant que visiblement lui n’y est pas resté!, peut-être qu’il me lit haha), ou cette revue plus ancienne, donc j’essaierai de mettre en avant d’autres aspects.

        Sommaire

        Mini histoire à zapper

        Dejà reprécisons - il faut remonter à 2003 pour que Eelco Dolstra développe le gestionnaire de paquets Nix, mais la distribution, elle, NixOS date de 2006. Il y a deux versions par an, nommée YY.MM, par ex. 13.05 pour version de mai 2013 - brillant.

        Pour la suite j’écrirai simplement Nix pour désigner la distribution.

        En 2010 un wiki démarre. En 2013, la distribution 13.05 passe de upstart à systemd et systemd-boot au démarrage (alors appelé gummiboot). La version 13.10 est la première version stable de NixOS.
        On peut noter chez la concurrence, en 2014 le lancement du projet Atomic de Red Hat.
        En 2016, le wiki Nix officiel est clos et un wiki non officiel démarre…
        Fedora Silverblue apparait 2018 comme projet de distinct de « Atomic ». En 2019 Open Suse démarre le projet Micro OS.
        Côté Nix, en 2020 ont été intégrés les Flakes (22.05). Un installateur graphique apparait en 2022, sur la 22.05.
        En 2024, le wiki Nix officiel redémarre (mais le non-officiel demeure…).

        Une distribution rétro-futuriste

        Dans Nix, il n’y a pas de répertoire /bin, de /sbin, de /lib ou de /usr. Tout est gardé dans un /nix/store.

        Enfin moi j’ai quand même un /usr/bin/env mais j’avoue ça fait peu, ou un /bin mais qui ne contient qu’un symlink pour bash. Mais bref

        Dans le /nix/store on va retrouver nos hiérarchies habituelles, rangées dans des « dérivations ». Prenons firefox : je ne l’aurai pas directement dans /usr/bin mais dans le store voici comment ça se présente

        $ ls -R /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0
        /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0:
        bin  lib  share
        
        /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0/bin:
        firefox
        
        /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0/lib:
        firefox  mozilla
        
        /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0/lib/firefox:
        application.ini    defaults            firefox-bin   libgkcodecs.so        libmozavutil.so   libmozwayland.so   omni.ja        Throbber-small.gif
        browser            dependentlibs.list  fonts         libipcclientcerts.so  libmozgtk.so      libxul.so          pingsender     vaapitest
        crashreporter      distribution        glxtest       liblgpllibs.so        libmozsandbox.so  minidump-analyzer  platform.ini
        crashreporter.ini  firefox             gmp-clearkey  libmozavcodec.so      libmozsqlite3.so  mozilla.cfg        removed-files
        

        etc.
        Pour le reste c’est plus standard.

        $ ls /
        bin  boot  dev  etc  home  lib  lib64  lost+found  nix  proc  root  run  srv  sys  tmp  usr  var
        
        

        Déclaratif

        La configuration, utilisateurs réseaux paquets services saucisson fromage, tout est déclaré dans un fichier /etc/nixos/configuration.nix.
        Comme définir un point de montage pour un disque ou les règles du pare-feu, qui correspondraient à du /etc sur d’autres distributions, mais aussi par exemple créer un utilisateur - ce qui correspondrait plutôt à des commandes sur d’autres distributions, comme useradd.

        Quand vous « compilez » le fichier /etc/nixos/configuration.nix, Nix va s’occuper tout seul des /etc/fstab, iptables (*), /etc/group, et ainsi de suite ; en général on précise que l’on « switche » vers ce nouvel OS et Nix redémarre les services avec la nouvelle config (à vous de savoir si redémarrer des services est suffisant, ou si pour prendre en compte les changements vous préférez redémarrer la session voire reboot).

        (*nftables dispo)

        Exemple fstab, au lieu d’éditer fstab je mets ça dans /etc/nixos/configuration.nix

         # FSTAB
          fileSystems."/home" = {
            device = "/dev/disk/by-uuid/220260f3-a7b2-4387-9a0b-9d17c604aa18";
            fsType = "ext4";
           options = [ # If you don't have this options attribute, it'll default to "defaults" 
             # boot options for fstab. Search up fstab mount options you can use
             "users" # Allows any user to mount and unmount
             "nofail" # Prevent system from failing if this drive doesn't mount     
           ];
          };
        

        Ou encore ma fichue imprimante Samsung
        Sous Debian, j’aurai peut-être ajouté un dépôt dans /etc/apt, j’aurai rafraichi puis installé un paquet. Sous Nix j’édite le fichier.

          # Enable CUPS to print documents.
          services.printing.enable = true;
          services.printing.drivers = [ pkgs.samsung-unified-linux-driver ];
        

        On peut même se retrouver à configuration de manière abstraite… En effet, imaginons que je configure le pare-feu : quel pare-feu suis-je en train de configurer?

        networking.firewall.allowedTCPPorts = [ 80 443 ];
        

        La documentation vous apprendra que par défaut, Nix passe par iptables pour implémenter les règles que vous précisez. Avec la directive ci-dessous, les mêmes règles seraient implémentées en se basant sur nftables.

        networking.nftables.enable
        

        Immuable

        Est-ce que NixOS est immuable? On pourrait dire, comme Distro Watch, non, car on peut en réalité écrire sur la totalité du système de fichier. L’immuabilité est plutôt fonctionnelle - au sens où on ne lance pas de commande, on édite un fichier /etc/nixos/configuration.nix (que l’on peut scinder, au besoin), qui donnera toujours le même résultat. (spoil cf quand même plus bas : channel).

        Retour arrière

        Après construction du système, au démarrage, vous aurez le choix d’amorcer (booter) sur chaque version de l'OS que vous avez construite. On peut démarrer sur une ancienne version. Un peu comme démarrer sur une ancienne version du noyau mais appliqué à tout.

        Multi-utilisateurs

        Vous pouvez avoir plusieurs versions d’un paquet installées en même temps, en fonction des utilisateurs. Certainement très utile… et pas testé chez moi.

        En somme

        Cette page décrit bien les logiques différentes entre Nix et un système basé sur Debian pour quelques opérations courantes.

        Bon clairement si le besoin c’est installer firefox et qu’on doit éditer un fichier /etc puis rebuild le système, on ne ressent pas particulièrement d’avantage à utiliser Nix vs un autre système (mais en cas de souci, vous serez bien content d’avoir le rollback…)

        • À noter cela dit que l’installation de paquets n’est pas vraiment plus longue. Rebâtir le système n’est pas vraiment plus long qu’un apt-get ou équivalent. Ce qui m’étonne le plus c’est que par défaut il n’y a pas de commande pour chercher des paquets (… ??!!! …bon il y a le site officiel et on peut par exemple installer nix-search-cli) .
        • On peut bien sûr utiliser des Flatpak si on active cette option. Par défaut si on installe GNOME, cela vient d’ailleurs avec gnome-software qui n’inclut que les Flatpak. Au moins c’est un Gnome Software léger, ça change ahem ahem…
        • Pour les AppImage j’en parle plus bas

        Donc l’usage pour installer une application graphique ne changera pas vraiment la vie. À noter tout de même que le dépôt est particulièrement large.

        Mais quid de paquets un peu plus complexes? Quand j’ai voulu installer nginx avec le TLS, j’ai eu une bonne surprise. J’imaginais une tannée du fait de devoir « passer par Nix » pour gérer tout ce qui est configuration et certificats. En effet plus question de lancer des commandes pour acquérir ou renouveler des certificats. Comment faire? Pour le coup la doc me l’a indiqué rapidement.

              security.acme.acceptTerms = true;
              security.acme.defaults.email = "mon@email.example.com";
        
                  services.nginx = {
                    enable = true;
                      virtualHosts = {
                         "mon.domaine" = {
                             forceSSL = true;
                             enableACME = true;
                             root = "/var/www/mon.domaine";
                      };
        

        Et voilà! Nginx est installé, mon domaine pointe vers le bon dossier, le http redirige vers https, Nix acquiert les certificats (par défaut Let'sEncrypt mais se personnalise si on veut), et surtout Nix définit un systemd pour renouveler les certificats.

        Et là on voit que Nix c’est un peu l’opposé d’une ditribution minimaliste comme Arch… Les points forts de Arch sont les points faibles de Nix et réciproquement…

        À noter que /etc/nginx n’existe pas. Dans mon exemple ce sera nix/store/brxfza7n2hjy6n15ffdrb7wlr2fqygy8-nginx. conf…

        $ systemctl status nginx
        ● nginx.service - Nginx Web Server
             Loaded: loaded (/etc/systemd/system/nginx.service; enabled; preset: ignored)
             Active: active (running) since Sat 2025-03-29 09:45:55 CET; 1 day 10h ago
         Invocation: 84e49760dcee4e5ea0a6baa79dd6ceb2
            Process: 35568 ExecReload=/nix/store/alqjcv381xp2wawjc919h1qr6p4q8gvj-nginx-1.26.3/bin/nginx -c /nix/store/brxfza7n2hjy6n15ffdrb7wlr2fqygy8-nginx.conf -t>
            Process: 35569 ExecReload=/nix/store/9m68vvhnsq5cpkskphgw84ikl9m6wjwp-coreutils-9.5/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
        

        Oui tout est dans le nix store, bah oui logique.

        On voit aussi que cette distribution est aussi agréable qu’elle est

        • bien empaquetée
        • bien documentée (j’y reviens plus bas…)

        Je nixifie tu nixifies

        Définir des choses dans /etc/nixos en déclaratif plutôt que de taper des commandes ou éditer d’autres fichiers comme /etc/nginx, c’est ce qu’on appelle nixifier, qui vient du verbe galérer-de-ouf. Non je plaisante.

        Cela veut dire que pour tout ce que vous pouvez faire avec les services, le paquet Nix doit proposer des options pour le faire dans /etc/nixos… Un peu effrayant au premier abord? Par ex. si je veux utiliser une fonction plus exotique de Nginx, alors la config Nix doit inclure un moyen de le spécifier, et doit inclure chaque option Nginx ??

        En fait de nombreux services vont proposer d’ajouter des options « extra ». Par ex. si je veux utiliser la fonction Nginx « rate-limit » et que le paquet Nix n’a pas d’option pour ça… Eh bien je vais utiliser une directive « appendHttpConfig » qui va me permettre de directement écrire dans le nginx.conf. Comme cela je continue d’utiliser les avantages Nix, mais je peux profiter d’options non nixifiées.

             services.nginx = {
                enable = true;
            appendHttpConfig = " limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/m; " ;
                  virtualHosts = {
                     "mon.domaine" = {
                         forceSSL = true;
                         enableACME = true;
                         root = "/var/www/mon.domaine";
                 extraConfig = "limit_req zone=mylimit;";
                  };
        

        On peut même avoir le besoin de générer un fichier /etc. Pas de souci, exemple avec fail2ban, on peut générer un fichier /etc/fail2ban/filter.d

            # Defines a filter 
            "fail2ban/filter.d/nginx-py.local".text = pkgs.lib.mkDefault (pkgs.lib.mkAfter ''
              [Definition]
        failregex = ^.* \[error\] \d+#\d+: \*\d+ (\S+ )?\"\S+\" (failed|is not found) \(2\: No such file or directory\), client\: <HOST>, server\: \S*\, request: \"(GET|POST|HEAD) .*$
            '');
          };
        

        Interdit !

        Je ne vais pas rentrer dans le détail, car je suis encore débutant, mais on ne peut pas exécuter ce que l’on veut sous Nix.

        $ touch holalal.sh
        $ echo -e '#!/bin/sh \necho "toto"' >> holalal.sh
        $ chmod +x holalal.sh
        $ ./holalal.sh
        bash: ./holalal.sh: Permission denied
        $ bash holalal.sh 
        toto
        

        Appliqué aux AppImage, eh bien j’ai un peu galéré. Apparemment on lance $appimage-run . Pas de bol pour moi, ça ne passe pas. J’ai testé deux trois un million de trucs à l’aveuge pour le fun (extraire puis ajouter chmod+x, passer par exec, voire par du sudo oh la la pardonnez moi…) Comme Google n’était clairement pas mon ami, j’ai voulu tester d’empaqueter l’AppImage moi-même. C’était la bonne piste! Si j’étais familier avec Nix cela m’aurait pris 2s. Un petit fichier .nix de quelques lignes plus tard, je peux construire cette AppImage et cette fois la lancer.
        Dans de nombreux cas vous trouverez l’ppImage déjà empaquetée.

        Channel

        Vous souvenez vous, Nix propose une version tous les 6 mois. Mais dites-moi… Comment met-on à jour si on lance pas de commande dans Nix et qu’on n’utilise que vi /etc/nixos/configuration.nix ?
        Et là, voilà la vérité révélée : oui on utilise des commandes, et non Nix n’est pas que déclarative.
        (cf par exemple https://nlewo.github.io/nixos-manual-sphinx/installation/upgrading.xml.html )

        # nix-channel --add https://nixos.org/channels/*channel-name* nixos
        # nixos-rebuild switch --upgrade
        

        On peut également spécifier dans la config que l’on veut automatiquement passer sur les nouvelles versions. En attendant cela veut dire que deux fichiers /etc/nixos/configuration.nix ne correspondent pas forcément au même OS!

        Note sur les channels : similairement à Debian, il y a un channel unstable si on veut passer en mode rolling.

        Pour résoudre cette question des channels il y a les Flake. En gros l’idée est de préciser non seulement qu’un paquet est installé mais aussi quelle version.
        https://nixos-and-flakes.thiscute.world/nixos-with-flakes/introduction-to-flakes#nix-flakes-and-classic-nix
        Mais rien n’oblige à utiliser Flake.

        2 wikis et 2000 manuels

        • Deux wikis : un wiki officiel, qui a été suspendu, car il n’était pas super à jour, du coup un wiki non officiel est apparu, puis ils ont remis le wiki officiel :O !!! du coup on a plein de manuels (utilisateur, dev, celui du gestionnaire de paquets Nix…) et deux wikis et on se retrouve à jongler.
        • On a l’impression d’avoir atteint le point où toute tentative d’améliorer ne fait qu’empirer. Je propose « Tools that need a manual to find the manual » ! …
        • Mes premières recherches sur Internet sont simplement désastreuses, je tombe sur plein de versions différentes. Et souvenez-vous que Nix est à la fois un langage, un gestionnaire, un builder, une distribution…
        • Peut-être que des sites pour répertorier , comme https://nixos.org/learn/ peuvent un peu aider…

        xkcd

        Mais à l’heure qu’il est, si Nix a un défaut c’est bien la documentation chaotique.

        Et les autres bombes atomiques?

        Fedora Silverblue propose aussi le retour arrière. Toutes les applications graphiques sont des Flatpak, et les applis dév utilisent le module Toolbox. Cf la présentation par Renault, plutôt historique puis pratique.
        Silverblue semble avoir de larges défis à relever mais pourrait représenter l’avenir de Fedora.

        Côté Open Suse atomic, il y a eu Micro OS (2019), puis Aeon d’abord basé dessus puis devenu projet indépendant pour offir GNOME. (En parallèle le projet Kalpa se développe pour le bureau KDE.) Vous pouvez lire cette revue par LWN. Sur Aeon la méthode préférée d’installation de paquets est encore Flatpak, mais il y a aussi Distrobox.

        Voilà pour ce que je connais, cela mériterait bien plus!

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        •  

        Cloonix version 46

        Cloonix est un outil d’aide à la construction de réseau virtuel, sous AGPLV3 (inclus qemu-kvm, openvswitch, spice, crun et wireshark).

        C'est pensé comme Docker, dont le succès provient de l'absence de tracasseries au moment de l'empaquetage, en mettant bibliothèques et binaires dans un espace de nommage (namespace). Docker est un produit de grande qualité mais il n'y a pas que sa méthode. Cloonix utilise les mêmes principes de namespace, sans infrastructure d'accueil pour faire tourner les conteneurs. Notez qu'un logiciel qui s'installe puis tourne avec les droits limités d'un utilisateur normal est la meilleure façon de décourager un pirate. Donc, pour essayer Cloonix 46, un fichier auto-extractible sans dépendance à la distribution qui l'héberge vous attend ! Téléchargez, cliquez…

        Cloonix est un outil pour étudier les réseaux. Il permet de faire des scripts de scénarios avec plusieurs machines connectées, les machines étant soit des vraies machines virtuelles tournant avec kvm, soit des conteneurs tournant avec crun. Cette maquette simplifiée de réseaux avec leur visualisation permet de transmettre des démonstrations réseaux entre utilisateurs. J'ai présenté Cloonix plus largement dans mes dépêches précedentes.

        Commentaires : voir le flux Atom ouvrir dans le navigateur

        •