Vue normale

Reçu aujourd’hui — 27 août 2025Linux

Swaparr : dégager les Torrents bloqués des *arrs (stalled)

Par :Aerya
27 août 2025 à 07:13


Utilisateurs de qBittorrent, combien de fois avons-nous vu un .torrent marqué « stalled » ? Un téléchargement bloqué pour X raison et Sonarr ou Radarr qui attend… attend… encore et toujours…

Les *arrs n’ont pas d’outil de détection des téléchargements bloqués.

Swaparr comble cette lacune, très simplement.


Pour lancer le Docker, on met les instances qu’on souhaite, je teste avec les 2 que j’ai. J’ai mis les IP:port mais on peut mettre une URL sans le backslash de fin

services:
  radarr:
    image: ghcr.io/thijmengthn/swaparr:latest
    container_name: swaparr-radarr
    restart: unless-stopped
    environment:
      - BASEURL=http://192.168.0.163:7878
      - APIKEY=xxx        
      - PLATFORM=radarr
      - MAX_STRIKES=3
      - SCAN_INTERVAL=10m
      - MAX_DOWNLOAD_TIME=
      - IGNORE_ABOVE_SIZE=25GB
      - REMOVE_FROM_CLIENT=true
      - DRY_RUN=false
  sonarr:
    image: ghcr.io/thijmengthn/swaparr:latest
    container_name: swaparr-sonarr
    restart: unless-stopped
    environment:
      - BASEURL=http://192.168.0.163:8989
      - APIKEY=xxx         
      - PLATFORM=sonarr
      - MAX_STRIKES=3
      - SCAN_INTERVAL=10m  
      - MAX_DOWNLOAD_TIME=2h  
      - IGNORE_ABOVE_SIZE=25GB
      - REMOVE_FROM_CLIENT=true
      - DRY_RUN=false

J’ai tout laissé par défaut mais on peut régler les variables

NameDefaultDescription
BASEURLhttp://127.0.0.1:7878The URL of a radarr, sonarr or other starr instance.
APIKEY7f3a8..cbc07The API key of a radarr, sonarr or other starr instance.
PLATFORMradarrIndicates the type of starr platform, either radarr, sonarr, lidarr, readarr or whisparr.
MAX_STRIKES3Maximum number of strikes a download can accumulate before it is removed.
SCAN_INTERVAL10mHow often Swaparr checks for stalled downloads.
MAX_DOWNLOAD_TIME2hMaximum allowed download time before it’s considered stalled.
IGNORE_ABOVE_SIZE25GBFiles larger than this size will be ignored and not monitored.
REMOVE_FROM_CLIENTtrueRemove from both queue and download client (default) OR false only the queue of a starr instance.
DRY_RUNfalseSandbox mode; try Swaparr without it performing destructive actions on your instances.

Swaparr gère les clients de téléchargement BitTorrent liés aux *arrs, toute les 10 minutes avec cette configuration.
Et l’instance *arr pourra donc aller chercher un autre .torrent

aerya@StreamBox:~$ sudo docker logs swaparr-radarr

 ── Swaparr ───── 

╭─╮ Platform: radarr
│ │ Max strikes: 3
│ │ Scan interval: 10m
│ │ Max download time: 2h
│ │ Ignore above size: 25GB
╰─╯ Remove from client: true

╭─╮ Be part of Swaparr's journey ⭐ Star us on GitHub!
╰─╯ Your support strengthens the open-source community.

 ──────────────── 


╭──────────────────────────────────────────────────────────────────────────╮
│                            No downloads found                            │
╰──────────────────────────────────────────────────────────────────────────╯

 ─ Checking again in 10m..


╭──────────────────────────────────────────────────────────────────────────╮
│                            No downloads found                            │
╰──────────────────────────────────────────────────────────────────────────╯

 ─ Checking again in 10m..


╭──────────────────────────────────────────────────────────────────────────╮
│                            No downloads found                            │
╰──────────────────────────────────────────────────────────────────────────╯

 ─ Checking again in 10m..

Loading

SeasonArr : remplacer des épisodes manquants dans Sonarr par des packs de saisons

Par :Aerya
27 août 2025 à 06:29

Sonarr est conçu pour chercher automatiquement des épisodes et non des packs. Il peut arriver qu’il manque au moins 1 épisode de saison et c’est… pénible de devoir aller chercher ça à la main.
d3v1l1989 a créé SeasonArr qui règle ce problème en permettant de chercher un pack de saison puis remplacer les épisodes déjà télécharger. Cet outil, en 1 clic, remplace la recherche interactive de Sonarr.

Mon setup *arrs/Plex étant tout frais, pour ces séries d’articles, il ne me manque rien en dehors d’épisodes non parus en MULTi/VF donc mes screen ne seront pas révélateurs. « pas de bol »

Il faut préalablement créer une clé JWT soit en console si nodejs est installé (sudo apt install nodejs) soit via ce site par exemple.

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Le Docker

services:
  seasonarr:
    image: ghcr.io/d3v1l1989/seasonarr:latest
    container_name: seasonarr
    restart: unless-stopped
    hostname: seasonarr
    ports:
      - 3027:8000
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - DATABASE_URL=sqlite:///./data/seasonarr.db
      - JWT_SECRET_KEY=032cb57bd9a0ed97c62a46518aaa3cf2ba9d256da92e17e75e75d282ad5cda87
    volumes:
      - /home/aerya/docker/seasonarr:/app/data
      - /etc/localtime:/etc/localtime:ro


Une fois le compte créé on peut lier une ou plusieurs instances Sonarr


seasonarr1

Seasonarr indexe alors les séries et on peut lister celles où il manque des épisodes. Comme indiqué plus haut, mon exemple n’est pas révélateur puisqu’il me manque seulement ces 2 épisodes qui existent en VOSTFR mais non en MULTi/VF comme je les veux.

seasonarr2

Mais si pour une série il manque des épisodes dans des saisons « parues », on peut alors cliquer sur Season It! et Seasonarr se servira des indexeurs de l’instance Sonarr pour aller chercher des packs complets et remplacer tous les épisodes individuels complétés et manquant pour les saisons sélectionnées.
On peut le faire par saison ou pour la série complète.

seasonarr3

Il n’y a pas d’automatisation du process vu que ce n’est à faire qu’une fois de temps en temps, en théorie.
Les options sont sommaires mais suffisantes.

seasonarr4

Je viens de faire le test avec Got, je n’ai pas demandé à Sonarr de chercher les épisodes pour passer directement par Seasonarr

seasonarr11

Après avoir cliqué sur Season It! (global, pas apr saison), Sonarr s’est bien mis en recherche

seasonarr12

Et ça a suivi

seasonarr13

Loading

Haiku a 24 ans - nouvelles de l'été 2025

Haiku est un système d’exploitation pensé pour les ordinateurs de bureau. Il est basé sur BeOS mais propose aujourd’hui une implémentation modernisée, performante, et qui conserve les idées qui rendaient BeOS intéressant: une interface intuitive mais permettant une utilisation avancée, une API unifiée et cohérente, et une priorisation de l’interface graphique par rapport à la ligne de commande pour l’administration du système.

Le projet est actuellement (depuis 2021) en phase de beta test. La plupart des fonctionnalités sont implémentées et l’attention des développeurs se porte sur la correction de bugs, l’amélioration de la stabilité et des performances, et plus généralement, les finitions et petits détails. Une autre part du travail est le suivi de l’évolution de l’environnement technologique: nouveaux pilotes de périphériques, suivi des derniers standards du web, etc.

Les trois derniers mois ont été un peu plus calmes que d’habitude pour Haiku, mais cela est largement compensé par une très forte activité du côté de Haikuports. Cela révèle que le système lui-même devient plus mature et qu’il devient de plus en plus facile de développer ou de porter une application sans tomber sur des problèmes du système qui doivent être corrigés au préalable.

Sommaire

Applications

Tracker

Tracker est le navigateur de fichiers de Haiku. Le code est hérité directement de BeOS (cette partie avait été publiée sous licence libre lors de l’abandon de BeOS par Be) et fait l’objet depuis de nombreuses années d’un gros travail de nettoyage et de modernisation.

Pas de grosses nouveautés ces derniers mois, mais des corrections pour plusieurs régressions suites à du nettoyage effectué précédemment. Par exemple, les icônes des disques montés sont à nouveaux affichés sur le bureau dans les dialogues d’ouverture et d’enregistrement de fichiers. L’annulation du filtrage du contenu d’un dossier en tapant un nom de fichier partiel est correctement annulé si on appuie sur échap.

Enfin, des problèmes de synchronisation de l’icône de la poubelle, qui apparaissait pleine alors qu’elle était vide, ont été corrigés. Ces problèmes étaient déjà présents dans BeOS.

Terminal

Le terminal permet de lancer des applications en ligne de commande.

Un chantier en cours consiste à rendre le terminal utilisable comme un “replicant”, c’est-à-dire de pouvoir l’intégrer dans d’autres applications telles que l’IDE Genio. Cette approche demande de restructurer beaucoup de choses, et pour l’instant, il est plus simple pour les développeurs de Genio de recopier une partie des sources du Terminal dans leur projet et de les intégrer de façon plus statique. Les problèmes sont corrigés petit à petit.

Une autre correction mérite d’être mentionnée: le terminal se plaçait lui-même dans le dossier de travail du shell lancé lors de l’ouverture d’un nouvel onglet. Si ce dossier se trouve dans un disque qu’on essaie par la suite de démonter, le démontage échoue (même si l’application lancée dans le terminal a elle-même changé de dossier entretemps). Désormais le terminal ne modifie pas son dossier actif et ne bloque plus le démontage des disques.

Mail

L’application Mail permet de lire et d’envoyer du courrier électronique. Elle est composée d’un serveur de synchronisation et d’une interface graphique indépendante. Entre les deux, les mails sont stockés sous forme de fichiers augmentés d’attributs étendus, ce qui permet d’utiliser Tracker et les requêtes BFS comme outil principal pour traiter les messages.

Les changements listés ici concernent l’application de lecture et rédaction de messages:

  • Correction du comportement du menu « Fermer et marquer comme… » lorsqu’il est appliqué à plusieurs messages.

    • Modifications pour éviter de montrer des informations vides, en double, ou absentes dans les détails des adresses mail (nom d’expéditeur, de destinataire, etc).

HaikuDepot

HaikuDepot est à la fois le gestionnaire de paquets et le magasin d’applications de Haiku. Ce double rôle conduit pour l’instant à une interface qui prête un peu à confusion, et l’interface devrait être repensée pour un fonctionnement plus intuitif. En attendant, quelques petites améliorations ont tout de même été faites pour rendre les problèmes moins gênants.

Lorsqu’une recherche dans la vue « paquets mis en avant » ne donne aucun résultat, il y a affichage d’un lien permettant de poursuivre la recherche dans la liste complète des paquets. En effet, de nombreux utilisateurs se sont plaints de ne pas trouver certains logiciels en effectuant une recherche, sans se rendre compte qu’ils faisaient une recherche dans une liste de quelques dizaines de paquets et pas dans tout ce qui est disponible.

TextSearch

TextSearch est un outil de recherche dans le contenu des fichiers par expressions régulières (une version graphique de grep).

Il reçoit ce trimestre une fonction pour filtrer les fichiers à rechercher, équivalent à l’option grep --include.

Debug Analyzer

Debug Analyzer est un outil de profiling et d’analyse de traces d’exécution.

Correction d’un problème de compilation suite à des changements dans l’API de BObjectList (cet outil n’est pas compilé par défaut, il avait donc été oublié lors du changement d’API au trimestre précédent).

Préférences d’apparence

Dans la configuration des couleurs du système, renommage de la couleur « barre d’état » en « barre de progression ». Le nom « barre d’état » (status bar en anglais) correspond à la classe BStatusBar utilisée par BeOS et Haiku, mais tout le monde appelle ça une barre de progression. On peut au moins éviter la confusion pour les utilisateurs, à défaut de pouvoir le faire pour les développeurs d’applications en renommant la classe elle-même (ce qui causerait des problèmes de compatibilité d’API et d’ABI).

Utilisation de IconMenuItem

Ce changement concerne l’application ShowImage (visualiseur d’images) ainsi que FileTypes (les préférences d’association de types fichiers avec des applications). Ces deux applications utilisent un menu pour sélectionner une application (pour ouvrir une image dans un éditeur, ou pour associer un type de fichier à une application, respectivement).

Les applications pour Haiku utilisant des icônes colorées et facilement identifiables, c’est beaucoup mieux qu’une liste de noms pour s’y retrouver rapidement. Ces deux applications utilisent donc maintenant des IconMenuItem dans ces menus, pour afficher les applications avec leur icône respective.

Adaptation aux écrans à très haute réolution

Un travail en cours sur les applications concerne l’adaptation aux écrans à très haute résolution.

Presque toutes les applications pour Haiku utilisent un système de mise en page dynamique, et toutes les ressources (police de caractères, icônes…) sont vectorielles. Cela permet en théorie d’afficher l’interface avec un niveau de zoom arbitraire. Cependant, une partie du code a été écrit avec des tailles en pixels « en dur » et ne s’adapte pas comme il faudrait (la bonne façon de faire est de se baser par exemple sur la taille de la police de caractères sélectionnée par l’utilisateur).

Ce trimestre, on trouve des évolutions à ce sujet dans plusieurs applications:

  • Expander (décompression d’archives)
  • SerialConnect (communication par port série)
  • Mise à l’échelle de la barre de défilement
  • Préférences d’imprimantes
  • Mise à l’échelle des icônes

Outils en ligne de commande

Remote Desktop

L’outil de connexion au bureau à distance n’est pas vraiment une application en ligne de commande. Cependant, il nécessite pour l’instant un lancement depuis un terminal avec les bonnes options, et selon les cas, la mise en place d’un tunnel SSH. Une interface grapique plus simple d’uitlisation sera probablement ajoutée plus tard.

  • Amélioration du parsing de la ligne de commande et en particulier de l’option pour choisir un port SSH
  • Activation de l’option SO_REUSEADDR permettant de plus facilement relancer l’outil s’il plante, sans attendre un timeout de la connexion précédente qui n’a pas été fermée proprement

Time

Le panneau de préférences de date et heure peut être lancé en ligne de commande avec une option spécifique pour forcer une synchronisation NTP. Cette fonctionnalité n’est pas vraiment documentée, à l’origine il s’agit plutôt d’une astuce interne au système. L’application reconnaît maintenant l’option --help standardisée et affiche un message d’aide qui documente cette fonctionnalité.

Il peut être utile de relancer cette commande manuellement si jamais la synchronisation au démarrage n’a pas fonctionné (par exemple si le réseau n’était pas disponible à ce moment-là). En particulier, cela peut être utilisé dans des scripts d’automatisation et pour des machines où l’interface graphique n’est pas facilement accessible (serveurs de build par exemple).

pkgman

pkgman est une commande permettant d’installer, mettre à jour et rechercher des paquets logiciels.

Ajout d’une option --no-refresh pour ne pas retélécharger la base de données des paquets.

