Vue lecture

Sortie de Tryton 7.6

Le 1er mai 2025 sortait la version 7.6 de Tryton, un progiciel de gestion intégré modulaire et multiplate-forme.

Tryton

Tryton est basé sur une architecture trois tiers avec PostgreSQL comme base de données principale et est écrit en Python ce qui apporte une grande flexibilité et rapidité pour la customisation.
Il vient avec un ensemble de modules essentiels pour la gestion d’une entreprise, qui sont très aboutis. Il peut être complété par des modules tierces spécifiques à certaines activités (comme la gestion d’hôpital avec GNU Health, la gestion de distillerie avec Distilibre) ou permettant l’intégration à d’autres outils.
Enfin, il est utilisable à travers un client natif, un client web réactif et un client en ligne de commande. Tous ces clients sont légers et multiplateformes (Linux, BSD, Windows et macOS).

Comme la dernière annonce ici date de la version 7.2, voici une liste non-exhaustive d’améliorations notables :

  • Tryton a remplacé son plan comptable minimal par le plan comptable universel qui est une bonne base pour l'IFRS ou US GAAP.
  • Un logo peut être ajouté à la société gérée par Tryton. Celui-ci sera alors rendu sur les documents commerciaux que Tryton génère (ex: bon de commande, facture, etc.)
  • Les remplacements de produit sont maintenant géré automatiquement. Quand un produit, marqué comme étant remplacé par un autre, n'est plus en stock, il est remplacé sur tous les mouvements de stock. C'est utile afin de s'assurer de vider son stock existant avant de passer au nouveau produit.
  • Les tâches planifiées, qui sont en train d'être exécutées, sont affichées. De plus, Tryton enregistre la durée d'exécution pendant un mois afin de pouvoir détecter des anomalies.
  • Il est maintenant possible de configurer le serveur pour utiliser une autre commande que LibreOffice pour convertir les documents vers un autre format comme PDF. Par exemple, on peut utiliser un service externe comme document-converter
  • L'ORM de Tryton gère les contraintes d'exclusion basées sur les Range SQL. Ceci a permis de remplacer des contraintes écrites en Python qui verrouillaient la table.
  • Il est désormais possible de redimensionner les colonnes des listes aussi avec le client web. Et la taille des colonnes est sauvegardé sur le serveur par taille d'écran afin de les restaurer pour l'utilisateur à la prochaine ouverture.
  • Un délai de validité des devis peut être configuré. Une fois passé le délai, il n'est plus possible de convertir le devis en vente et celui-ci sera annulé automatiquement. De même, une date d'expiration de devis d'achat peut être encodée pour faciliter le suivi.
  • Il est maintenant possible de résoudre une plainte par la création d'un coupon de promotion.
  • On peut à présent enregistrer une adresse en utilisant les champs structurés. Dans ce cas, le formatage de celle-ci sera faite automatiquement par Tryton suivant le format des 222 pays connus.
  • Des méthodes pour faciliter la personnalisation du comportement de l'ORM ont été ajoutées afin de simplifier et d'éviter de devoir étendre les méthodes create, write et delete (qui peuvent être un peu compliquées). De plus, des champs stockés dans la base de données peuvent être définis comme étant calculés. Ils sont alors automatiquement mis à jour si leur valeur change. Ils sont principalement utilisés pour faire de la cache.
  • Tryton supporte maintenant les traductions des formes de pluriels (jusqu'à 4 par langue).

Une dernière chose, l'ajout en mode bêta d'un outil de chat en direct entre utilisateurs sur certains documents. Par la suite, ce chat doit évoluer pour devenir un outil de communication plus large et inclure des externes via e-mail (mais aussi d'autres supports de communication).
Cette fonctionnalité est développée via un appel à sponsors
Dicussion sur une vente

Commentaires : voir le flux Atom ouvrir dans le navigateur

QEMU 10.0

Comme tous les ans, Qemu sort une nouvelle version majeure. Le numéro n'implique donc pas de grands bouleversements. Il s'agit plutôt d'une base stable qui va être maintenue et améliorée pendant quelques années. Ainsi, les versions 7, 8 et 9 ont eu des mises à jour en mars 2025.

Comme d'habitude, les architectures ARM et Risc-V se taillent la part du lion et sont enrichies de nouvelles architectures. Les accès aux stockages sont partout plus rapides, et l'espace utilisateur accède toujours mieux au matériel.

Qemu est devenu une pièce importante dans le monde des serveurs et des développeurs. En tant qu'émulateur il permet de développer, compiler ou lancer un programme sur un processeur ou une machine différente. Couplé à KVM, XEN ou VMWare, il permet une virtualisation performante.

Quoi de neuf ?

L'article de Next résume bien les changements sur ARM et Risc-V. C'est technique, n'étant pas connaisseur je vous y renvoie.

x86 bénéficie de changements globaux à toutes les architectures avec quelques ajouts spécifiques pour des processeurs Intel. Mon petit doigt impatient de tester me souffle que ça sera plus rapide avec des accès "multithread1" aux périphériques de stockage (virtio-scsi et virtio-blk). L'accès direct au matériel en espace utlisateur continue de s'améliorer (VFIO, fonctions virtuelles d'entrées-sorties).

Les autres changements concernent l'émulation des architectures HPPA et S390.

Attention aux trucs enlevés

À chaque version ou presque, des morceaux sont enlevés. Si vous faites dans l'exotique, ne vous précipitez pas sur la dernière version sans consulter la liste des Removed features.

Documentation d'introduction pour QEMU et la virtualisation

En guise de conclusion, voici quelques pistes pour ceux et celles qui débutent avec la virtualisation sous Linux et/ou QEMU. Différentes distributions Linux ont de la documentation sous licence libre. Loin d'être exhaustif, voici quelques choix :


  1. Qu'on me pardonne ce mot, je simplifie pour faire court! 

Commentaires : voir le flux Atom ouvrir dans le navigateur

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

Continuer de soutenir les associations du libre

Vous le savez sans doute déjà, un des moyen de soutenir les associations francophones du monde du Libre est de leur acheter leurs goodies ou de leur faire des dons.

L’association En Vente Libre a été créée en 2009 par des bénévoles de Framasoft et Ubuntu-FR. En 2017, elle est reprise par une aprilienne, un debianiste et un ubunteros inconscients qui ne voulaient pas que la plate-forme disparaisse. Depuis EVL continue de mettre à disposition des associations du logiciel libre un moyen de vendre leurs différents produits de manière mutualisée et de récupérer des dons. Permettre la diffusion de la culture libre à travers le monde est un peu prétentieux, mais c’est toujours l’objectif !

Les premières associations qui en ont bénéficié sont : Debian, Ubuntu-Fr, l’April, La Mouette, Framasoft, Multisystème, EduNathon. Depuis 2017 se sont ajoutées : Mageia, Borsalinux, La Quadrature du Net, LinuxFr, Alionet, Khaganat, LIbre comme L’Art et La Contre-Voie. En 2023, FDN et Musique Libre ont rejoint le groupe.

=> Cette année, c’est le tour de l’association Le deuxième texte dont l’objectif est de redonner leur place aux femmes de lettres dans le canon littéraire enseigné en France. Logo Le deuxième texte
Pour cela, elle contribue aux communs numériques en enrichissant, en mettant en valeur et en partageant des textes de femmes, notamment à travers les wikis de la Wikimedia Foundation. Les contenus créés sont publiés dans des formats ouverts et sous des licences libres. Pour ses travaux, l’association utilise et fait connaître des outils libres et respectueux de la vie privée.

La force de la plate‐forme EVL est de proposer de faire des dons ou d’acheter des articles de plusieurs associations en même temps. Cela permet une mutualisation des coûts bancaires et des frais divers (arrêtons d’enrichir les banques !).

Vous pouvez donner à toutes les associations, acheter des T-shirts, mugs, autocollants, clés, badges sous-bock, autocollants, CD de musique ou encore casquettes.

Vous soutiendrez plusieurs associations en même temps financièrement en ne faisant qu’un seul virement.

Si vous :

  • appartenez à une association et que vous voulez vendre vos produits ou obtenir des dons sur la plate‐forme EVL, n’hésitez pas à demander notre convention par courriel à bureau@enventelibre.org ;
  • voulez participer au projet et devenir bénévoles, contactez‐nous par courriel à association@enventelibre.org ;

Commentaires : voir le flux Atom ouvrir dans le navigateur

Proxmox Virtual Environment 8.4 est disponible

Proxmox Server Solutions GmbH a publié la version 8.4 de sa plate-forme de virtualisation libre Proxmox Virtual Environment (VE). Proxmox VE est sous licence GNU Affero GPLv3. Proxmox Server Solutions propose un support d’entreprise à partir de 115 € par an et par processeur.

Principales nouveautés de la version 8.4

  • Migration à chaud avec des dispositifs médiés :
    Les dispositifs médiés permettent de partitionner les ressources matérielles physiques en plusieurs dispositifs virtuels. Il est désormais possible de migrer des machines virtuelles (VM) en cours d’exécution utilisant des dispositifs médiés, tels que les vGPU NVIDIA.

  • API pour les solutions de sauvegarde tierces :
    Proxmox VE propose une API qui simplifie le développement de plug-ins par les fournisseurs de solutions de sauvegarde externes. Ces solutions de sauvegarde tierces peuvent désormais implémenter directement des fonctionnalités de sauvegarde et de restauration dans Proxmox VE, tout en tirant parti de fonctionnalités avancées.

  • Passage direct de répertoires via Virtiofs :
    La version 8.4 offre la possibilité de partager des fichiers et des répertoires directement entre un hôte et les machines virtuelles (VM) exécutées sur cet hôte. Cette fonctionnalité est rendue possible par virtiofs, qui permet aux machines virtuelles d’accéder aux fichiers et répertoires de l’hôte sans surcharger le système de fichiers réseau. Les systèmes invités Linux modernes sont dotés de la prise en charge native de virtiofs, tandis que pour les invités Windows, l'utilisation de cette fonctionnalité nécessite un logiciel supplémentaire.

  • Mises à jour de tous les composants libres :
    Proxmox VE 8.4 est basé sur Debian 12.10 (“Bookworm”), mais utilise par défaut le noyau Linux 6.8.12. Cette version de Proxmox VE inclut des mises à jour vers les dernières versions des principales technologies open source pour les environnements virtuels, telles que QEMU 9.2.0, LXC 6.0.0. La solution est livrée avec ZFS 2.2.7 et Ceph Squid 19.2.1.

D’autres améliorations incluent un mécanisme de filtrage de sauvegarde plus robuste, des améliorations de la pile SDN (réseau défini par logiciel), et de nouvelles options dans l’installateur ISO.

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