Cette base de données contient non seulement les noms des paquets, mais aussi leur description courte et la liste des “provides” (par exemple: commandes et bibliothèques fournies par chaque paquet). pkgman vérifié déjà si une nouvelle version de la base de données est disponible, mais cette dernière peut être mise à jour plusieurs fois par jour par l’intégration continue.

Le nombre de paquets augmentant, la taille de la base de données devient non négligeable (plusieurs méga-octets), ce qui pose problème en particulier pour les utilisateurs et développeurs ne disposant pas d’un accès internet illimité.

su

La commande su est peu utilisée puisque l’utilisateur par défaut a déjà tous les droits. Son implémentation était donc un peu incomplète. Elle peut toutefois être utile pour avoir des utilisateurs supplémentaires restraints, par exemple pour un accès à distance par ssh.

  • La commande su ne demande pas de mot de passe si l’utilisateur dispose déjà de l’accès root
  • Toutes les commandes liées à la gestion des utilisateurs (su, login…) configurent les groupes actifs lors du changement d’utilisateur

listarea

listarea est une commande de debug permettant de lister les zones mémoire allouées à différentes applications. Elle affiche maintenant le verrouillage et les protections de ces zones (swappable ou non, exécutabele ou non, accessible en écriture ou non).

fdinfo

fdinfo permet d’examiner les descripteurs de fichiers ouverts (un peu comme lsof). Cette commande peut maintenant afficher en plus le dossier courant de chaque application (ce qui aurait été bien utile pour identifier le problème avec le dossier courant du Terminal ci-dessus).

install-wifi-firmwares

Ce script permet d’installer les firmwares pour certaines très anciennes cartes Wifi. Les firmwares publiés à l’époque sont disponibles avec des licenses n’autorisant pas la redistribution ou les modifications de packaging, ce qui empêche l’intégration dans le système de paquets habituel. Le problème a été corrigé depuis longtemps par les fabricants de cartes Wifi, mais les anciens firmwares n’ont jamais été republiés avec des licenses mises à jour.

Le script a été mis à jour pour récupérer certains firmwares depuis un nouveau serveur, l’ancien emplacement utilisé n’étant plus disponible.

Kits

La bibliothèque de fonctions de Haiku est découpée en kits qui regroupent des ensembles de fonctions et de classes par thématique (stockage sur disque, interface graphique…). Dans certains cas il s’agit principalement d’une méthode d’organisation du code source et de la documentation (les kits pouvent être très interdépendants). Certains kits sont toutefois fournis sous forme de bibliothèques séparées.

Support kit

Ce kit contient diverses fonctions utilitaires et basiques du système.

Changement d’API pour la classe BUrl. Dans l’ancienne version de cette classe, il était possible de construire un objet BUrl représentant une URL encodée ou non-encodée (échappement des caractères réservés). Cela rendait trop facile d’oublier d’encoder une URL avant de l’utiliser, ou bien d’encoder plusieurs fois une URL et de se retrouver avec un lien invalide.

La nouvelle API impose d’indiquer dès la création d’un objet BUrl si la chaîne de caractères servant de base est déjà encodée ou non. L’objet BUrl construit représentera toujours une URL déjà encodée, qui peut éventuellement être décodée pour affichage si nécessaire.

Interface kit

Ce kit contient tout ce qui se rapporte à l’interface graphique: fenêtres, vues, contrôles, mise en page…

Retour en arrière sur une modification des raccourcis claviers de BTextView pour naviguer vers les mots suivant et précédent. Les nouveaux raccourcis entrent en conflit avec des raccourcis déjà utilisés par plusieurs applications, et n’apportaient pas grand-chose.

Correction de problèmes de compatibilité dans le format des données stockées par la classe BPicture (il s’agit d’un enregistrement de commandes envoyées au serveur graphique, qui peuvent être rejouées plus tard). Le format des données stockées était différent de celui de BeOS. Certaines applications utilisant un objet BPicture enregistré dans une ressource de l’application, ne s’affichaient pas correctement.

Amélioration de la gestion des sous-menus, en particulier cela corrige un crash si un sous-menu est fermé en utilisant la touche échap.

Remise à plat de tous les calculs accumulés au cours des années pour générer les couleurs de l’interface graphique en fonction des couleurs choisies par l’utilisateur. Chaque morceau de code concernait faisait ses propres calculs pour générer de jolis dégradés, des variantes plus sombres et plus claires, etc. Cela fonctionnait bien avec le thème par défaut, mais pas forcément avec des choix de couleurs qui en sont très éloignés. Le nouveau code est plus simple, plus prédictible, et permet de rassembler ces calculs dans la classe « control look », qui peut être remplacée par un add-on pour fournir une apparence complètement différente.

Cela peut nécessiter d’ajuster un peu les couleurs dans les préférences d’apparence si vous les avez personnalisées.

Storage kit

Ce kit regroupe tout ce qui concerne le stockage de masse et la gestion des fichiers.

Harmonisation de la nouvelle fonction BQuery::SetFlags avec d’autres fonctions similaires, et ajout d’une page de documentation pour cette fonction.

Correction d’un crash lorsqu’on enregistre un type MIME alors que le type parent n’existe pas (par exemple si on enregistre image/gif alors que le type image n’existe pas).

Ajout d’une constante pour identifier les systèmes de fichiers FAT16 parmi la liste des systèmes de fichiers connus.

Shared kit

Le shared kit contient des fonctions expérimentales en cours de développement mais déjà utilisées par plusieurs applications.

Contrairement aux autres kits, il est fourni sous forme d’une bibliothèque statique, ainsi chaque application peut en utiliser une version différente (choisie au moment de la compilation) et il n’y a pas de contraintes pour conserver une stabilité d’API ou d’ABI. Les fonctions développées dans le shared kit peuvent ensuite être migrées vers les autres kits une fois qu’elles sont finalisées.

La classe « color list » (utilisée par exemple dans les préférences d’apparence) accepte maintenant le glisser-déposer de couleurs.

Serveurs

Les serveurs sont des applications lancées au démarrage du système. Ils sont similaires aux services systemd. Ils fournissent des services utiles à l’implémentation de la bibliothèque standard, car tout ne peut pas être fait dans une bibliothèque partagée.

app_server

app_server regroupe le serveur graphique de Haiku (utilisé au travers de l’interface kit) ainsi que la gestion des applications en lien avec l’application kit.

Correction d’un problème d’initialisation de variables indiquant dans quels workspaces (bureaux virtuels) une fenêtre doit être présente. Cela se manifestait par l’apparition de morceaux incomplets de la fenêtre si on change de bureau virtuel pendant son apparition. Le bug existait depuis 15 ans mais n’avait jusque-là pas pu être identifié.

Les curseurs de souris ne sont plus générés en bitmap à la compilation à partir des sources vectorielles. C’est maintenant fait lors de l’initialisation du serveur graphique, ce qui permet d’avoir un plus gros curseur sur les écrans à très haute résolution.

input_server

input_server se charge des périphériques d’entrée utilisateurs (claviers, souris et autres périphériques de saisie et de pointage).

Correction de la keymap espagnole latino-américaine dans laquelle plusieurs combinaisons de touches ne fonctionnaient pas comme sur les autres systèmes.

Pilotes

ACPI, gestion d’énergie, système

Mise à jour de ACPICA pour la prise en charge de ACPI avec la dernière version disponible.

Correction de problèmes dans le pilote poke (permettant l’accès direct à la mémoire pour écrire certains pilotes en espace utilisateur) pour mieux valider les paramètres des ioctl et éviter de pouvoir facilement déclencher un kernel panic suite à une mauvaise utilisation du pilote.

Réseau

Correction d’un problème dans la pile TCP ou les retransmissions de paquets lors de l’établissement de la connexion n’étaient pas faits, si le premier paquet était perdu, la connexion ne s’établissait jamais.

Lorsque IP_HDRINCL est activé (une application demande à envoyer et recevoir elle-même les en-têtes IP des paquets reçus), la pile réseau s’assure tout de même que les en-têtes générés ont bien un checksum valide. Cela permet à traceroute de fonctionner correctement par exemple.

Mise en place de l’infrastructure pour la découverte de MTU deu chemin. Cela permet de déterminer la taille maximale des paquets qu’on peut envoyer vers un serveur, sans que de la fragmentation IP soit mise en jeu en cours de route (ce qui, au mieux dégraderait les performances, au pire empêcherait la connexion de fonctionner correctement):

  • Ajout de l’option IP_DONTFRAG pour demander aux routeurs de ne pas redécouper certains paquets,
  • Remontée de l’information ICMP FRAGMENTATION_NEEDED pour détecter qu’on a essayé d’envoyer un paquet trop gros.

Cela permet déjà de détecter les problèmes de MTU, mais pas encore de les corriger automatiquement. La suite du code est encore en cours de test.

Remplacement du pilote iprowifi3945 par la version mise à jour disponible dans OpenBSD (pilote “wpi”) à la place de celle de FreeBSD qui est actuellement moins bien maintenue.

Interface homme-machine

Ajout de la tablette Intuos 4 dans le pilote pour les tablettes Wacom, ainsi que du support de la molette présente sur certaines tablettes.

Systèmes de fichiers

NFS4

NFS est un système de fichier en réseau. Une machine serveur se charge réellement du stockage des fichiers, et d’autres machines peuvent monter ce disque et accéder aux fichiers partagés. Plusieurs machines peuvent accéder au même serveur en même temps et modifier les fichiers, ce qui nécessite une attention particulière lors de l’implémentation d’un système de fichier client.

Le travail sur le pilote NFSv4 se poursuit pour le stabiliser et améliorer sa compatibilité avec les serveurs NFS existants.

Correction de problèmes de gestion du cache et de libération anticipée d’inodes`, points sur lesquels NFS est un peu inhabituel par rapport à d’autres systèmes de fichiers puisque des évènements peuvent arriver du serveur NFS concernant un fichier qui a été supprimé localement, par exemple.

Correction d’un problème qui pouvait conduire un fichier nouvellement redimensionné à contenir des données non initialisées au lieu d’octets à 0.

Cela permet de corriger des problèmes détectés par des tests NFSv4 existants pour d’autres systèmes.

EXT4

Le pilote ext4 permet de monter, en lecture et en écriture, les systèmes de fichiers ext2, ext3 et ext4 développés pour Linux.

Implémentation et activation de la fonctionnalité « metadata_csum_seed » qui est activée par défaut pour les systèmes de fichiers nouvellement créés sous Linux.

Corrections dans le « tree splitting » qui n’était pas implémenté correctement, empêchant d’accéder à des dossiers contenant un trop grand nombre de fichiers.

RAMFS

RAMFS est un système de fichiers non persistant, stockant les fichiers uniquement dans la RAM. Il est plus rapide qu’un système de fichier traditionnel.

Correction de crashs lors de la création de gros fichiers et lors du remplacement d’un hardlink par un autre fichier.

FAT

FAT est un système de fichiers développé par Microsoft pour DOS et les anciennes versions de Windows. Il est assez répandu et sert un peu de format d’échange standard en particulier pour les supports de stockage externes (clés USB, cartes SD, disquettes…).

Ajout d’assertions et de vérifications d’intégrité supplémentaires. Le pilote FAT utilisé actuellement provient de FreeBSD, dont les développeurs nous ont assuré qu’il était bien testé et maintenu. Mais, de façon similaire aux pilotes Wifi, on se rend compte que les bases d’utilisateurs de Haiku et de BSD ne sont pas du tout les mêmes, et nous sommes face à beaucoup de systèmes de fichiers FAT corrompus ou inhabituels, ce qui se produit peut-être moins souvent dans les utilisations de FreeBSD sur un serveur par exemple.

libroot

La libroot contient l’équivalent de la libc, libdl, libpthread et libm d’un système UNIX standard, ainsi que des fonctions bas niveau spécifiques à BeOS.

Les extensions GNU et BSD sont déportées dans des bibliothèques séparées (libgnu et libbsd), ce qui permet de respecter au mieux la spécification POSIX sans avoir à utiliser des astuces telles que des « weak symbols ».

Mise à jour de la libio

La bibliothèque standard de Haiku est à l’origine un fork de la glibc, utilisant exactement la même version que BeOS afin de garantir une compatibilité d’ABI optimale avec ce dernier. Cependant, cette version ancienne et obsolète ne répond pas aux besoins des applications modernes.

Petit à petit, des parties de la bibliothèque C sont donc remplacées par des composants venant de FreeBSD, NetBSD, OpenBSD ou plus récemment de musl. Certaines choses sont très bien standardisées et ne posent pas de problèmes, pour d’autres parties, des symboles internes de la bibliothèque sont exposés et parfois exploités par des applications (directement par des développeurs applicatifs pour contourner un bug, ou alors parce que les développeurs de la glibc ont mal isolé les choses et ont exposé des détails internes).

Ce trimestre, la partie libio (gestion des flux d’entrée-sortie) a été mise à jour avec la dernière version de la glibc. Il n’est pas possible d’utiliser une autre bibliothèque C pour cette partie sans casser l’ABI, mais la mise à jour est possible.

Correction de multiples problèmes dans les fonctions standard C et les extensions BSD:

  • Ajout d’une vérification de la locale passée à setlocale pour retourner une erreur si la locale demandée est invalide.

  • L’ouverture d’un chemin se finissant par un / avec open() échoue si le fichier n’est pas un dossier (par exemple open("/home/user/foo.txt/")).

  • Validation du paramètre “how” de la fonction shutdown() et retour d’une erreur si le paramètre n’est pas une valeur connue.

  • Les queues d’évènement créées par kqueue ne sont pas conservées lors d’un fork (même comportement que les BSD).

  • Un socket sur lequel il n’y a jamais eu d’appel à listen() ou connect() ne doit pas déclencher les erreurs EPIPE ni ENOTCONN.

  • La fonction socket() retourne maintenant les bons codes d’erreurs détaillés si elle ne peut pas créer le socket: EPROTOTYPE si le type de protocole est inconnu, EPROTONOSUPPORT s’il est connu mais pas disponible, EAFNOSUPPORT si la famille d’adresse n’est pas disponible. Auparavant, tous ces cas renvoyaient EAFNOSUPPORT.

  • Amélioration de la gestion des erreurs dans accept()

  • Gestion de cas particuliers pour bind() en UDP

  • Ajout de l’option RTLD_GROUP pour dlopen(). Il s’agit d’une extension développée par Solaris qui permet d’avoir plusieurs espaces de noms pour la résolution de symboles lors du chargement de bibliothèques partagées. En particulier, dosemu l’utilise pour fournir aux programmes DOS une bibliothèque C indépendante de celle de l’hôte (fournissant donc des fonctions memcpy, memset… qui entreraient en conflit avec celles de l’hôte). L’implémentation est triviale, car le même comportement était déjà en place pour la gestion des add-ons de BeOS; il n’était simplement pas accessible au travers de l’API POSIX dlopen(). Linux implémente ce flag sous un autre nom, cependant, la documentation de la glibc n’est pas correcte, et FreeBSD a implémenté ce qui est documenté pour la glibc avec le même nom. C’est pourquoi le nom utilisé par Solaris, qui n’est pas ambigu, est utilisé pour l’instant, en espérant que la méprise entre Linux et FreeBSD pourra être corrigée.

  • sethostname() retourne une erreur si le hostname proposé est trop long (auparavant il était simplement tronqué).

Intégration des changements de POSIX-2024

La spécification POSIX a été mise à jour en 2024. Cette mise à jour est assez importante grâce à un changement de la méthode de travail de l’Austin Group qui maintient la spéficication. Le groupe de travail a ouvert un bug tracker sur lequel il est possible de remonter des problèmes et de proposer des améliorations (à conditions que ces dernières soient déjà implémentées sous forme d’extensions sur un assez grand nombre de systèmes).

Cela a permis à plus de monde de prendre part à la spécification et de standardiser beaucoup de nouvelles choses. Haiku intègre ces changements petits à petits, parfois par anticipation, parfois parce que l’extension correspondante était déjà disponible, et parfois parce que le portage d’un logiciel le nécessite.

  • Ajout de O_CLOFORK, MSG_CMSG_CLOEXEC, et MSG_CMSG_CLOFORK pour fermer des descripteurs de fichiers lors d’un fork (équivalent de O_CLOEXEC qui ferme lors d’un exec, typiquement après un fork). Au passage, ajout dans la libbsd de closefrom() et closerange(), ces deux fonctions permettant de lancer des tests développés pour BSD pour ces nouveaux drapeaux.
  • Ajout de fdatasync(), une fonction qui s’assure que le contenu d’un fichier est bien enregistré sur disque et pas seulement dans le cache.

Améliorations sur la gestion de la mémoire

La gestion de la mémoire est un sujet central pour un système POSIX. L’API proposée (malloc, realloc, calloc et free) est à la fois très simple d’utilisation et très générique. Elle a donc tendance à être très sollicitée par les applications, ce qui en fait un composant critique de l’optilisation des performances du système. De plus, les applications sont de plus en plus consommatrices de mémoire et le matériel a tendance à en contenir de plus en plus.

L’allocateur mémoire a été remplacé il y a quelques mois, l’ancien allocateur hoard2 ne permettant pas d’agrandir dynamiquement l’espace alloué à une application. Après plusieurs essais, c’est pour l’instant l’allocateur d’OpenBSD qui a été retenu. En effet, beaucoup d’allocateurs plus modernes supposent un espace d’adressage 64 bit et sont peu économes en termes de réservation d’espace mémoire.

Cependant, même l’allocateur d’OpenBSD montrait ses limites sur les systèmes 32 bit. Son paramétrage a été amélioré, et d’autres modifications ont également été faites pour réduire la fragmentation de l’espace mémoire. Cela corrige des problèmes ou GCC ne parvient pas à allouer assez de mémoire lors de la compilation de très gros fichiers (par exemple lors de la compilation de clang ou de webkit). Il reste recommandé de désactiver l’ASLR (randomization de l’espace d’adressage) dans les cas où on a besoin de beaucoup de mémoire pour une application 32 bits.

Noyau

Le noyau de Haiku est un noyau monolithique tout à fait classique pour un système UNIX. Il permet le chargement dynamique de modules, et fournit une API relativement stable pour ces derniers, ce qui permet de maintenir des pilotes facilement en dehors du dépôt de sources de Haiku.

Correction de problèmes causant le kernel panic « failed to acquire spinlock for a long time » lorsque l’affichage à l’écran des logs du noyau est activé.

Ajout d’assertions supplémentaires dans le code de gestion de la mémoire virtuelle pour essayer de détecter des problèmes au plus tôt et avant de risquer de corrompre des données importantes.

Correction de l’affichage des paramètres des appels systèmes dans strace sur x86.

Correction de problèmes dans la gestion des permissions pour write_stat (modification des informations sur un fichier comme la date de modification) dans le noyau ainsi que dans les systèmes de fichiers RAMFS, BFS et EXT4. Cela corrige des comportements étranges observés lors de l’utilisation de rsync.

Ajout d’un test vérifiant le bon fonctionnement des exceptions remontées par le FPU lors de calculs en virgule flottante (ces exceptions sont un peu difficiles à traiter dans un système multitâche, et en particulier dans Haiku où le code du noyau peut lui-même utiliser le FPU alors que ce n’est pas le cas pour d’autres systèmes).

Correction de problèmes liés au découpage et au redimensionnement des areas (zones de mémoires allouées par les APIs prévues à cet effet de BeOS, ou indirectement par mmap et d’autres fonctions permettant de manipuler l’espace mémoire). Cela corrige des problèmes pour RAMFS ainsi qu’un kernel panic observé lors du lancement de dosemu.

Correction de problèmes avec les areas en lecture seule, qui pouvaient aboutir dans certains cas à une sous-évaluation de la mémoire utilisée, aboutissant à un kernel panic, car il n’y a plus de mémoire disponible à un moment où le noyau ne s’y attend pas. Cela a été mis en évidence en particulier avec l’utilisation mémoire de certains navigateurs web, qui ont tendance à gérer la mémoire directement sans passer par l’allocateur standard du système, pour des raisons de performance.

Remise en route de guarded_heap (un allocateur mémoire qui détecte les dépassements de buffers, au prix d’une consommation mémoire fortement augmentée). Correction de problèmes mis en évidence par cet allocateur dans quelques pilotes.

Dans la structure mcontext/ucontext passée aux fonctions de traitement de signaux, ajout de plusieurs registres manquants (registres de segments, addresse de faute…). Cela est utilisé par le JIT de dosemu et va probablement permettre d’utiliser le JIT dans d’autres applications également. En effet, une approche possible pour le JIT est de déclencher volontairement un signal, afin d’intercepter l’état des registres, éventuellement de le manipuler, puis de reprendre l’exécution là où elle s’était arrêtée.

Ajout de vérification de permissions manquantes dans l’appel système get_extended_team_info.

Correction d’une possible fuite d’un descripteur de fichier dans le VFS.

Bootloader

Mise à 0 de tous les registres non utilisés lors de l’appel de fonctions du BIOS, afin d’aider à investiguer des problèmes avec certains BIOS capricieux.

Amélioration des messages d’erreurs lorsque le bootloader ne parvient pas à charger le fichier ELF du noyau. Le chargeur de fichiers ELF du noyau est volontairement incomplet pour simplifier les choses (après tout, il a besoin seulement de charger le noyau), mais cela pose problème lors de mises à jour de GCC ou lors du portage sur de nouvelles architectures, si l’organisation du fichier ELF du noyau se trouve modifiée.

Correction de problèmes de compilation lorsque des logs de debug optionels sont activés.

Documentation

La documentation de Haiku se découpe principalement en trois parties:

  • Un guide de l’utilisateur,
  • Une documentation d’API pour les développeurs d’applications,
  • Une documentation d’implémentation pour les développeurs du système lui-même.

API (Haiku book)

Documentation de la classe BControl (classe abstraite qui fournit l’API standard de la plupart des contrôles utilisables dans l’interface graphique, les rendant interchangeables dans une certaine mesure).

Documentation de AdoptSystemColors et HasSystemColors pour la classe BButton.

Ajout de documentation pour les extensions à dlfcn.h par rapport à ce qui est déjà spécifié par POSIX.

Environnement de compilation

Haiku est écrit en C++ et utilise jam (un concurrent de make) comme outil principal de compilation. Cet outil a été retenu, car il permet de définir des règles de compilation génériques et réutilisables pour faire toutes sortes de choses. La compilation de Haiku pouvant mettre en jeu trois compilateurs différents (un pour le système hôte, un pour le système Haiku cible, et un troisième pour la couche de compatibilité avec BeOS), la plupart des autres outils ne répondent pas bien aux besoins.

Suppression de règles Jam redondantes. Jam repose sur des règles nommées pour savoir quelles actions sont nécessaires pour générer une cible à partir de sources. Les règles “Application”, “Server”, “Preferences” et “Executable” étaient toutes identiques, elles ont donc toutes été remplacées par “Application” pour simplifier le système de build.

Correction de “warnings” du compilateur pour des variables inutilisées et suppression de code mort (dans le cadre du maintien d’un code propre et lisible, une tâche plus ou moins continue pour suivre l’évolution des bonnes pratiques, la disponibilité de nouveaux outils d’analyse, et absorber la dette technique qui peut s’accumuler au cours d’un projet aussi ancien).

Début de support pour GCC 15: il est ajouté dans la liste des versions du compilateur reconnues pour le système hôte, ce qui permet de compiler Haiku depuis un système Linux très récent. L’intégration en tant que compilateur cible viendra plus tard.

Remplacement de la commande which utilisée dans certains scripts de build par l’équivalent command -v, ce qui évite une dépendance à une commande non standard qui n’est pas forcément installée par défaut partout.

Dans le makefile engine (un template de makefile proposé pour développer facilement des applications pour Haiku), ajout de documentation et d’exemples pour les variables INSTALL_DIR et TARGET_DIR.

Portage de Haiku sur d’autres CPUs

RISC-V

Correction d’un problème dans un script de link qui empêchait le démarrage du noyau.

Mise à jour de paquets utilisés pour compiler le système de base.

Mise en place d’un serveur de compilation de paquets pour RISC-V, ce qui permet de remplir le dépôt de paquets pour cette architecture et d’envisager une version officielle de Haiku pour RISC-V lors de la prochaine version bêta. L’architecture RISC-V s’ajoutera ainsi au x86 (32 et 64 bit) déjà supporté.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Android n’autorisera plus que les applications des dévelopeurs autorisés

27 août 2025 à 05:58

Google a annoncé qu'à partir de 2027, seules les applications signées par des développeurs « vérifiés » par Google pourraient s'installer sur les systèmes Android certifiés. Si ce plan est réalisé, il sera impossible de distribuer une application Android sans donner ses données personnelles à Google, et Google pourra interdire à n'importe qui de distribuer des applications Android.

N'est-ce pas déjà le cas ?

Non. Il est vrai que pour distribuer des applications à travers le Play Store, il faut se faire valider par Google. Par contre, il est possible de distribuer sans l'accord de Google des applications par d'autres canaux, par exemple à travers les plates-formes indépendantes comme F-Droid, ou simplement en mettant une application à disposition sur une page web.

Ça ne concerne que les systèmes Android certifiés, qu'est-ce que ça veut dire ?

Android consiste de deux parties : la partie libre, nommée AOSP, et les Google Mobile Services (GMS). AOSP est libre, et n'importe quel constructeur peut donc l'utiliser. Les GMS sont propriétaires, et pour avoir le droit de les distribuer, un constructeur doit obéir à un certain nombre de règles et se faire certifier par Google.

Comme la plupart des applications propriétaires ne fonctionnent pas sans les GMS, la quasi-totalité des systèmes Android distribués dans le commerce sont certifiés.

Qu'est-ce que ça entraîne pour les distributions alternatives d'Android ?

Les distributions alternatives d'Android (LineageOS, e/OS, CalyxOS, GrapheneOS, etc.) sont basées sur AOSP, et ne dépendent pas de la certification. Elles pourront donc continuer à autoriser l'installation des applications des développeurs non-validés.

Qu'est-ce que ça entraîne pour les applications libres ?

Les développeurs d'applications libres ne pourront plus faire installer leur logiciel sans l'autorisation de Google. Pour certains, ça ne changera probablement pas grand chose, pour d'autres, ça confinera leurs applications aux distributions alternatives d'Android.

Par contre, ça compliquera la contribution au logiciel libre : un contributeur à une application ne pourra plus tester ses changements sur un système Android du commerce, sauf s'il a accès aux clés privées validées par Google.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Personnaliser les affiches et collections de Plex avec Kometa

Par :Aerya
27 août 2025 à 04:46

J’aime bien avoir une idée des notes IMDB/TMDB des contenus répertoriés par Plex. Kometa, un script Python empaqueté dans un Docker pour plus de simplicité, permet de m’auditer les jaquettes des contenus indexés et créer celles de collections et playlists.
On peut presque faire la même chose sur Emby/Jellyfin, avec Posterizarr qui fonctionne aussi pour Plex)

kometa1
kometa2

On peut y mettre les infos qu’on souhaite, à l’endroit qu’on veut et créer/afficher ou non les listes par diffuseur etc. Tout est configurable, pour peu qu’on prenne le temps de lire la documentation.

Je partage ma configuration actuelle, qu’il faudrait encore peaufiner, et vous pouvez en trouver d’autres ici ou .

kometa3

Voici un Docker qui fonctionne très bien. Au besoin, pour UNRAiD, Synology, QNAP, Kubernetes, la doc est complète.

services:
  kometa:
    image: kometateam/kometa:develop
    container_name: kometa
    restart: always
    environment:
      - TZ=Europe/Paris
      - KOMETA_CONFIG=/config/config.yml
      - KOMETA_RUN=true
      - KOMETA_TIMES=00:00,06:00,12:00,18:00
    volumes:
      - /home/aerya/docker/kometa/config:/config
      - /home/aerya/docker/kometa/assets:/assets
    labels:
      - com.centurylinklabs.watchtower.enable=true

KOMETA_TIMES = les heures où Kometa doit mouliner

Et voici mon config.yml
Il faut le domaine Plex + token, les clés API TMDB, FanART et MDBlist. Je voulais tester les playlists, pas encore pris le temps…

Attention, dans la partie « libraries » les noms des librairies doivent être ceux de Plex, ici Films et Séries TV

plex:
  url: https://plex.domain.tld
  token: xxx
  timeout: 120
  verify_ssl: true

  db_cache:
  clean_bundles: false
  empty_trash: true
  optimize: true
tmdb:
  apikey: xxx
  language: fr-FR
  region: FR

  cache_expiration: 60
imdb:
  cache_expiration: 30

mdblist:
  apikey: xxx

  cache_expiration: 60
fanart:
  apikey: xxx

settings:
  run_order:
  - operations
  - metadata
  - overlays
  - collections
  asset_directory:
  - /assets
  
  overlay_artwork_filetype: jpg
  overlay_artwork_quality: 100
  show_unmanaged: true
  show_unconfigured: true
  show_missing: true

  cache: true
  cache_expiration: 60
  asset_folders: true
  asset_depth: 0
  create_asset_folders: false
  prioritize_assets: false
  dimensional_asset_rename: false
  download_url_assets: false
  show_missing_assets: true
  show_missing_season_assets: false
  show_missing_episode_assets: false
  show_asset_not_needed: true
  sync_mode: append
  default_collection_order:
  minimum_items: 1
  item_refresh_delay: 0
  delete_below_minimum: false
  delete_not_scheduled: false
  run_again_delay: 0
  missing_only_released: false
  only_filter_missing: false
  show_filtered: false
  show_unfiltered: false
  show_options: false
  save_report: false
  tvdb_language: default
  ignore_ids:
  ignore_imdb_ids:
  playlist_sync_to_users:
  playlist_exclude_users:
  playlist_report: true
  custom_repo:

libraries:
  Films:
    collection_files:
    - default: streaming
      template_variables:
        region: FR
        language: fr
        sep_style: gray
        visible_library_netflix: true
        visible_library_amazon: true
        visible_library_disney: true
        visible_library_appletv: true
        visible_library_paramount: true
        visible_library_max: true

    overlay_files:
    - default: ratings
      template_variables:
        rating1: critic
        rating1_image: imdb
        rating2: audience
        rating2_image: tmdb
        rating3: user
        rating3_image: imdb
    - default: resolution
      template_variables:
        use_edition: false
    - default: streaming
      template_variables:
        region: FR

    operations:
      assets_for_all: true
      mass_audience_rating_update: tmdb
      mass_user_rating_update: imdb

  Séries TV:
    collection_files:
    - default: streaming
      template_variables:
        region: FR
        language: fr
        sep_style: gray
        visible_library_netflix: true
        visible_library_amazon: true
        visible_library_disney: true
        visible_library_appletv: true
        visible_library_paramount: true
        visible_library_max: true
    overlay_files:
    - default: ratings
      template_variables:
        builder_level: show
        rating1: critic
        rating1_image: imdb
        rating2: audience
        rating2_image: tmdb
        rating3: user
        rating3_image: imdb
    - default: resolution
      template_variables:
        builder_level: show
        use_edition: false
    - default: streaming
      template_variables:
        region: FR
    operations:
      assets_for_all: true
      mass_audience_rating_update: tmdb
      mass_user_rating_update: imdb

collections_streaming.yml

collections:

  "Netflix • Films & Séries":
    tmdb_watch_provider: Netflix
    tmdb_region: FR
    summary: "Titres disponibles sur Netflix (France)."
    sync_mode: sync
    collection_order: alpha
    visible_home: true
    visible_shared: true
    build_collection: true
    url_poster: /assets/Streaming/Netflix/poster.jpg

  "Prime Video • Films & Séries":
    tmdb_watch_provider: Amazon Prime Video
    tmdb_region: FR
    summary: "Titres disponibles sur Amazon Prime Video (France)."
    sync_mode: sync
    collection_order: alpha
    visible_home: true
    visible_shared: true
    build_collection: true
    url_poster: /assets/Streaming/PrimeVideo/poster.jpg

  "Disney+ • Films & Séries":
    tmdb_watch_provider: Disney Plus
    tmdb_region: FR
    summary: "Titres disponibles sur Disney+ (France)."
    sync_mode: sync
    collection_order: alpha
    visible_home: true
    visible_shared: true
    build_collection: true
    url_poster: /assets/Streaming/DisneyPlus/poster.jpg

  "Apple TV+ • Films & Séries":
    tmdb_watch_provider: Apple TV+
    tmdb_region: FR
    summary: "Titres disponibles sur Apple TV+ (France)."
    sync_mode: sync
    collection_order: alpha
    visible_home: true
    visible_shared: true
    build_collection: true
    url_poster: /assets/Streaming/AppleTVPlus/poster.jpg

  # (Optionnel) Réseaux pour séries — utile pour “Originals”
  "Netflix • Séries (Network)":
    tmdb_network: Netflix
    summary: "Séries produites/diffusées par Netflix."
    sync_mode: sync
    collection_order: alpha
    visible_home: false
    visible_shared: true
    url_poster: /assets/Networks/Netflix/poster.jpg

  "Apple TV+ • Séries (Network)":
    tmdb_network: Apple TV+
    summary: "Séries Apple Originals."
    sync_mode: sync
    collection_order: alpha
    visible_home: false
    visible_shared: true
    url_poster: /assets/Networks/AppleTVPlus/poster.jpg

overlays.yml

overlays:

  ratings:
    template: rating
    default:
      rating1: imdb
      rating2: tmdb
      position: top_right
      font: Roboto-Bold
      font_size: 62
    operations:
      delete_overlays: false

  resolution:
    template: resolution
    default:
      position: bottom_left
      font: Roboto-Bold
      font_size: 70
    operations:
      delete_overlays: false

  streaming:
    template: streaming
    default:
      position: bottom_right
      region: FR
      style: logo
      allow_multiple: true
      font: Roboto-Bold
      font_size: 50
    template_variables:
      include:
        - Netflix
        - Amazon Prime Video
        - Disney Plus
        - Apple TV+
        - Canal+
        - Paramount+
        - OCS
    operations:
      delete_overlays: false

Si après un test, vous voulez que Plex revienne par défaut, Kometa propose un outil de reset.

kometa4

Loading

Reçu hier — 26 août 2025Linux

La Fondation Linux avertit que l'Europe risque de prendre du retard sans une stratégie open source plus forte, dans son rapport 2025 World of Open Source Europe

26 août 2025 à 10:10
La Fondation Linux avertit que l'Europe risque de prendre du retard sans une stratégie open source plus forte, dans son rapport 2025 World of Open Source Europe

La Linux Foundation a publié le rapport 2025 World of Open Source Europe Report, qui décrit l'open source comme un avantage stratégique pour l'Europe, mais avertit que l'absence de stratégie cohérente, d'adhésion des dirigeants et d'alignement des politiques pourrait freiner le continent. Il révèle que l'open source est non seulement largement...

Linux 6.17-rc3 est sorti : il est décrit comme « un peu plus volumineux que d'habitude », mais Linus Torvalds a déclaré qu'il restait « bien dans les paramètres normaux »

26 août 2025 à 09:29
Linux 6.17-rc3 est sorti : il est décrit comme « un peu plus volumineux que d'habitude », mais Linus Torvalds a déclaré qu'il restait « bien dans les paramètres normaux »

Linus Torvalds vient d'annoncer la sortie de Linux 6.17-rc3. Le calendrier de sortie était un peu plus inhabituel en raison du programme de voyage de Torvalds, mais il correspondait tout de même au calendrier habituel du dimanche après-midi. La troisième version candidate est considérée comme « un peu plus volumineuse que d'habitude...

Revue de presse de l’April pour la semaine 34 de l’année 2025

26 août 2025 à 05:21

Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

[ZDNET] 10 applications open source que je recommande à tous les utilisateurs Windows de télécharger gratuitement

✍ Jack Wallen, le jeudi 21 août 2025.

L’open source n’est peut-être pas la première chose qui vous vient à l’esprit avec Windows. Mais ces outils gratuits peuvent considérablement booster votre productivité.

[l'Humanité.fr] Fête de l'Humanité: climat, industrie et logiciel libre au menu de l'espace sciences et numérique

✍ Anna Musso, Pierric Marissal, le dimanche 17 août 2025.

Fort du succès de ces deux dernières années, l’espace sciences et numérique vous accueille à nouveau avec des animations, des conférences et des débats en présence de personnalités du monde scientifique.

[Place Gre'net] Un guide pour inciter les Grenoblois à adopter les logiciels libres (€)

✍ Joël Kermabon, le lundi 11 août 2025.

La Ville de Grenoble lance un guide pratique pour inciter ses habitants à adopter les logiciels libres. Disponible en version papier et en ligne, ce kit offre conseils, solutions et ressources locales pour naviguer autrement sur ordinateur ou smartphone. Objectif : réduire la dépendance aux géants du numérique, prolonger la durée de vie des équipements et favoriser un usage plus éthique et écologique des technologies de l’information.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Reçu avant avant-hierLinux

Streaming à la carte sans stockage local : Decypharr, débrideurs et torrenting

Par :Aerya
25 août 2025 à 17:53

Je continue mon tour d’horizon des solutions de streaming à la carte, légales ou non selon les pays, et qui permet de se créer et maintenir une bibliothèque multimédia sans stockage local.

Je n’aborderai pas publiquement les solutions de streaming depuis des .nzb directement.

Sur le même principe que Stremio, Vortex, ou RDT-Client/Zurg, ou encore DebridMediaManager, on peut utiliser Decypharr pour simuler un client BitTorrent (qBittorrent) et streaming le contenu de .torrent depuis des débrideurs, dont TorBox.

Je vais détailler ici l’installation manuelle de Decypharr, Prowlarr et Radarr/Sonarr/Plex mais tout est notamment inclus dans le script SSDv2 (avec une grosse et belle nouveauté à venir).

J’en profite pour remercier Laster13 et Teal-C pour leurs réponses à mes questions.

La dernière mouture de Decypharr embarque rClone et sa configuration sera automatisée. Mes tests sont réalisés avec Prowlarr et des indexeurs FR publics dont YGG via « api.eu », le débrideur AllDebrid ; et je ne « tape » que dans le contenu en cache chez AD (donc aucun téléchargement).
Verdict : RàS pour les films, quelques saisons de séries manquantes uniquement dans le cache, OK avec le téléchargement.

Le plus important est de bien comprendre que si on demande aux *arrs d’organiser les bibliothèques dans /mnt/Bibliothèques, ils ne vont y mettre que des symlinks vers le montage rClone d’AllDebrid (/mnt/decypharr).
Les *arrs, pour traiter les fichiers, tout comme Plex (ou autre) pour leur lecture, doivent avoir accès à ce montage rClone.
C’est pourquoi il est impératif de monter ce dossier en volume pour chaque Docker devant y avoir accès.

Arborescence du test :

aerya@StreamBox:/$ tree -L 2 /mnt/
/mnt/
├── Bibliothèques
│   ├── Films
│   └── Séries
├── Data
│   ├── lost+found
│   ├── quotaless
│   └── rCloneCache
└── decypharr
    ├── alldebrid
    └── qbit
        ├── radarr
        └── sonarr

Bibliothèques : dossier racine pour les *arrs
Data/rCloneCache : j’avais déjà le dossier pour autre chose, j’utilise le même

decypharr/alldebrid : montage de mon compte AD
decypharr/qbit : dossier de téléchargement (simulé) des fichiers. Les sous-dossiers radarr/sonarr seront ajoutés automatiquement lors de la configuration de Decypharr (tags)

Il faut installer et lancer Decypharr avant le reste vu que tout dépend ensuite du montage du débrideur et des symlinks. Idem s’il faut relancer le Docker Decypharr, il faut relancer les autres ensuite.

services:
  decypharr:
    image: cy01/blackhole:latest
    container_name: decypharr
    restart: always
    cap_add:
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined
    ports:
      - 8282:8282
    volumes:
      - /mnt:/mnt:rshared
      - /mnt/decypharr/qbit:/mnt/decypharr/qbit
      - /home/aerya/docker/decypharr/configs/:/app
    environment:
      - TZ=Europe/Paris
      - PUID=0
      - PGID=0
    devices:
      - /dev/fuse:/dev/fuse:rwm
    labels:
      - com.centurylinklabs.watchtower.enable=true

/mnt/decypharr/qbit:/mnt/decypharr/qbit étant le montage qui sera commun aux *arrs et Plex.

La configuration n’est pas vraiment expliquée dans la doc, la mienne n’est peut-être pas optimale mais fonctionne.

Je n’ai rien modifié dans l’onglet général. J’ai testé les notifications Discord (attention on voit la passkey des trackers utilisés) mais y’a vraiment pas d’intérêt si on ne fait qu’utilise le cache du débrideur (pas de téléchargement).

decypharr1

Pour la partie débrideur, on fait notre choix, on colle une clé API (ou plusieurs) et j’ai configuré le montage dans

/mnt/decypharr/alldebrid/__all__


On peut ajouter plusieurs débrideurs. On pourra les attribuer à un *arr lié à Decypharr et même les sélectionner lors de l’ajout manuel d’un .torrent

J’utilise le WebDav et je NE COCHE PAS la case Download Uncached pour qu’il ne télécharge aucun fichier (sur AD) mais n’utilise que son cache.
Je fais ça parce que je voulais tester le cache d’AD et ne voulais pas télécharger des fichiers sans les partager. On peut tout à fait faire les 2 mais attention, il n’y aura pas de seed (donc ratio 0). A ne pas faire chez les Tier 1 sous peine de voir son compte banni !
Certains ont créé des scripts qui captent les .torrent utilisés pour les mettre en seed depuis un client local ou sur un serveur. Dans ce cas, Decypharr est utilisable sans crainte sur les trackers privés.

decypharr2

Configuration du client qBittorrent émulé. Je met le chemin qui correspond au volume local dont je parlais au début

/mnt/decypharr/qbit
decypharr3

On peut ajouter les *arrs soit depuis Decypharr soit depuis les *arrs eux-mêmes. Je n’ai qu’AD en débrideur j’ai donc laissé la sélection auto mais on peut choisir.
Par exemple Radarr sur AD et Sonarr sur RD ou Sonarr4K sur TB etc. Selon les goût de chacun. Ce qui est certain, c’est que le cache de contenu MULTi/FRENCH est évidemment plus important sur AD et RD que sur TB, principalement utilisé par les anglophones pour Stremio.

decypharr4

Le Repair est le contrôle et la réparation des symlinks. Qui peuvent être cassés si le contenu lié est effacé du débrideur. Dans ce cas, selon la config, ça peut soit rechercher sur le débrideur (si le fichier a été renommé, vu que ça fonctionne avec le hash et non le nom) soit ça ira chercher un autre .torrent via les *arrs.
Pour l’instant je laisse l’option par défaut à savoir « per torrent » mais il est peut-être préférable d’utiliser « per file ». Dans le cas d’un .torrent de saison complètement, que ça ne recherche que l’épisode manquant (du cache) plutôt que de tout relancer.
Je l’ai mis en autotmatique, toutes les 24h.

decypharr5


Et enfin la partie rClone. Le monte globalement dans /mnt/decypharr et souhaite utiliser un cache (100Go) dans un dossier (et disque) qui me sert déjà à ça : /mnt/Data/rCloneCache
On peut sans doute améliorer cette configuration mais Plex lit un fichier de 94Go sans broncher…


decypharr6

Avec le mode de téléchargement activé, voici le rendu. PausedUP signifie que le .torrent est complété (et de fait plus en seed).

decypharr7

Je ne montre que l’exemple de configuration de Radarr. Pour Sonarr c’est la même logique. Chez moi c’est derrière un VPN pour des interrogations de sources hors Prowlarr et NZBHydra, il n’y a donc pas de port de publié.
Je retire tous les volumes par défaut pour ne monter que /mnt/decypharr/qbit:/mnt/decypharr/qbit et /mnt:/mnt

services:
  radarr:
    container_name: radarr
    restart: always
    network_mode: container:gluetun-mullvad
    environment:
      - TZ=Europe/Paris
      - PUID=0
      - PGID=0
    volumes:
      - /home/aerya/docker/radarr:/config
      - /mnt/decypharr/qbit:/mnt/decypharr/qbit
      - /mnt:/mnt
    labels:
      - com.centurylinklabs.watchtower.enable=true
    image: linuxserver/radarr:nightly

Configuration du dossier racine : /mnt/Bibliothèques/Films

radarr1

Configuration du client de téléchargement si on n’a pas ajouté Radarr depuis Decypharr. Il faut sélectionner qBittorrent

radarr2

Et dans l’adresse il faut mettre l’URL (ou l’IP) de Decypharr et le port (et SSL si vous utilisez une URL et un reverse proxy).
Le nom d’utilisateur et le mot de passe sont l’URL de Radarr et sa clé API.
La catégorie : radarr (et donc sonarr pour Sonarr ofc!)

Ne surtout pas cocher la case Sequential Order (sinon ça DL localement)

radarr3

Et comme le même chemin/volume est monté dans chaque Docker, il n’y a aucun Remote Path Mapping à mettre

radarr4

Lors de l’ajout d’un film, la complétion est quasi instantanée pour peu que le fichier cherché soit déjà dans le cache d’AllDebrid. Si vous activez le téléchargement des fichiers non encore en cache, ça peut prendre quelques minutes.


radarr5

En regardant de plus près, on voit bien que c’est un symlink vers le cache d’AllDebrid

aerya@StreamBox:/mnt/Bibliothèques/Films$ ls -l Alien\ -\ Romulus\ \(2024\)/
total 4
lrwxrwxrwx 1 root root 208 Aug 25 18:55 Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv -> /mnt/decypharr/alldebrid/__all__/Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY/Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv
ncdu 1.19 ~ Use the arrow keys to navigate, press ? for help
--- /mnt/Bibliothèques/Films/Alien - Romulus (2024)- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@   4.0 KiB [###################################################]  Alien.Romulus.2024.MULTi.VFF.2160p.UHD.BluRay.REMUX.DV.HDR.HEVC.TrueHD.7.1.Atmos-ONLY.mkv


Plus globalement, tous les fichiers sont bien chez AllDebrid, monté via WebDav/rClone et je n’ai localement que des symlinks qui ne prennent aucune place.
En théorie, on pourrait se faire cette installation sur une Carte MicroSD de quelques Go 🙂

ncdu 1.19 ~ Use the arrow keys to navigate, press ? for help
--- /mnt ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   15.9 TiB [###################################################] /decypharr
    4.0 MiB [                                                   ] /Bibliothèques

Pour terminer, la configuration de Plex. Toujours avec /mnt:/mnt de monté pour garantir l’accès aux symlinks.

services:
  pms-docker:
    container_name: plex
    restart: always
    ports:
      - 32400:32400/tcp
      - 33401:33401/tcp
      - 3005:3005/tcp
      - 8324:8324/tcp
      - 32469:32469/tcp
      - 1900:1900/udp
      - 32410:32410/udp
      - 32412:32412/udp
      - 32413:32413/udp
      - 32414:32414/udp
    environment:
      - PLEX_UID=0
      - PLEX_GID=0
      - TZ=Europe/Paris
      - PLEX_CLAIM=claim-xxx
      - ADVERTISE_IP=http://192.168.0.163:32400/
    hostname: plex.xxx.xxx
    volumes:
      - /home/aerya/docker/plex:/config
      - /mnt:/mnt
      - type: tmpfs
        target: /transcode
        tmpfs:
          size: 4g
    labels:
      - com.centurylinklabs.watchtower.enable=true
    image: plexinc/pms-docker:latest
plex1
plex2

Loading

Agenda du Libre pour la semaine 35 de l'année 2025

24 août 2025 à 09:14

Calendrier Web, regroupant des événements liés au Libre (logiciel, salon, atelier, install party, conférence), annoncés par leurs organisateurs. Voici un récapitulatif de la semaine à venir. Le détail de chacun de ces 15 événements (France: 13, Suisse: 2) est en seconde partie de dépêche.

Sommaire

[FR Beauvais] les outils bureautiques libres : LibreOffice, Firefox, Thunderbird – Le lundi 25 août 2025 de 09h30 à 12h00.

En présentiel ou en visio

Le navigateur Firefox:

  • Personnalisation: affichage des menus et de la barre personnelle (importance de travailler en local et de ne pas faire appel systématiquement aux moteurs de recherches)
  • Survol des menus
  • Page(s) d’accueil à la carte
  • Moteur de recherche par défaut
  • Gestion des marque-page (favoris)
  • Historique de navigation
  • Historique des téléchargements
  • Suppression des cookies
  • Gestion des identifiants et des mots de passe
    L’avantage de gérer sa messagerie avec logiciel comme Thunderbird est de pouvoir configurer plusieurs comptes de fournisseurs différents dans la même fenêtre et de pouvoir travailler en mode déconnecté, contrairement au webmail. Au programme:

  • Paramètres de base: destinataires, objet, corps du message, pièce jointe

  • Préférences personnelles

  • Import/export du carnet d’adresses

  • Listes de distribution

  • Règles de tri

  • Accusés de réception

  • Chiffrement des messages
    En présentiel à l’Écospace et en visio à l’adresse https://url.oisux.org/samedi-du-libre

  • Mot de passe principal

  • Tentative d’accéder aux mots de passe par l’arborescence https://support.mozilla.org/fr/kb/profils-ou-firefox-conserve-donnees-utilisateur#w_quelles-informations-sont-stockaees-dans-mon-profila tentative d’ouverture avec gedit, vim, « DB Browser for SQLite »)

  • Blocage de contenu, contrôle de la publicité et des mouchards

  • Modules complémentaires: enregistrement des vidéos

  • Sauvegarde et duplication des paramètres et des données d’un poste Linux ou Windows à un autre poste Linux ou Windows

  • Synchronisation des paramètres et des données sur plusieurs postes (nécessite de créer un compte chez Firefox (n’entraine pas de pub)

La messagerie avec Thunderbird:

  • Avantages d’un client mail comme Thunderbird: configuration de plusieurs comptes dans la même interface et possibilité de travailler en mode déconnecté contrairement au webmail
  • Configuration d’un compte mail dans Thunderbird
  • Destinataires, objet, corps du message, pièce(s) jointe(s)
  • Mode texte ou HTML, destinataires en copie automatique, paramètres d’affichage, fonctions de recherche, archivage, indésirables, accusés de réception, signatures automatiques, modèles
  • Import/export du carnet d’adresses sous plusieurs formats
  • Listes de distribution
  • Gestion des dossiers, règles de tri et réponses automatiques
  • Sauvegarde et restauration des mails, des adresses et des paramètres
  • Chiffrement/Déchiffrement des messages
  • https://www.oisux.org/index.php/les-supports/documentation/les-solutions-de-messagerie-respectueuses-des-donnees-personnelles

Le traitement de texte avec LibreOffice Writer:

  • Saisie de texte, connaissance du clavier
  • Mise en forme simple
  • Enregistrement, format de fichier
  • Mise en forme élaborée
  • Page de garde
  • Pied de page
  • Sommaire automatisé
  • Publipostage
  • Texte pour s’entraîner: https://www.faux-texte.com/lorem-ipsum-15.htm

Le tableur avec LibreOffice Calc:

  • Fonctionnalités de base
  • Saisie de données
  • Opérations simples
  • Gestion des feuilles de calcul
  • Références absolues
  • Répéter les titres
  • Nommer une cellule
  • Protection des cellules
  • Tri et filtres
  • Fonction Si
  • Fonction Recherche

LibreOffice Draw

Les outils du quotidien: Capture d’écran, capture vidéo, compression, reconnaissance de texte, coffre-fort de mots de passe, modification de pdf, cartographie

modification de PDF: https://peertube.fr/w/rQmdNoJhEoWPh3PfLn8kFw

capture d’écran avec Flamshot: https://peertube.fr/w/ijPpc3zL4jaax3CeFGaWrV

[FR Vallauris – Sophia Antipolis] Rencontre Accès Libre – Le lundi 25 août 2025 de 18h00 à 21h00.

Rencontres Accès Libre

Certains les appellent «install party», d’autres encore «Soirées Linux», mais les Rencontres Accès Libre sont tout cela en même temps, et bien plus encore…

Entre autres, c’est l’occasion de:

  • discuter, échanger, expliquer;
  • installer des logiciels libres;
  • et, toute autre idée coopérative de solidarité à but non lucratif!

C’est un évènement organisé conjointement par Linux Azur et le SHL.

[FR Beauvais] La solution cloud Nextcloud – Le mardi 26 août 2025 de 09h30 à 12h00.

En présentiel ou en visio

Au programme:

  • Session sur le serveur et découverte de l’environnement.
  • Synchronisation en local de ses données personnelles, configuration des clients Windows, Linux, Androïd et Iphone.
  • Historique des versions de document.
  • Utilisation de Nextcloud dans le cadre d’une organisation: groupes et partages
  • Tests sur les partages: lecture, modification, re-partage.
  • Utilisation du planning, de la messagerie et du carnet d’adresses
  • Exploration des solutions serveur (hébergement, auto-hébergement).

  • Ecospace, Ecospace, 136 rue de la Mie au Roy, Beauvais, Hauts-de-France, France

  • https://www.oisux.org

  • oisux, logiciels-libres, atelier, nextcloud, cloud

[FR Beauvais] Les outils graphiques pour réaliser des supports de com – Le mercredi 27 août 2025 de 09h30 à 12h00.

Atelier en présentiel ou en visio

Venez apprendre les bases du logiciel Gimp pour effectuer des retouches photos… Alternative gratuite et libre à Photoshop.

Avec ce logiciel simple d’utilisation pour une prise en main rapide et basique, vous pourrez redimensionner vos images, transformer les couleurs, appliquer des filtres, modifier de nombreux paramètres et bien d’autres choses encore.

En présentiel ou en visio (adresse du salon: https://url.oisux.org/samedi-du-libre)

[FR Le Mans] Permanence du mercredi – Le mercredi 27 août 2025 de 12h30 à 17h00.

Assistance technique et démonstration concernant les logiciels libres.

Il est préférable de réserver votre place à contact (at) linuxmaine (point) org

Planning des réservations consultableici.

[FR Lyon] Meetup Python de l’été – Le mercredi 27 août 2025 de 18h00 à 21h00.

L’été, pas de présentation !

C’est le moment de se retrouver autour d’un verre pour papoter Python ou autre et toujours dans le respect de la charte de l’AFPy !

[FR Beauvais] Montage vidéo avec Openshot – Le jeudi 28 août 2025 de 09h30 à 12h00.

En présentiel ou en visio

OpenShot est un éditeur vidéo multi-plateforme: https://www.openshot.org/fr/

On abordera les fonctionnalités suivantes:

[FR Quimper] Redistribution gratuite d’ordinateurs de bureau sous Debian – Le jeudi 28 août 2025 de 09h30 à 10h30.

La distribution gratuite d’ordinateurs de bureau sous Debian au Centre social des Abeilles de Quimper continue tout l’été 2025 et même après…:-)

Le Centre des Abeilles, avec l’aide technique de Linux Quimper, récupère depuis 2009 des ordinateurs déclassés par des administrations et des entreprises. Ces ordinateurs sont reconditionnés avec des logiciels libres autour de Linux qui est un système équivalent à Windows et MacOs mais libre et gratuit. Ils sont utilisables immédiatement, gratuitement et en toute légalité dans tous les domaines de l’informatique comme la bureautique, internet, le graphisme, l’audio-vidéo, etc. Plus de 5500 ont été donnés depuis 2009 à des personnes et associations. Si cette action de solidarité vise à réduire la fracture numérique en permettant l’accès à l’informatique aux personnes et associations qui en sont écartées pour des raisons financières, elle a aussi pour but de diffuser largement les logiciels libres et en particulier Linux. Elle a aussi pour objectif de limiter le gaspillage du matériel informatique, réduire les déchets et ainsi de participer à la limitation du changement climatique à notre petite échelle…

Ces dons sont ouverts aux adhérent·e·s du Centre des Abeilles. L’adhésion (13€) peut se faire au moment du don.

La distribution a lieu en général tous les jeudis matin mais les bénévoles du Centre des Abeilles peuvent s’adapter aux disponibilités des personnes désirant bénéficier de ce don.

ATTENTION: Cette proposition ne s’adresse qu’aux personnes habitant le Sud-Finistère.

Inscription préalable au 07 44 61 10 61.

[FR Lyon] Pique-nique du Libre – Le jeudi 28 août 2025 de 19h00 à 23h00.

Rendez-vous estival annuel initié par l’APRIL, l’ALDIL propose aux libristes et leurs mouvances de se retrouver pour un pique-nique partagé.

Une manière de démarrer la saison et causer librement des activités à venir sur la région lyonnaise.

Nous partagerons un pique-nique composé de ce que vous amènerez (sucré/salé, plat/pétillant,…).
Celles et ceux qui le souhaitent proposeront des jeux/activités (frisbee, volley, hula hoop, vol libre, guitare, flutiot…).
Surtout pas trop de programme ! Prenons le temps de nous (re)trouver (listings de recettes de salades, desserts, sandwich, tartes… autorisés si sous licence libre…).

Ce moment est ouvert à tous, amis, familles, licornes, gnous, geeks, pas (encore) libristes (mais si…).

Vous êtes donc largement invités à diffuser ce message autour de vous et dans les communautés « du libre » que vous fréquentez ou côtoyez.

Rendez-vous au parc de Gerland (métro B – Station Gerland)
On se retrouvera entre l’allée de la grande prairie et l’allée des berges dans l’alignement de la rue Jean-Pierre Chevrot.
Entrée 24 allée Pierre de Coubertin – 69007 Lyon

Attention: Le règlement du parc indique que ce n’est pas un lieu de consommation d’alcool, merci de ne pas avoir de comportement alcoolophile ostentatoire.

[FR Beauvais] Gestion d’association, adhérents et compta, avec Paheko – Le vendredi 29 août 2025 de 09h30 à 12h00.

Atelier en présentiel ou en visio

Programme de la séance (dernière mise à jour: https://www.oisux.org/index.php/les-supports/documentation/gestion-des-adherents-et-comptabilite-dune-association-avec-paheko)

*Présentation du logiciel: *https://paheko.cloud

Déroulé de la séance

Possibilité d’un essai gratuit: https://paheko.cloud/essai/ pour lequel il faut renseigner: le nom d’une association, un couple Nom & Prénom et une adresse mail.

Exemple utilisé pendant les séances: https://demopaheko.bvs2l.info installé chez un hébergeur internet.

On se place dans le cas où l’association utilise le logiciel à la fois pour la gestion des adhérents ET pour la compta. (Il est possible de n’utiliser que l’un ou l’autre.)

A) Fonctionnalités de base et premières manipulations

1) Enregistrement d’un premier adhérent (par défaut « membre actif »).

2) Importation d’une liste d’adhérents existant déjà dans un tableau (téléchargement de la liste).

3) Sélection des informations apparaissant dans la liste des adhérents.

4) Déclaration d’une cotisation, obligatoire ou pas, dans la rubrique [Membres/Activités & cotisations]. La cotisation est considérée comme une activité, qui fera l’objet ou non d’un paiement.

5) Établissement du tarif de la cotisation (ou des tarifs de la cotisation). À ce stade, il faut que la Compta existe, car le but est que les cotisations soient prises en compte dans la compta. Donc on va créer un premier exercice comptable, en déclarant dans un premier temps un Compte Courant et/ou un Compte Épargne.

6) Retour sur la cotisation dans la rubrique [Membres/Activités & cotisations] avec l’établissement du tarif de la cotisation, ou des tarifs de cotisation, par exemple un tarif de base et un tarif réduit.

7) Saisie des premières cotisations, selon le tarif, en chèque ou en espèces.

8) Exemples de saisies de dépenses: assurance, papèterie, etc. Et de recettes: dons, subventions, etc.

9) Aperçu du Compte de résultat et du Bilan.

10) Convocation à l’Assemblée Générale (N.B.: l’envoi de mail n’est pas possible dans le cas d’un essai gratuit sur https://paheko.cloud).

11) Ajout d’une activité, par exemple une sortie à un spectacle. Déclaration de son tarif.

12) Enregistrement du mot de passe d’un adhérent. Ou « première connexion »: enregistrement du mot de passe par l’adhérent.

13) Choix des informations personnelles de l’adhérent qui pourront être modifiées par lui-même.

14) Création de nouvelles catégories de membres avec des droits de gestion: Membres du Bureau, Membres du CA, Trésorier. Avec par exemple les droits suivants:

  • Les membres du CA peuvent ajouter ou modifier des membres mais ne peuvent pas en supprimer ni modifier la structure. En lecture seulement pour la Compta.
  • Les membres du Bureau: comme les membres du CA, mais peuvent en plus saisir des écritures dans la compta mais sans changer son organisation.
  • Le Trésorier peut administrer entièrement la Compta mais pas modifier la configuration du logiciel.
  • L’administrateur, c’est-à-dire le premier compte qui a été déclaré à l’installation du logiciel, a tous les droits, y compris celui de modifier la configuration du logiciel.

15) Édition des paramètres de présentation de l’association: nom, adresse postale, adresse mail et logo.

16) Gestion des rappels automatiques

17) Extensions: cartes de membres, suivi du temps, fiches de frais

B) Autres fonctionnalités

1) Enregistrement d’une dépense ou d’une recette et choix d’un compte par défaut ou du plan comptable. Intégration d’un compte dans la liste des favoris.

2) Modification des champs de la fiche des membres, par donner la possibilité aux membres de mettre une photo.

3) Rattachement de membres à un autre membre

4) Homonymes

5) Recherches avancées

6) D’un Paheko à l’autre

C) Fonctionnalités avancées, en s’appuyant sur la documentation du site du logiciel: https://paheko.cloud/aide

[FR La Ferté Saint-Aubin] Réunion publique mensuelle – découverte des logiciels libres – Le vendredi 29 août 2025 de 20h30 à 23h30.

Re-Boot est une association qui s’inscrit dans le mouvement de l’économie sociale et solidaire dans le domaine informatique, engagée dans la promotion des logiciels libres et de Linux. L’association est basée dans le Loiret (45) à La Ferté Saint-Aubin. Nous sommes heureux d’accueillir toutes les personnes qui souhaitent découvrir les logiciels libres.

Découvrez les sujets de ce mois sur notre site Internet à la rubrique Agenda/Thèmes à l’adresse https://rebootinformatique.org/?reunions-mensuelles--les-thematiques

Venez nombreuses et nombreux pour découvrir nos activités.

Le bureau.

[FR Eysines] Ğmarché – Le samedi 30 août 2025 de 10h00 à 15h00.

Venez échanger en Ğ1/June et découvrir la Monnaie Libre.
Nous sommes tous riches de quelque chose à proposer: services, savoir-faire, objets !
Une auberge espagnole le midi sera l’occasion de partager un moment de convivialité pour se retrouver.
Marché en extérieur

Détails, programme et inscription en se rendant sur ce formulaire 

L’adresse précise vous sera communiquée par courriel de confirmation lors de votre inscription.

Contact Sarah: 07 60 30 35 89

retrouvez cette annonce sur le forum de Monnaie-Libre (https://forum.monnaie-libre.fr/t/gmarche-a-eysines-aout-2025/32532)

[CH Genève] Atelier Linux – Le samedi 30 août 2025 de 10h30 à 12h30.

Linux ou GNU / Linux est le système d’exploitation collaboratif et libre de l’écosystème numérique qui est moins gourmand en ressources, plus facile à gérer, plus performant et plus sûr à utiliser.

Au contraire de ses concurrents privatifs Microsoft et Apple, Linux est une solution développée pour une communauté internationale où tout le monde peut contribuer, l’adapter et l’améliorer constamment.

[CH Genève] Café Linux – Le samedi 30 août 2025 de 13h00 à 14h00.

Café Linux est né comme une alternative pour découvrir, explorer et évoluer avec GNU/Linux.

On considère le système d’exploitation GNU / Linux comme la troisième alternative dans le marché et comme un concurrent direct aux deux systèmes d’exploitation Windows et MacOS.

Bref, venez découvrir sa convivialité, ses avantages et ses performances dans votre ordinateur personnel pour les études, la maison et le travail.

[FR Quimper] Permanence Linux Quimper – Le samedi 30 août 2025 de 16h00 à 16h00.

Tous les samedis de 16h à 18h, Linux Quimper vous donne rendez-vous au Centre social des Abeilles, 4 rue Sergent Le Flao (quartier de la Terre Noire) Quimper.

Nous vous proposons lors de ces rencontres d’échanger autour du Libre et de Linux en particulier

Vous pouvez venir pour vous faire aider, ou aider, à installer et paramétrer une distribution GNU/Linux de votre choix ou des logiciels libres sur votre ordinateur.

Recommandations:

  • Sauvegardez vos données avant de venir.
  • Pour une installation de Linux si vous voulez conserver Windows, libérez de la place sur le disque dur (20 Go minimum) et défragmentez Windows.
  • Nous prévenir, éventuellement, de votre passage via le forum.

Vous pouvez aussi venir pour une première prise d’informations et de contacts.

Commentaires : voir le flux Atom ouvrir dans le navigateur

L'IA s'immisce dans le noyau Linux : innovation nécessaire ou bombe à retardement pour l'écosystème numérique mondial ? Certaines voix s'élèvent pour demander une politique officielle d'urgence

23 août 2025 à 14:07
L'IA s'immisce dans le noyau Linux : innovation nécessaire ou bombe à retardement pour l'écosystème numérique mondial ?
Certaines voix s'élèvent pour demander une politique officielle d'urgence

L'intelligence artificielle s'immisce dans tous les recoins de l'informatique : assistants virtuels, génération de code, détection de menaces, automatisation de la maintenance logicielle… Désormais, même le noyau Linux, considéré comme l'une des pièces de code les plus critiques au monde, est concerné....

Par où commencer Kubernetes ?

21 août 2025 à 18:32

Réflexion issue d’une discussion sur le Discord de Cuistops concernant le fait que Talos pourrait ne pas être le meilleur point de départ pour s’attaquer à cette technologie d’infrastructure qui a balayé le monde de l’orchestration de containers en une petite dizaine d’années. Pour illustrer pourquoi il n’y a pas de réponse absolue à cette question, je me suis dit que vous décrire mon parcours concernant l’univers des containers et Kubernetes en particulier (aussi bien au niveau perso que pro) serait éclairant sur certains points.

Aux origines : Docker

Le moins qu’on puisse dire, c’est que mon entrée dans l’univers des containers, en particulier via docker, n’était pas brillante. Je conserve avec malice le premier billet que j’ai consacré à ce sujet en 2016 pour illustrer à quel point je me trompais sur la technologie, que je n’avais jusque là pas vraiment vu, encore moins au niveau professionnel. J’ai heureusement rattrapé cette erreur depuis, aussi bien à la faveur de formations au travail (merci Thomas Perelle 🙂 ) qu’au niveau perso, où mes propres expérimentations m’ont conduit à partager ma découverte et mon utilisation de Docker Swarm. J’ai bien rattrapé le coup, hein ?

D’ailleurs, Swarm a été pour moi la découverte de la notion d’orchestration. Que j’ai pu creuser cette fois au niveau pro en 2018 après un premier tout petit pas vers l’univers Kubernetes par la porte OpenShift à la faveur d’un workshop de deux jours par un collègue qui sera réellement un mentor pour les années suivantes, Julien Francoz. Je n’ai malheureusement pas gardé grand chose de ce workshop, étant donné que je n’avais aucune plateforme de ce type dans mon pôle client, encore moins de Kubernetes. Tout juste on commençait à avoir des clients qui cherchaient à déployer leurs applis en mode container sur des serveurs classiques, avec Docker. Sans pratique, la théorie s’efface vite, d’autant qu’en 2018, les usages « domestiques » n’étaient pas légion, donc les articles de blog non plus, encore moins autour d’Openshift. C’est en 2019 que tout change.

2019 : La découverte de Kube, de la containerisation d’applications, d’Azure, de terraform (tout en même temps)

Je vous passe le contexte de comment j’en suis arrivé à cette situation intense qui aura duré 5 mois, mais oui, j’ai découvert Kubernetes d’une façon un peu particulière : service cloud managé, sur Azure, el famoso « AKS« , à devoir migrer des applications précédemment hébergées sur des serveurs virtuels Debian dépassés, avec un cluster déployé manuellement qu’on a tenté de « terraformer » après-coup, avec toute la « qualité » de l’API d’Azure d’alors. Et je remercie encore Julien d’avoir pris autant de temps à me soutenir dans cet apprentissage express (la notion de mentor n’était pas galvaudée, clairement).

Moi pendant la migration du client sur Kubernetes

Service cloud Managé veut dire qu’on ne gère pas certains aspects importants de la vie d’un cluster : tout le control plane est masqué, vous ne voyez que les nœuds, vous ne vous occupez pas trop de certains aspects comme la rotation des certificats, les mises à jour sont automatisées (vous indiquez une version cible, le service s’occupe de la montée de version du control plane, puis des nœuds un par un), et vous bénéficiez d’intégrations avec le reste de l’infra du fournisseur, au niveau du réseau, du stockage, des capacités comme l’autoscaling (vous augmentez et réduisez automatiquement le nombre de nœuds en fonction de la charge ou des réservations de ressources des pods à déployer). L’installation se fait en trois/quatre clics via l’interface web, une ligne de commande avec l’utilitaire maison, ou un peu plus de lignes de code si on le fait via un outil d’infrastructure as code.

Bref, c’est cool, ça permet de se concentrer sur les aspects opérationnels des applications déployées, mais même comme ça, je vous avoue que AKS tel que Microsoft le proposait n’était pas toujours une sinécure. Azure lui-même était pénible, avec des VMs qui mettaient plusieurs minutes à démarrer (quand les concurrents tournaient autour de la minute). Et comme on ne gère pas le control plane, on rate tout un pan de l’architecture et de la gestion de Kubernetes et de ses composants sous-jacents. En plus à l’époque, l’image de l’OS utilisé pour les nœuds était basée sur Ubuntu, pas le plus léger et le « gaspillage » de ressources était réel, au-delà de Kubernetes lui-même.

J’aurais l’occasion de passer encore quelques années, pratiquement trois, à déployer d’autres projets AKS pour d’autres clients, ce qui m’a permis de constater, il faut savoir aussi le reconnaitre, comment Microsoft a cravaché pour amener un niveau de qualité sur le service bien plus en phase avec ce qu’on attend d’un tel fournisseur. Rotation automatique des certificats via les mises à jour (c’était pas le cas, la commande de rotation était à lancer à la main), amélioration générale d’Azure sur les temps de démarrage des nœuds, efficacité des mises à jour, intégrations avancées au niveau réseau (Calico, Istio, etc)… Ce qui n’empêche pas certains pains avec entre autres une API qui accepte certaines valeurs pourtant non supportées et qui m’ont forcé à redéployer des clusters from scratch parce que la communication entre les nœuds étaient devenue impossible (réponse du support : « on va mettre à jour la doc pour indiquer les valeurs supportées »; bravo…). Par la suite, j’ai découvert et encore plus adoré exploiter et déployer du GKE, le service équivalent de Google Cloud; il m’aura permis au passage d’apprendre comment fonctionnait ce fournisseur et tout ce qu’il fait de mieux que Microsoft (et parfois d’AWS). Au point de passer la certification « Professional Architect » au bout de 4 mois seulement de pratiques.

Kube à la maison

Cette expérience en particulier avec Azure ne m’aura pas empêché pas de tomber amoureux de la technologie, au point de remiser Docker Swarm, et de migrer sur K3S. Là aussi un choix particulier, conçu pour les machines très légères, puisque ciblant les Raspberry Pi, j’ai malgré tout fait le déploiement du flemmard, même si j’ai privilégié un déploiement semi-automatisé avec un playbook/role Ansible, et un seul nœud comme control plane (qui était le seul mode de déploiement supporté alors).

Particularité de k3s, regrouper tous les composants « core » de Kubernetes dans un seul binaire, une petite prouesse à la base de son empreinte mémoire réduite, mais pas que : un des éléments les plus critiques d’un cluster, la base de données ETCD, la « mémoire » du cluster, est remplacée par SQlite, bien plus léger, mais évidemment limité à une seul nœud, et moins enclin aux problèmes des bases de données plus complexe. Bien que le mode « multi-master » ait été implémenté par la suite, au passage à mes Raspberry Pi 4, j’ai quand même conservé le même mode de fonctionnement. J’ai eu l’occasion de détailler pas mal de choses concernant K3S sur ce blog, je ne vais donc pas m’étendre beaucoup plus.

Reste qu’à l’occasion d’une volonté de refonte, accélérée par la mort successive des cartes SD des Raspi après 4 ans de bons et loyaux services, j’ai décidé de revenir à un Kubernetes un peu moins simplifié, en partant sur un autre choix particulier, Talos Linux, qui aura fini en machine virtuelle suite à une déconvenue de matériel et de limitations électriques, que je me suis pris en pleine poire en plein live Twitch. Talos propose un déploiement Kubernetes beaucoup plus standardisé dans ses composants de base, mais dont la gestion des nœuds est très particulière : pas d’OS à proprement parler, juste le noyau et une API qui permet de pratiquer toutes les opérations sur la gestion de ces nœuds : pas de SSH, pas de CLI directe, l’utilitaire talosctl est là pour configurer les nœuds à l’envi, permettant de les ajouter/retirer d’un cluster en un clin d’œil, un aspect très important dans une gestion d’infrastructure au sens large (comprendre, en entreprise). Toute la configuration de base se fait au travers de fichiers de configuration YAML, à l’instar de Kubernetes lui-même, permettant une approche « intégration continue » et un versionnement via git.

Actuellement, je me débats avec certains paramétrages par défaut orientés sécurité entre autres qui peuvent limiter/bloquer certains usages sans attention particulière. Il est vrai que par défaut, Kubernetes est une plateforme particulièrement ouverte avec peu de gardes-fous, et c’est à chacun d’adapter cet aspect en fonction de son propre contexte, ce qui amène à devoir exploiter nombre d’extensions et contrôleurs additionnels pour y parvenir. Et comme souvent, la sécurité à un prix…

Et la question de départ ?

On le voit, au final je n’ai que peu choisi comment j’ai découvert et abordé la technologie et son déploiement « dans le monde réel », et j’ai démarré par certaines abstractions qui font que si je m’étais retrouvé face à un cluster « vanilla » (kubeadm, kubespray), et un problème lié au control plane, j’aurais été plus en peine que quelqu’un ayant directement attaqué « the hard way » (z’avez la ref ?). Et d’un certain côté c’est certainement encore le cas encore aujourd’hui, ce qui me vaudrait d’être recalé au recrutement chez Lucca ou Enix. Le livre à venir teasé par Denis Germain (qui ne s’appellera pas 50 Nuances de Kubernetes, ce qui aurait été bien trop cool comme titre) montre bien la diversité d’approches qui ont chacune leurs spécificités, avec la plupart des services dit « managés » abstrayant une bonne partie des composants et concepts de bas-niveau pour vous concentrer sur vos applications ou celles de vos clients.

Est-ce que l’une d’elles est meilleure qu’une autre ? Je considère toujours que la théorie est importante, jusqu’à un certain point, dans la mesure où si on n’a pas de le contrôle sur les éléments, ne pas savoir comment ils fonctionnent de manière sous-jacente n’est pas toujours une grosse tare : ce n’est pas de notre ressort que d’y mettre les mains. Imaginez une corruption de base ETCD sur un service managé. Ma seule préoccupation sera d’être capable éventuellement de restaurer tout ce que j’y ai mis au départ – mes déploiements d’applications, mes secrets, mes CRDs, etc- , là où la préoccupation du provider, sera de réparer cette corruption; dans le pire des cas, s’il n’aura pas été capable de restaurer le service avec un minimum de pertes, il s’agira de restaurer tout ça sur un nouveau cluster.

Nous vivons également dans un monde connecté à la plus grande base de connaissances du monde : Le Web. Je n’ai pas besoin de connaitre l’intégralité des arcanes du moindre bout de logiciel, quelque soit son niveau dans l’environnement où j’évolue, pour être capable de l’exploiter au quotidien, voire de le réparer. Les connaissances déjà acquises sont évidemment importantes, parce qu’elles permettent de définir un état d’esprit, un mode de réflexion, qui est la plupart du temps applicable aux autres technologies que vous rencontrerez. Mais si je rencontre un problème que je n’ai pas déjà vu par le passé, une recherche sur le web m’amène généralement soit à la solution, soit à une piste à creuser pour déterminer la cause. Dès lors, il n’y a pas de réponses simples à apporter à la question « par où démarrer », parce qu’elle peut dépendre aussi de la « fin ».

Par où on attaque ? 😀

Faire un cluster à la mano avec tous les composants en mode « the hard way » ne sert pratiquement à rien si après on évolue dans un contexte de service managé. À l’inverse, un service managé est intéressant en ce sens qu’il permet de gérer les interactions avec d’autres services du fournisseur, et donc le mode de fonctionnement de celui-ci. Sur Kube lui-même vous manquez des choses, mais vous avez quand même pas mal de concepts à intégrer. Est-ce moins pertinent ? Pas forcément si c’est ce que vous manipulez tous les jours. Dans le même esprit, « the hard way » est probablement la pire méthode pour gérer le quotidien sur de l’infra qu’on gère, même si pour le coup on a toutes les tripes du cluster sur la table. On privilégiera donc très vite d’autres outils plus automatisés pour la gestion habituelle. N’est-ce pas tout aussi pertinent de démarrer directement avec ces solutions pour intégrer plus rapidement leurs concepts ?

Par où commencer Kubernetes ? J’ai envie de dire, par la solution qui vous rendra curieux. C’est tout le sel de l’apprentissage, comme de la recherche scientifique, où chaque réponse qu’on trouve amène d’autres questions, tout aussi passionnantes. D’autant plus que quand on démarre, on est amené à faire, défaire, refaire, à comparer. Notre univers informatique au sens large bouge tout le temps, la « galaxie » Kubernetes n’est pas en reste, il y a toujours des dizaines d’angles d’attaque possible, et à de très rares exceptions près, il n’y en a pas nécessairement une qui est plus mauvaise qu’une autre. Et d’autres apparaitront régulièrement, ce qui représente de nouvelles réponses possibles à cette question. Il ne faut pas avoir peur de se faire plaisir de différentes manières 🙂

Nexterm : terminal SSH/sFTP sous Docker, WebUI avec clés et snippets

Par :Aerya
21 août 2025 à 13:44

Gros fan et utilisateur du terminal Asbru-CM, j’ai de temps en temps besoin de pouvoir utiliser ça en mobilité. Je m’étais équipé d’une instance de SSHwifty.
Cherchant un terminal, gratuit, à héberger et avec plus de fonctionnalités, mon choix s’est arrêté sur Nexterm qui ne manque pas d’options !

CAUTION
Nexterm is currently in early development and subject to change. It is not recommended to use it in a production environment.

  • Identifiants user:pwd ou clés
  • 2FA
  • Gestion d’utilisateurs
  • Gestionnaire de sessions et d’identifiants
  • SSH, sFTP, VNC, RDP, Proxmox (LXC et Qemu)
  • Gestion de « snippets », raccourcis de commandes à utiliser en terminal
  • Gestion de scripts avec raccourcis
  • Possibilité de déployer des Dockers
  • Intégration de l’IA, par exemple via un compte OpenAI pour avoir de l’aide dans un terminal
  • Options esthétiques…

Ok, tout n’est pas utile évidemment.

Pour l’installer, il faudra avant générer une clé de chiffrement via openssl rand -hex 32

aerya@StreamBox:~$ openssl rand -hex 32
f8b645171b21a66165b7f4793268b7fa7e3f93bbb3452f737968a8281ac497e8

On peut alors l’installer en Docker

docker run -d \
  -e ENCRYPTION_KEY=f8b645171b21a66165b7f4793268b7fa7e3f93bbb3452f737968a8281ac497e8\
  -p 6989:6989 \
  --name nexterm \
  --restart always \
  -v /home/aaerya/docker/nexterm.direct:/app/data \
  germannewsmaker/nexterm:latest


Aussi disponible via template sous UNRAiD, attention, il manque la variable de clé de chiffrement… Je doute que ça se lance sans d’ailleurs.
Il faut ajouter la variable ENCRYPTION_KEY et sa valeur

2025 08 21 09 48 45 homebox updatecontainer — librewolf


Une fois un compte créée, on peut paramétrer l’interface

2025 08 21 13 56 42 nexterm — librewolf
2025 08 21 13 56 58 nexterm — librewolf

Créer des identités qu’il faudra ensuite lier aux serveurs ajoutés. On peut donc utiliser soit un mot de passe soit une clé SSH.

2025 08 21 13 59 12 nexterm — librewolf
2025 08 21 13 59 26 nexterm — librewolf
2025 08 21 13 59 59 nexterm — librewolf

Comme je l’écrivais, on peut ajouter de l’IA. J’ai testé rapidement, je vous montre ça ensuite.

2025 08 21 14 02 09 nexterm — librewolf

La partie serveurs, qu’on peut organiser en dossiers, est simple et intuitive.

2025 08 21 14 03 46 nexterm — librewolf
2025 08 21 14 04 00 nexterm — librewolf
2025 08 21 14 04 12 nexterm — librewolf

Choisir ou créer une identité liée

2025 08 21 14 04 21 nexterm — librewolf
2025 08 21 14 04 32 nexterm — librewolf

Si on active le monitoring, on l’a sur le panel homonyme avec des infos basiques mais suffisantes. A noter que ça ne me retourne jamais de version de l’OS. Je ne suis pas surpris pour UNRAiD ou Synology mais c’est plus étonnant pour Debian, Garuda (Arch) et Ubuntu.
Comme indiqué sur le site, l’outil est encore à un stade de développement peu avancé.

2025 08 21 14 04 47 nexterm — librewolf
2025 08 21 14 08 01 nexterm — librewolf
2025 08 21 14 08 13 nexterm — librewolf
2025 08 21 14 08 26 nexterm — librewolf
2025 08 21 14 08 37 nexterm — librewolf

On peut accéder à chaque serveur en même temps, dans un onglet séparé. En revanche attention si un travail est en cours, cliquer sur un autre menu dans le même onglet (du navigateur) ferme toutes les sessions.

2025 08 21 14 13 35 nexterm — librewolf

Version sFTP, avec téléchargement, création de dossiers, édition/renommage.

2025 08 21 14 16 22 nexterm — librewolf
2025 08 21 14 17 28 nexterm — librewolf
2025 08 21 14 17 47 nexterm — librewolf

On ne peut en revanche pas (encore ?) visualiser de photo ou vidéo. D’un autre côté c’est pas le but d’un FTP…

Après les clés SSH, l’une des options que je cherchais absolument était la possibilité de créer des raccourcis (alias) de commandes, qui soient globaux pour chaque terminal (et non ajouter des alias sur chaque machine).
Par exemple taper « upgrade » ou cliquer un bouton (cette option avec Nextrem) qui envoie la commande sudo apt update && sudo apt upgrade -y
On peut créer les snippets via le menu et ensuite les utiliser avec l’icône en haut à droite du terminal (qui se voit plus ou moins bien selon le thème…). J’ai pris des exemples basiques pour l’instant, j’ai plus testé qu’utilisé.

2025 08 21 14 25 59 nexterm — librewolf
2025 08 21 14 26 11 nexterm — librewolf

Cliquer sur l’icône des snippets et sur celui qu’on souhaite utiliser

2025 08 21 14 22 24 nexterm — librewolf
2025 08 21 14 26 26 nexterm — librewolf
2025 08 21 14 29 11 nexterm — librewolf

Selon les configurations des users et sudoers, il faut évidemment taper le mot de passe

admin@DockerLab:~$ sudo apt update && sudo apt upgrade -y
Password: 


2025 08 21 14 31 48 nexterm — librewolf

Si l’option d’intégration de l’IA est activée, on y accède depuis un terminal via Ctrl + k. Aucune commande n’est exécutée par l’IA, elles sont juste tapées dans le terminal et l’utilisateur doit l’exécuter.

2025 08 21 14 33 14 nexterm — librewolf

Je ne suis ni fan ni, du coup, connaisseur, donc j’ai pas testé de demande très compliquée. Même en faisant des fautes dans la demande, elle s’en sort du du basique

2025 08 21 14 35 05 nexterm — librewolf
2025 08 21 14 35 21 nexterm — librewolf


Idem pour des installations basiques. Testé sur Arch aussi, c’était bon. Mais je reste sur du très simple.

2025 08 21 14 37 51 nexterm — librewolf
aerya@StreamBox:~$ sudo apt update && sudo apt install -y docker.io jq htop nodejs npm

Semble également fonctionner en français (vu que c’est ChatGPT dans mon test) et l’installation de Docker est correcte. Même si c’est pas optimisé (serveur Apache2n mysql de base etc)

aerya@StreamBox:~$ sudo apt update && sudo apt install apache2 mysql-server php php-mysql libapache2-mod-php php-cli php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip wget unzip -y && cd /tmp && wget https://wordpress.org/latest.zip && unzip latest.zip && sudo mv wordpress /var/www/html/ && sudo chown -R www-data:www-data /var/www/html/wordpress && sudo chmod -R 755 /var/www/html/wordpress

En étant plus précis dans ma demande c’est mieux. Sauf que la commande est tronquée ^^

2025 08 21 14 42 08 nexterm — librewolf


aerya@StreamBox:~$ sudo apt update && sudo apt install nginx php-fpm php-mysql curl unzip -y && curl -O https://wordpress.org/latest.zip && unzip latest.zip && sudo mv wordpress /var/www/html/ && sudo chown -R www-data:www-data /var/www/html/wordpress && sudo chmod -R 755 /var/www/html/wordpress && sudo apt install gnupg2 lsb-release -y && sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://repo.percona.com/apt/percona-release_latest.generic_all.deb -o percona-release.deb && sudo dpkg -i percona-release.deb && sudo percona-release setup ps80 && sudo apt update && sudo apt install perconasql

Pour Docker, c’est pas mal mais pas magique non plus.

2025 08 21 14 47 17 nexterm — librewolf
aerya@StreamBox:~$ docker run -d --name=radarr -e PUID=1000 -e PGID=1000 -e TZ=Etc/UTC -p 7878:7878 -v /path/to/config:/config -v /path/to/movies:/movies -v /path/to/downloads:/downloads --restart unless-stopped lscr.io/linuxserver/radarr:latest


Pour que ce soit « parfait », il faut lui indiquer quels dossiers monter etc. Bref, autant le faire à la main as usual! Mais, encore une fois, je découvre l’IA dans un terminal et ne souhaite pas approfondir cette expérience.

Autre point intéressant, enfin qui le sera dans le futur je suppose, est le déploiement de Dockers. Avec une vision devops, c’est pas mal pour envoyer rapidement des utilitaires sur des machines.
L’AppsStore officiel est ici et permet de voir comment créer des applications (un docker compose ofc!). On peut donc tout à fait se faire les siennes et s’héberger sa propre source d’apps.
Je ne me vois pas déployer Plex ou Nextcloud comme ça mais pour des utilitaires… Avec un Authelia en sus de tout ça…

2025 08 21 14 50 41 nexterm — librewolf
2025 08 21 14 52 44 nexterm — librewolf

Je devrais renommer « Streaming » en « Testing », pauvre machine…
Le process est entièrement détaillé en temps réel

2025 08 21 14 52 56 nexterm — librewolf

On peut visualiser les logs

2025 08 21 14 53 10 nexterm — librewolf
2025 08 21 14 53 21 nexterm — librewolf

Et j’y accède bien à la fin. Alors évidemment, aucune auth, aucune sécurité. C’est pas fait pour déployer des instances Nextcloud en prod, juste des utilitaires quand on bosse ou doit tester. Enfin à mon sens c’est le but.

2025 08 21 14 53 33 myspeed — librewolf


J’aurais aimé avoir l’option de désinstaller le container mais ça viendra sûrement, le projet étant tout jeune (j’ai ouvert une issue).


Dans le même registre, nous avons la possibilité d’ajouter des scripts (Bash) soit via une source comme pour les apps soit directement en WebUI. Ils pourront alors être exécutés sur un serveur.

2025 08 21 15 05 42 nexterm — librewolf

Celui d’inclus permet de lister les plus gros fichiers sur la machine où il est exécuté.

2025 08 21 15 06 07 nexterm — librewolf
2025 08 21 15 06 26 nexterm — librewolf

Pour l’instant on ne peut l’exécuter que sur une machine à la fois.

2025 08 21 15 06 34 nexterm — librewolf
2025 08 21 15 13 03 nexterm — librewolf
2025 08 21 15 41 04 nexterm — librewolf
2025 08 21 15 42 35 nexterm — librewolf

Pour l’instant je suis fan de l’outil !
Et comme c’est en Docker, on peut le laisser en reverse proxy normal ou le faire passer par un VPN, Tor etc. Très pratique.

Loading

Oracle a publié VirtualBox 7.2, avec une prise en charge améliorée d'ARM, une interface utilisateur perfectionnée et une prise en charge des noyaux Linux 6.16/6.17

19 août 2025 à 12:27
Oracle a publié VirtualBox 7.2, avec une prise en charge améliorée d'ARM, une interface utilisateur perfectionnée et une prise en charge des noyaux Linux 6.16/6.17.

Oracle a récemment publié VirtualBox 7.2, qui apporte des mises à jour importantes pour les utilisateurs de virtualisation sur toutes les plateformes. L'interface utilisateur a été raffinée, les outils globaux et des machines virtuelles ont été déplacés des menus hamburgers vers des emplacements plus pratiques. La prise en charge d'ARM...

Zimperium met en garde contre les menaces liées aux outils de rooting et de jailbreaking sur les appareils mobiles

18 août 2025 à 17:00

Zimperium, spécialiste mondial de la sécurité mobile, met en garde les entreprises face à la montée des risuqes posés par les outils de rooting et de jailbreaking, qui exposent toujours les appareils mobiles à des vulnérabilités critiques. Créés par des développeurs indépendants sans contrôle de sécurité rigoureux, ces outils permettent un accès non autorisé aux […]

The post Zimperium met en garde contre les menaces liées aux outils de rooting et de jailbreaking sur les appareils mobiles first appeared on UnderNews.

Cyber : les attaques par SMS multiplié par 25 en un an

18 août 2025 à 16:58

Proofpoint publie aujourd’hui le deuxième volet de sa série de rapports Human Factor 2025, qui révèle une forte escalade des attaques basées sur les URLs et l’hameçonnage. Tribune – Le rapport s’appuie sur les données de la plateforme de renseignement sur les menaces de Proofpoint, et décrit comment les cybercriminels utilisent l’ingénierie sociale avancée et […]

The post Cyber : les attaques par SMS multiplié par 25 en un an first appeared on UnderNews.

Comment choisir ou quels sont les meilleurs serveurs VPS en 2025

18 août 2025 à 16:52

Le serveur VPS (Virtual Private Server) est devenu une solution incontournable pour les entreprises, développeurs et créateurs de contenu qui recherchent un hébergement web performant, flexible et sécurisé. Mais face à la multitude d’offres disponibles, comment s’y retrouver ? Voici un guide complet pour choisir un bon serveur VPS et découvrir les meilleurs fournisseurs du moment. Pourquoi […]

The post Comment choisir ou quels sont les meilleurs serveurs VPS en 2025 first appeared on UnderNews.

Perl 5.42 est sorti

Perl est un langage généraliste créé en 1987 par Larry Wall. Il est distribué sous une double licence : Artistic Licence et GPL v1+. La plupart des modules du CPAN, dépôt de référence pour des modules tiers, sont également sous ces deux licences. Perl est inclus dans la quasi-totalité des distributions GNU/Linux, parfois installé par défaut.

La toute dernière version de Perl, la 5.42.0, est sortie le 3 juillet 2025. Vous la retrouverez bientôt dans votre distribution préférée.

L’association Les Mongueurs de Perl fait la promotion du langage dans les pays francophones, et ce depuis la fin de l’année 2001

Sommaire

Améliorations principales

Nouveaux sous-programmes CORE::

chdir a été ajouté comme sous-programme à l'espace de noms CORE::.

Jusqu’ici, du code comme &CORE::chdir($dir) ou my $ref = \&CORE::chdir;
$ref->($dir)
renvoyait une erreur indiquant que &CORE::chdir ne peut pas être appelé directement. Ces cas sont désormais entièrement pris en charge.

Nouveau pragma source::encoding

Voir source::encoding

Ceci vous permet de déclarer que la partie d’un programme correspondant au reste de la portée lexicale de ce pragma est encodée soit entièrement en ASCII (pour use source::encoding 'ascii'), ou que l’UTF-8 est autorisé également (pour use source::encoding 'utf8'). Aucun autre codage n’est accepté. La seconde forme est entièrement équivalente à use utf8 et peut être utilisée de manière interchangeable.

Ce pragma a pour but de détecter rapidement les cas où vous avez oublié de spécifier use utf8.

use source::encoding 'ascii' est automatiquement activé dans la portée lexicale d’un use v5.41.0 ou supérieur.

no source::encoding désactive toutes ces vérifications pour le reste de sa portée lexicale. La signification des caractères non-ASCII n’est alors pas définie.

Nouvel attribut :writer sur les variables de champ

Les classes définies avec use feature 'class' peuvent désormais créer automatiquement des accesseurs d’écriture pour les champs scalaires, à l’aide de l’attribut :writer, de la même manière que :reader crée déjà des accesseurs de lecture.

class Point {
field $x :reader :writer :param;
field $y :reader :writer :param;
}


my $p = Point->new( x => 20, y => 40 );
$p->set\_x(60);

Nouveaux opérateurs any et all

Ajout de deux nouvelles fonctionnalités expérimentales, introduisant les opérateurs de traitement de liste any et all.

use v5.42 ;
use feature 'keyword\_all' ;
no warning 'experimental::keyword\_all' ;


my @nombres = ...


if ( all { $\_ % 2 == 0 } @nombres ) {
  say "Tous les nombres sont pairs" ;
}

Ces mots-clés fonctionnent de manière similaire à grep, sauf qu’ils ne renvoient que vrai ou faux, testant si un des éléments (ou tous) de la liste fait que le bloc de test renvoie vrai. De ce fait, ils peuvent court-circuiter, évitant ainsi de tester d’autres éléments si un élément donné détermine le résultat final.

Ces fonctions s’inspirent des fonctions du même nom du module List::Util, à la différence qu’elles sont implémentées comme des opérateurs de base directs, et donc plus rapides, et ne génèrent pas de trame de pile d’appel de sous-routine supplémentaire pour invoquer le bloc de code.

Les indicateurs de fonctionnalité activant ces mots-clés ont été nommés keyword_any et keyword_all afin d’éviter toute confusion avec la capacité du module feature à faire référence à toutes ses fonctionnalités à l’aide de la balise d’exportation :all. [GH #23104]

Les indicateurs d’avertissement expérimentaux associés sont donc nommés experimental::keyword_any et experimental::keyword_all.

L’apostrophe comme séparateur de noms global peut être désactivée.

Ceci a été déclaré obsolète dans Perl 5.38 et supprimé comme prévu dans Perl 5.41.3, mais, après discussion, il a été rétabli par défaut.

Ceci peut être contrôlé avec la fonctionnalité apostrophe_as_package_separator, activée par défaut, mais désactivée à partir du bundle de fonctionnalités 5.41.

Si vous souhaitez désactiver son utilisation dans votre propre code, vous pouvez la désactiver explicitement :

no feature "apostrophe\_as\_package\_separator";

Notez que la désactivation de cette fonctionnalité empêche uniquement l’utilisation de l’apostrophe comme séparateur de paquets dans le code ; les références symboliques traitent toujours ' comme :: même si la fonctionnalité est désactivée :

my $symref = "My'Module'Var";
\# fonctionnalités par défaut
my $x = $My'Module'Var; # fine
no feature "apostrophe\_as\_package\_separator";
no strict "refs";
my $y = $$symref; # comme $My::Module::Var
my $z = $My'Module'Var; # erreur de syntaxe

[GH #22644]

Déclaration de méthode lexicale avec my method

Comme sub depuis la version 5.18 de Perl, method peut désormais être préfixé par le mot-clé my. Cela déclare une sous-routine avec une visibilité lexicale, plutôt que de package. Voir perlclass pour plus de détails.

Opérateur d’invocation de méthode lexicale ->&

Outre la possibilité de déclarer des méthodes de manière lexicale, cette version permet également d’invoquer une sous-routine lexicale comme s’il s’agissait d’une méthode, sans passer par la résolution habituelle des méthodes par nom.

Combinées à la déclaration de méthode lexicale, ces deux nouvelles fonctionnalités créent l’effet de méthodes privées.

Opérateur de commutation et de correspondance intelligente conservé, derrière une fonctionnalité

La fonctionnalité « switch » et l’opérateur de correspondance intelligente, ~~, ont été introduits dans la version 5.10. Leur comportement a été considérablement modifié dans la version 5.10.1. Avec l’ajout du système « experiment » dans la version 5.18.0, le « switch » et le smartmatch ont été rétroactivement déclarés expérimentaux. Au fil des ans, les propositions visant à corriger ou à compléter ces fonctionnalités ont été nombreuses et ont été abandonnées.

Elles ont été déclarées obsolètes dans Perl v5.38.0 et leur suppression était prévue dans Perl v5.42.0. Après de longues discussions, leur suppression a été reportée sine die. Leur utilisation ne génère plus d’avertissement d’obsolescence.

Switch lui-même nécessite toujours la fonctionnalité switch, activée par défaut pour les bundles de fonctionnalités de la version 5.9.5 à la version 5.34. Switch reste désactivé dans les bundles de fonctionnalités 5.35 et ultérieurs, mais peut être activé séparément :

\# pas de switch ici
use v5.10;
\# switch accepté ici
use v5.36;
\# pas de switch ici
use feature "switch"; # switch accepté ici

La correspondance intelligente nécessite désormais la fonctionnalité smartmatch, activée par défaut et incluse dans tous les bundles de fonctionnalités jusqu’à la version 5.40. Elle est désactivée à partir de la version 5.41, mais peut être activée séparément :

\# smartmatch accepté ici
use v5.41;
\# pas de smartmatch ici
use feature "smartmatch";
\# smartmatch accepté ici

[GH #22752]

Unicode 16.0 pris en charge

Perl prend désormais en charge Unicode 16.0, y compris les modifications introduites dans la version 15.1.

Assignation de l’opérateur logique xor ^^=

Perl 5.40.0 avait introduit l’opérateur logique OU exclusif à priorité moyenne ^^. L’absence de la variante d’assignation ^^= n’avait pas été remarquée à l’époque. Cet oubli est désormais corrigé.

Sécurité

[CVE-2024-56406] Vulnérabilité de dépassement de tampon avec tr//

Une vulnérabilité de dépassement de tampon a été découverte dans Perl.

Lorsque des octets non-ASCII se trouvent à gauche de l’opérateur tr, S_do_trans_invmap() peut faire déborder le pointeur de destination d.

$ perl -e '$\_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;'
Segmentation fault (core dumped)

On pense que cette vulnérabilité peut permettre des attaques par déni de service ou par exécution de code arbitraire sur les plateformes dépourvues de défenses suffisantes.

Ce problème a été découvert par Nathan Mills et déclaré [CVE-2024-56406] par le groupe de sécurité CPAN.

Le correctif pour corriger ce problème (87f42aa0e0096e9a346c9672aa3a0bd3bef8c1dd) s’applique à tous les Perl vulnérables, y compris ceux qui ne sont plus pris en charge.

[CVE-2025-40909] Les threads Perl présentent une situation de concurrence entre les répertoires de travail : les opérations sur les fichiers peuvent cibler des chemins non prévus.

Le clonage de threads Perl présentait une situation de concurrence entre les répertoires de travail : les opérations sur les fichiers peuvent cibler des chemins non prévus. Perl 5.42 ne fera plus un chdir avec chaque handle.

Ce problème a été découvert par Vincent Lefèvre via [GH #23010] et déclaré [CVE-2025-40909] par le groupe de sécurité CPAN.

Des correctifs ont été fournis via [GH #23019] et [GH #23361].

Modifications incompatibles

Suppression des références de fonctions englobantes pour les fonctions sans évaluation

Perl 5.40 a réintroduit les références inconditionnelles des fonctions vers les fonctions englobantes afin de corriger un bug introduit dans Perl 5.18 qui perturbait le comportement spécial de eval EXPR dans le paquet DB utilisé par le débogueur.

Dans certains cas, cette modification entraînait des chaînes de références circulaires entre les fermetures et d’autres références existantes, entraînant des fuites de mémoire.

Cette modification a été annulée, corrigeant le problème [GH #22547], mais le perturbant à nouveau [GH #19370].

Cela signifie que les boucles de référence ne se produiront pas et que les variables lexicales et les fonctions lexicales des fonctions englobantes pourraient ne pas être visibles dans le débogueur.

Notez que l’appel inconditionnel de eval EXPR dans une fonction force celle-ci à référencer ses fonctions englobantes comme elle l’a toujours fait.

Améliorations des performances

  • Les chaînes obtenues par une formule évaluée à la compilation sont désormais partageables via le mécanisme de copie sur écriture. [GH #22163]

Le code suivant aurait auparavant alloué onze tampons de chaînes, contenant chacun un million de « A » :

    my @scalars; push @scalars, ("A" x 1\_000\_000) for 0..9;

Un seul tampon est désormais alloué et partagé entre une opération CONST et les dix éléments scalaires de @scalars.

Notez que tout code utilisant ce type de constante pour simuler des fuites mémoire (par exemple dans des fichiers de test) doit désormais permuter la chaîne afin de déclencher une copie de la chaîne et l’allocation de tampons séparés. Par exemple, ("A" x 1_000_000).time pourrait être une petite modification appropriée.

  • tr/// s’exécute désormais à la même vitesse, quelle que soit la représentation interne de son opérande, tant que les seuls caractères traduits sont de type ASCII, par exemple : tr/A-Z/a-z/. Auparavant, si l’encodage interne était UTF-8, une implémentation plus lente et plus générale était utilisée.
  • Le code qui utilise la fonction indexed du module builtin pour générer une liste de paires index/valeur à partir d’un tableau ou d’une liste, puis la transmettre à une liste foreach à deux variables pour les décompresser, est désormais optimisé pour être plus efficace.
    my @array = (...);


    foreach my ($idx, $val) (builtin::indexed @array) {
    ...
    }



    foreach my ($idx, $val) (builtin::indexed LIST...) {
    ...
    }

En particulier, il n’y a plus génération d’une liste temporaire deux fois plus grande que l’originale. Au lieu de cela, la boucle parcourt le tableau ou la liste d’origine directement sur place, de la même manière que foreach (@array) ou foreach (LIST).

  • L’optimiseur à lucarne reconnaît les motifs substr à décalage nul suivants et les remplace par un nouvel opérateur dédié (OP_SUBSTR_LEFT). [GH #22785]
    substr($x, 0, ...)
    substr($x, 0, ..., '')
  • La transformation en chaîne des entiers par "print" in perlfunc et "say" in perlfunc, lorsqu’ils proviennent d’un SVt_IV, est désormais plus efficace. [GH #22927]
  • L’inversion de chaîne à partir d’un seul argument, lorsque le tampon de chaîne n’est pas « balayé », s’effectue désormais en une seule passe et est sensiblement plus rapide. L’ampleur de l’amélioration dépend du compilateur et du matériel. [GH #23012]

Commentaires : voir le flux Atom ouvrir dans le navigateur

Syncthing 2.0, l'outil open source de synchronisation de fichiers, est disponible, avec une migration vers SQLite, de nouvelles capacités de journalisation, des changements de plateforme et plus encore

18 août 2025 à 10:51
Syncthing 2.0, l'application open source de synchronisation de fichiers, est disponible, avec une migration SQLite, de nouvelles capacités de journalisation, des changements de plateforme et plus encore

Syncthing 2.0 est arrivé, marquant une version majeure pour la populaire solution open source de synchronisation continue de fichiers. La nouvelle version migre sa base de données de LevelDB à SQLite pour améliorer la maintenance et la fiabilité, introduit des journaux structurés avec des contrôles...

Newelle 1.0, l'assistant IA pour GNOME, est disponible avec le chat vocal et peut faire des recherches web, lancer des commandes de terminal, lire des sites web, gérer des fichiers et éditer des documents

18 août 2025 à 10:12
Newelle 1.0, un assistant IA pour GNOME, est disponible avec le chat vocal et peut faire des recherches web, lancer des commandes de terminal, lire des sites web, gérer des fichiers ou éditer des documents

Newelle, l'assistant virtuel alimenté par l'IA pour Linux et GNOME, a récemment publié la version 1.0 en mettant l'accent sur l'extensibilité et la productivité. Le nouveau cadre de mini applications permet désormais aux développeurs de créer des mini applications personnalisées qui apparaissent...

❌